hydra-lisp 0.17.7 → 0.18.0
raw patch · 8 files changed
+5451/−5359 lines, 8 filesdep ~hydra-kernelPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hydra-kernel
API changes (from Hackage documentation)
- Hydra.Dsl.Lisp.Syntax: andExpression :: TypedTerm [Expression] -> TypedTerm AndExpression
- Hydra.Dsl.Lisp.Syntax: andExpressionAndExpression :: TypedName AndExpression
- Hydra.Dsl.Lisp.Syntax: andExpressionExpressions :: TypedTerm AndExpression -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: andExpressionWithExpressions :: TypedTerm AndExpression -> TypedTerm [Expression] -> TypedTerm AndExpression
- Hydra.Dsl.Lisp.Syntax: application :: TypedTerm Expression -> TypedTerm [Expression] -> TypedTerm Application
- Hydra.Dsl.Lisp.Syntax: applicationApplication :: TypedName Application
- Hydra.Dsl.Lisp.Syntax: applicationArguments :: TypedTerm Application -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: applicationFunction :: TypedTerm Application -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: applicationWithArguments :: TypedTerm Application -> TypedTerm [Expression] -> TypedTerm Application
- Hydra.Dsl.Lisp.Syntax: applicationWithFunction :: TypedTerm Application -> TypedTerm Expression -> TypedTerm Application
- Hydra.Dsl.Lisp.Syntax: beginExpression :: TypedTerm [Expression] -> TypedTerm BeginExpression
- Hydra.Dsl.Lisp.Syntax: beginExpressionBeginExpression :: TypedName BeginExpression
- Hydra.Dsl.Lisp.Syntax: beginExpressionExpressions :: TypedTerm BeginExpression -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: beginExpressionWithExpressions :: TypedTerm BeginExpression -> TypedTerm [Expression] -> TypedTerm BeginExpression
- Hydra.Dsl.Lisp.Syntax: booleanStyleBooleanStyle :: TypedName BooleanStyle
- Hydra.Dsl.Lisp.Syntax: booleanStyleHashTF :: TypedTerm BooleanStyle
- Hydra.Dsl.Lisp.Syntax: booleanStyleTNil :: TypedTerm BooleanStyle
- Hydra.Dsl.Lisp.Syntax: booleanStyleTrueFalse :: TypedTerm BooleanStyle
- Hydra.Dsl.Lisp.Syntax: caseClause :: TypedTerm [Expression] -> TypedTerm Expression -> TypedTerm CaseClause
- Hydra.Dsl.Lisp.Syntax: caseClauseBody :: TypedTerm CaseClause -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: caseClauseCaseClause :: TypedName CaseClause
- Hydra.Dsl.Lisp.Syntax: caseClauseKeys :: TypedTerm CaseClause -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: caseClauseWithBody :: TypedTerm CaseClause -> TypedTerm Expression -> TypedTerm CaseClause
- Hydra.Dsl.Lisp.Syntax: caseClauseWithKeys :: TypedTerm CaseClause -> TypedTerm [Expression] -> TypedTerm CaseClause
- Hydra.Dsl.Lisp.Syntax: caseExpression :: TypedTerm Expression -> TypedTerm [CaseClause] -> TypedTerm (Maybe Expression) -> TypedTerm CaseExpression
- Hydra.Dsl.Lisp.Syntax: caseExpressionCaseExpression :: TypedName CaseExpression
- Hydra.Dsl.Lisp.Syntax: caseExpressionClauses :: TypedTerm CaseExpression -> TypedTerm [CaseClause]
- Hydra.Dsl.Lisp.Syntax: caseExpressionDefault :: TypedTerm CaseExpression -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Lisp.Syntax: caseExpressionScrutinee :: TypedTerm CaseExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: caseExpressionWithClauses :: TypedTerm CaseExpression -> TypedTerm [CaseClause] -> TypedTerm CaseExpression
- Hydra.Dsl.Lisp.Syntax: caseExpressionWithDefault :: TypedTerm CaseExpression -> TypedTerm (Maybe Expression) -> TypedTerm CaseExpression
- Hydra.Dsl.Lisp.Syntax: caseExpressionWithScrutinee :: TypedTerm CaseExpression -> TypedTerm Expression -> TypedTerm CaseExpression
- Hydra.Dsl.Lisp.Syntax: characterLiteral :: TypedTerm String -> TypedTerm CharacterLiteral
- Hydra.Dsl.Lisp.Syntax: characterLiteralCharacterLiteral :: TypedName CharacterLiteral
- Hydra.Dsl.Lisp.Syntax: characterLiteralValue :: TypedTerm CharacterLiteral -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: characterLiteralWithValue :: TypedTerm CharacterLiteral -> TypedTerm String -> TypedTerm CharacterLiteral
- Hydra.Dsl.Lisp.Syntax: comment :: TypedTerm CommentStyle -> TypedTerm String -> TypedTerm Comment
- Hydra.Dsl.Lisp.Syntax: commentComment :: TypedName Comment
- Hydra.Dsl.Lisp.Syntax: commentStyle :: TypedTerm Comment -> TypedTerm CommentStyle
- Hydra.Dsl.Lisp.Syntax: commentStyleBlock :: TypedTerm CommentStyle
- Hydra.Dsl.Lisp.Syntax: commentStyleCommentStyle :: TypedName CommentStyle
- Hydra.Dsl.Lisp.Syntax: commentStyleDatum :: TypedTerm CommentStyle
- Hydra.Dsl.Lisp.Syntax: commentStyleLine :: TypedTerm CommentStyle
- Hydra.Dsl.Lisp.Syntax: commentText :: TypedTerm Comment -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: commentWithStyle :: TypedTerm Comment -> TypedTerm CommentStyle -> TypedTerm Comment
- Hydra.Dsl.Lisp.Syntax: commentWithText :: TypedTerm Comment -> TypedTerm String -> TypedTerm Comment
- Hydra.Dsl.Lisp.Syntax: condClause :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm CondClause
- Hydra.Dsl.Lisp.Syntax: condClauseBody :: TypedTerm CondClause -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: condClauseCondClause :: TypedName CondClause
- Hydra.Dsl.Lisp.Syntax: condClauseCondition :: TypedTerm CondClause -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: condClauseWithBody :: TypedTerm CondClause -> TypedTerm Expression -> TypedTerm CondClause
- Hydra.Dsl.Lisp.Syntax: condClauseWithCondition :: TypedTerm CondClause -> TypedTerm Expression -> TypedTerm CondClause
- Hydra.Dsl.Lisp.Syntax: condExpression :: TypedTerm [CondClause] -> TypedTerm (Maybe Expression) -> TypedTerm CondExpression
- Hydra.Dsl.Lisp.Syntax: condExpressionClauses :: TypedTerm CondExpression -> TypedTerm [CondClause]
- Hydra.Dsl.Lisp.Syntax: condExpressionCondExpression :: TypedName CondExpression
- Hydra.Dsl.Lisp.Syntax: condExpressionDefault :: TypedTerm CondExpression -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Lisp.Syntax: condExpressionWithClauses :: TypedTerm CondExpression -> TypedTerm [CondClause] -> TypedTerm CondExpression
- Hydra.Dsl.Lisp.Syntax: condExpressionWithDefault :: TypedTerm CondExpression -> TypedTerm (Maybe Expression) -> TypedTerm CondExpression
- Hydra.Dsl.Lisp.Syntax: consExpression :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm ConsExpression
- Hydra.Dsl.Lisp.Syntax: consExpressionConsExpression :: TypedName ConsExpression
- Hydra.Dsl.Lisp.Syntax: consExpressionHead :: TypedTerm ConsExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: consExpressionTail :: TypedTerm ConsExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: consExpressionWithHead :: TypedTerm ConsExpression -> TypedTerm Expression -> TypedTerm ConsExpression
- Hydra.Dsl.Lisp.Syntax: consExpressionWithTail :: TypedTerm ConsExpression -> TypedTerm Expression -> TypedTerm ConsExpression
- Hydra.Dsl.Lisp.Syntax: constantDefinition :: TypedTerm Symbol -> TypedTerm Expression -> TypedTerm (Maybe Docstring) -> TypedTerm ConstantDefinition
- Hydra.Dsl.Lisp.Syntax: constantDefinitionConstantDefinition :: TypedName ConstantDefinition
- Hydra.Dsl.Lisp.Syntax: constantDefinitionDoc :: TypedTerm ConstantDefinition -> TypedTerm (Maybe Docstring)
- Hydra.Dsl.Lisp.Syntax: constantDefinitionName :: TypedTerm ConstantDefinition -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: constantDefinitionValue :: TypedTerm ConstantDefinition -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: constantDefinitionWithDoc :: TypedTerm ConstantDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm ConstantDefinition
- Hydra.Dsl.Lisp.Syntax: constantDefinitionWithName :: TypedTerm ConstantDefinition -> TypedTerm Symbol -> TypedTerm ConstantDefinition
- Hydra.Dsl.Lisp.Syntax: constantDefinitionWithValue :: TypedTerm ConstantDefinition -> TypedTerm Expression -> TypedTerm ConstantDefinition
- Hydra.Dsl.Lisp.Syntax: constructorPattern :: TypedTerm Symbol -> TypedTerm [Pattern] -> TypedTerm ConstructorPattern
- Hydra.Dsl.Lisp.Syntax: constructorPatternArguments :: TypedTerm ConstructorPattern -> TypedTerm [Pattern]
- Hydra.Dsl.Lisp.Syntax: constructorPatternConstructor :: TypedTerm ConstructorPattern -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: constructorPatternConstructorPattern :: TypedName ConstructorPattern
- Hydra.Dsl.Lisp.Syntax: constructorPatternWithArguments :: TypedTerm ConstructorPattern -> TypedTerm [Pattern] -> TypedTerm ConstructorPattern
- Hydra.Dsl.Lisp.Syntax: constructorPatternWithConstructor :: TypedTerm ConstructorPattern -> TypedTerm Symbol -> TypedTerm ConstructorPattern
- Hydra.Dsl.Lisp.Syntax: decimalLiteral :: TypedTerm String -> TypedTerm DecimalLiteral
- Hydra.Dsl.Lisp.Syntax: decimalLiteralDecimalLiteral :: TypedName DecimalLiteral
- Hydra.Dsl.Lisp.Syntax: decimalLiteralDigits :: TypedTerm DecimalLiteral -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: decimalLiteralWithDigits :: TypedTerm DecimalLiteral -> TypedTerm String -> TypedTerm DecimalLiteral
- Hydra.Dsl.Lisp.Syntax: destructuringBinding :: TypedTerm DestructuringPattern -> TypedTerm Expression -> TypedTerm DestructuringBinding
- Hydra.Dsl.Lisp.Syntax: destructuringBindingDestructuringBinding :: TypedName DestructuringBinding
- Hydra.Dsl.Lisp.Syntax: destructuringBindingPattern :: TypedTerm DestructuringBinding -> TypedTerm DestructuringPattern
- Hydra.Dsl.Lisp.Syntax: destructuringBindingValue :: TypedTerm DestructuringBinding -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: destructuringBindingWithPattern :: TypedTerm DestructuringBinding -> TypedTerm DestructuringPattern -> TypedTerm DestructuringBinding
- Hydra.Dsl.Lisp.Syntax: destructuringBindingWithValue :: TypedTerm DestructuringBinding -> TypedTerm Expression -> TypedTerm DestructuringBinding
- Hydra.Dsl.Lisp.Syntax: destructuringPatternAssociative :: TypedTerm [Symbol] -> TypedTerm DestructuringPattern
- Hydra.Dsl.Lisp.Syntax: destructuringPatternDestructuringPattern :: TypedName DestructuringPattern
- Hydra.Dsl.Lisp.Syntax: destructuringPatternRest :: TypedTerm [Symbol] -> TypedTerm DestructuringPattern
- Hydra.Dsl.Lisp.Syntax: destructuringPatternSequential :: TypedTerm [Symbol] -> TypedTerm DestructuringPattern
- Hydra.Dsl.Lisp.Syntax: dialectClojure :: TypedTerm Dialect
- Hydra.Dsl.Lisp.Syntax: dialectCommonLisp :: TypedTerm Dialect
- Hydra.Dsl.Lisp.Syntax: dialectDialect :: TypedName Dialect
- Hydra.Dsl.Lisp.Syntax: dialectEmacsLisp :: TypedTerm Dialect
- Hydra.Dsl.Lisp.Syntax: dialectScheme :: TypedTerm Dialect
- Hydra.Dsl.Lisp.Syntax: doExpression :: TypedTerm [Expression] -> TypedTerm DoExpression
- Hydra.Dsl.Lisp.Syntax: doExpressionDoExpression :: TypedName DoExpression
- Hydra.Dsl.Lisp.Syntax: doExpressionExpressions :: TypedTerm DoExpression -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: doExpressionWithExpressions :: TypedTerm DoExpression -> TypedTerm [Expression] -> TypedTerm DoExpression
- Hydra.Dsl.Lisp.Syntax: docstring :: TypedTerm String -> TypedTerm Docstring
- Hydra.Dsl.Lisp.Syntax: docstringDocstring :: TypedName Docstring
- Hydra.Dsl.Lisp.Syntax: dottedPair :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm DottedPair
- Hydra.Dsl.Lisp.Syntax: dottedPairCar :: TypedTerm DottedPair -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: dottedPairCdr :: TypedTerm DottedPair -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: dottedPairDottedPair :: TypedName DottedPair
- Hydra.Dsl.Lisp.Syntax: dottedPairWithCar :: TypedTerm DottedPair -> TypedTerm Expression -> TypedTerm DottedPair
- Hydra.Dsl.Lisp.Syntax: dottedPairWithCdr :: TypedTerm DottedPair -> TypedTerm Expression -> TypedTerm DottedPair
- Hydra.Dsl.Lisp.Syntax: exportDeclaration :: TypedTerm [Symbol] -> TypedTerm ExportDeclaration
- Hydra.Dsl.Lisp.Syntax: exportDeclarationExportDeclaration :: TypedName ExportDeclaration
- Hydra.Dsl.Lisp.Syntax: exportDeclarationSymbols :: TypedTerm ExportDeclaration -> TypedTerm [Symbol]
- Hydra.Dsl.Lisp.Syntax: exportDeclarationWithSymbols :: TypedTerm ExportDeclaration -> TypedTerm [Symbol] -> TypedTerm ExportDeclaration
- Hydra.Dsl.Lisp.Syntax: expressionAnd :: TypedTerm AndExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionApplication :: TypedTerm Application -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionBegin :: TypedTerm BeginExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionCase :: TypedTerm CaseExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionCond :: TypedTerm CondExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionCons :: TypedTerm ConsExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionDo :: TypedTerm DoExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionDottedPair :: TypedTerm DottedPair -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionExpression :: TypedName Expression
- Hydra.Dsl.Lisp.Syntax: expressionFieldAccess :: TypedTerm FieldAccess -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionIf :: TypedTerm IfExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionLambda :: TypedTerm Lambda -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionLet :: TypedTerm LetExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionList :: TypedTerm ListLiteral -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionLiteral :: TypedTerm Literal -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionMap :: TypedTerm MapLiteral -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionNot :: TypedTerm NotExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionOr :: TypedTerm OrExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionQuasiquote :: TypedTerm QuasiquoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionQuote :: TypedTerm QuoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionSExpression :: TypedTerm SExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionSet :: TypedTerm SetLiteral -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionSplicingUnquote :: TypedTerm SplicingUnquoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionTypeAnnotation :: TypedTerm TypeAnnotation -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionUnquote :: TypedTerm UnquoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionVariable :: TypedTerm VariableReference -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: expressionVector :: TypedTerm VectorLiteral -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: fieldAccess :: TypedTerm Symbol -> TypedTerm Symbol -> TypedTerm Expression -> TypedTerm FieldAccess
- Hydra.Dsl.Lisp.Syntax: fieldAccessField :: TypedTerm FieldAccess -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: fieldAccessFieldAccess :: TypedName FieldAccess
- Hydra.Dsl.Lisp.Syntax: fieldAccessRecordType :: TypedTerm FieldAccess -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: fieldAccessTarget :: TypedTerm FieldAccess -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: fieldAccessWithField :: TypedTerm FieldAccess -> TypedTerm Symbol -> TypedTerm FieldAccess
- Hydra.Dsl.Lisp.Syntax: fieldAccessWithRecordType :: TypedTerm FieldAccess -> TypedTerm Symbol -> TypedTerm FieldAccess
- Hydra.Dsl.Lisp.Syntax: fieldAccessWithTarget :: TypedTerm FieldAccess -> TypedTerm Expression -> TypedTerm FieldAccess
- Hydra.Dsl.Lisp.Syntax: fieldDefinition :: TypedTerm Symbol -> TypedTerm (Maybe Expression) -> TypedTerm FieldDefinition
- Hydra.Dsl.Lisp.Syntax: fieldDefinitionDefaultValue :: TypedTerm FieldDefinition -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Lisp.Syntax: fieldDefinitionFieldDefinition :: TypedName FieldDefinition
- Hydra.Dsl.Lisp.Syntax: fieldDefinitionName :: TypedTerm FieldDefinition -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: fieldDefinitionWithDefaultValue :: TypedTerm FieldDefinition -> TypedTerm (Maybe Expression) -> TypedTerm FieldDefinition
- Hydra.Dsl.Lisp.Syntax: fieldDefinitionWithName :: TypedTerm FieldDefinition -> TypedTerm Symbol -> TypedTerm FieldDefinition
- Hydra.Dsl.Lisp.Syntax: floatLiteral :: TypedTerm Double -> TypedTerm (Maybe String) -> TypedTerm FloatLiteral
- Hydra.Dsl.Lisp.Syntax: floatLiteralFloatLiteral :: TypedName FloatLiteral
- Hydra.Dsl.Lisp.Syntax: floatLiteralPrecision :: TypedTerm FloatLiteral -> TypedTerm (Maybe String)
- Hydra.Dsl.Lisp.Syntax: floatLiteralValue :: TypedTerm FloatLiteral -> TypedTerm Double
- Hydra.Dsl.Lisp.Syntax: floatLiteralWithPrecision :: TypedTerm FloatLiteral -> TypedTerm (Maybe String) -> TypedTerm FloatLiteral
- Hydra.Dsl.Lisp.Syntax: floatLiteralWithValue :: TypedTerm FloatLiteral -> TypedTerm Double -> TypedTerm FloatLiteral
- Hydra.Dsl.Lisp.Syntax: functionDefinition :: TypedTerm Symbol -> TypedTerm [Symbol] -> TypedTerm (Maybe Symbol) -> TypedTerm (Maybe Docstring) -> TypedTerm [TypeHint] -> TypedTerm [Expression] -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionBody :: TypedTerm FunctionDefinition -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: functionDefinitionDoc :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Docstring)
- Hydra.Dsl.Lisp.Syntax: functionDefinitionFunctionDefinition :: TypedName FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionName :: TypedTerm FunctionDefinition -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: functionDefinitionParams :: TypedTerm FunctionDefinition -> TypedTerm [Symbol]
- Hydra.Dsl.Lisp.Syntax: functionDefinitionRestParam :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Symbol)
- Hydra.Dsl.Lisp.Syntax: functionDefinitionTypeHints :: TypedTerm FunctionDefinition -> TypedTerm [TypeHint]
- Hydra.Dsl.Lisp.Syntax: functionDefinitionWithBody :: TypedTerm FunctionDefinition -> TypedTerm [Expression] -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionWithDoc :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionWithName :: TypedTerm FunctionDefinition -> TypedTerm Symbol -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionWithParams :: TypedTerm FunctionDefinition -> TypedTerm [Symbol] -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionWithRestParam :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Symbol) -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: functionDefinitionWithTypeHints :: TypedTerm FunctionDefinition -> TypedTerm [TypeHint] -> TypedTerm FunctionDefinition
- Hydra.Dsl.Lisp.Syntax: ifExpression :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm (Maybe Expression) -> TypedTerm IfExpression
- Hydra.Dsl.Lisp.Syntax: ifExpressionCondition :: TypedTerm IfExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: ifExpressionElse :: TypedTerm IfExpression -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Lisp.Syntax: ifExpressionIfExpression :: TypedName IfExpression
- Hydra.Dsl.Lisp.Syntax: ifExpressionThen :: TypedTerm IfExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: ifExpressionWithCondition :: TypedTerm IfExpression -> TypedTerm Expression -> TypedTerm IfExpression
- Hydra.Dsl.Lisp.Syntax: ifExpressionWithElse :: TypedTerm IfExpression -> TypedTerm (Maybe Expression) -> TypedTerm IfExpression
- Hydra.Dsl.Lisp.Syntax: ifExpressionWithThen :: TypedTerm IfExpression -> TypedTerm Expression -> TypedTerm IfExpression
- Hydra.Dsl.Lisp.Syntax: importDeclaration :: TypedTerm NamespaceName -> TypedTerm ImportSpec -> TypedTerm ImportDeclaration
- Hydra.Dsl.Lisp.Syntax: importDeclarationImportDeclaration :: TypedName ImportDeclaration
- Hydra.Dsl.Lisp.Syntax: importDeclarationModule :: TypedTerm ImportDeclaration -> TypedTerm NamespaceName
- Hydra.Dsl.Lisp.Syntax: importDeclarationSpec :: TypedTerm ImportDeclaration -> TypedTerm ImportSpec
- Hydra.Dsl.Lisp.Syntax: importDeclarationWithModule :: TypedTerm ImportDeclaration -> TypedTerm NamespaceName -> TypedTerm ImportDeclaration
- Hydra.Dsl.Lisp.Syntax: importDeclarationWithSpec :: TypedTerm ImportDeclaration -> TypedTerm ImportSpec -> TypedTerm ImportDeclaration
- Hydra.Dsl.Lisp.Syntax: importSpecAlias :: TypedTerm Symbol -> TypedTerm ImportSpec
- Hydra.Dsl.Lisp.Syntax: importSpecAll :: TypedTerm ImportSpec
- Hydra.Dsl.Lisp.Syntax: importSpecImportSpec :: TypedName ImportSpec
- Hydra.Dsl.Lisp.Syntax: importSpecOnly :: TypedTerm [Symbol] -> TypedTerm ImportSpec
- Hydra.Dsl.Lisp.Syntax: importSpecRename :: TypedTerm [[Symbol]] -> TypedTerm ImportSpec
- Hydra.Dsl.Lisp.Syntax: integerLiteral :: TypedTerm Integer -> TypedTerm Bool -> TypedTerm IntegerLiteral
- Hydra.Dsl.Lisp.Syntax: integerLiteralBigint :: TypedTerm IntegerLiteral -> TypedTerm Bool
- Hydra.Dsl.Lisp.Syntax: integerLiteralIntegerLiteral :: TypedName IntegerLiteral
- Hydra.Dsl.Lisp.Syntax: integerLiteralValue :: TypedTerm IntegerLiteral -> TypedTerm Integer
- Hydra.Dsl.Lisp.Syntax: integerLiteralWithBigint :: TypedTerm IntegerLiteral -> TypedTerm Bool -> TypedTerm IntegerLiteral
- Hydra.Dsl.Lisp.Syntax: integerLiteralWithValue :: TypedTerm IntegerLiteral -> TypedTerm Integer -> TypedTerm IntegerLiteral
- Hydra.Dsl.Lisp.Syntax: keyword :: TypedTerm String -> TypedTerm (Maybe String) -> TypedTerm Keyword
- Hydra.Dsl.Lisp.Syntax: keywordKeyword :: TypedName Keyword
- Hydra.Dsl.Lisp.Syntax: keywordName :: TypedTerm Keyword -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: keywordNamespace :: TypedTerm Keyword -> TypedTerm (Maybe String)
- Hydra.Dsl.Lisp.Syntax: keywordWithName :: TypedTerm Keyword -> TypedTerm String -> TypedTerm Keyword
- Hydra.Dsl.Lisp.Syntax: keywordWithNamespace :: TypedTerm Keyword -> TypedTerm (Maybe String) -> TypedTerm Keyword
- Hydra.Dsl.Lisp.Syntax: lambda :: TypedTerm (Maybe Symbol) -> TypedTerm [Symbol] -> TypedTerm (Maybe Symbol) -> TypedTerm [Expression] -> TypedTerm Lambda
- Hydra.Dsl.Lisp.Syntax: lambdaBody :: TypedTerm Lambda -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: lambdaLambda :: TypedName Lambda
- Hydra.Dsl.Lisp.Syntax: lambdaName :: TypedTerm Lambda -> TypedTerm (Maybe Symbol)
- Hydra.Dsl.Lisp.Syntax: lambdaParams :: TypedTerm Lambda -> TypedTerm [Symbol]
- Hydra.Dsl.Lisp.Syntax: lambdaRestParam :: TypedTerm Lambda -> TypedTerm (Maybe Symbol)
- Hydra.Dsl.Lisp.Syntax: lambdaWithBody :: TypedTerm Lambda -> TypedTerm [Expression] -> TypedTerm Lambda
- Hydra.Dsl.Lisp.Syntax: lambdaWithName :: TypedTerm Lambda -> TypedTerm (Maybe Symbol) -> TypedTerm Lambda
- Hydra.Dsl.Lisp.Syntax: lambdaWithParams :: TypedTerm Lambda -> TypedTerm [Symbol] -> TypedTerm Lambda
- Hydra.Dsl.Lisp.Syntax: lambdaWithRestParam :: TypedTerm Lambda -> TypedTerm (Maybe Symbol) -> TypedTerm Lambda
- Hydra.Dsl.Lisp.Syntax: letBindingDestructuring :: TypedTerm DestructuringBinding -> TypedTerm LetBinding
- Hydra.Dsl.Lisp.Syntax: letBindingLetBinding :: TypedName LetBinding
- Hydra.Dsl.Lisp.Syntax: letBindingSimple :: TypedTerm SimpleBinding -> TypedTerm LetBinding
- Hydra.Dsl.Lisp.Syntax: letExpression :: TypedTerm LetKind -> TypedTerm [LetBinding] -> TypedTerm [Expression] -> TypedTerm LetExpression
- Hydra.Dsl.Lisp.Syntax: letExpressionBindings :: TypedTerm LetExpression -> TypedTerm [LetBinding]
- Hydra.Dsl.Lisp.Syntax: letExpressionBody :: TypedTerm LetExpression -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: letExpressionKind :: TypedTerm LetExpression -> TypedTerm LetKind
- Hydra.Dsl.Lisp.Syntax: letExpressionLetExpression :: TypedName LetExpression
- Hydra.Dsl.Lisp.Syntax: letExpressionWithBindings :: TypedTerm LetExpression -> TypedTerm [LetBinding] -> TypedTerm LetExpression
- Hydra.Dsl.Lisp.Syntax: letExpressionWithBody :: TypedTerm LetExpression -> TypedTerm [Expression] -> TypedTerm LetExpression
- Hydra.Dsl.Lisp.Syntax: letExpressionWithKind :: TypedTerm LetExpression -> TypedTerm LetKind -> TypedTerm LetExpression
- Hydra.Dsl.Lisp.Syntax: letKindLetKind :: TypedName LetKind
- Hydra.Dsl.Lisp.Syntax: letKindParallel :: TypedTerm LetKind
- Hydra.Dsl.Lisp.Syntax: letKindRecursive :: TypedTerm LetKind
- Hydra.Dsl.Lisp.Syntax: letKindSequential :: TypedTerm LetKind
- Hydra.Dsl.Lisp.Syntax: listLiteral :: TypedTerm [Expression] -> TypedTerm Bool -> TypedTerm ListLiteral
- Hydra.Dsl.Lisp.Syntax: listLiteralElements :: TypedTerm ListLiteral -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: listLiteralListLiteral :: TypedName ListLiteral
- Hydra.Dsl.Lisp.Syntax: listLiteralQuoted :: TypedTerm ListLiteral -> TypedTerm Bool
- Hydra.Dsl.Lisp.Syntax: listLiteralWithElements :: TypedTerm ListLiteral -> TypedTerm [Expression] -> TypedTerm ListLiteral
- Hydra.Dsl.Lisp.Syntax: listLiteralWithQuoted :: TypedTerm ListLiteral -> TypedTerm Bool -> TypedTerm ListLiteral
- Hydra.Dsl.Lisp.Syntax: literalBoolean :: TypedTerm Bool -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalCharacter :: TypedTerm CharacterLiteral -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalDecimal :: TypedTerm DecimalLiteral -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalFloat :: TypedTerm FloatLiteral -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalInteger :: TypedTerm IntegerLiteral -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalKeyword :: TypedTerm Keyword -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalLiteral :: TypedName Literal
- Hydra.Dsl.Lisp.Syntax: literalNil :: TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalPattern :: TypedTerm Literal -> TypedTerm LiteralPattern
- Hydra.Dsl.Lisp.Syntax: literalPatternLiteralPattern :: TypedName LiteralPattern
- Hydra.Dsl.Lisp.Syntax: literalPatternValue :: TypedTerm LiteralPattern -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalPatternWithValue :: TypedTerm LiteralPattern -> TypedTerm Literal -> TypedTerm LiteralPattern
- Hydra.Dsl.Lisp.Syntax: literalString :: TypedTerm String -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: literalSymbol :: TypedTerm Symbol -> TypedTerm Literal
- Hydra.Dsl.Lisp.Syntax: macroDefinition :: TypedTerm Symbol -> TypedTerm [Symbol] -> TypedTerm (Maybe Symbol) -> TypedTerm [Expression] -> TypedTerm MacroDefinition
- Hydra.Dsl.Lisp.Syntax: macroDefinitionBody :: TypedTerm MacroDefinition -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: macroDefinitionMacroDefinition :: TypedName MacroDefinition
- Hydra.Dsl.Lisp.Syntax: macroDefinitionName :: TypedTerm MacroDefinition -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: macroDefinitionParams :: TypedTerm MacroDefinition -> TypedTerm [Symbol]
- Hydra.Dsl.Lisp.Syntax: macroDefinitionRestParam :: TypedTerm MacroDefinition -> TypedTerm (Maybe Symbol)
- Hydra.Dsl.Lisp.Syntax: macroDefinitionWithBody :: TypedTerm MacroDefinition -> TypedTerm [Expression] -> TypedTerm MacroDefinition
- Hydra.Dsl.Lisp.Syntax: macroDefinitionWithName :: TypedTerm MacroDefinition -> TypedTerm Symbol -> TypedTerm MacroDefinition
- Hydra.Dsl.Lisp.Syntax: macroDefinitionWithParams :: TypedTerm MacroDefinition -> TypedTerm [Symbol] -> TypedTerm MacroDefinition
- Hydra.Dsl.Lisp.Syntax: macroDefinitionWithRestParam :: TypedTerm MacroDefinition -> TypedTerm (Maybe Symbol) -> TypedTerm MacroDefinition
- Hydra.Dsl.Lisp.Syntax: mapEntry :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm MapEntry
- Hydra.Dsl.Lisp.Syntax: mapEntryKey :: TypedTerm MapEntry -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: mapEntryMapEntry :: TypedName MapEntry
- Hydra.Dsl.Lisp.Syntax: mapEntryValue :: TypedTerm MapEntry -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: mapEntryWithKey :: TypedTerm MapEntry -> TypedTerm Expression -> TypedTerm MapEntry
- Hydra.Dsl.Lisp.Syntax: mapEntryWithValue :: TypedTerm MapEntry -> TypedTerm Expression -> TypedTerm MapEntry
- Hydra.Dsl.Lisp.Syntax: mapLiteral :: TypedTerm [MapEntry] -> TypedTerm MapLiteral
- Hydra.Dsl.Lisp.Syntax: mapLiteralEntries :: TypedTerm MapLiteral -> TypedTerm [MapEntry]
- Hydra.Dsl.Lisp.Syntax: mapLiteralMapLiteral :: TypedName MapLiteral
- Hydra.Dsl.Lisp.Syntax: mapLiteralWithEntries :: TypedTerm MapLiteral -> TypedTerm [MapEntry] -> TypedTerm MapLiteral
- Hydra.Dsl.Lisp.Syntax: moduleDeclaration :: TypedTerm NamespaceName -> TypedTerm (Maybe Docstring) -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Lisp.Syntax: moduleDeclarationDoc :: TypedTerm ModuleDeclaration -> TypedTerm (Maybe Docstring)
- Hydra.Dsl.Lisp.Syntax: moduleDeclarationModuleDeclaration :: TypedName ModuleDeclaration
- Hydra.Dsl.Lisp.Syntax: moduleDeclarationName :: TypedTerm ModuleDeclaration -> TypedTerm NamespaceName
- Hydra.Dsl.Lisp.Syntax: moduleDeclarationWithDoc :: TypedTerm ModuleDeclaration -> TypedTerm (Maybe Docstring) -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Lisp.Syntax: moduleDeclarationWithName :: TypedTerm ModuleDeclaration -> TypedTerm NamespaceName -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Lisp.Syntax: namespaceName :: TypedTerm String -> TypedTerm NamespaceName
- Hydra.Dsl.Lisp.Syntax: namespaceNameNamespaceName :: TypedName NamespaceName
- Hydra.Dsl.Lisp.Syntax: nilStyleEmptyList :: TypedTerm NilStyle
- Hydra.Dsl.Lisp.Syntax: nilStyleNil :: TypedTerm NilStyle
- Hydra.Dsl.Lisp.Syntax: nilStyleNilStyle :: TypedName NilStyle
- Hydra.Dsl.Lisp.Syntax: notExpression :: TypedTerm Expression -> TypedTerm NotExpression
- Hydra.Dsl.Lisp.Syntax: notExpressionExpression :: TypedTerm NotExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: notExpressionNotExpression :: TypedName NotExpression
- Hydra.Dsl.Lisp.Syntax: notExpressionWithExpression :: TypedTerm NotExpression -> TypedTerm Expression -> TypedTerm NotExpression
- Hydra.Dsl.Lisp.Syntax: orExpression :: TypedTerm [Expression] -> TypedTerm OrExpression
- Hydra.Dsl.Lisp.Syntax: orExpressionExpressions :: TypedTerm OrExpression -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: orExpressionOrExpression :: TypedName OrExpression
- Hydra.Dsl.Lisp.Syntax: orExpressionWithExpressions :: TypedTerm OrExpression -> TypedTerm [Expression] -> TypedTerm OrExpression
- Hydra.Dsl.Lisp.Syntax: patternConstructor :: TypedTerm ConstructorPattern -> TypedTerm Pattern
- Hydra.Dsl.Lisp.Syntax: patternLiteral :: TypedTerm LiteralPattern -> TypedTerm Pattern
- Hydra.Dsl.Lisp.Syntax: patternPattern :: TypedName Pattern
- Hydra.Dsl.Lisp.Syntax: patternVariable :: TypedTerm Symbol -> TypedTerm Pattern
- Hydra.Dsl.Lisp.Syntax: patternWildcard :: TypedTerm WildcardPattern -> TypedTerm Pattern
- Hydra.Dsl.Lisp.Syntax: program :: TypedTerm Dialect -> TypedTerm (Maybe ModuleDeclaration) -> TypedTerm [ImportDeclaration] -> TypedTerm [ExportDeclaration] -> TypedTerm [TopLevelFormWithComments] -> TypedTerm Program
- Hydra.Dsl.Lisp.Syntax: programDialect :: TypedTerm Program -> TypedTerm Dialect
- Hydra.Dsl.Lisp.Syntax: programExports :: TypedTerm Program -> TypedTerm [ExportDeclaration]
- Hydra.Dsl.Lisp.Syntax: programForms :: TypedTerm Program -> TypedTerm [TopLevelFormWithComments]
- Hydra.Dsl.Lisp.Syntax: programImports :: TypedTerm Program -> TypedTerm [ImportDeclaration]
- Hydra.Dsl.Lisp.Syntax: programModule :: TypedTerm Program -> TypedTerm (Maybe ModuleDeclaration)
- Hydra.Dsl.Lisp.Syntax: programProgram :: TypedName Program
- Hydra.Dsl.Lisp.Syntax: programWithDialect :: TypedTerm Program -> TypedTerm Dialect -> TypedTerm Program
- Hydra.Dsl.Lisp.Syntax: programWithExports :: TypedTerm Program -> TypedTerm [ExportDeclaration] -> TypedTerm Program
- Hydra.Dsl.Lisp.Syntax: programWithForms :: TypedTerm Program -> TypedTerm [TopLevelFormWithComments] -> TypedTerm Program
- Hydra.Dsl.Lisp.Syntax: programWithImports :: TypedTerm Program -> TypedTerm [ImportDeclaration] -> TypedTerm Program
- Hydra.Dsl.Lisp.Syntax: programWithModule :: TypedTerm Program -> TypedTerm (Maybe ModuleDeclaration) -> TypedTerm Program
- Hydra.Dsl.Lisp.Syntax: qualifiedSymbol :: TypedTerm String -> TypedTerm String -> TypedTerm QualifiedSymbol
- Hydra.Dsl.Lisp.Syntax: qualifiedSymbolName :: TypedTerm QualifiedSymbol -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: qualifiedSymbolNamespace :: TypedTerm QualifiedSymbol -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: qualifiedSymbolQualifiedSymbol :: TypedName QualifiedSymbol
- Hydra.Dsl.Lisp.Syntax: qualifiedSymbolWithName :: TypedTerm QualifiedSymbol -> TypedTerm String -> TypedTerm QualifiedSymbol
- Hydra.Dsl.Lisp.Syntax: qualifiedSymbolWithNamespace :: TypedTerm QualifiedSymbol -> TypedTerm String -> TypedTerm QualifiedSymbol
- Hydra.Dsl.Lisp.Syntax: quasiquoteExpression :: TypedTerm Expression -> TypedTerm QuasiquoteExpression
- Hydra.Dsl.Lisp.Syntax: quasiquoteExpressionBody :: TypedTerm QuasiquoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: quasiquoteExpressionQuasiquoteExpression :: TypedName QuasiquoteExpression
- Hydra.Dsl.Lisp.Syntax: quasiquoteExpressionWithBody :: TypedTerm QuasiquoteExpression -> TypedTerm Expression -> TypedTerm QuasiquoteExpression
- Hydra.Dsl.Lisp.Syntax: quoteExpression :: TypedTerm Expression -> TypedTerm QuoteExpression
- Hydra.Dsl.Lisp.Syntax: quoteExpressionBody :: TypedTerm QuoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: quoteExpressionQuoteExpression :: TypedName QuoteExpression
- Hydra.Dsl.Lisp.Syntax: quoteExpressionWithBody :: TypedTerm QuoteExpression -> TypedTerm Expression -> TypedTerm QuoteExpression
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinition :: TypedTerm Symbol -> TypedTerm [FieldDefinition] -> TypedTerm (Maybe Docstring) -> TypedTerm RecordTypeDefinition
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionDoc :: TypedTerm RecordTypeDefinition -> TypedTerm (Maybe Docstring)
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionFields :: TypedTerm RecordTypeDefinition -> TypedTerm [FieldDefinition]
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionName :: TypedTerm RecordTypeDefinition -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionRecordTypeDefinition :: TypedName RecordTypeDefinition
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionWithDoc :: TypedTerm RecordTypeDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm RecordTypeDefinition
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionWithFields :: TypedTerm RecordTypeDefinition -> TypedTerm [FieldDefinition] -> TypedTerm RecordTypeDefinition
- Hydra.Dsl.Lisp.Syntax: recordTypeDefinitionWithName :: TypedTerm RecordTypeDefinition -> TypedTerm Symbol -> TypedTerm RecordTypeDefinition
- Hydra.Dsl.Lisp.Syntax: sExpressionAtom :: TypedTerm String -> TypedTerm SExpression
- Hydra.Dsl.Lisp.Syntax: sExpressionList :: TypedTerm [SExpression] -> TypedTerm SExpression
- Hydra.Dsl.Lisp.Syntax: sExpressionSExpression :: TypedName SExpression
- Hydra.Dsl.Lisp.Syntax: setLiteral :: TypedTerm [Expression] -> TypedTerm SetLiteral
- Hydra.Dsl.Lisp.Syntax: setLiteralElements :: TypedTerm SetLiteral -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: setLiteralSetLiteral :: TypedName SetLiteral
- Hydra.Dsl.Lisp.Syntax: setLiteralWithElements :: TypedTerm SetLiteral -> TypedTerm [Expression] -> TypedTerm SetLiteral
- Hydra.Dsl.Lisp.Syntax: simpleBinding :: TypedTerm Symbol -> TypedTerm Expression -> TypedTerm SimpleBinding
- Hydra.Dsl.Lisp.Syntax: simpleBindingName :: TypedTerm SimpleBinding -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: simpleBindingSimpleBinding :: TypedName SimpleBinding
- Hydra.Dsl.Lisp.Syntax: simpleBindingValue :: TypedTerm SimpleBinding -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: simpleBindingWithName :: TypedTerm SimpleBinding -> TypedTerm Symbol -> TypedTerm SimpleBinding
- Hydra.Dsl.Lisp.Syntax: simpleBindingWithValue :: TypedTerm SimpleBinding -> TypedTerm Expression -> TypedTerm SimpleBinding
- Hydra.Dsl.Lisp.Syntax: splicingUnquoteExpression :: TypedTerm Expression -> TypedTerm SplicingUnquoteExpression
- Hydra.Dsl.Lisp.Syntax: splicingUnquoteExpressionBody :: TypedTerm SplicingUnquoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: splicingUnquoteExpressionSplicingUnquoteExpression :: TypedName SplicingUnquoteExpression
- Hydra.Dsl.Lisp.Syntax: splicingUnquoteExpressionWithBody :: TypedTerm SplicingUnquoteExpression -> TypedTerm Expression -> TypedTerm SplicingUnquoteExpression
- Hydra.Dsl.Lisp.Syntax: symbol :: TypedTerm String -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: symbolSymbol :: TypedName Symbol
- Hydra.Dsl.Lisp.Syntax: topLevelFormConstant :: TypedTerm ConstantDefinition -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormExpression :: TypedTerm Expression -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormFunction :: TypedTerm FunctionDefinition -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormMacro :: TypedTerm MacroDefinition -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormRecordType :: TypedTerm RecordTypeDefinition -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormTopLevelForm :: TypedName TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormVariable :: TypedTerm VariableDefinition -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithComments :: TypedTerm (Maybe Docstring) -> TypedTerm (Maybe Comment) -> TypedTerm TopLevelForm -> TypedTerm TopLevelFormWithComments
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsComment :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Comment)
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsDoc :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Docstring)
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsForm :: TypedTerm TopLevelFormWithComments -> TypedTerm TopLevelForm
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsTopLevelFormWithComments :: TypedName TopLevelFormWithComments
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsWithComment :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Comment) -> TypedTerm TopLevelFormWithComments
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsWithDoc :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Docstring) -> TypedTerm TopLevelFormWithComments
- Hydra.Dsl.Lisp.Syntax: topLevelFormWithCommentsWithForm :: TypedTerm TopLevelFormWithComments -> TypedTerm TopLevelForm -> TypedTerm TopLevelFormWithComments
- Hydra.Dsl.Lisp.Syntax: typeAnnotation :: TypedTerm Expression -> TypedTerm TypeSpecifier -> TypedTerm TypeAnnotation
- Hydra.Dsl.Lisp.Syntax: typeAnnotationExpression :: TypedTerm TypeAnnotation -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: typeAnnotationType :: TypedTerm TypeAnnotation -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeAnnotationTypeAnnotation :: TypedName TypeAnnotation
- Hydra.Dsl.Lisp.Syntax: typeAnnotationWithExpression :: TypedTerm TypeAnnotation -> TypedTerm Expression -> TypedTerm TypeAnnotation
- Hydra.Dsl.Lisp.Syntax: typeAnnotationWithType :: TypedTerm TypeAnnotation -> TypedTerm TypeSpecifier -> TypedTerm TypeAnnotation
- Hydra.Dsl.Lisp.Syntax: typeHint :: TypedTerm Symbol -> TypedTerm TypeSpecifier -> TypedTerm TypeHint
- Hydra.Dsl.Lisp.Syntax: typeHintName :: TypedTerm TypeHint -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: typeHintType :: TypedTerm TypeHint -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeHintTypeHint :: TypedName TypeHint
- Hydra.Dsl.Lisp.Syntax: typeHintWithName :: TypedTerm TypeHint -> TypedTerm Symbol -> TypedTerm TypeHint
- Hydra.Dsl.Lisp.Syntax: typeHintWithType :: TypedTerm TypeHint -> TypedTerm TypeSpecifier -> TypedTerm TypeHint
- Hydra.Dsl.Lisp.Syntax: typeSpecifierEither :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierFunction :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierList :: TypedTerm TypeSpecifier -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierMap :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierMaybe :: TypedTerm TypeSpecifier -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierNamed :: TypedTerm Symbol -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierPair :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierSet :: TypedTerm TypeSpecifier -> TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierTypeSpecifier :: TypedName TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: typeSpecifierUnit :: TypedTerm TypeSpecifier
- Hydra.Dsl.Lisp.Syntax: unDocstring :: TypedTerm Docstring -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: unNamespaceName :: TypedTerm NamespaceName -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: unSymbol :: TypedTerm Symbol -> TypedTerm String
- Hydra.Dsl.Lisp.Syntax: unquoteExpression :: TypedTerm Expression -> TypedTerm UnquoteExpression
- Hydra.Dsl.Lisp.Syntax: unquoteExpressionBody :: TypedTerm UnquoteExpression -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: unquoteExpressionUnquoteExpression :: TypedName UnquoteExpression
- Hydra.Dsl.Lisp.Syntax: unquoteExpressionWithBody :: TypedTerm UnquoteExpression -> TypedTerm Expression -> TypedTerm UnquoteExpression
- Hydra.Dsl.Lisp.Syntax: variableDefinition :: TypedTerm Symbol -> TypedTerm Expression -> TypedTerm (Maybe Docstring) -> TypedTerm VariableDefinition
- Hydra.Dsl.Lisp.Syntax: variableDefinitionDoc :: TypedTerm VariableDefinition -> TypedTerm (Maybe Docstring)
- Hydra.Dsl.Lisp.Syntax: variableDefinitionName :: TypedTerm VariableDefinition -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: variableDefinitionValue :: TypedTerm VariableDefinition -> TypedTerm Expression
- Hydra.Dsl.Lisp.Syntax: variableDefinitionVariableDefinition :: TypedName VariableDefinition
- Hydra.Dsl.Lisp.Syntax: variableDefinitionWithDoc :: TypedTerm VariableDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm VariableDefinition
- Hydra.Dsl.Lisp.Syntax: variableDefinitionWithName :: TypedTerm VariableDefinition -> TypedTerm Symbol -> TypedTerm VariableDefinition
- Hydra.Dsl.Lisp.Syntax: variableDefinitionWithValue :: TypedTerm VariableDefinition -> TypedTerm Expression -> TypedTerm VariableDefinition
- Hydra.Dsl.Lisp.Syntax: variableReference :: TypedTerm Symbol -> TypedTerm Bool -> TypedTerm VariableReference
- Hydra.Dsl.Lisp.Syntax: variableReferenceFunctionNamespace :: TypedTerm VariableReference -> TypedTerm Bool
- Hydra.Dsl.Lisp.Syntax: variableReferenceName :: TypedTerm VariableReference -> TypedTerm Symbol
- Hydra.Dsl.Lisp.Syntax: variableReferenceVariableReference :: TypedName VariableReference
- Hydra.Dsl.Lisp.Syntax: variableReferenceWithFunctionNamespace :: TypedTerm VariableReference -> TypedTerm Bool -> TypedTerm VariableReference
- Hydra.Dsl.Lisp.Syntax: variableReferenceWithName :: TypedTerm VariableReference -> TypedTerm Symbol -> TypedTerm VariableReference
- Hydra.Dsl.Lisp.Syntax: vectorLiteral :: TypedTerm [Expression] -> TypedTerm VectorLiteral
- Hydra.Dsl.Lisp.Syntax: vectorLiteralElements :: TypedTerm VectorLiteral -> TypedTerm [Expression]
- Hydra.Dsl.Lisp.Syntax: vectorLiteralVectorLiteral :: TypedName VectorLiteral
- Hydra.Dsl.Lisp.Syntax: vectorLiteralWithElements :: TypedTerm VectorLiteral -> TypedTerm [Expression] -> TypedTerm VectorLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.AndExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Application
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.BeginExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.BooleanStyle
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.CaseClause
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.CaseExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.CharacterLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Comment
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.CommentStyle
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.CondClause
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.CondExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ConsExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ConstantDefinition
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ConstructorPattern
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.DecimalLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.DestructuringBinding
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.DestructuringPattern
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Dialect
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.DoExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Docstring
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.DottedPair
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ExportDeclaration
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Expression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.FieldAccess
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.FieldDefinition
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.FloatLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.FunctionDefinition
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.IfExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ImportDeclaration
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ImportSpec
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.IntegerLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Keyword
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Lambda
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.LetBinding
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.LetExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.LetKind
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ListLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Literal
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.LiteralPattern
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.MacroDefinition
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.MapEntry
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.MapLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.ModuleDeclaration
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.NamespaceName
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.NilStyle
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.NotExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.OrExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Pattern
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Program
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.QualifiedSymbol
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.QuasiquoteExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.QuoteExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.RecordTypeDefinition
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.SExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.SetLiteral
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.SimpleBinding
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.SplicingUnquoteExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.Symbol
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.TopLevelForm
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.TopLevelFormWithComments
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.TypeAnnotation
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.TypeHint
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.TypeSpecifier
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.UnquoteExpression
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.VariableDefinition
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.VariableReference
- Hydra.Lisp.Syntax: instance GHC.Read.Read Hydra.Lisp.Syntax.VectorLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.AndExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Application
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.BeginExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.BooleanStyle
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.CaseClause
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.CaseExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.CharacterLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Comment
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.CommentStyle
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.CondClause
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.CondExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ConsExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ConstantDefinition
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ConstructorPattern
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.DecimalLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.DestructuringBinding
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.DestructuringPattern
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Dialect
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.DoExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Docstring
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.DottedPair
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ExportDeclaration
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Expression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.FieldAccess
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.FieldDefinition
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.FloatLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.FunctionDefinition
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.IfExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ImportDeclaration
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ImportSpec
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.IntegerLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Keyword
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Lambda
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.LetBinding
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.LetExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.LetKind
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ListLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Literal
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.LiteralPattern
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.MacroDefinition
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.MapEntry
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.MapLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.ModuleDeclaration
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.NamespaceName
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.NilStyle
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.NotExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.OrExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Pattern
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Program
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.QualifiedSymbol
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.QuasiquoteExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.QuoteExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.RecordTypeDefinition
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.SExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.SetLiteral
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.SimpleBinding
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.SplicingUnquoteExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.Symbol
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.TopLevelForm
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.TopLevelFormWithComments
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.TypeAnnotation
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.TypeHint
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.TypeSpecifier
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.UnquoteExpression
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.VariableDefinition
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.VariableReference
- Hydra.Lisp.Syntax: instance GHC.Show.Show Hydra.Lisp.Syntax.VectorLiteral
+ Hydra.Lisp.Dsl.Syntax: andExpression :: TypedTerm [Expression] -> TypedTerm AndExpression
+ Hydra.Lisp.Dsl.Syntax: andExpressionAndExpression :: TypedName AndExpression
+ Hydra.Lisp.Dsl.Syntax: andExpressionExpressions :: TypedTerm AndExpression -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: andExpressionWithExpressions :: TypedTerm AndExpression -> TypedTerm [Expression] -> TypedTerm AndExpression
+ Hydra.Lisp.Dsl.Syntax: application :: TypedTerm Expression -> TypedTerm [Expression] -> TypedTerm Application
+ Hydra.Lisp.Dsl.Syntax: applicationApplication :: TypedName Application
+ Hydra.Lisp.Dsl.Syntax: applicationArguments :: TypedTerm Application -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: applicationFunction :: TypedTerm Application -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: applicationWithArguments :: TypedTerm Application -> TypedTerm [Expression] -> TypedTerm Application
+ Hydra.Lisp.Dsl.Syntax: applicationWithFunction :: TypedTerm Application -> TypedTerm Expression -> TypedTerm Application
+ Hydra.Lisp.Dsl.Syntax: beginExpression :: TypedTerm [Expression] -> TypedTerm BeginExpression
+ Hydra.Lisp.Dsl.Syntax: beginExpressionBeginExpression :: TypedName BeginExpression
+ Hydra.Lisp.Dsl.Syntax: beginExpressionExpressions :: TypedTerm BeginExpression -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: beginExpressionWithExpressions :: TypedTerm BeginExpression -> TypedTerm [Expression] -> TypedTerm BeginExpression
+ Hydra.Lisp.Dsl.Syntax: booleanStyleBooleanStyle :: TypedName BooleanStyle
+ Hydra.Lisp.Dsl.Syntax: booleanStyleHashTF :: TypedTerm BooleanStyle
+ Hydra.Lisp.Dsl.Syntax: booleanStyleTNil :: TypedTerm BooleanStyle
+ Hydra.Lisp.Dsl.Syntax: booleanStyleTrueFalse :: TypedTerm BooleanStyle
+ Hydra.Lisp.Dsl.Syntax: caseClause :: TypedTerm [Expression] -> TypedTerm Expression -> TypedTerm CaseClause
+ Hydra.Lisp.Dsl.Syntax: caseClauseBody :: TypedTerm CaseClause -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: caseClauseCaseClause :: TypedName CaseClause
+ Hydra.Lisp.Dsl.Syntax: caseClauseKeys :: TypedTerm CaseClause -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: caseClauseWithBody :: TypedTerm CaseClause -> TypedTerm Expression -> TypedTerm CaseClause
+ Hydra.Lisp.Dsl.Syntax: caseClauseWithKeys :: TypedTerm CaseClause -> TypedTerm [Expression] -> TypedTerm CaseClause
+ Hydra.Lisp.Dsl.Syntax: caseExpression :: TypedTerm Expression -> TypedTerm [CaseClause] -> TypedTerm (Maybe Expression) -> TypedTerm CaseExpression
+ Hydra.Lisp.Dsl.Syntax: caseExpressionCaseExpression :: TypedName CaseExpression
+ Hydra.Lisp.Dsl.Syntax: caseExpressionClauses :: TypedTerm CaseExpression -> TypedTerm [CaseClause]
+ Hydra.Lisp.Dsl.Syntax: caseExpressionDefault :: TypedTerm CaseExpression -> TypedTerm (Maybe Expression)
+ Hydra.Lisp.Dsl.Syntax: caseExpressionScrutinee :: TypedTerm CaseExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: caseExpressionWithClauses :: TypedTerm CaseExpression -> TypedTerm [CaseClause] -> TypedTerm CaseExpression
+ Hydra.Lisp.Dsl.Syntax: caseExpressionWithDefault :: TypedTerm CaseExpression -> TypedTerm (Maybe Expression) -> TypedTerm CaseExpression
+ Hydra.Lisp.Dsl.Syntax: caseExpressionWithScrutinee :: TypedTerm CaseExpression -> TypedTerm Expression -> TypedTerm CaseExpression
+ Hydra.Lisp.Dsl.Syntax: characterLiteral :: TypedTerm String -> TypedTerm CharacterLiteral
+ Hydra.Lisp.Dsl.Syntax: characterLiteralCharacterLiteral :: TypedName CharacterLiteral
+ Hydra.Lisp.Dsl.Syntax: characterLiteralValue :: TypedTerm CharacterLiteral -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: characterLiteralWithValue :: TypedTerm CharacterLiteral -> TypedTerm String -> TypedTerm CharacterLiteral
+ Hydra.Lisp.Dsl.Syntax: comment :: TypedTerm CommentStyle -> TypedTerm String -> TypedTerm Comment
+ Hydra.Lisp.Dsl.Syntax: commentComment :: TypedName Comment
+ Hydra.Lisp.Dsl.Syntax: commentStyle :: TypedTerm Comment -> TypedTerm CommentStyle
+ Hydra.Lisp.Dsl.Syntax: commentStyleBlock :: TypedTerm CommentStyle
+ Hydra.Lisp.Dsl.Syntax: commentStyleCommentStyle :: TypedName CommentStyle
+ Hydra.Lisp.Dsl.Syntax: commentStyleDatum :: TypedTerm CommentStyle
+ Hydra.Lisp.Dsl.Syntax: commentStyleLine :: TypedTerm CommentStyle
+ Hydra.Lisp.Dsl.Syntax: commentText :: TypedTerm Comment -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: commentWithStyle :: TypedTerm Comment -> TypedTerm CommentStyle -> TypedTerm Comment
+ Hydra.Lisp.Dsl.Syntax: commentWithText :: TypedTerm Comment -> TypedTerm String -> TypedTerm Comment
+ Hydra.Lisp.Dsl.Syntax: condClause :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm CondClause
+ Hydra.Lisp.Dsl.Syntax: condClauseBody :: TypedTerm CondClause -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: condClauseCondClause :: TypedName CondClause
+ Hydra.Lisp.Dsl.Syntax: condClauseCondition :: TypedTerm CondClause -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: condClauseWithBody :: TypedTerm CondClause -> TypedTerm Expression -> TypedTerm CondClause
+ Hydra.Lisp.Dsl.Syntax: condClauseWithCondition :: TypedTerm CondClause -> TypedTerm Expression -> TypedTerm CondClause
+ Hydra.Lisp.Dsl.Syntax: condExpression :: TypedTerm [CondClause] -> TypedTerm (Maybe Expression) -> TypedTerm CondExpression
+ Hydra.Lisp.Dsl.Syntax: condExpressionClauses :: TypedTerm CondExpression -> TypedTerm [CondClause]
+ Hydra.Lisp.Dsl.Syntax: condExpressionCondExpression :: TypedName CondExpression
+ Hydra.Lisp.Dsl.Syntax: condExpressionDefault :: TypedTerm CondExpression -> TypedTerm (Maybe Expression)
+ Hydra.Lisp.Dsl.Syntax: condExpressionWithClauses :: TypedTerm CondExpression -> TypedTerm [CondClause] -> TypedTerm CondExpression
+ Hydra.Lisp.Dsl.Syntax: condExpressionWithDefault :: TypedTerm CondExpression -> TypedTerm (Maybe Expression) -> TypedTerm CondExpression
+ Hydra.Lisp.Dsl.Syntax: consExpression :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm ConsExpression
+ Hydra.Lisp.Dsl.Syntax: consExpressionConsExpression :: TypedName ConsExpression
+ Hydra.Lisp.Dsl.Syntax: consExpressionHead :: TypedTerm ConsExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: consExpressionTail :: TypedTerm ConsExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: consExpressionWithHead :: TypedTerm ConsExpression -> TypedTerm Expression -> TypedTerm ConsExpression
+ Hydra.Lisp.Dsl.Syntax: consExpressionWithTail :: TypedTerm ConsExpression -> TypedTerm Expression -> TypedTerm ConsExpression
+ Hydra.Lisp.Dsl.Syntax: constantDefinition :: TypedTerm Symbol -> TypedTerm Expression -> TypedTerm (Maybe Docstring) -> TypedTerm ConstantDefinition
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionConstantDefinition :: TypedName ConstantDefinition
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionDoc :: TypedTerm ConstantDefinition -> TypedTerm (Maybe Docstring)
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionName :: TypedTerm ConstantDefinition -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionValue :: TypedTerm ConstantDefinition -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionWithDoc :: TypedTerm ConstantDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm ConstantDefinition
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionWithName :: TypedTerm ConstantDefinition -> TypedTerm Symbol -> TypedTerm ConstantDefinition
+ Hydra.Lisp.Dsl.Syntax: constantDefinitionWithValue :: TypedTerm ConstantDefinition -> TypedTerm Expression -> TypedTerm ConstantDefinition
+ Hydra.Lisp.Dsl.Syntax: constructorPattern :: TypedTerm Symbol -> TypedTerm [Pattern] -> TypedTerm ConstructorPattern
+ Hydra.Lisp.Dsl.Syntax: constructorPatternArguments :: TypedTerm ConstructorPattern -> TypedTerm [Pattern]
+ Hydra.Lisp.Dsl.Syntax: constructorPatternConstructor :: TypedTerm ConstructorPattern -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: constructorPatternConstructorPattern :: TypedName ConstructorPattern
+ Hydra.Lisp.Dsl.Syntax: constructorPatternWithArguments :: TypedTerm ConstructorPattern -> TypedTerm [Pattern] -> TypedTerm ConstructorPattern
+ Hydra.Lisp.Dsl.Syntax: constructorPatternWithConstructor :: TypedTerm ConstructorPattern -> TypedTerm Symbol -> TypedTerm ConstructorPattern
+ Hydra.Lisp.Dsl.Syntax: decimalLiteral :: TypedTerm String -> TypedTerm DecimalLiteral
+ Hydra.Lisp.Dsl.Syntax: decimalLiteralDecimalLiteral :: TypedName DecimalLiteral
+ Hydra.Lisp.Dsl.Syntax: decimalLiteralDigits :: TypedTerm DecimalLiteral -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: decimalLiteralWithDigits :: TypedTerm DecimalLiteral -> TypedTerm String -> TypedTerm DecimalLiteral
+ Hydra.Lisp.Dsl.Syntax: destructuringBinding :: TypedTerm DestructuringPattern -> TypedTerm Expression -> TypedTerm DestructuringBinding
+ Hydra.Lisp.Dsl.Syntax: destructuringBindingDestructuringBinding :: TypedName DestructuringBinding
+ Hydra.Lisp.Dsl.Syntax: destructuringBindingPattern :: TypedTerm DestructuringBinding -> TypedTerm DestructuringPattern
+ Hydra.Lisp.Dsl.Syntax: destructuringBindingValue :: TypedTerm DestructuringBinding -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: destructuringBindingWithPattern :: TypedTerm DestructuringBinding -> TypedTerm DestructuringPattern -> TypedTerm DestructuringBinding
+ Hydra.Lisp.Dsl.Syntax: destructuringBindingWithValue :: TypedTerm DestructuringBinding -> TypedTerm Expression -> TypedTerm DestructuringBinding
+ Hydra.Lisp.Dsl.Syntax: destructuringPatternAssociative :: TypedTerm [Symbol] -> TypedTerm DestructuringPattern
+ Hydra.Lisp.Dsl.Syntax: destructuringPatternDestructuringPattern :: TypedName DestructuringPattern
+ Hydra.Lisp.Dsl.Syntax: destructuringPatternRest :: TypedTerm [Symbol] -> TypedTerm DestructuringPattern
+ Hydra.Lisp.Dsl.Syntax: destructuringPatternSequential :: TypedTerm [Symbol] -> TypedTerm DestructuringPattern
+ Hydra.Lisp.Dsl.Syntax: dialectClojure :: TypedTerm Dialect
+ Hydra.Lisp.Dsl.Syntax: dialectCommonLisp :: TypedTerm Dialect
+ Hydra.Lisp.Dsl.Syntax: dialectDialect :: TypedName Dialect
+ Hydra.Lisp.Dsl.Syntax: dialectEmacsLisp :: TypedTerm Dialect
+ Hydra.Lisp.Dsl.Syntax: dialectScheme :: TypedTerm Dialect
+ Hydra.Lisp.Dsl.Syntax: doExpression :: TypedTerm [Expression] -> TypedTerm DoExpression
+ Hydra.Lisp.Dsl.Syntax: doExpressionDoExpression :: TypedName DoExpression
+ Hydra.Lisp.Dsl.Syntax: doExpressionExpressions :: TypedTerm DoExpression -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: doExpressionWithExpressions :: TypedTerm DoExpression -> TypedTerm [Expression] -> TypedTerm DoExpression
+ Hydra.Lisp.Dsl.Syntax: docstring :: TypedTerm String -> TypedTerm Docstring
+ Hydra.Lisp.Dsl.Syntax: docstringDocstring :: TypedName Docstring
+ Hydra.Lisp.Dsl.Syntax: dottedPair :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm DottedPair
+ Hydra.Lisp.Dsl.Syntax: dottedPairCar :: TypedTerm DottedPair -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: dottedPairCdr :: TypedTerm DottedPair -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: dottedPairDottedPair :: TypedName DottedPair
+ Hydra.Lisp.Dsl.Syntax: dottedPairWithCar :: TypedTerm DottedPair -> TypedTerm Expression -> TypedTerm DottedPair
+ Hydra.Lisp.Dsl.Syntax: dottedPairWithCdr :: TypedTerm DottedPair -> TypedTerm Expression -> TypedTerm DottedPair
+ Hydra.Lisp.Dsl.Syntax: exportDeclaration :: TypedTerm [Symbol] -> TypedTerm ExportDeclaration
+ Hydra.Lisp.Dsl.Syntax: exportDeclarationExportDeclaration :: TypedName ExportDeclaration
+ Hydra.Lisp.Dsl.Syntax: exportDeclarationSymbols :: TypedTerm ExportDeclaration -> TypedTerm [Symbol]
+ Hydra.Lisp.Dsl.Syntax: exportDeclarationWithSymbols :: TypedTerm ExportDeclaration -> TypedTerm [Symbol] -> TypedTerm ExportDeclaration
+ Hydra.Lisp.Dsl.Syntax: expressionAnd :: TypedTerm AndExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionApplication :: TypedTerm Application -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionBegin :: TypedTerm BeginExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionCase :: TypedTerm CaseExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionCond :: TypedTerm CondExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionCons :: TypedTerm ConsExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionDo :: TypedTerm DoExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionDottedPair :: TypedTerm DottedPair -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionExpression :: TypedName Expression
+ Hydra.Lisp.Dsl.Syntax: expressionFieldAccess :: TypedTerm FieldAccess -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionIf :: TypedTerm IfExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionLambda :: TypedTerm Lambda -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionLet :: TypedTerm LetExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionList :: TypedTerm ListLiteral -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionLiteral :: TypedTerm Literal -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionMap :: TypedTerm MapLiteral -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionNot :: TypedTerm NotExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionOr :: TypedTerm OrExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionQuasiquote :: TypedTerm QuasiquoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionQuote :: TypedTerm QuoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionSExpression :: TypedTerm SExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionSet :: TypedTerm SetLiteral -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionSplicingUnquote :: TypedTerm SplicingUnquoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionTypeAnnotation :: TypedTerm TypeAnnotation -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionUnquote :: TypedTerm UnquoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionVariable :: TypedTerm VariableReference -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: expressionVector :: TypedTerm VectorLiteral -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: fieldAccess :: TypedTerm Symbol -> TypedTerm Symbol -> TypedTerm Expression -> TypedTerm FieldAccess
+ Hydra.Lisp.Dsl.Syntax: fieldAccessField :: TypedTerm FieldAccess -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: fieldAccessFieldAccess :: TypedName FieldAccess
+ Hydra.Lisp.Dsl.Syntax: fieldAccessRecordType :: TypedTerm FieldAccess -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: fieldAccessTarget :: TypedTerm FieldAccess -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: fieldAccessWithField :: TypedTerm FieldAccess -> TypedTerm Symbol -> TypedTerm FieldAccess
+ Hydra.Lisp.Dsl.Syntax: fieldAccessWithRecordType :: TypedTerm FieldAccess -> TypedTerm Symbol -> TypedTerm FieldAccess
+ Hydra.Lisp.Dsl.Syntax: fieldAccessWithTarget :: TypedTerm FieldAccess -> TypedTerm Expression -> TypedTerm FieldAccess
+ Hydra.Lisp.Dsl.Syntax: fieldDefinition :: TypedTerm Symbol -> TypedTerm (Maybe Expression) -> TypedTerm FieldDefinition
+ Hydra.Lisp.Dsl.Syntax: fieldDefinitionDefaultValue :: TypedTerm FieldDefinition -> TypedTerm (Maybe Expression)
+ Hydra.Lisp.Dsl.Syntax: fieldDefinitionFieldDefinition :: TypedName FieldDefinition
+ Hydra.Lisp.Dsl.Syntax: fieldDefinitionName :: TypedTerm FieldDefinition -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: fieldDefinitionWithDefaultValue :: TypedTerm FieldDefinition -> TypedTerm (Maybe Expression) -> TypedTerm FieldDefinition
+ Hydra.Lisp.Dsl.Syntax: fieldDefinitionWithName :: TypedTerm FieldDefinition -> TypedTerm Symbol -> TypedTerm FieldDefinition
+ Hydra.Lisp.Dsl.Syntax: floatLiteral :: TypedTerm Double -> TypedTerm (Maybe String) -> TypedTerm FloatLiteral
+ Hydra.Lisp.Dsl.Syntax: floatLiteralFloatLiteral :: TypedName FloatLiteral
+ Hydra.Lisp.Dsl.Syntax: floatLiteralPrecision :: TypedTerm FloatLiteral -> TypedTerm (Maybe String)
+ Hydra.Lisp.Dsl.Syntax: floatLiteralValue :: TypedTerm FloatLiteral -> TypedTerm Double
+ Hydra.Lisp.Dsl.Syntax: floatLiteralWithPrecision :: TypedTerm FloatLiteral -> TypedTerm (Maybe String) -> TypedTerm FloatLiteral
+ Hydra.Lisp.Dsl.Syntax: floatLiteralWithValue :: TypedTerm FloatLiteral -> TypedTerm Double -> TypedTerm FloatLiteral
+ Hydra.Lisp.Dsl.Syntax: functionDefinition :: TypedTerm Symbol -> TypedTerm [Symbol] -> TypedTerm (Maybe Symbol) -> TypedTerm (Maybe Docstring) -> TypedTerm [TypeHint] -> TypedTerm [Expression] -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionBody :: TypedTerm FunctionDefinition -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionDoc :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Docstring)
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionFunctionDefinition :: TypedName FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionName :: TypedTerm FunctionDefinition -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionParams :: TypedTerm FunctionDefinition -> TypedTerm [Symbol]
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionRestParam :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Symbol)
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionTypeHints :: TypedTerm FunctionDefinition -> TypedTerm [TypeHint]
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionWithBody :: TypedTerm FunctionDefinition -> TypedTerm [Expression] -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionWithDoc :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionWithName :: TypedTerm FunctionDefinition -> TypedTerm Symbol -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionWithParams :: TypedTerm FunctionDefinition -> TypedTerm [Symbol] -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionWithRestParam :: TypedTerm FunctionDefinition -> TypedTerm (Maybe Symbol) -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: functionDefinitionWithTypeHints :: TypedTerm FunctionDefinition -> TypedTerm [TypeHint] -> TypedTerm FunctionDefinition
+ Hydra.Lisp.Dsl.Syntax: ifExpression :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm (Maybe Expression) -> TypedTerm IfExpression
+ Hydra.Lisp.Dsl.Syntax: ifExpressionCondition :: TypedTerm IfExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: ifExpressionElse :: TypedTerm IfExpression -> TypedTerm (Maybe Expression)
+ Hydra.Lisp.Dsl.Syntax: ifExpressionIfExpression :: TypedName IfExpression
+ Hydra.Lisp.Dsl.Syntax: ifExpressionThen :: TypedTerm IfExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: ifExpressionWithCondition :: TypedTerm IfExpression -> TypedTerm Expression -> TypedTerm IfExpression
+ Hydra.Lisp.Dsl.Syntax: ifExpressionWithElse :: TypedTerm IfExpression -> TypedTerm (Maybe Expression) -> TypedTerm IfExpression
+ Hydra.Lisp.Dsl.Syntax: ifExpressionWithThen :: TypedTerm IfExpression -> TypedTerm Expression -> TypedTerm IfExpression
+ Hydra.Lisp.Dsl.Syntax: importDeclaration :: TypedTerm NamespaceName -> TypedTerm ImportSpec -> TypedTerm ImportDeclaration
+ Hydra.Lisp.Dsl.Syntax: importDeclarationImportDeclaration :: TypedName ImportDeclaration
+ Hydra.Lisp.Dsl.Syntax: importDeclarationModule :: TypedTerm ImportDeclaration -> TypedTerm NamespaceName
+ Hydra.Lisp.Dsl.Syntax: importDeclarationSpec :: TypedTerm ImportDeclaration -> TypedTerm ImportSpec
+ Hydra.Lisp.Dsl.Syntax: importDeclarationWithModule :: TypedTerm ImportDeclaration -> TypedTerm NamespaceName -> TypedTerm ImportDeclaration
+ Hydra.Lisp.Dsl.Syntax: importDeclarationWithSpec :: TypedTerm ImportDeclaration -> TypedTerm ImportSpec -> TypedTerm ImportDeclaration
+ Hydra.Lisp.Dsl.Syntax: importSpecAlias :: TypedTerm Symbol -> TypedTerm ImportSpec
+ Hydra.Lisp.Dsl.Syntax: importSpecAll :: TypedTerm ImportSpec
+ Hydra.Lisp.Dsl.Syntax: importSpecImportSpec :: TypedName ImportSpec
+ Hydra.Lisp.Dsl.Syntax: importSpecOnly :: TypedTerm [Symbol] -> TypedTerm ImportSpec
+ Hydra.Lisp.Dsl.Syntax: importSpecRename :: TypedTerm [[Symbol]] -> TypedTerm ImportSpec
+ Hydra.Lisp.Dsl.Syntax: integerLiteral :: TypedTerm Integer -> TypedTerm Bool -> TypedTerm IntegerLiteral
+ Hydra.Lisp.Dsl.Syntax: integerLiteralBigint :: TypedTerm IntegerLiteral -> TypedTerm Bool
+ Hydra.Lisp.Dsl.Syntax: integerLiteralIntegerLiteral :: TypedName IntegerLiteral
+ Hydra.Lisp.Dsl.Syntax: integerLiteralValue :: TypedTerm IntegerLiteral -> TypedTerm Integer
+ Hydra.Lisp.Dsl.Syntax: integerLiteralWithBigint :: TypedTerm IntegerLiteral -> TypedTerm Bool -> TypedTerm IntegerLiteral
+ Hydra.Lisp.Dsl.Syntax: integerLiteralWithValue :: TypedTerm IntegerLiteral -> TypedTerm Integer -> TypedTerm IntegerLiteral
+ Hydra.Lisp.Dsl.Syntax: keyword :: TypedTerm String -> TypedTerm (Maybe String) -> TypedTerm Keyword
+ Hydra.Lisp.Dsl.Syntax: keywordKeyword :: TypedName Keyword
+ Hydra.Lisp.Dsl.Syntax: keywordName :: TypedTerm Keyword -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: keywordNamespace :: TypedTerm Keyword -> TypedTerm (Maybe String)
+ Hydra.Lisp.Dsl.Syntax: keywordWithName :: TypedTerm Keyword -> TypedTerm String -> TypedTerm Keyword
+ Hydra.Lisp.Dsl.Syntax: keywordWithNamespace :: TypedTerm Keyword -> TypedTerm (Maybe String) -> TypedTerm Keyword
+ Hydra.Lisp.Dsl.Syntax: lambda :: TypedTerm (Maybe Symbol) -> TypedTerm [Symbol] -> TypedTerm (Maybe Symbol) -> TypedTerm [Expression] -> TypedTerm Lambda
+ Hydra.Lisp.Dsl.Syntax: lambdaBody :: TypedTerm Lambda -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: lambdaLambda :: TypedName Lambda
+ Hydra.Lisp.Dsl.Syntax: lambdaName :: TypedTerm Lambda -> TypedTerm (Maybe Symbol)
+ Hydra.Lisp.Dsl.Syntax: lambdaParams :: TypedTerm Lambda -> TypedTerm [Symbol]
+ Hydra.Lisp.Dsl.Syntax: lambdaRestParam :: TypedTerm Lambda -> TypedTerm (Maybe Symbol)
+ Hydra.Lisp.Dsl.Syntax: lambdaWithBody :: TypedTerm Lambda -> TypedTerm [Expression] -> TypedTerm Lambda
+ Hydra.Lisp.Dsl.Syntax: lambdaWithName :: TypedTerm Lambda -> TypedTerm (Maybe Symbol) -> TypedTerm Lambda
+ Hydra.Lisp.Dsl.Syntax: lambdaWithParams :: TypedTerm Lambda -> TypedTerm [Symbol] -> TypedTerm Lambda
+ Hydra.Lisp.Dsl.Syntax: lambdaWithRestParam :: TypedTerm Lambda -> TypedTerm (Maybe Symbol) -> TypedTerm Lambda
+ Hydra.Lisp.Dsl.Syntax: letBindingDestructuring :: TypedTerm DestructuringBinding -> TypedTerm LetBinding
+ Hydra.Lisp.Dsl.Syntax: letBindingLetBinding :: TypedName LetBinding
+ Hydra.Lisp.Dsl.Syntax: letBindingSimple :: TypedTerm SimpleBinding -> TypedTerm LetBinding
+ Hydra.Lisp.Dsl.Syntax: letExpression :: TypedTerm LetKind -> TypedTerm [LetBinding] -> TypedTerm [Expression] -> TypedTerm LetExpression
+ Hydra.Lisp.Dsl.Syntax: letExpressionBindings :: TypedTerm LetExpression -> TypedTerm [LetBinding]
+ Hydra.Lisp.Dsl.Syntax: letExpressionBody :: TypedTerm LetExpression -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: letExpressionKind :: TypedTerm LetExpression -> TypedTerm LetKind
+ Hydra.Lisp.Dsl.Syntax: letExpressionLetExpression :: TypedName LetExpression
+ Hydra.Lisp.Dsl.Syntax: letExpressionWithBindings :: TypedTerm LetExpression -> TypedTerm [LetBinding] -> TypedTerm LetExpression
+ Hydra.Lisp.Dsl.Syntax: letExpressionWithBody :: TypedTerm LetExpression -> TypedTerm [Expression] -> TypedTerm LetExpression
+ Hydra.Lisp.Dsl.Syntax: letExpressionWithKind :: TypedTerm LetExpression -> TypedTerm LetKind -> TypedTerm LetExpression
+ Hydra.Lisp.Dsl.Syntax: letKindLetKind :: TypedName LetKind
+ Hydra.Lisp.Dsl.Syntax: letKindParallel :: TypedTerm LetKind
+ Hydra.Lisp.Dsl.Syntax: letKindRecursive :: TypedTerm LetKind
+ Hydra.Lisp.Dsl.Syntax: letKindSequential :: TypedTerm LetKind
+ Hydra.Lisp.Dsl.Syntax: listLiteral :: TypedTerm [Expression] -> TypedTerm Bool -> TypedTerm ListLiteral
+ Hydra.Lisp.Dsl.Syntax: listLiteralElements :: TypedTerm ListLiteral -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: listLiteralListLiteral :: TypedName ListLiteral
+ Hydra.Lisp.Dsl.Syntax: listLiteralQuoted :: TypedTerm ListLiteral -> TypedTerm Bool
+ Hydra.Lisp.Dsl.Syntax: listLiteralWithElements :: TypedTerm ListLiteral -> TypedTerm [Expression] -> TypedTerm ListLiteral
+ Hydra.Lisp.Dsl.Syntax: listLiteralWithQuoted :: TypedTerm ListLiteral -> TypedTerm Bool -> TypedTerm ListLiteral
+ Hydra.Lisp.Dsl.Syntax: literalBoolean :: TypedTerm Bool -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalCharacter :: TypedTerm CharacterLiteral -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalDecimal :: TypedTerm DecimalLiteral -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalFloat :: TypedTerm FloatLiteral -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalInteger :: TypedTerm IntegerLiteral -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalKeyword :: TypedTerm Keyword -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalLiteral :: TypedName Literal
+ Hydra.Lisp.Dsl.Syntax: literalNil :: TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalPattern :: TypedTerm Literal -> TypedTerm LiteralPattern
+ Hydra.Lisp.Dsl.Syntax: literalPatternLiteralPattern :: TypedName LiteralPattern
+ Hydra.Lisp.Dsl.Syntax: literalPatternValue :: TypedTerm LiteralPattern -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalPatternWithValue :: TypedTerm LiteralPattern -> TypedTerm Literal -> TypedTerm LiteralPattern
+ Hydra.Lisp.Dsl.Syntax: literalString :: TypedTerm String -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: literalSymbol :: TypedTerm Symbol -> TypedTerm Literal
+ Hydra.Lisp.Dsl.Syntax: macroDefinition :: TypedTerm Symbol -> TypedTerm [Symbol] -> TypedTerm (Maybe Symbol) -> TypedTerm [Expression] -> TypedTerm MacroDefinition
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionBody :: TypedTerm MacroDefinition -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionMacroDefinition :: TypedName MacroDefinition
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionName :: TypedTerm MacroDefinition -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionParams :: TypedTerm MacroDefinition -> TypedTerm [Symbol]
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionRestParam :: TypedTerm MacroDefinition -> TypedTerm (Maybe Symbol)
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionWithBody :: TypedTerm MacroDefinition -> TypedTerm [Expression] -> TypedTerm MacroDefinition
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionWithName :: TypedTerm MacroDefinition -> TypedTerm Symbol -> TypedTerm MacroDefinition
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionWithParams :: TypedTerm MacroDefinition -> TypedTerm [Symbol] -> TypedTerm MacroDefinition
+ Hydra.Lisp.Dsl.Syntax: macroDefinitionWithRestParam :: TypedTerm MacroDefinition -> TypedTerm (Maybe Symbol) -> TypedTerm MacroDefinition
+ Hydra.Lisp.Dsl.Syntax: mapEntry :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm MapEntry
+ Hydra.Lisp.Dsl.Syntax: mapEntryKey :: TypedTerm MapEntry -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: mapEntryMapEntry :: TypedName MapEntry
+ Hydra.Lisp.Dsl.Syntax: mapEntryValue :: TypedTerm MapEntry -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: mapEntryWithKey :: TypedTerm MapEntry -> TypedTerm Expression -> TypedTerm MapEntry
+ Hydra.Lisp.Dsl.Syntax: mapEntryWithValue :: TypedTerm MapEntry -> TypedTerm Expression -> TypedTerm MapEntry
+ Hydra.Lisp.Dsl.Syntax: mapLiteral :: TypedTerm [MapEntry] -> TypedTerm MapLiteral
+ Hydra.Lisp.Dsl.Syntax: mapLiteralEntries :: TypedTerm MapLiteral -> TypedTerm [MapEntry]
+ Hydra.Lisp.Dsl.Syntax: mapLiteralMapLiteral :: TypedName MapLiteral
+ Hydra.Lisp.Dsl.Syntax: mapLiteralWithEntries :: TypedTerm MapLiteral -> TypedTerm [MapEntry] -> TypedTerm MapLiteral
+ Hydra.Lisp.Dsl.Syntax: moduleDeclaration :: TypedTerm NamespaceName -> TypedTerm (Maybe Docstring) -> TypedTerm ModuleDeclaration
+ Hydra.Lisp.Dsl.Syntax: moduleDeclarationDoc :: TypedTerm ModuleDeclaration -> TypedTerm (Maybe Docstring)
+ Hydra.Lisp.Dsl.Syntax: moduleDeclarationModuleDeclaration :: TypedName ModuleDeclaration
+ Hydra.Lisp.Dsl.Syntax: moduleDeclarationName :: TypedTerm ModuleDeclaration -> TypedTerm NamespaceName
+ Hydra.Lisp.Dsl.Syntax: moduleDeclarationWithDoc :: TypedTerm ModuleDeclaration -> TypedTerm (Maybe Docstring) -> TypedTerm ModuleDeclaration
+ Hydra.Lisp.Dsl.Syntax: moduleDeclarationWithName :: TypedTerm ModuleDeclaration -> TypedTerm NamespaceName -> TypedTerm ModuleDeclaration
+ Hydra.Lisp.Dsl.Syntax: namespaceName :: TypedTerm String -> TypedTerm NamespaceName
+ Hydra.Lisp.Dsl.Syntax: namespaceNameNamespaceName :: TypedName NamespaceName
+ Hydra.Lisp.Dsl.Syntax: nilStyleEmptyList :: TypedTerm NilStyle
+ Hydra.Lisp.Dsl.Syntax: nilStyleNil :: TypedTerm NilStyle
+ Hydra.Lisp.Dsl.Syntax: nilStyleNilStyle :: TypedName NilStyle
+ Hydra.Lisp.Dsl.Syntax: notExpression :: TypedTerm Expression -> TypedTerm NotExpression
+ Hydra.Lisp.Dsl.Syntax: notExpressionExpression :: TypedTerm NotExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: notExpressionNotExpression :: TypedName NotExpression
+ Hydra.Lisp.Dsl.Syntax: notExpressionWithExpression :: TypedTerm NotExpression -> TypedTerm Expression -> TypedTerm NotExpression
+ Hydra.Lisp.Dsl.Syntax: orExpression :: TypedTerm [Expression] -> TypedTerm OrExpression
+ Hydra.Lisp.Dsl.Syntax: orExpressionExpressions :: TypedTerm OrExpression -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: orExpressionOrExpression :: TypedName OrExpression
+ Hydra.Lisp.Dsl.Syntax: orExpressionWithExpressions :: TypedTerm OrExpression -> TypedTerm [Expression] -> TypedTerm OrExpression
+ Hydra.Lisp.Dsl.Syntax: patternConstructor :: TypedTerm ConstructorPattern -> TypedTerm Pattern
+ Hydra.Lisp.Dsl.Syntax: patternLiteral :: TypedTerm LiteralPattern -> TypedTerm Pattern
+ Hydra.Lisp.Dsl.Syntax: patternPattern :: TypedName Pattern
+ Hydra.Lisp.Dsl.Syntax: patternVariable :: TypedTerm Symbol -> TypedTerm Pattern
+ Hydra.Lisp.Dsl.Syntax: patternWildcard :: TypedTerm WildcardPattern -> TypedTerm Pattern
+ Hydra.Lisp.Dsl.Syntax: program :: TypedTerm Dialect -> TypedTerm (Maybe ModuleDeclaration) -> TypedTerm [ImportDeclaration] -> TypedTerm [ExportDeclaration] -> TypedTerm [TopLevelFormWithComments] -> TypedTerm Program
+ Hydra.Lisp.Dsl.Syntax: programDialect :: TypedTerm Program -> TypedTerm Dialect
+ Hydra.Lisp.Dsl.Syntax: programExports :: TypedTerm Program -> TypedTerm [ExportDeclaration]
+ Hydra.Lisp.Dsl.Syntax: programForms :: TypedTerm Program -> TypedTerm [TopLevelFormWithComments]
+ Hydra.Lisp.Dsl.Syntax: programImports :: TypedTerm Program -> TypedTerm [ImportDeclaration]
+ Hydra.Lisp.Dsl.Syntax: programModule :: TypedTerm Program -> TypedTerm (Maybe ModuleDeclaration)
+ Hydra.Lisp.Dsl.Syntax: programProgram :: TypedName Program
+ Hydra.Lisp.Dsl.Syntax: programWithDialect :: TypedTerm Program -> TypedTerm Dialect -> TypedTerm Program
+ Hydra.Lisp.Dsl.Syntax: programWithExports :: TypedTerm Program -> TypedTerm [ExportDeclaration] -> TypedTerm Program
+ Hydra.Lisp.Dsl.Syntax: programWithForms :: TypedTerm Program -> TypedTerm [TopLevelFormWithComments] -> TypedTerm Program
+ Hydra.Lisp.Dsl.Syntax: programWithImports :: TypedTerm Program -> TypedTerm [ImportDeclaration] -> TypedTerm Program
+ Hydra.Lisp.Dsl.Syntax: programWithModule :: TypedTerm Program -> TypedTerm (Maybe ModuleDeclaration) -> TypedTerm Program
+ Hydra.Lisp.Dsl.Syntax: qualifiedSymbol :: TypedTerm String -> TypedTerm String -> TypedTerm QualifiedSymbol
+ Hydra.Lisp.Dsl.Syntax: qualifiedSymbolName :: TypedTerm QualifiedSymbol -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: qualifiedSymbolNamespace :: TypedTerm QualifiedSymbol -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: qualifiedSymbolQualifiedSymbol :: TypedName QualifiedSymbol
+ Hydra.Lisp.Dsl.Syntax: qualifiedSymbolWithName :: TypedTerm QualifiedSymbol -> TypedTerm String -> TypedTerm QualifiedSymbol
+ Hydra.Lisp.Dsl.Syntax: qualifiedSymbolWithNamespace :: TypedTerm QualifiedSymbol -> TypedTerm String -> TypedTerm QualifiedSymbol
+ Hydra.Lisp.Dsl.Syntax: quasiquoteExpression :: TypedTerm Expression -> TypedTerm QuasiquoteExpression
+ Hydra.Lisp.Dsl.Syntax: quasiquoteExpressionBody :: TypedTerm QuasiquoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: quasiquoteExpressionQuasiquoteExpression :: TypedName QuasiquoteExpression
+ Hydra.Lisp.Dsl.Syntax: quasiquoteExpressionWithBody :: TypedTerm QuasiquoteExpression -> TypedTerm Expression -> TypedTerm QuasiquoteExpression
+ Hydra.Lisp.Dsl.Syntax: quoteExpression :: TypedTerm Expression -> TypedTerm QuoteExpression
+ Hydra.Lisp.Dsl.Syntax: quoteExpressionBody :: TypedTerm QuoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: quoteExpressionQuoteExpression :: TypedName QuoteExpression
+ Hydra.Lisp.Dsl.Syntax: quoteExpressionWithBody :: TypedTerm QuoteExpression -> TypedTerm Expression -> TypedTerm QuoteExpression
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinition :: TypedTerm Symbol -> TypedTerm [FieldDefinition] -> TypedTerm (Maybe Docstring) -> TypedTerm RecordTypeDefinition
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionDoc :: TypedTerm RecordTypeDefinition -> TypedTerm (Maybe Docstring)
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionFields :: TypedTerm RecordTypeDefinition -> TypedTerm [FieldDefinition]
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionName :: TypedTerm RecordTypeDefinition -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionRecordTypeDefinition :: TypedName RecordTypeDefinition
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionWithDoc :: TypedTerm RecordTypeDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm RecordTypeDefinition
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionWithFields :: TypedTerm RecordTypeDefinition -> TypedTerm [FieldDefinition] -> TypedTerm RecordTypeDefinition
+ Hydra.Lisp.Dsl.Syntax: recordTypeDefinitionWithName :: TypedTerm RecordTypeDefinition -> TypedTerm Symbol -> TypedTerm RecordTypeDefinition
+ Hydra.Lisp.Dsl.Syntax: sExpressionAtom :: TypedTerm String -> TypedTerm SExpression
+ Hydra.Lisp.Dsl.Syntax: sExpressionList :: TypedTerm [SExpression] -> TypedTerm SExpression
+ Hydra.Lisp.Dsl.Syntax: sExpressionSExpression :: TypedName SExpression
+ Hydra.Lisp.Dsl.Syntax: setLiteral :: TypedTerm [Expression] -> TypedTerm SetLiteral
+ Hydra.Lisp.Dsl.Syntax: setLiteralElements :: TypedTerm SetLiteral -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: setLiteralSetLiteral :: TypedName SetLiteral
+ Hydra.Lisp.Dsl.Syntax: setLiteralWithElements :: TypedTerm SetLiteral -> TypedTerm [Expression] -> TypedTerm SetLiteral
+ Hydra.Lisp.Dsl.Syntax: simpleBinding :: TypedTerm Symbol -> TypedTerm Expression -> TypedTerm SimpleBinding
+ Hydra.Lisp.Dsl.Syntax: simpleBindingName :: TypedTerm SimpleBinding -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: simpleBindingSimpleBinding :: TypedName SimpleBinding
+ Hydra.Lisp.Dsl.Syntax: simpleBindingValue :: TypedTerm SimpleBinding -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: simpleBindingWithName :: TypedTerm SimpleBinding -> TypedTerm Symbol -> TypedTerm SimpleBinding
+ Hydra.Lisp.Dsl.Syntax: simpleBindingWithValue :: TypedTerm SimpleBinding -> TypedTerm Expression -> TypedTerm SimpleBinding
+ Hydra.Lisp.Dsl.Syntax: splicingUnquoteExpression :: TypedTerm Expression -> TypedTerm SplicingUnquoteExpression
+ Hydra.Lisp.Dsl.Syntax: splicingUnquoteExpressionBody :: TypedTerm SplicingUnquoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: splicingUnquoteExpressionSplicingUnquoteExpression :: TypedName SplicingUnquoteExpression
+ Hydra.Lisp.Dsl.Syntax: splicingUnquoteExpressionWithBody :: TypedTerm SplicingUnquoteExpression -> TypedTerm Expression -> TypedTerm SplicingUnquoteExpression
+ Hydra.Lisp.Dsl.Syntax: symbol :: TypedTerm String -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: symbolSymbol :: TypedName Symbol
+ Hydra.Lisp.Dsl.Syntax: topLevelFormConstant :: TypedTerm ConstantDefinition -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormExpression :: TypedTerm Expression -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormFunction :: TypedTerm FunctionDefinition -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormMacro :: TypedTerm MacroDefinition -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormRecordType :: TypedTerm RecordTypeDefinition -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormTopLevelForm :: TypedName TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormVariable :: TypedTerm VariableDefinition -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithComments :: TypedTerm (Maybe Docstring) -> TypedTerm (Maybe Comment) -> TypedTerm TopLevelForm -> TypedTerm TopLevelFormWithComments
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsComment :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Comment)
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsDoc :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Docstring)
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsForm :: TypedTerm TopLevelFormWithComments -> TypedTerm TopLevelForm
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsTopLevelFormWithComments :: TypedName TopLevelFormWithComments
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsWithComment :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Comment) -> TypedTerm TopLevelFormWithComments
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsWithDoc :: TypedTerm TopLevelFormWithComments -> TypedTerm (Maybe Docstring) -> TypedTerm TopLevelFormWithComments
+ Hydra.Lisp.Dsl.Syntax: topLevelFormWithCommentsWithForm :: TypedTerm TopLevelFormWithComments -> TypedTerm TopLevelForm -> TypedTerm TopLevelFormWithComments
+ Hydra.Lisp.Dsl.Syntax: typeAnnotation :: TypedTerm Expression -> TypedTerm TypeSpecifier -> TypedTerm TypeAnnotation
+ Hydra.Lisp.Dsl.Syntax: typeAnnotationExpression :: TypedTerm TypeAnnotation -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: typeAnnotationType :: TypedTerm TypeAnnotation -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeAnnotationTypeAnnotation :: TypedName TypeAnnotation
+ Hydra.Lisp.Dsl.Syntax: typeAnnotationWithExpression :: TypedTerm TypeAnnotation -> TypedTerm Expression -> TypedTerm TypeAnnotation
+ Hydra.Lisp.Dsl.Syntax: typeAnnotationWithType :: TypedTerm TypeAnnotation -> TypedTerm TypeSpecifier -> TypedTerm TypeAnnotation
+ Hydra.Lisp.Dsl.Syntax: typeHint :: TypedTerm Symbol -> TypedTerm TypeSpecifier -> TypedTerm TypeHint
+ Hydra.Lisp.Dsl.Syntax: typeHintName :: TypedTerm TypeHint -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: typeHintType :: TypedTerm TypeHint -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeHintTypeHint :: TypedName TypeHint
+ Hydra.Lisp.Dsl.Syntax: typeHintWithName :: TypedTerm TypeHint -> TypedTerm Symbol -> TypedTerm TypeHint
+ Hydra.Lisp.Dsl.Syntax: typeHintWithType :: TypedTerm TypeHint -> TypedTerm TypeSpecifier -> TypedTerm TypeHint
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierEither :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierFunction :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierList :: TypedTerm TypeSpecifier -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierMap :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierMaybe :: TypedTerm TypeSpecifier -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierNamed :: TypedTerm Symbol -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierPair :: TypedTerm [TypeSpecifier] -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierSet :: TypedTerm TypeSpecifier -> TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierTypeSpecifier :: TypedName TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: typeSpecifierUnit :: TypedTerm TypeSpecifier
+ Hydra.Lisp.Dsl.Syntax: unDocstring :: TypedTerm Docstring -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: unNamespaceName :: TypedTerm NamespaceName -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: unSymbol :: TypedTerm Symbol -> TypedTerm String
+ Hydra.Lisp.Dsl.Syntax: unquoteExpression :: TypedTerm Expression -> TypedTerm UnquoteExpression
+ Hydra.Lisp.Dsl.Syntax: unquoteExpressionBody :: TypedTerm UnquoteExpression -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: unquoteExpressionUnquoteExpression :: TypedName UnquoteExpression
+ Hydra.Lisp.Dsl.Syntax: unquoteExpressionWithBody :: TypedTerm UnquoteExpression -> TypedTerm Expression -> TypedTerm UnquoteExpression
+ Hydra.Lisp.Dsl.Syntax: variableDefinition :: TypedTerm Symbol -> TypedTerm Expression -> TypedTerm (Maybe Docstring) -> TypedTerm VariableDefinition
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionDoc :: TypedTerm VariableDefinition -> TypedTerm (Maybe Docstring)
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionName :: TypedTerm VariableDefinition -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionValue :: TypedTerm VariableDefinition -> TypedTerm Expression
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionVariableDefinition :: TypedName VariableDefinition
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionWithDoc :: TypedTerm VariableDefinition -> TypedTerm (Maybe Docstring) -> TypedTerm VariableDefinition
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionWithName :: TypedTerm VariableDefinition -> TypedTerm Symbol -> TypedTerm VariableDefinition
+ Hydra.Lisp.Dsl.Syntax: variableDefinitionWithValue :: TypedTerm VariableDefinition -> TypedTerm Expression -> TypedTerm VariableDefinition
+ Hydra.Lisp.Dsl.Syntax: variableReference :: TypedTerm Symbol -> TypedTerm Bool -> TypedTerm VariableReference
+ Hydra.Lisp.Dsl.Syntax: variableReferenceFunctionNamespace :: TypedTerm VariableReference -> TypedTerm Bool
+ Hydra.Lisp.Dsl.Syntax: variableReferenceName :: TypedTerm VariableReference -> TypedTerm Symbol
+ Hydra.Lisp.Dsl.Syntax: variableReferenceVariableReference :: TypedName VariableReference
+ Hydra.Lisp.Dsl.Syntax: variableReferenceWithFunctionNamespace :: TypedTerm VariableReference -> TypedTerm Bool -> TypedTerm VariableReference
+ Hydra.Lisp.Dsl.Syntax: variableReferenceWithName :: TypedTerm VariableReference -> TypedTerm Symbol -> TypedTerm VariableReference
+ Hydra.Lisp.Dsl.Syntax: vectorLiteral :: TypedTerm [Expression] -> TypedTerm VectorLiteral
+ Hydra.Lisp.Dsl.Syntax: vectorLiteralElements :: TypedTerm VectorLiteral -> TypedTerm [Expression]
+ Hydra.Lisp.Dsl.Syntax: vectorLiteralVectorLiteral :: TypedName VectorLiteral
+ Hydra.Lisp.Dsl.Syntax: vectorLiteralWithElements :: TypedTerm VectorLiteral -> TypedTerm [Expression] -> TypedTerm VectorLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.AndExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Application
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.BeginExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.BooleanStyle
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.CaseClause
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.CaseExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.CharacterLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Comment
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.CommentStyle
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.CondClause
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.CondExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ConsExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ConstantDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ConstructorPattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.DecimalLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.DestructuringBinding
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.DestructuringPattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Dialect
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.DoExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Docstring
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.DottedPair
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ExportDeclaration
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Expression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.FieldAccess
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.FieldDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.FloatLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.FunctionDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.IfExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ImportDeclaration
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ImportSpec
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.IntegerLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Keyword
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Lambda
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.LetBinding
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.LetExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.LetKind
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ListLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Literal
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.LiteralPattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.MacroDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.MapEntry
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.MapLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.ModuleDeclaration
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.NamespaceName
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.NilStyle
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.NotExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.OrExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Pattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Program
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.QualifiedSymbol
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.QuasiquoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.QuoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.RecordTypeDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.SExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.SetLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.SimpleBinding
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.SplicingUnquoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.Symbol
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.TopLevelForm
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.TopLevelFormWithComments
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.TypeAnnotation
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.TypeHint
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.TypeSpecifier
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.UnquoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.VariableDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.VariableReference
+ Hydra.Lisp.Syntax: instance GHC.Internal.Read.Read Hydra.Lisp.Syntax.VectorLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.AndExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Application
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.BeginExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.BooleanStyle
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.CaseClause
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.CaseExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.CharacterLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Comment
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.CommentStyle
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.CondClause
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.CondExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ConsExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ConstantDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ConstructorPattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.DecimalLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.DestructuringBinding
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.DestructuringPattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Dialect
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.DoExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Docstring
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.DottedPair
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ExportDeclaration
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Expression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.FieldAccess
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.FieldDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.FloatLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.FunctionDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.IfExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ImportDeclaration
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ImportSpec
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.IntegerLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Keyword
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Lambda
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.LetBinding
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.LetExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.LetKind
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ListLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Literal
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.LiteralPattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.MacroDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.MapEntry
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.MapLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.ModuleDeclaration
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.NamespaceName
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.NilStyle
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.NotExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.OrExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Pattern
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Program
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.QualifiedSymbol
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.QuasiquoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.QuoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.RecordTypeDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.SExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.SetLiteral
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.SimpleBinding
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.SplicingUnquoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.Symbol
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.TopLevelForm
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.TopLevelFormWithComments
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.TypeAnnotation
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.TypeHint
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.TypeSpecifier
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.UnquoteExpression
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.VariableDefinition
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.VariableReference
+ Hydra.Lisp.Syntax: instance GHC.Internal.Show.Show Hydra.Lisp.Syntax.VectorLiteral
Files
- CHANGELOG.md +80/−0
- hydra-lisp.cabal +3/−3
- src/main/haskell/Hydra/Dsl/Lisp/Syntax.hs +0/−4822
- src/main/haskell/Hydra/Lisp/Coder.hs +207/−199
- src/main/haskell/Hydra/Lisp/Dsl/Syntax.hs +4822/−0
- src/main/haskell/Hydra/Lisp/Language.hs +44/−42
- src/main/haskell/Hydra/Lisp/Serde.hs +43/−41
- src/main/haskell/Hydra/Lisp/Syntax.hs +252/−252
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-lisp.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: hydra-lisp-version: 0.17.7+version: 0.18.0 synopsis: Hydra's Lisp coder: emit Clojure/Scheme/Common-Lisp/Emacs-Lisp source 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". Lisp support for Hydra (shared across Clojure, Scheme, Common Lisp, and Emacs Lisp) category: Data@@ -27,8 +27,8 @@ library exposed-modules:- Hydra.Dsl.Lisp.Syntax Hydra.Lisp.Coder+ Hydra.Lisp.Dsl.Syntax Hydra.Lisp.Language Hydra.Lisp.Serde Hydra.Lisp.Syntax@@ -39,6 +39,6 @@ build-depends: base >=4.19.0 && <4.22 , containers >=0.6.7 && <0.8- , hydra-kernel ==0.17.7+ , hydra-kernel ==0.18.0 , scientific >=0.3.7 && <0.4 default-language: Haskell2010
− src/main/haskell/Hydra/Dsl/Lisp/Syntax.hs
@@ -1,4822 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | DSL functions for hydra.lisp.syntax--module Hydra.Dsl.Lisp.Syntax where--import qualified Hydra.Core as Core-import qualified Hydra.Lisp.Syntax as Syntax-import qualified Hydra.Typed as Typed-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void---- | DSL constructor for hydra.lisp.syntax.AndExpression-andExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.AndExpression-andExpression expressions =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.AndExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm expressions)}]}))---- | DSL name token for hydra.lisp.syntax.AndExpression-andExpressionAndExpression :: Typed.TypedName Syntax.AndExpression-andExpressionAndExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.AndExpression")---- | DSL accessor for the expressions field of hydra.lisp.syntax.AndExpression-andExpressionExpressions :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm [Syntax.Expression]-andExpressionExpressions x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.AndExpression"),- Core.projectionFieldName = (Core.Name "expressions")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expressions field of hydra.lisp.syntax.AndExpression-andExpressionWithExpressions :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.AndExpression-andExpressionWithExpressions original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.AndExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.Application-application :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Application-application function arguments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "function"),- Core.fieldTerm = (Typed.unTypedTerm function)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)}]}))---- | DSL name token for hydra.lisp.syntax.Application-applicationApplication :: Typed.TypedName Syntax.Application-applicationApplication = Typed.TypedName (Core.Name "hydra.lisp.syntax.Application")---- | DSL accessor for the arguments field of hydra.lisp.syntax.Application-applicationArguments :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm [Syntax.Expression]-applicationArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the function field of hydra.lisp.syntax.Application-applicationFunction :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm Syntax.Expression-applicationFunction x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.projectionFieldName = (Core.Name "function")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the arguments field of hydra.lisp.syntax.Application-applicationWithArguments :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Application-applicationWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "function"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.projectionFieldName = (Core.Name "function")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the function field of hydra.lisp.syntax.Application-applicationWithFunction :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Application-applicationWithFunction original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "function"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Application"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.BeginExpression-beginExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.BeginExpression-beginExpression expressions =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.BeginExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm expressions)}]}))---- | DSL name token for hydra.lisp.syntax.BeginExpression-beginExpressionBeginExpression :: Typed.TypedName Syntax.BeginExpression-beginExpressionBeginExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.BeginExpression")---- | DSL accessor for the expressions field of hydra.lisp.syntax.BeginExpression-beginExpressionExpressions :: Typed.TypedTerm Syntax.BeginExpression -> Typed.TypedTerm [Syntax.Expression]-beginExpressionExpressions x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.BeginExpression"),- Core.projectionFieldName = (Core.Name "expressions")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expressions field of hydra.lisp.syntax.BeginExpression-beginExpressionWithExpressions :: Typed.TypedTerm Syntax.BeginExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.BeginExpression-beginExpressionWithExpressions original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.BeginExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.lisp.syntax.BooleanStyle-booleanStyleBooleanStyle :: Typed.TypedName Syntax.BooleanStyle-booleanStyleBooleanStyle = Typed.TypedName (Core.Name "hydra.lisp.syntax.BooleanStyle")---- | DSL injection for the hashTF variant of hydra.lisp.syntax.BooleanStyle-booleanStyleHashTF :: Typed.TypedTerm Syntax.BooleanStyle-booleanStyleHashTF =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.BooleanStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "hashTF"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the tNil variant of hydra.lisp.syntax.BooleanStyle-booleanStyleTNil :: Typed.TypedTerm Syntax.BooleanStyle-booleanStyleTNil =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.BooleanStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "tNil"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the trueFalse variant of hydra.lisp.syntax.BooleanStyle-booleanStyleTrueFalse :: Typed.TypedTerm Syntax.BooleanStyle-booleanStyleTrueFalse =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.BooleanStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "trueFalse"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.lisp.syntax.CaseClause-caseClause :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CaseClause-caseClause keys body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "keys"),- Core.fieldTerm = (Typed.unTypedTerm keys)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.CaseClause-caseClauseBody :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm Syntax.Expression-caseClauseBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseClause"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.CaseClause-caseClauseCaseClause :: Typed.TypedName Syntax.CaseClause-caseClauseCaseClause = Typed.TypedName (Core.Name "hydra.lisp.syntax.CaseClause")---- | DSL accessor for the keys field of hydra.lisp.syntax.CaseClause-caseClauseKeys :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm [Syntax.Expression]-caseClauseKeys x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseClause"),- Core.projectionFieldName = (Core.Name "keys")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.lisp.syntax.CaseClause-caseClauseWithBody :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CaseClause-caseClauseWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "keys"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseClause"),- Core.projectionFieldName = (Core.Name "keys")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the keys field of hydra.lisp.syntax.CaseClause-caseClauseWithKeys :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.CaseClause-caseClauseWithKeys original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "keys"),- 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.lisp.syntax.CaseClause"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.CaseExpression-caseExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm [Syntax.CaseClause] -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CaseExpression-caseExpression scrutinee clauses default_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "scrutinee"),- Core.fieldTerm = (Typed.unTypedTerm scrutinee)},- Core.Field {- Core.fieldName = (Core.Name "clauses"),- Core.fieldTerm = (Typed.unTypedTerm clauses)},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Typed.unTypedTerm default_)}]}))---- | DSL name token for hydra.lisp.syntax.CaseExpression-caseExpressionCaseExpression :: Typed.TypedName Syntax.CaseExpression-caseExpressionCaseExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.CaseExpression")---- | DSL accessor for the clauses field of hydra.lisp.syntax.CaseExpression-caseExpressionClauses :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm [Syntax.CaseClause]-caseExpressionClauses x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "clauses")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the default field of hydra.lisp.syntax.CaseExpression-caseExpressionDefault :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm (Maybe Syntax.Expression)-caseExpressionDefault x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the scrutinee field of hydra.lisp.syntax.CaseExpression-caseExpressionScrutinee :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm Syntax.Expression-caseExpressionScrutinee x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "scrutinee")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the clauses field of hydra.lisp.syntax.CaseExpression-caseExpressionWithClauses :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm [Syntax.CaseClause] -> Typed.TypedTerm Syntax.CaseExpression-caseExpressionWithClauses original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "scrutinee"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "scrutinee")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "clauses"),- 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.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the default field of hydra.lisp.syntax.CaseExpression-caseExpressionWithDefault :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CaseExpression-caseExpressionWithDefault original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "scrutinee"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "scrutinee")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "clauses"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "clauses")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the scrutinee field of hydra.lisp.syntax.CaseExpression-caseExpressionWithScrutinee :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CaseExpression-caseExpressionWithScrutinee original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "scrutinee"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "clauses"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "clauses")})),- 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.lisp.syntax.CaseExpression"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.CharacterLiteral-characterLiteral :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.CharacterLiteral-characterLiteral value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CharacterLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL name token for hydra.lisp.syntax.CharacterLiteral-characterLiteralCharacterLiteral :: Typed.TypedName Syntax.CharacterLiteral-characterLiteralCharacterLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.CharacterLiteral")---- | DSL accessor for the value field of hydra.lisp.syntax.CharacterLiteral-characterLiteralValue :: Typed.TypedTerm Syntax.CharacterLiteral -> Typed.TypedTerm String-characterLiteralValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CharacterLiteral"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the value field of hydra.lisp.syntax.CharacterLiteral-characterLiteralWithValue :: Typed.TypedTerm Syntax.CharacterLiteral -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.CharacterLiteral-characterLiteralWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CharacterLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.Comment-comment :: Typed.TypedTerm Syntax.CommentStyle -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.Comment-comment style text =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "style"),- Core.fieldTerm = (Typed.unTypedTerm style)},- Core.Field {- Core.fieldName = (Core.Name "text"),- Core.fieldTerm = (Typed.unTypedTerm text)}]}))---- | DSL name token for hydra.lisp.syntax.Comment-commentComment :: Typed.TypedName Syntax.Comment-commentComment = Typed.TypedName (Core.Name "hydra.lisp.syntax.Comment")---- | DSL accessor for the style field of hydra.lisp.syntax.Comment-commentStyle :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm Syntax.CommentStyle-commentStyle x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.projectionFieldName = (Core.Name "style")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL injection for the block variant of hydra.lisp.syntax.CommentStyle-commentStyleBlock :: Typed.TypedTerm Syntax.CommentStyle-commentStyleBlock =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.CommentStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.lisp.syntax.CommentStyle-commentStyleCommentStyle :: Typed.TypedName Syntax.CommentStyle-commentStyleCommentStyle = Typed.TypedName (Core.Name "hydra.lisp.syntax.CommentStyle")---- | DSL injection for the datum variant of hydra.lisp.syntax.CommentStyle-commentStyleDatum :: Typed.TypedTerm Syntax.CommentStyle-commentStyleDatum =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.CommentStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "datum"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the line variant of hydra.lisp.syntax.CommentStyle-commentStyleLine :: Typed.TypedTerm Syntax.CommentStyle-commentStyleLine =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.CommentStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "line"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL accessor for the text field of hydra.lisp.syntax.Comment-commentText :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm String-commentText x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.projectionFieldName = (Core.Name "text")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the style field of hydra.lisp.syntax.Comment-commentWithStyle :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm Syntax.CommentStyle -> Typed.TypedTerm Syntax.Comment-commentWithStyle original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "style"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "text"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.projectionFieldName = (Core.Name "text")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the text field of hydra.lisp.syntax.Comment-commentWithText :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.Comment-commentWithText original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "style"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Comment"),- Core.projectionFieldName = (Core.Name "style")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "text"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.CondClause-condClause :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CondClause-condClause condition body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CondClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- Core.fieldTerm = (Typed.unTypedTerm condition)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.CondClause-condClauseBody :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression-condClauseBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CondClause"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.CondClause-condClauseCondClause :: Typed.TypedName Syntax.CondClause-condClauseCondClause = Typed.TypedName (Core.Name "hydra.lisp.syntax.CondClause")---- | DSL accessor for the condition field of hydra.lisp.syntax.CondClause-condClauseCondition :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression-condClauseCondition x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CondClause"),- Core.projectionFieldName = (Core.Name "condition")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.lisp.syntax.CondClause-condClauseWithBody :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CondClause-condClauseWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CondClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CondClause"),- Core.projectionFieldName = (Core.Name "condition")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the condition field of hydra.lisp.syntax.CondClause-condClauseWithCondition :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CondClause-condClauseWithCondition original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CondClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- 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.lisp.syntax.CondClause"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.CondExpression-condExpression :: Typed.TypedTerm [Syntax.CondClause] -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CondExpression-condExpression clauses default_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CondExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "clauses"),- Core.fieldTerm = (Typed.unTypedTerm clauses)},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Typed.unTypedTerm default_)}]}))---- | DSL accessor for the clauses field of hydra.lisp.syntax.CondExpression-condExpressionClauses :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm [Syntax.CondClause]-condExpressionClauses x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CondExpression"),- Core.projectionFieldName = (Core.Name "clauses")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.CondExpression-condExpressionCondExpression :: Typed.TypedName Syntax.CondExpression-condExpressionCondExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.CondExpression")---- | DSL accessor for the default field of hydra.lisp.syntax.CondExpression-condExpressionDefault :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm (Maybe Syntax.Expression)-condExpressionDefault x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CondExpression"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the clauses field of hydra.lisp.syntax.CondExpression-condExpressionWithClauses :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm [Syntax.CondClause] -> Typed.TypedTerm Syntax.CondExpression-condExpressionWithClauses original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CondExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "clauses"),- 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.lisp.syntax.CondExpression"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the default field of hydra.lisp.syntax.CondExpression-condExpressionWithDefault :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CondExpression-condExpressionWithDefault original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.CondExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "clauses"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.CondExpression"),- Core.projectionFieldName = (Core.Name "clauses")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.ConsExpression-consExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConsExpression-consExpression head tail =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "head"),- Core.fieldTerm = (Typed.unTypedTerm head)},- Core.Field {- Core.fieldName = (Core.Name "tail"),- Core.fieldTerm = (Typed.unTypedTerm tail)}]}))---- | DSL name token for hydra.lisp.syntax.ConsExpression-consExpressionConsExpression :: Typed.TypedName Syntax.ConsExpression-consExpressionConsExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.ConsExpression")---- | DSL accessor for the head field of hydra.lisp.syntax.ConsExpression-consExpressionHead :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression-consExpressionHead x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.projectionFieldName = (Core.Name "head")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tail field of hydra.lisp.syntax.ConsExpression-consExpressionTail :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression-consExpressionTail x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.projectionFieldName = (Core.Name "tail")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the head field of hydra.lisp.syntax.ConsExpression-consExpressionWithHead :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConsExpression-consExpressionWithHead original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "head"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "tail"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.projectionFieldName = (Core.Name "tail")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tail field of hydra.lisp.syntax.ConsExpression-consExpressionWithTail :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConsExpression-consExpressionWithTail original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "head"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConsExpression"),- Core.projectionFieldName = (Core.Name "head")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "tail"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.ConstantDefinition-constantDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ConstantDefinition-constantDefinition name value doc =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm doc)}]}))---- | DSL name token for hydra.lisp.syntax.ConstantDefinition-constantDefinitionConstantDefinition :: Typed.TypedName Syntax.ConstantDefinition-constantDefinitionConstantDefinition = Typed.TypedName (Core.Name "hydra.lisp.syntax.ConstantDefinition")---- | DSL accessor for the doc field of hydra.lisp.syntax.ConstantDefinition-constantDefinitionDoc :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)-constantDefinitionDoc x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.lisp.syntax.ConstantDefinition-constantDefinitionName :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Symbol-constantDefinitionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the value field of hydra.lisp.syntax.ConstantDefinition-constantDefinitionValue :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Expression-constantDefinitionValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the doc field of hydra.lisp.syntax.ConstantDefinition-constantDefinitionWithDoc :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ConstantDefinition-constantDefinitionWithDoc original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- 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.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.ConstantDefinition-constantDefinitionWithName :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.ConstantDefinition-constantDefinitionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.lisp.syntax.ConstantDefinition-constantDefinitionWithValue :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConstantDefinition-constantDefinitionWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- 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.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstantDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.ConstructorPattern-constructorPattern :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.ConstructorPattern-constructorPattern constructor arguments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Typed.unTypedTerm constructor)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)}]}))---- | DSL accessor for the arguments field of hydra.lisp.syntax.ConstructorPattern-constructorPatternArguments :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm [Syntax.Pattern]-constructorPatternArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the constructor field of hydra.lisp.syntax.ConstructorPattern-constructorPatternConstructor :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm Syntax.Symbol-constructorPatternConstructor x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.projectionFieldName = (Core.Name "constructor")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.ConstructorPattern-constructorPatternConstructorPattern :: Typed.TypedName Syntax.ConstructorPattern-constructorPatternConstructorPattern = Typed.TypedName (Core.Name "hydra.lisp.syntax.ConstructorPattern")---- | DSL updater for the arguments field of hydra.lisp.syntax.ConstructorPattern-constructorPatternWithArguments :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.ConstructorPattern-constructorPatternWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.projectionFieldName = (Core.Name "constructor")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the constructor field of hydra.lisp.syntax.ConstructorPattern-constructorPatternWithConstructor :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.ConstructorPattern-constructorPatternWithConstructor original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ConstructorPattern"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.DecimalLiteral-decimalLiteral :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.DecimalLiteral-decimalLiteral digits =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DecimalLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "digits"),- Core.fieldTerm = (Typed.unTypedTerm digits)}]}))---- | DSL name token for hydra.lisp.syntax.DecimalLiteral-decimalLiteralDecimalLiteral :: Typed.TypedName Syntax.DecimalLiteral-decimalLiteralDecimalLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.DecimalLiteral")---- | DSL accessor for the digits field of hydra.lisp.syntax.DecimalLiteral-decimalLiteralDigits :: Typed.TypedTerm Syntax.DecimalLiteral -> Typed.TypedTerm String-decimalLiteralDigits x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DecimalLiteral"),- Core.projectionFieldName = (Core.Name "digits")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the digits field of hydra.lisp.syntax.DecimalLiteral-decimalLiteralWithDigits :: Typed.TypedTerm Syntax.DecimalLiteral -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.DecimalLiteral-decimalLiteralWithDigits original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DecimalLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "digits"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.DestructuringBinding-destructuringBinding :: Typed.TypedTerm Syntax.DestructuringPattern -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DestructuringBinding-destructuringBinding pattern value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Typed.unTypedTerm pattern)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL name token for hydra.lisp.syntax.DestructuringBinding-destructuringBindingDestructuringBinding :: Typed.TypedName Syntax.DestructuringBinding-destructuringBindingDestructuringBinding = Typed.TypedName (Core.Name "hydra.lisp.syntax.DestructuringBinding")---- | DSL accessor for the pattern field of hydra.lisp.syntax.DestructuringBinding-destructuringBindingPattern :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.DestructuringPattern-destructuringBindingPattern x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.projectionFieldName = (Core.Name "pattern")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the value field of hydra.lisp.syntax.DestructuringBinding-destructuringBindingValue :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.Expression-destructuringBindingValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the pattern field of hydra.lisp.syntax.DestructuringBinding-destructuringBindingWithPattern :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.DestructuringPattern -> Typed.TypedTerm Syntax.DestructuringBinding-destructuringBindingWithPattern original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.lisp.syntax.DestructuringBinding-destructuringBindingWithValue :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DestructuringBinding-destructuringBindingWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringBinding"),- Core.projectionFieldName = (Core.Name "pattern")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the associative variant of hydra.lisp.syntax.DestructuringPattern-destructuringPatternAssociative :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.DestructuringPattern-destructuringPatternAssociative x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringPattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "associative"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.DestructuringPattern-destructuringPatternDestructuringPattern :: Typed.TypedName Syntax.DestructuringPattern-destructuringPatternDestructuringPattern = Typed.TypedName (Core.Name "hydra.lisp.syntax.DestructuringPattern")---- | DSL injection for the rest variant of hydra.lisp.syntax.DestructuringPattern-destructuringPatternRest :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.DestructuringPattern-destructuringPatternRest x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringPattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "rest"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the sequential variant of hydra.lisp.syntax.DestructuringPattern-destructuringPatternSequential :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.DestructuringPattern-destructuringPatternSequential x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.DestructuringPattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "sequential"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the clojure variant of hydra.lisp.syntax.Dialect-dialectClojure :: Typed.TypedTerm Syntax.Dialect-dialectClojure =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Dialect"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "clojure"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the commonLisp variant of hydra.lisp.syntax.Dialect-dialectCommonLisp :: Typed.TypedTerm Syntax.Dialect-dialectCommonLisp =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Dialect"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "commonLisp"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.lisp.syntax.Dialect-dialectDialect :: Typed.TypedName Syntax.Dialect-dialectDialect = Typed.TypedName (Core.Name "hydra.lisp.syntax.Dialect")---- | DSL injection for the emacsLisp variant of hydra.lisp.syntax.Dialect-dialectEmacsLisp :: Typed.TypedTerm Syntax.Dialect-dialectEmacsLisp =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Dialect"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "emacsLisp"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the scheme variant of hydra.lisp.syntax.Dialect-dialectScheme :: Typed.TypedTerm Syntax.Dialect-dialectScheme =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Dialect"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "scheme"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.lisp.syntax.DoExpression-doExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.DoExpression-doExpression expressions =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DoExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm expressions)}]}))---- | DSL name token for hydra.lisp.syntax.DoExpression-doExpressionDoExpression :: Typed.TypedName Syntax.DoExpression-doExpressionDoExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.DoExpression")---- | DSL accessor for the expressions field of hydra.lisp.syntax.DoExpression-doExpressionExpressions :: Typed.TypedTerm Syntax.DoExpression -> Typed.TypedTerm [Syntax.Expression]-doExpressionExpressions x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DoExpression"),- Core.projectionFieldName = (Core.Name "expressions")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expressions field of hydra.lisp.syntax.DoExpression-doExpressionWithExpressions :: Typed.TypedTerm Syntax.DoExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.DoExpression-doExpressionWithExpressions original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DoExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.lisp.syntax.Docstring wrapper-docstring :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Docstring-docstring x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.lisp.syntax.Docstring"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.Docstring-docstringDocstring :: Typed.TypedName Syntax.Docstring-docstringDocstring = Typed.TypedName (Core.Name "hydra.lisp.syntax.Docstring")---- | DSL constructor for hydra.lisp.syntax.DottedPair-dottedPair :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DottedPair-dottedPair car cdr =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "car"),- Core.fieldTerm = (Typed.unTypedTerm car)},- Core.Field {- Core.fieldName = (Core.Name "cdr"),- Core.fieldTerm = (Typed.unTypedTerm cdr)}]}))---- | DSL accessor for the car field of hydra.lisp.syntax.DottedPair-dottedPairCar :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression-dottedPairCar x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.projectionFieldName = (Core.Name "car")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cdr field of hydra.lisp.syntax.DottedPair-dottedPairCdr :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression-dottedPairCdr x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.projectionFieldName = (Core.Name "cdr")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.DottedPair-dottedPairDottedPair :: Typed.TypedName Syntax.DottedPair-dottedPairDottedPair = Typed.TypedName (Core.Name "hydra.lisp.syntax.DottedPair")---- | DSL updater for the car field of hydra.lisp.syntax.DottedPair-dottedPairWithCar :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DottedPair-dottedPairWithCar original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "car"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "cdr"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.projectionFieldName = (Core.Name "cdr")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the cdr field of hydra.lisp.syntax.DottedPair-dottedPairWithCdr :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DottedPair-dottedPairWithCdr original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "car"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.DottedPair"),- Core.projectionFieldName = (Core.Name "car")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "cdr"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.ExportDeclaration-exportDeclaration :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.ExportDeclaration-exportDeclaration symbols =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ExportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "symbols"),- Core.fieldTerm = (Typed.unTypedTerm symbols)}]}))---- | DSL name token for hydra.lisp.syntax.ExportDeclaration-exportDeclarationExportDeclaration :: Typed.TypedName Syntax.ExportDeclaration-exportDeclarationExportDeclaration = Typed.TypedName (Core.Name "hydra.lisp.syntax.ExportDeclaration")---- | DSL accessor for the symbols field of hydra.lisp.syntax.ExportDeclaration-exportDeclarationSymbols :: Typed.TypedTerm Syntax.ExportDeclaration -> Typed.TypedTerm [Syntax.Symbol]-exportDeclarationSymbols x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ExportDeclaration"),- Core.projectionFieldName = (Core.Name "symbols")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the symbols field of hydra.lisp.syntax.ExportDeclaration-exportDeclarationWithSymbols :: Typed.TypedTerm Syntax.ExportDeclaration -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.ExportDeclaration-exportDeclarationWithSymbols original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ExportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "symbols"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the and variant of hydra.lisp.syntax.Expression-expressionAnd :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm Syntax.Expression-expressionAnd x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "and"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the application variant of hydra.lisp.syntax.Expression-expressionApplication :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm Syntax.Expression-expressionApplication x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "application"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the begin variant of hydra.lisp.syntax.Expression-expressionBegin :: Typed.TypedTerm Syntax.BeginExpression -> Typed.TypedTerm Syntax.Expression-expressionBegin x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "begin"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the case variant of hydra.lisp.syntax.Expression-expressionCase :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm Syntax.Expression-expressionCase x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "case"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the cond variant of hydra.lisp.syntax.Expression-expressionCond :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm Syntax.Expression-expressionCond x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the cons variant of hydra.lisp.syntax.Expression-expressionCons :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression-expressionCons x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "cons"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the do variant of hydra.lisp.syntax.Expression-expressionDo :: Typed.TypedTerm Syntax.DoExpression -> Typed.TypedTerm Syntax.Expression-expressionDo x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "do"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the dottedPair variant of hydra.lisp.syntax.Expression-expressionDottedPair :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression-expressionDottedPair x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "dottedPair"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.Expression-expressionExpression :: Typed.TypedName Syntax.Expression-expressionExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.Expression")---- | DSL injection for the fieldAccess variant of hydra.lisp.syntax.Expression-expressionFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Expression-expressionFieldAccess x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "fieldAccess"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the if variant of hydra.lisp.syntax.Expression-expressionIf :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression-expressionIf x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "if"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the lambda variant of hydra.lisp.syntax.Expression-expressionLambda :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm Syntax.Expression-expressionLambda x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "lambda"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the let variant of hydra.lisp.syntax.Expression-expressionLet :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm Syntax.Expression-expressionLet x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "let"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the list variant of hydra.lisp.syntax.Expression-expressionList :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm Syntax.Expression-expressionList x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "list"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the literal variant of hydra.lisp.syntax.Expression-expressionLiteral :: Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.Expression-expressionLiteral x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "literal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the map variant of hydra.lisp.syntax.Expression-expressionMap :: Typed.TypedTerm Syntax.MapLiteral -> Typed.TypedTerm Syntax.Expression-expressionMap x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "map"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the not variant of hydra.lisp.syntax.Expression-expressionNot :: Typed.TypedTerm Syntax.NotExpression -> Typed.TypedTerm Syntax.Expression-expressionNot x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "not"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the or variant of hydra.lisp.syntax.Expression-expressionOr :: Typed.TypedTerm Syntax.OrExpression -> Typed.TypedTerm Syntax.Expression-expressionOr x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "or"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the quasiquote variant of hydra.lisp.syntax.Expression-expressionQuasiquote :: Typed.TypedTerm Syntax.QuasiquoteExpression -> Typed.TypedTerm Syntax.Expression-expressionQuasiquote x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "quasiquote"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the quote variant of hydra.lisp.syntax.Expression-expressionQuote :: Typed.TypedTerm Syntax.QuoteExpression -> Typed.TypedTerm Syntax.Expression-expressionQuote x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "quote"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the sExpression variant of hydra.lisp.syntax.Expression-expressionSExpression :: Typed.TypedTerm Syntax.SExpression -> Typed.TypedTerm Syntax.Expression-expressionSExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "sExpression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the set variant of hydra.lisp.syntax.Expression-expressionSet :: Typed.TypedTerm Syntax.SetLiteral -> Typed.TypedTerm Syntax.Expression-expressionSet x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "set"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the splicingUnquote variant of hydra.lisp.syntax.Expression-expressionSplicingUnquote :: Typed.TypedTerm Syntax.SplicingUnquoteExpression -> Typed.TypedTerm Syntax.Expression-expressionSplicingUnquote x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "splicingUnquote"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typeAnnotation variant of hydra.lisp.syntax.Expression-expressionTypeAnnotation :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.Expression-expressionTypeAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "typeAnnotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unquote variant of hydra.lisp.syntax.Expression-expressionUnquote :: Typed.TypedTerm Syntax.UnquoteExpression -> Typed.TypedTerm Syntax.Expression-expressionUnquote x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unquote"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the variable variant of hydra.lisp.syntax.Expression-expressionVariable :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Syntax.Expression-expressionVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the vector variant of hydra.lisp.syntax.Expression-expressionVector :: Typed.TypedTerm Syntax.VectorLiteral -> Typed.TypedTerm Syntax.Expression-expressionVector x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "vector"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.lisp.syntax.FieldAccess-fieldAccess :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.FieldAccess-fieldAccess recordType field target =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "recordType"),- Core.fieldTerm = (Typed.unTypedTerm recordType)},- Core.Field {- Core.fieldName = (Core.Name "field"),- Core.fieldTerm = (Typed.unTypedTerm field)},- Core.Field {- Core.fieldName = (Core.Name "target"),- Core.fieldTerm = (Typed.unTypedTerm target)}]}))---- | DSL accessor for the field field of hydra.lisp.syntax.FieldAccess-fieldAccessField :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol-fieldAccessField x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "field")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.FieldAccess-fieldAccessFieldAccess :: Typed.TypedName Syntax.FieldAccess-fieldAccessFieldAccess = Typed.TypedName (Core.Name "hydra.lisp.syntax.FieldAccess")---- | DSL accessor for the recordType field of hydra.lisp.syntax.FieldAccess-fieldAccessRecordType :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol-fieldAccessRecordType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "recordType")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the target field of hydra.lisp.syntax.FieldAccess-fieldAccessTarget :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Expression-fieldAccessTarget x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "target")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the field field of hydra.lisp.syntax.FieldAccess-fieldAccessWithField :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FieldAccess-fieldAccessWithField original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "recordType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "recordType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "field"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "target"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "target")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the recordType field of hydra.lisp.syntax.FieldAccess-fieldAccessWithRecordType :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FieldAccess-fieldAccessWithRecordType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "recordType"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "field"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "field")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "target"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "target")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the target field of hydra.lisp.syntax.FieldAccess-fieldAccessWithTarget :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.FieldAccess-fieldAccessWithTarget original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "recordType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "recordType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "field"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "field")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "target"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.FieldDefinition-fieldDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.FieldDefinition-fieldDefinition name defaultValue =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "defaultValue"),- Core.fieldTerm = (Typed.unTypedTerm defaultValue)}]}))---- | DSL accessor for the defaultValue field of hydra.lisp.syntax.FieldDefinition-fieldDefinitionDefaultValue :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm (Maybe Syntax.Expression)-fieldDefinitionDefaultValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldDefinition"),- Core.projectionFieldName = (Core.Name "defaultValue")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.FieldDefinition-fieldDefinitionFieldDefinition :: Typed.TypedName Syntax.FieldDefinition-fieldDefinitionFieldDefinition = Typed.TypedName (Core.Name "hydra.lisp.syntax.FieldDefinition")---- | DSL accessor for the name field of hydra.lisp.syntax.FieldDefinition-fieldDefinitionName :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm Syntax.Symbol-fieldDefinitionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the defaultValue field of hydra.lisp.syntax.FieldDefinition-fieldDefinitionWithDefaultValue :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.FieldDefinition-fieldDefinitionWithDefaultValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldDefinition"),- 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.lisp.syntax.FieldDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "defaultValue"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.FieldDefinition-fieldDefinitionWithName :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FieldDefinition-fieldDefinitionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FieldDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "defaultValue"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FieldDefinition"),- Core.projectionFieldName = (Core.Name "defaultValue")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.FloatLiteral-floatLiteral :: Typed.TypedTerm Double -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.FloatLiteral-floatLiteral value precision =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "precision"),- Core.fieldTerm = (Typed.unTypedTerm precision)}]}))---- | DSL name token for hydra.lisp.syntax.FloatLiteral-floatLiteralFloatLiteral :: Typed.TypedName Syntax.FloatLiteral-floatLiteralFloatLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.FloatLiteral")---- | DSL accessor for the precision field of hydra.lisp.syntax.FloatLiteral-floatLiteralPrecision :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm (Maybe String)-floatLiteralPrecision x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.projectionFieldName = (Core.Name "precision")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the value field of hydra.lisp.syntax.FloatLiteral-floatLiteralValue :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm Double-floatLiteralValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the precision field of hydra.lisp.syntax.FloatLiteral-floatLiteralWithPrecision :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.FloatLiteral-floatLiteralWithPrecision original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "precision"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the value field of hydra.lisp.syntax.FloatLiteral-floatLiteralWithValue :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm Double -> Typed.TypedTerm Syntax.FloatLiteral-floatLiteralWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "precision"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FloatLiteral"),- Core.projectionFieldName = (Core.Name "precision")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.FunctionDefinition-functionDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm [Syntax.TypeHint] -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinition name params restParam doc typeHints body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Typed.unTypedTerm params)},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Typed.unTypedTerm restParam)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm doc)},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- Core.fieldTerm = (Typed.unTypedTerm typeHints)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionBody :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Expression]-functionDefinitionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the doc field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionDoc :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)-functionDefinitionDoc x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.FunctionDefinition-functionDefinitionFunctionDefinition :: Typed.TypedName Syntax.FunctionDefinition-functionDefinitionFunctionDefinition = Typed.TypedName (Core.Name "hydra.lisp.syntax.FunctionDefinition")---- | DSL accessor for the name field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionName :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm Syntax.Symbol-functionDefinitionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the params field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionParams :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Symbol]-functionDefinitionParams x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the restParam field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionRestParam :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol)-functionDefinitionRestParam x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeHints field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionTypeHints :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.TypeHint]-functionDefinitionTypeHints x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "typeHints")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionWithBody :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinitionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "typeHints")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the doc field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionWithDoc :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinitionWithDoc original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "typeHints")})),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionWithName :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinitionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "typeHints")})),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the params field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionWithParams :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinitionWithParams original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "typeHints")})),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the restParam field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionWithRestParam :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinitionWithRestParam original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "typeHints")})),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeHints field of hydra.lisp.syntax.FunctionDefinition-functionDefinitionWithTypeHints :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.TypeHint] -> Typed.TypedTerm Syntax.FunctionDefinition-functionDefinitionWithTypeHints original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeHints"),- 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.lisp.syntax.FunctionDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.IfExpression-ifExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfExpression-ifExpression condition then_ else_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- Core.fieldTerm = (Typed.unTypedTerm condition)},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Typed.unTypedTerm then_)},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Typed.unTypedTerm else_)}]}))---- | DSL accessor for the condition field of hydra.lisp.syntax.IfExpression-ifExpressionCondition :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression-ifExpressionCondition x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "condition")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the else field of hydra.lisp.syntax.IfExpression-ifExpressionElse :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm (Maybe Syntax.Expression)-ifExpressionElse x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.IfExpression-ifExpressionIfExpression :: Typed.TypedName Syntax.IfExpression-ifExpressionIfExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.IfExpression")---- | DSL accessor for the then field of hydra.lisp.syntax.IfExpression-ifExpressionThen :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression-ifExpressionThen x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the condition field of hydra.lisp.syntax.IfExpression-ifExpressionWithCondition :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.IfExpression-ifExpressionWithCondition original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the else field of hydra.lisp.syntax.IfExpression-ifExpressionWithElse :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfExpression-ifExpressionWithElse original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "condition")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the then field of hydra.lisp.syntax.IfExpression-ifExpressionWithThen :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.IfExpression-ifExpressionWithThen original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "condition"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "condition")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IfExpression"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.ImportDeclaration-importDeclaration :: Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm Syntax.ImportSpec -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclaration module_ spec =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm module_)},- Core.Field {- Core.fieldName = (Core.Name "spec"),- Core.fieldTerm = (Typed.unTypedTerm spec)}]}))---- | DSL name token for hydra.lisp.syntax.ImportDeclaration-importDeclarationImportDeclaration :: Typed.TypedName Syntax.ImportDeclaration-importDeclarationImportDeclaration = Typed.TypedName (Core.Name "hydra.lisp.syntax.ImportDeclaration")---- | DSL accessor for the module field of hydra.lisp.syntax.ImportDeclaration-importDeclarationModule :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.NamespaceName-importDeclarationModule x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the spec field of hydra.lisp.syntax.ImportDeclaration-importDeclarationSpec :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.ImportSpec-importDeclarationSpec x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.projectionFieldName = (Core.Name "spec")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the module field of hydra.lisp.syntax.ImportDeclaration-importDeclarationWithModule :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclarationWithModule original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "spec"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.projectionFieldName = (Core.Name "spec")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the spec field of hydra.lisp.syntax.ImportDeclaration-importDeclarationWithSpec :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.ImportSpec -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclarationWithSpec original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ImportDeclaration"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "spec"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the alias variant of hydra.lisp.syntax.ImportSpec-importSpecAlias :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.ImportSpec-importSpecAlias x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.ImportSpec"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "alias"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the all variant of hydra.lisp.syntax.ImportSpec-importSpecAll :: Typed.TypedTerm Syntax.ImportSpec-importSpecAll =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.ImportSpec"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "all"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.lisp.syntax.ImportSpec-importSpecImportSpec :: Typed.TypedName Syntax.ImportSpec-importSpecImportSpec = Typed.TypedName (Core.Name "hydra.lisp.syntax.ImportSpec")---- | DSL injection for the only variant of hydra.lisp.syntax.ImportSpec-importSpecOnly :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.ImportSpec-importSpecOnly x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.ImportSpec"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "only"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the rename variant of hydra.lisp.syntax.ImportSpec-importSpecRename :: Typed.TypedTerm [[Syntax.Symbol]] -> Typed.TypedTerm Syntax.ImportSpec-importSpecRename x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.ImportSpec"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "rename"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.lisp.syntax.IntegerLiteral-integerLiteral :: Typed.TypedTerm Integer -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.IntegerLiteral-integerLiteral value bigint =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "bigint"),- Core.fieldTerm = (Typed.unTypedTerm bigint)}]}))---- | DSL accessor for the bigint field of hydra.lisp.syntax.IntegerLiteral-integerLiteralBigint :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Bool-integerLiteralBigint x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.projectionFieldName = (Core.Name "bigint")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.IntegerLiteral-integerLiteralIntegerLiteral :: Typed.TypedName Syntax.IntegerLiteral-integerLiteralIntegerLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.IntegerLiteral")---- | DSL accessor for the value field of hydra.lisp.syntax.IntegerLiteral-integerLiteralValue :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Integer-integerLiteralValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the bigint field of hydra.lisp.syntax.IntegerLiteral-integerLiteralWithBigint :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.IntegerLiteral-integerLiteralWithBigint original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bigint"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the value field of hydra.lisp.syntax.IntegerLiteral-integerLiteralWithValue :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Integer -> Typed.TypedTerm Syntax.IntegerLiteral-integerLiteralWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "bigint"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.IntegerLiteral"),- Core.projectionFieldName = (Core.Name "bigint")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.Keyword-keyword :: Typed.TypedTerm String -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.Keyword-keyword name namespace =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Keyword"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "namespace"),- Core.fieldTerm = (Typed.unTypedTerm namespace)}]}))---- | DSL name token for hydra.lisp.syntax.Keyword-keywordKeyword :: Typed.TypedName Syntax.Keyword-keywordKeyword = Typed.TypedName (Core.Name "hydra.lisp.syntax.Keyword")---- | DSL accessor for the name field of hydra.lisp.syntax.Keyword-keywordName :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm String-keywordName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Keyword"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the namespace field of hydra.lisp.syntax.Keyword-keywordNamespace :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm (Maybe String)-keywordNamespace x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Keyword"),- Core.projectionFieldName = (Core.Name "namespace")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.lisp.syntax.Keyword-keywordWithName :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.Keyword-keywordWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Keyword"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "namespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Keyword"),- Core.projectionFieldName = (Core.Name "namespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the namespace field of hydra.lisp.syntax.Keyword-keywordWithNamespace :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.Keyword-keywordWithNamespace original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Keyword"),- 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.lisp.syntax.Keyword"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "namespace"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.Lambda-lambda :: Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Lambda-lambda name params restParam body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Typed.unTypedTerm params)},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Typed.unTypedTerm restParam)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.Lambda-lambdaBody :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Expression]-lambdaBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.Lambda-lambdaLambda :: Typed.TypedName Syntax.Lambda-lambdaLambda = Typed.TypedName (Core.Name "hydra.lisp.syntax.Lambda")---- | DSL accessor for the name field of hydra.lisp.syntax.Lambda-lambdaName :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol)-lambdaName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the params field of hydra.lisp.syntax.Lambda-lambdaParams :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Symbol]-lambdaParams x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the restParam field of hydra.lisp.syntax.Lambda-lambdaRestParam :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol)-lambdaRestParam x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.lisp.syntax.Lambda-lambdaWithBody :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Lambda-lambdaWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- 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.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.Lambda-lambdaWithName :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.Lambda-lambdaWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "restParam")})),- 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.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the params field of hydra.lisp.syntax.Lambda-lambdaWithParams :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.Lambda-lambdaWithParams original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- 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.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "restParam")})),- 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.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the restParam field of hydra.lisp.syntax.Lambda-lambdaWithRestParam :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.Lambda-lambdaWithRestParam original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- 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.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- 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.lisp.syntax.Lambda"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the destructuring variant of hydra.lisp.syntax.LetBinding-letBindingDestructuring :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.LetBinding-letBindingDestructuring x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.LetBinding"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "destructuring"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.LetBinding-letBindingLetBinding :: Typed.TypedName Syntax.LetBinding-letBindingLetBinding = Typed.TypedName (Core.Name "hydra.lisp.syntax.LetBinding")---- | DSL injection for the simple variant of hydra.lisp.syntax.LetBinding-letBindingSimple :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.LetBinding-letBindingSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.LetBinding"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.lisp.syntax.LetExpression-letExpression :: Typed.TypedTerm Syntax.LetKind -> Typed.TypedTerm [Syntax.LetBinding] -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.LetExpression-letExpression kind bindings body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "kind"),- Core.fieldTerm = (Typed.unTypedTerm kind)},- Core.Field {- Core.fieldName = (Core.Name "bindings"),- Core.fieldTerm = (Typed.unTypedTerm bindings)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the bindings field of hydra.lisp.syntax.LetExpression-letExpressionBindings :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.LetBinding]-letExpressionBindings x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "bindings")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body field of hydra.lisp.syntax.LetExpression-letExpressionBody :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.Expression]-letExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the kind field of hydra.lisp.syntax.LetExpression-letExpressionKind :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm Syntax.LetKind-letExpressionKind x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "kind")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.LetExpression-letExpressionLetExpression :: Typed.TypedName Syntax.LetExpression-letExpressionLetExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.LetExpression")---- | DSL updater for the bindings field of hydra.lisp.syntax.LetExpression-letExpressionWithBindings :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.LetBinding] -> Typed.TypedTerm Syntax.LetExpression-letExpressionWithBindings original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "kind"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "kind")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bindings"),- 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.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the body field of hydra.lisp.syntax.LetExpression-letExpressionWithBody :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.LetExpression-letExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "kind"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "kind")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bindings"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "bindings")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the kind field of hydra.lisp.syntax.LetExpression-letExpressionWithKind :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm Syntax.LetKind -> Typed.TypedTerm Syntax.LetExpression-letExpressionWithKind original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "kind"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "bindings"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "bindings")})),- 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.lisp.syntax.LetExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.lisp.syntax.LetKind-letKindLetKind :: Typed.TypedName Syntax.LetKind-letKindLetKind = Typed.TypedName (Core.Name "hydra.lisp.syntax.LetKind")---- | DSL injection for the parallel variant of hydra.lisp.syntax.LetKind-letKindParallel :: Typed.TypedTerm Syntax.LetKind-letKindParallel =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.LetKind"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "parallel"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the recursive variant of hydra.lisp.syntax.LetKind-letKindRecursive :: Typed.TypedTerm Syntax.LetKind-letKindRecursive =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.LetKind"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "recursive"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the sequential variant of hydra.lisp.syntax.LetKind-letKindSequential :: Typed.TypedTerm Syntax.LetKind-letKindSequential =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.LetKind"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "sequential"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.lisp.syntax.ListLiteral-listLiteral :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ListLiteral-listLiteral elements quoted =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Typed.unTypedTerm elements)},- Core.Field {- Core.fieldName = (Core.Name "quoted"),- Core.fieldTerm = (Typed.unTypedTerm quoted)}]}))---- | DSL accessor for the elements field of hydra.lisp.syntax.ListLiteral-listLiteralElements :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm [Syntax.Expression]-listLiteralElements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.projectionFieldName = (Core.Name "elements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.ListLiteral-listLiteralListLiteral :: Typed.TypedName Syntax.ListLiteral-listLiteralListLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.ListLiteral")---- | DSL accessor for the quoted field of hydra.lisp.syntax.ListLiteral-listLiteralQuoted :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm Bool-listLiteralQuoted x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.projectionFieldName = (Core.Name "quoted")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the elements field of hydra.lisp.syntax.ListLiteral-listLiteralWithElements :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.ListLiteral-listLiteralWithElements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "quoted"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.projectionFieldName = (Core.Name "quoted")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the quoted field of hydra.lisp.syntax.ListLiteral-listLiteralWithQuoted :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ListLiteral-listLiteralWithQuoted original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ListLiteral"),- Core.projectionFieldName = (Core.Name "elements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "quoted"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the boolean variant of hydra.lisp.syntax.Literal-literalBoolean :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.Literal-literalBoolean x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "boolean"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the character variant of hydra.lisp.syntax.Literal-literalCharacter :: Typed.TypedTerm Syntax.CharacterLiteral -> Typed.TypedTerm Syntax.Literal-literalCharacter x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "character"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the decimal variant of hydra.lisp.syntax.Literal-literalDecimal :: Typed.TypedTerm Syntax.DecimalLiteral -> Typed.TypedTerm Syntax.Literal-literalDecimal x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "decimal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the float variant of hydra.lisp.syntax.Literal-literalFloat :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm Syntax.Literal-literalFloat x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "float"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the integer variant of hydra.lisp.syntax.Literal-literalInteger :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Syntax.Literal-literalInteger x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "integer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the keyword variant of hydra.lisp.syntax.Literal-literalKeyword :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm Syntax.Literal-literalKeyword x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "keyword"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.Literal-literalLiteral :: Typed.TypedName Syntax.Literal-literalLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.Literal")---- | DSL injection for the nil variant of hydra.lisp.syntax.Literal-literalNil :: Typed.TypedTerm Syntax.Literal-literalNil =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "nil"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.lisp.syntax.LiteralPattern-literalPattern :: Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.LiteralPattern-literalPattern value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.LiteralPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL name token for hydra.lisp.syntax.LiteralPattern-literalPatternLiteralPattern :: Typed.TypedName Syntax.LiteralPattern-literalPatternLiteralPattern = Typed.TypedName (Core.Name "hydra.lisp.syntax.LiteralPattern")---- | DSL accessor for the value field of hydra.lisp.syntax.LiteralPattern-literalPatternValue :: Typed.TypedTerm Syntax.LiteralPattern -> Typed.TypedTerm Syntax.Literal-literalPatternValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.LiteralPattern"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the value field of hydra.lisp.syntax.LiteralPattern-literalPatternWithValue :: Typed.TypedTerm Syntax.LiteralPattern -> Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.LiteralPattern-literalPatternWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.LiteralPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the string variant of hydra.lisp.syntax.Literal-literalString :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Literal-literalString x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "string"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the symbol variant of hydra.lisp.syntax.Literal-literalSymbol :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Literal-literalSymbol x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "symbol"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.lisp.syntax.MacroDefinition-macroDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MacroDefinition-macroDefinition name params restParam body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Typed.unTypedTerm params)},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Typed.unTypedTerm restParam)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.MacroDefinition-macroDefinitionBody :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Expression]-macroDefinitionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.MacroDefinition-macroDefinitionMacroDefinition :: Typed.TypedName Syntax.MacroDefinition-macroDefinitionMacroDefinition = Typed.TypedName (Core.Name "hydra.lisp.syntax.MacroDefinition")---- | DSL accessor for the name field of hydra.lisp.syntax.MacroDefinition-macroDefinitionName :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm Syntax.Symbol-macroDefinitionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the params field of hydra.lisp.syntax.MacroDefinition-macroDefinitionParams :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Symbol]-macroDefinitionParams x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the restParam field of hydra.lisp.syntax.MacroDefinition-macroDefinitionRestParam :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol)-macroDefinitionRestParam x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.lisp.syntax.MacroDefinition-macroDefinitionWithBody :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MacroDefinition-macroDefinitionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- 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.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.MacroDefinition-macroDefinitionWithName :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.MacroDefinition-macroDefinitionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- 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.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the params field of hydra.lisp.syntax.MacroDefinition-macroDefinitionWithParams :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.MacroDefinition-macroDefinitionWithParams original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- 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.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "restParam")})),- 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.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the restParam field of hydra.lisp.syntax.MacroDefinition-macroDefinitionWithRestParam :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.MacroDefinition-macroDefinitionWithRestParam original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- 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.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "params"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "params")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "restParam"),- 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.lisp.syntax.MacroDefinition"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.MapEntry-mapEntry :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.MapEntry-mapEntry key value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "key"),- Core.fieldTerm = (Typed.unTypedTerm key)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL accessor for the key field of hydra.lisp.syntax.MapEntry-mapEntryKey :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression-mapEntryKey x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.projectionFieldName = (Core.Name "key")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.MapEntry-mapEntryMapEntry :: Typed.TypedName Syntax.MapEntry-mapEntryMapEntry = Typed.TypedName (Core.Name "hydra.lisp.syntax.MapEntry")---- | DSL accessor for the value field of hydra.lisp.syntax.MapEntry-mapEntryValue :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression-mapEntryValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the key field of hydra.lisp.syntax.MapEntry-mapEntryWithKey :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.MapEntry-mapEntryWithKey original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "key"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.lisp.syntax.MapEntry-mapEntryWithValue :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.MapEntry-mapEntryWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "key"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MapEntry"),- Core.projectionFieldName = (Core.Name "key")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.MapLiteral-mapLiteral :: Typed.TypedTerm [Syntax.MapEntry] -> Typed.TypedTerm Syntax.MapLiteral-mapLiteral entries =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MapLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "entries"),- Core.fieldTerm = (Typed.unTypedTerm entries)}]}))---- | DSL accessor for the entries field of hydra.lisp.syntax.MapLiteral-mapLiteralEntries :: Typed.TypedTerm Syntax.MapLiteral -> Typed.TypedTerm [Syntax.MapEntry]-mapLiteralEntries x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.MapLiteral"),- Core.projectionFieldName = (Core.Name "entries")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.MapLiteral-mapLiteralMapLiteral :: Typed.TypedName Syntax.MapLiteral-mapLiteralMapLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.MapLiteral")---- | DSL updater for the entries field of hydra.lisp.syntax.MapLiteral-mapLiteralWithEntries :: Typed.TypedTerm Syntax.MapLiteral -> Typed.TypedTerm [Syntax.MapEntry] -> Typed.TypedTerm Syntax.MapLiteral-mapLiteralWithEntries original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.MapLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "entries"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.ModuleDeclaration-moduleDeclaration :: Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclaration name doc =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm doc)}]}))---- | DSL accessor for the doc field of hydra.lisp.syntax.ModuleDeclaration-moduleDeclarationDoc :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm (Maybe Syntax.Docstring)-moduleDeclarationDoc x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.ModuleDeclaration-moduleDeclarationModuleDeclaration :: Typed.TypedName Syntax.ModuleDeclaration-moduleDeclarationModuleDeclaration = Typed.TypedName (Core.Name "hydra.lisp.syntax.ModuleDeclaration")---- | DSL accessor for the name field of hydra.lisp.syntax.ModuleDeclaration-moduleDeclarationName :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.NamespaceName-moduleDeclarationName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the doc field of hydra.lisp.syntax.ModuleDeclaration-moduleDeclarationWithDoc :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclarationWithDoc original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ModuleDeclaration"),- 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.lisp.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.ModuleDeclaration-moduleDeclarationWithName :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclarationWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.lisp.syntax.NamespaceName wrapper-namespaceName :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.NamespaceName-namespaceName x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.lisp.syntax.NamespaceName"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.NamespaceName-namespaceNameNamespaceName :: Typed.TypedName Syntax.NamespaceName-namespaceNameNamespaceName = Typed.TypedName (Core.Name "hydra.lisp.syntax.NamespaceName")---- | DSL injection for the emptyList variant of hydra.lisp.syntax.NilStyle-nilStyleEmptyList :: Typed.TypedTerm Syntax.NilStyle-nilStyleEmptyList =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.NilStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "emptyList"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the nil variant of hydra.lisp.syntax.NilStyle-nilStyleNil :: Typed.TypedTerm Syntax.NilStyle-nilStyleNil =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.NilStyle"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "nil"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.lisp.syntax.NilStyle-nilStyleNilStyle :: Typed.TypedName Syntax.NilStyle-nilStyleNilStyle = Typed.TypedName (Core.Name "hydra.lisp.syntax.NilStyle")---- | DSL constructor for hydra.lisp.syntax.NotExpression-notExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.NotExpression-notExpression expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.NotExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL accessor for the expression field of hydra.lisp.syntax.NotExpression-notExpressionExpression :: Typed.TypedTerm Syntax.NotExpression -> Typed.TypedTerm Syntax.Expression-notExpressionExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.NotExpression"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.NotExpression-notExpressionNotExpression :: Typed.TypedName Syntax.NotExpression-notExpressionNotExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.NotExpression")---- | DSL updater for the expression field of hydra.lisp.syntax.NotExpression-notExpressionWithExpression :: Typed.TypedTerm Syntax.NotExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.NotExpression-notExpressionWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.NotExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.OrExpression-orExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.OrExpression-orExpression expressions =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.OrExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm expressions)}]}))---- | DSL accessor for the expressions field of hydra.lisp.syntax.OrExpression-orExpressionExpressions :: Typed.TypedTerm Syntax.OrExpression -> Typed.TypedTerm [Syntax.Expression]-orExpressionExpressions x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.OrExpression"),- Core.projectionFieldName = (Core.Name "expressions")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.OrExpression-orExpressionOrExpression :: Typed.TypedName Syntax.OrExpression-orExpressionOrExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.OrExpression")---- | DSL updater for the expressions field of hydra.lisp.syntax.OrExpression-orExpressionWithExpressions :: Typed.TypedTerm Syntax.OrExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.OrExpression-orExpressionWithExpressions original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.OrExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expressions"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the constructor variant of hydra.lisp.syntax.Pattern-patternConstructor :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm Syntax.Pattern-patternConstructor x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Pattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the literal variant of hydra.lisp.syntax.Pattern-patternLiteral :: Typed.TypedTerm Syntax.LiteralPattern -> Typed.TypedTerm Syntax.Pattern-patternLiteral x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Pattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "literal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.Pattern-patternPattern :: Typed.TypedName Syntax.Pattern-patternPattern = Typed.TypedName (Core.Name "hydra.lisp.syntax.Pattern")---- | DSL injection for the variable variant of hydra.lisp.syntax.Pattern-patternVariable :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Pattern-patternVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Pattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the wildcard variant of hydra.lisp.syntax.Pattern-patternWildcard :: Typed.TypedTerm Syntax.WildcardPattern -> Typed.TypedTerm Syntax.Pattern-patternWildcard x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.Pattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "wildcard"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.lisp.syntax.Program-program :: Typed.TypedTerm Syntax.Dialect -> Typed.TypedTerm (Maybe Syntax.ModuleDeclaration) -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm [Syntax.ExportDeclaration] -> Typed.TypedTerm [Syntax.TopLevelFormWithComments] -> Typed.TypedTerm Syntax.Program-program dialect module_ imports exports forms =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dialect"),- Core.fieldTerm = (Typed.unTypedTerm dialect)},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm module_)},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Typed.unTypedTerm imports)},- Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Typed.unTypedTerm exports)},- Core.Field {- Core.fieldName = (Core.Name "forms"),- Core.fieldTerm = (Typed.unTypedTerm forms)}]}))---- | DSL accessor for the dialect field of hydra.lisp.syntax.Program-programDialect :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm Syntax.Dialect-programDialect x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "dialect")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the exports field of hydra.lisp.syntax.Program-programExports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ExportDeclaration]-programExports x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "exports")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the forms field of hydra.lisp.syntax.Program-programForms :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.TopLevelFormWithComments]-programForms x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "forms")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the imports field of hydra.lisp.syntax.Program-programImports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ImportDeclaration]-programImports x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the module field of hydra.lisp.syntax.Program-programModule :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm (Maybe Syntax.ModuleDeclaration)-programModule x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.Program-programProgram :: Typed.TypedName Syntax.Program-programProgram = Typed.TypedName (Core.Name "hydra.lisp.syntax.Program")---- | DSL updater for the dialect field of hydra.lisp.syntax.Program-programWithDialect :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm Syntax.Dialect -> Typed.TypedTerm Syntax.Program-programWithDialect original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dialect"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "exports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "forms"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "forms")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the exports field of hydra.lisp.syntax.Program-programWithExports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ExportDeclaration] -> Typed.TypedTerm Syntax.Program-programWithExports original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dialect"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "dialect")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "forms"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "forms")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the forms field of hydra.lisp.syntax.Program-programWithForms :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.TopLevelFormWithComments] -> Typed.TypedTerm Syntax.Program-programWithForms original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dialect"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "dialect")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "exports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "forms"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the imports field of hydra.lisp.syntax.Program-programWithImports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.Program-programWithImports original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dialect"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "dialect")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "exports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "forms"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "forms")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the module field of hydra.lisp.syntax.Program-programWithModule :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm (Maybe Syntax.ModuleDeclaration) -> Typed.TypedTerm Syntax.Program-programWithModule original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dialect"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "dialect")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "exports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "forms"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.Program"),- Core.projectionFieldName = (Core.Name "forms")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.QualifiedSymbol-qualifiedSymbol :: Typed.TypedTerm String -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.QualifiedSymbol-qualifiedSymbol namespace name =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QualifiedSymbol"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "namespace"),- Core.fieldTerm = (Typed.unTypedTerm namespace)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.lisp.syntax.QualifiedSymbol-qualifiedSymbolName :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String-qualifiedSymbolName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.QualifiedSymbol"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the namespace field of hydra.lisp.syntax.QualifiedSymbol-qualifiedSymbolNamespace :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String-qualifiedSymbolNamespace x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.QualifiedSymbol"),- Core.projectionFieldName = (Core.Name "namespace")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.QualifiedSymbol-qualifiedSymbolQualifiedSymbol :: Typed.TypedName Syntax.QualifiedSymbol-qualifiedSymbolQualifiedSymbol = Typed.TypedName (Core.Name "hydra.lisp.syntax.QualifiedSymbol")---- | DSL updater for the name field of hydra.lisp.syntax.QualifiedSymbol-qualifiedSymbolWithName :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.QualifiedSymbol-qualifiedSymbolWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QualifiedSymbol"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "namespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.QualifiedSymbol"),- Core.projectionFieldName = (Core.Name "namespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the namespace field of hydra.lisp.syntax.QualifiedSymbol-qualifiedSymbolWithNamespace :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.QualifiedSymbol-qualifiedSymbolWithNamespace original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QualifiedSymbol"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "namespace"),- 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.lisp.syntax.QualifiedSymbol"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.QuasiquoteExpression-quasiquoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuasiquoteExpression-quasiquoteExpression body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QuasiquoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.QuasiquoteExpression-quasiquoteExpressionBody :: Typed.TypedTerm Syntax.QuasiquoteExpression -> Typed.TypedTerm Syntax.Expression-quasiquoteExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.QuasiquoteExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.QuasiquoteExpression-quasiquoteExpressionQuasiquoteExpression :: Typed.TypedName Syntax.QuasiquoteExpression-quasiquoteExpressionQuasiquoteExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.QuasiquoteExpression")---- | DSL updater for the body field of hydra.lisp.syntax.QuasiquoteExpression-quasiquoteExpressionWithBody :: Typed.TypedTerm Syntax.QuasiquoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuasiquoteExpression-quasiquoteExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QuasiquoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.QuoteExpression-quoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuoteExpression-quoteExpression body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QuoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.QuoteExpression-quoteExpressionBody :: Typed.TypedTerm Syntax.QuoteExpression -> Typed.TypedTerm Syntax.Expression-quoteExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.QuoteExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.QuoteExpression-quoteExpressionQuoteExpression :: Typed.TypedName Syntax.QuoteExpression-quoteExpressionQuoteExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.QuoteExpression")---- | DSL updater for the body field of hydra.lisp.syntax.QuoteExpression-quoteExpressionWithBody :: Typed.TypedTerm Syntax.QuoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuoteExpression-quoteExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.QuoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.FieldDefinition] -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.RecordTypeDefinition-recordTypeDefinition name fields doc =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "fields"),- Core.fieldTerm = (Typed.unTypedTerm fields)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm doc)}]}))---- | DSL accessor for the doc field of hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionDoc :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)-recordTypeDefinitionDoc x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the fields field of hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionFields :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm [Syntax.FieldDefinition]-recordTypeDefinitionFields x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "fields")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionName :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm Syntax.Symbol-recordTypeDefinitionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionRecordTypeDefinition :: Typed.TypedName Syntax.RecordTypeDefinition-recordTypeDefinitionRecordTypeDefinition = Typed.TypedName (Core.Name "hydra.lisp.syntax.RecordTypeDefinition")---- | DSL updater for the doc field of hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionWithDoc :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.RecordTypeDefinition-recordTypeDefinitionWithDoc original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- 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.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "fields"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "fields")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the fields field of hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionWithFields :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm [Syntax.FieldDefinition] -> Typed.TypedTerm Syntax.RecordTypeDefinition-recordTypeDefinitionWithFields original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- 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.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "fields"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.lisp.syntax.RecordTypeDefinition-recordTypeDefinitionWithName :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.RecordTypeDefinition-recordTypeDefinitionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "fields"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "fields")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.RecordTypeDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the atom variant of hydra.lisp.syntax.SExpression-sExpressionAtom :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.SExpression-sExpressionAtom x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.SExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "atom"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the list variant of hydra.lisp.syntax.SExpression-sExpressionList :: Typed.TypedTerm [Syntax.SExpression] -> Typed.TypedTerm Syntax.SExpression-sExpressionList x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.SExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "list"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.SExpression-sExpressionSExpression :: Typed.TypedName Syntax.SExpression-sExpressionSExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.SExpression")---- | DSL constructor for hydra.lisp.syntax.SetLiteral-setLiteral :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.SetLiteral-setLiteral elements =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SetLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Typed.unTypedTerm elements)}]}))---- | DSL accessor for the elements field of hydra.lisp.syntax.SetLiteral-setLiteralElements :: Typed.TypedTerm Syntax.SetLiteral -> Typed.TypedTerm [Syntax.Expression]-setLiteralElements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.SetLiteral"),- Core.projectionFieldName = (Core.Name "elements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.SetLiteral-setLiteralSetLiteral :: Typed.TypedName Syntax.SetLiteral-setLiteralSetLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.SetLiteral")---- | DSL updater for the elements field of hydra.lisp.syntax.SetLiteral-setLiteralWithElements :: Typed.TypedTerm Syntax.SetLiteral -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.SetLiteral-setLiteralWithElements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SetLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.SimpleBinding-simpleBinding :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SimpleBinding-simpleBinding name value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SimpleBinding"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL accessor for the name field of hydra.lisp.syntax.SimpleBinding-simpleBindingName :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Symbol-simpleBindingName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.SimpleBinding"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.SimpleBinding-simpleBindingSimpleBinding :: Typed.TypedName Syntax.SimpleBinding-simpleBindingSimpleBinding = Typed.TypedName (Core.Name "hydra.lisp.syntax.SimpleBinding")---- | DSL accessor for the value field of hydra.lisp.syntax.SimpleBinding-simpleBindingValue :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Expression-simpleBindingValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.SimpleBinding"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.lisp.syntax.SimpleBinding-simpleBindingWithName :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.SimpleBinding-simpleBindingWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SimpleBinding"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.SimpleBinding"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.lisp.syntax.SimpleBinding-simpleBindingWithValue :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SimpleBinding-simpleBindingWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SimpleBinding"),- 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.lisp.syntax.SimpleBinding"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.SplicingUnquoteExpression-splicingUnquoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SplicingUnquoteExpression-splicingUnquoteExpression body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SplicingUnquoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.SplicingUnquoteExpression-splicingUnquoteExpressionBody :: Typed.TypedTerm Syntax.SplicingUnquoteExpression -> Typed.TypedTerm Syntax.Expression-splicingUnquoteExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.SplicingUnquoteExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.SplicingUnquoteExpression-splicingUnquoteExpressionSplicingUnquoteExpression :: Typed.TypedName Syntax.SplicingUnquoteExpression-splicingUnquoteExpressionSplicingUnquoteExpression =- Typed.TypedName (Core.Name "hydra.lisp.syntax.SplicingUnquoteExpression")---- | DSL updater for the body field of hydra.lisp.syntax.SplicingUnquoteExpression-splicingUnquoteExpressionWithBody :: Typed.TypedTerm Syntax.SplicingUnquoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SplicingUnquoteExpression-splicingUnquoteExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.SplicingUnquoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.lisp.syntax.Symbol wrapper-symbol :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Symbol-symbol x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.lisp.syntax.Symbol"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.Symbol-symbolSymbol :: Typed.TypedName Syntax.Symbol-symbolSymbol = Typed.TypedName (Core.Name "hydra.lisp.syntax.Symbol")---- | DSL injection for the constant variant of hydra.lisp.syntax.TopLevelForm-topLevelFormConstant :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormConstant x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelForm"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "constant"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expression variant of hydra.lisp.syntax.TopLevelForm-topLevelFormExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelForm"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the function variant of hydra.lisp.syntax.TopLevelForm-topLevelFormFunction :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormFunction x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelForm"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "function"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the macro variant of hydra.lisp.syntax.TopLevelForm-topLevelFormMacro :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormMacro x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelForm"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "macro"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the recordType variant of hydra.lisp.syntax.TopLevelForm-topLevelFormRecordType :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormRecordType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelForm"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "recordType"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.TopLevelForm-topLevelFormTopLevelForm :: Typed.TypedName Syntax.TopLevelForm-topLevelFormTopLevelForm = Typed.TypedName (Core.Name "hydra.lisp.syntax.TopLevelForm")---- | DSL injection for the variable variant of hydra.lisp.syntax.TopLevelForm-topLevelFormVariable :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelForm"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithComments :: Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm (Maybe Syntax.Comment) -> Typed.TypedTerm Syntax.TopLevelForm -> Typed.TypedTerm Syntax.TopLevelFormWithComments-topLevelFormWithComments doc comment form =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm doc)},- Core.Field {- Core.fieldName = (Core.Name "comment"),- Core.fieldTerm = (Typed.unTypedTerm comment)},- Core.Field {- Core.fieldName = (Core.Name "form"),- Core.fieldTerm = (Typed.unTypedTerm form)}]}))---- | DSL accessor for the comment field of hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsComment :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Comment)-topLevelFormWithCommentsComment x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "comment")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the doc field of hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsDoc :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Docstring)-topLevelFormWithCommentsDoc x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the form field of hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsForm :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm Syntax.TopLevelForm-topLevelFormWithCommentsForm x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "form")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsTopLevelFormWithComments :: Typed.TypedName Syntax.TopLevelFormWithComments-topLevelFormWithCommentsTopLevelFormWithComments =- Typed.TypedName (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments")---- | DSL updater for the comment field of hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsWithComment :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Comment) -> Typed.TypedTerm Syntax.TopLevelFormWithComments-topLevelFormWithCommentsWithComment original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "comment"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "form"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "form")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the doc field of hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsWithDoc :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.TopLevelFormWithComments-topLevelFormWithCommentsWithDoc original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "comment"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "comment")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "form"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "form")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the form field of hydra.lisp.syntax.TopLevelFormWithComments-topLevelFormWithCommentsWithForm :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm Syntax.TopLevelForm -> Typed.TypedTerm Syntax.TopLevelFormWithComments-topLevelFormWithCommentsWithForm original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "comment"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"),- Core.projectionFieldName = (Core.Name "comment")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "form"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.TypeAnnotation-typeAnnotation :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeAnnotation-typeAnnotation expression type_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)}]}))---- | DSL accessor for the expression field of hydra.lisp.syntax.TypeAnnotation-typeAnnotationExpression :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.Expression-typeAnnotationExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.lisp.syntax.TypeAnnotation-typeAnnotationType :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.TypeSpecifier-typeAnnotationType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.TypeAnnotation-typeAnnotationTypeAnnotation :: Typed.TypedName Syntax.TypeAnnotation-typeAnnotationTypeAnnotation = Typed.TypedName (Core.Name "hydra.lisp.syntax.TypeAnnotation")---- | DSL updater for the expression field of hydra.lisp.syntax.TypeAnnotation-typeAnnotationWithExpression :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.TypeAnnotation-typeAnnotationWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.lisp.syntax.TypeAnnotation-typeAnnotationWithType :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeAnnotation-typeAnnotationWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeAnnotation"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.TypeHint-typeHint :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeHint-typeHint name type_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TypeHint"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)}]}))---- | DSL accessor for the name field of hydra.lisp.syntax.TypeHint-typeHintName :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.Symbol-typeHintName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeHint"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.lisp.syntax.TypeHint-typeHintType :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.TypeSpecifier-typeHintType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeHint"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.TypeHint-typeHintTypeHint :: Typed.TypedName Syntax.TypeHint-typeHintTypeHint = Typed.TypedName (Core.Name "hydra.lisp.syntax.TypeHint")---- | DSL updater for the name field of hydra.lisp.syntax.TypeHint-typeHintWithName :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.TypeHint-typeHintWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TypeHint"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.TypeHint"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.lisp.syntax.TypeHint-typeHintWithType :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeHint-typeHintWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.TypeHint"),- 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.lisp.syntax.TypeHint"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the either variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierEither :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierEither x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "either"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the function variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierFunction :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierFunction x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "function"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the list variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierList :: Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierList x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "list"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the map variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierMap :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierMap x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "map"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the maybe variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierMaybe :: Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierMaybe x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "maybe"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the named variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierNamed :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierNamed x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "named"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the pair variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierPair :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierPair x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "pair"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the set variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierSet :: Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierSet x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "set"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.lisp.syntax.TypeSpecifier-typeSpecifierTypeSpecifier :: Typed.TypedName Syntax.TypeSpecifier-typeSpecifierTypeSpecifier = Typed.TypedName (Core.Name "hydra.lisp.syntax.TypeSpecifier")---- | DSL injection for the unit variant of hydra.lisp.syntax.TypeSpecifier-typeSpecifierUnit :: Typed.TypedTerm Syntax.TypeSpecifier-typeSpecifierUnit =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.lisp.syntax.TypeSpecifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unit"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL accessor for the body of hydra.lisp.syntax.Docstring-unDocstring :: Typed.TypedTerm Syntax.Docstring -> Typed.TypedTerm String-unDocstring x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.lisp.syntax.Docstring")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.lisp.syntax.NamespaceName-unNamespaceName :: Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm String-unNamespaceName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.lisp.syntax.NamespaceName")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.lisp.syntax.Symbol-unSymbol :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm String-unSymbol x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.lisp.syntax.Symbol")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.lisp.syntax.UnquoteExpression-unquoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.UnquoteExpression-unquoteExpression body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.UnquoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.lisp.syntax.UnquoteExpression-unquoteExpressionBody :: Typed.TypedTerm Syntax.UnquoteExpression -> Typed.TypedTerm Syntax.Expression-unquoteExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.UnquoteExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.UnquoteExpression-unquoteExpressionUnquoteExpression :: Typed.TypedName Syntax.UnquoteExpression-unquoteExpressionUnquoteExpression = Typed.TypedName (Core.Name "hydra.lisp.syntax.UnquoteExpression")---- | DSL updater for the body field of hydra.lisp.syntax.UnquoteExpression-unquoteExpressionWithBody :: Typed.TypedTerm Syntax.UnquoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.UnquoteExpression-unquoteExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.UnquoteExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.lisp.syntax.VariableDefinition-variableDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.VariableDefinition-variableDefinition name value doc =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm doc)}]}))---- | DSL accessor for the doc field of hydra.lisp.syntax.VariableDefinition-variableDefinitionDoc :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)-variableDefinitionDoc x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.lisp.syntax.VariableDefinition-variableDefinitionName :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Symbol-variableDefinitionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the value field of hydra.lisp.syntax.VariableDefinition-variableDefinitionValue :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Expression-variableDefinitionValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.VariableDefinition-variableDefinitionVariableDefinition :: Typed.TypedName Syntax.VariableDefinition-variableDefinitionVariableDefinition = Typed.TypedName (Core.Name "hydra.lisp.syntax.VariableDefinition")---- | DSL updater for the doc field of hydra.lisp.syntax.VariableDefinition-variableDefinitionWithDoc :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.VariableDefinition-variableDefinitionWithDoc original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- 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.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.VariableDefinition-variableDefinitionWithName :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.VariableDefinition-variableDefinitionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.lisp.syntax.VariableDefinition-variableDefinitionWithValue :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.VariableDefinition-variableDefinitionWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- 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.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "doc"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableDefinition"),- Core.projectionFieldName = (Core.Name "doc")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.VariableReference-variableReference :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.VariableReference-variableReference name functionNamespace =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableReference"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "functionNamespace"),- Core.fieldTerm = (Typed.unTypedTerm functionNamespace)}]}))---- | DSL accessor for the functionNamespace field of hydra.lisp.syntax.VariableReference-variableReferenceFunctionNamespace :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Bool-variableReferenceFunctionNamespace x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableReference"),- Core.projectionFieldName = (Core.Name "functionNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.lisp.syntax.VariableReference-variableReferenceName :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Syntax.Symbol-variableReferenceName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableReference"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.VariableReference-variableReferenceVariableReference :: Typed.TypedName Syntax.VariableReference-variableReferenceVariableReference = Typed.TypedName (Core.Name "hydra.lisp.syntax.VariableReference")---- | DSL updater for the functionNamespace field of hydra.lisp.syntax.VariableReference-variableReferenceWithFunctionNamespace :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.VariableReference-variableReferenceWithFunctionNamespace original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableReference"),- 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.lisp.syntax.VariableReference"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "functionNamespace"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.lisp.syntax.VariableReference-variableReferenceWithName :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.VariableReference-variableReferenceWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VariableReference"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "functionNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VariableReference"),- Core.projectionFieldName = (Core.Name "functionNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.lisp.syntax.VectorLiteral-vectorLiteral :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.VectorLiteral-vectorLiteral elements =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VectorLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Typed.unTypedTerm elements)}]}))---- | DSL accessor for the elements field of hydra.lisp.syntax.VectorLiteral-vectorLiteralElements :: Typed.TypedTerm Syntax.VectorLiteral -> Typed.TypedTerm [Syntax.Expression]-vectorLiteralElements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.lisp.syntax.VectorLiteral"),- Core.projectionFieldName = (Core.Name "elements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.lisp.syntax.VectorLiteral-vectorLiteralVectorLiteral :: Typed.TypedName Syntax.VectorLiteral-vectorLiteralVectorLiteral = Typed.TypedName (Core.Name "hydra.lisp.syntax.VectorLiteral")---- | DSL updater for the elements field of hydra.lisp.syntax.VectorLiteral-vectorLiteralWithElements :: Typed.TypedTerm Syntax.VectorLiteral -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.VectorLiteral-vectorLiteralWithElements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.lisp.syntax.VectorLiteral"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "elements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))
src/main/haskell/Hydra/Lisp/Coder.hs view
@@ -4,58 +4,60 @@ module Hydra.Lisp.Coder where -import qualified Hydra.Analysis as Analysis-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.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.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.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.Core.Analysis as Analysis+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Diff as Diff+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.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.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.Markdown as Markdown+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.Regex as Regex+import qualified Hydra.Core.Relational as Relational+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.Lisp.Language as Language import qualified Hydra.Lisp.Syntax as Syntax-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.Regex as Regex-import qualified Hydra.Relational as Relational-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@@ -98,8 +100,8 @@ Syntax.DialectClojure -> False _ -> True --- | Encode a function application, detecting ifElse and other lazy primitives; transforms (((hydra.lib.logic.ifElse C) T) E) into native (if C T E)-encodeApplication :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Core.Term -> Core.Term -> Either t1 Syntax.Expression+-- | Encode a function application, detecting ifElse and other lazy primitives; transforms (((hydra.core.lib.logic.ifElse C) T) E) into native (if C T E)+encodeApplication :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Model.Term -> Model.Term -> Either t1 Syntax.Expression encodeApplication dialect overlaySubs cx g rawFun rawArg = let dFun = Strip.deannotateTerm rawFun@@ -108,19 +110,19 @@ arg]))) enc = \t -> encodeTerm dialect overlaySubs cx g t in case dFun of- Core.TermApplication v0 ->- let midFun = Core.applicationFunction v0- midArg = Core.applicationArgument v0+ Model.TermApplication v0 ->+ let midFun = Model.applicationFunction v0+ midArg = Model.applicationArgument v0 dMidFun = Strip.deannotateTerm midFun isLazy2 = primIsLazyAt g dMidFun 0 in (Logic.ifElse isLazy2 (Eithers.bind (enc midFun) (\ePrim -> Eithers.bind (enc midArg) (\eDef -> Eithers.bind (enc rawArg) (\eArg -> Right (lispApp (lispApp ePrim [ wrapInThunk eDef]) [ eArg]))))) (case dMidFun of- Core.TermApplication v1 ->- let innerFun = Core.applicationFunction v1- innerArg = Core.applicationArgument v1+ Model.TermApplication v1 ->+ let innerFun = Model.applicationFunction v1+ innerArg = Model.applicationArgument v1 dInnerFun = Strip.deannotateTerm innerFun- in (Logic.ifElse (isPrimitiveRef "hydra.lib.logic.ifElse" dInnerFun) (Eithers.bind (enc innerArg) (\eC -> Eithers.bind (enc midArg) (\eT -> Eithers.bind (enc rawArg) (\eE -> Right (Syntax.ExpressionIf (Syntax.IfExpression {+ in (Logic.ifElse (isPrimitiveRef "hydra.core.lib.logic.ifElse" dInnerFun) (Eithers.bind (enc innerArg) (\eC -> Eithers.bind (enc midArg) (\eT -> Eithers.bind (enc rawArg) (\eE -> Right (Syntax.ExpressionIf (Syntax.IfExpression { Syntax.ifExpressionCondition = eC, Syntax.ifExpressionThen = eT, Syntax.ifExpressionElse = (Just eE)})))))) (Logic.ifElse (primIsLazyAt g dInnerFun 0) (Eithers.bind (enc innerFun) (\eP -> Eithers.bind (enc innerArg) (\eDef -> Eithers.bind (enc midArg) (\eF -> Eithers.bind (enc rawArg) (\eM -> Right (lispApp (lispApp (lispApp eP [@@ -134,54 +136,54 @@ _ -> normal () -- | Encode a Hydra field type as a Lisp field definition-encodeFieldDef :: Core.FieldType -> Syntax.FieldDefinition+encodeFieldDef :: Model.FieldType -> Syntax.FieldDefinition encodeFieldDef ft = - let fname = Core.unName (Core.fieldTypeName ft)+ let fname = Model.unName (Model.fieldTypeName ft) in Syntax.FieldDefinition { Syntax.fieldDefinitionName = (Syntax.Symbol (Formatting.convertCaseCamelToLowerSnake fname)), Syntax.fieldDefinitionDefaultValue = Nothing} -- | Encode a Hydra lambda as a Lisp expression-encodeLambdaTerm :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Core.Lambda -> Either t1 Syntax.Expression+encodeLambdaTerm :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Model.Lambda -> Either t1 Syntax.Expression encodeLambdaTerm dialect overlaySubs cx g lam = let param =- Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords (Core.unName (Core.lambdaParameter lam)))- in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Core.lambdaBody lam)) (\body -> Right (lispLambdaExpr [+ Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords (Model.unName (Model.lambdaParameter lam)))+ in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Model.lambdaBody lam)) (\body -> Right (lispLambdaExpr [ param] body))) -- | Encode let bindings as nested ((lambda (x) body) init) applications, for self-referential non-lambda bindings-encodeLetAsLambdaApp :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> [Core.Binding] -> Core.Term -> Either t1 Syntax.Expression+encodeLetAsLambdaApp :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> [Model.Binding] -> Model.Term -> Either t1 Syntax.Expression encodeLetAsLambdaApp dialect overlaySubs cx g bindings body = Eithers.bind (encodeTerm dialect overlaySubs cx g body) (\bodyExpr -> Eithers.foldList (\acc -> \b -> let bname =- Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords (Core.unName (Core.bindingName b)))- in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Core.bindingTerm b)) (\bval -> Right (lispApp (lispLambdaExpr [+ Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords (Model.unName (Model.bindingName b)))+ in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Model.bindingTerm b)) (\bval -> Right (lispApp (lispLambdaExpr [ bname] acc) [ bval])))) bodyExpr (Lists.reverse bindings)) -- | Encode let bindings as native let, let*, or letrec expressions depending on self-reference and binding count-encodeLetAsNative :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> [Core.Binding] -> Core.Term -> Either t1 Syntax.Expression+encodeLetAsNative :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> [Model.Binding] -> Model.Term -> Either t1 Syntax.Expression encodeLetAsNative dialect overlaySubs cx g bindings body = Eithers.bind (encodeTerm dialect overlaySubs cx g body) (\bodyExpr -> let supportsLetrec = dialectSupportsLetrec dialect- allNames = Sets.fromList (Lists.map (\b -> Core.bindingName b) bindings)+ allNames = Sets.fromList (Lists.map (\b -> Model.bindingName b) bindings) adjList =- Lists.map (\b -> (Core.bindingName b, (Sets.toList (Sets.intersection allNames (Variables.freeVariablesInTerm (Core.bindingTerm b)))))) bindings+ Lists.map (\b -> (Model.bindingName b, (Sets.toList (Sets.intersection allNames (Variables.freeVariablesInTerm (Model.bindingTerm b)))))) bindings sccs = Sorting.topologicalSortComponents adjList- nameToBinding = Maps.fromList (Lists.map (\b -> (Core.bindingName b, b)) bindings)+ nameToBinding = Maps.fromList (Lists.map (\b -> (Model.bindingName b, b)) bindings) sortedBindings = Optionals.givens (Lists.map (\name -> Maps.lookup name nameToBinding) (Lists.concat sccs)) hasCycle = Lists.foldl (\acc -> \scc -> Logic.or acc (Ordering.gt (Lists.length scc) 1)) False sccs in (Eithers.bind (Eithers.mapList (\b -> let bname =- Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords (Core.unName (Core.bindingName b)))- isSelfRef = Sets.member (Core.bindingName b) (Variables.freeVariablesInTerm (Core.bindingTerm b))+ Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords (Model.unName (Model.bindingName b)))+ isSelfRef = Sets.member (Model.bindingName b) (Variables.freeVariablesInTerm (Model.bindingTerm b)) isLambda =- case (Strip.deannotateTerm (Core.bindingTerm b)) of- Core.TermLambda _ -> True+ case (Strip.deannotateTerm (Model.bindingTerm b)) of+ Model.TermLambda _ -> True _ -> False- in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Core.bindingTerm b)) (\bval ->+ in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Model.bindingTerm b)) (\bval -> let isClojure = Logic.not supportsLetrec wrappedVal = Logic.ifElse isClojure (Logic.ifElse isSelfRef (Logic.ifElse isLambda (case bval of@@ -197,7 +199,7 @@ lispVar "_arg"])) bval) in (Right (bname, wrappedVal))))) sortedBindings) (\encodedBindings -> let hasSelfRef =- Lists.foldl (\acc -> \b -> Logic.or acc (Sets.member (Core.bindingName b) (Variables.freeVariablesInTerm (Core.bindingTerm b)))) False bindings+ Lists.foldl (\acc -> \b -> Logic.or acc (Sets.member (Model.bindingName b) (Variables.freeVariablesInTerm (Model.bindingTerm b)))) False bindings isRecursive = Logic.or hasSelfRef hasCycle letKind = Logic.ifElse isRecursive Syntax.LetKindRecursive (Logic.ifElse (Ordering.lte (Lists.length bindings) 1) Syntax.LetKindParallel Syntax.LetKindSequential)@@ -212,49 +214,49 @@ bodyExpr]})))))) -- | Encode a Hydra literal as a Lisp expression-encodeLiteral :: Core.Literal -> Syntax.Expression+encodeLiteral :: Model.Literal -> Syntax.Expression encodeLiteral lit = case lit of- Core.LiteralBoolean v0 -> Syntax.ExpressionLiteral (Syntax.LiteralBoolean v0)- Core.LiteralDecimal v0 -> Syntax.ExpressionLiteral (Syntax.LiteralDecimal (Syntax.DecimalLiteral {+ Model.LiteralBoolean v0 -> Syntax.ExpressionLiteral (Syntax.LiteralBoolean v0)+ Model.LiteralDecimal v0 -> Syntax.ExpressionLiteral (Syntax.LiteralDecimal (Syntax.DecimalLiteral { Syntax.decimalLiteralDigits = (Literals.printDecimal v0)}))- Core.LiteralString v0 -> Syntax.ExpressionLiteral (Syntax.LiteralString v0)- Core.LiteralFloat v0 -> case v0 of- Core.FloatValueFloat32 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralFloat (Syntax.FloatLiteral {+ Model.LiteralString v0 -> Syntax.ExpressionLiteral (Syntax.LiteralString v0)+ Model.LiteralFloat v0 -> case v0 of+ Model.FloatValueFloat32 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralFloat (Syntax.FloatLiteral { Syntax.floatLiteralValue = (Literals.float32ToFloat64 v1), Syntax.floatLiteralPrecision = Nothing}))- Core.FloatValueFloat64 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralFloat (Syntax.FloatLiteral {+ Model.FloatValueFloat64 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralFloat (Syntax.FloatLiteral { Syntax.floatLiteralValue = v1, Syntax.floatLiteralPrecision = Nothing}))- Core.LiteralInteger v0 -> case v0 of- Core.IntegerValueInt8 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.LiteralInteger v0 -> case v0 of+ Model.IntegerValueInt8 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.int8ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueInt16 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueInt16 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.int16ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueInt32 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueInt32 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.int32ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueInt64 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueInt64 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.int64ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueUint8 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueUint8 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.uint8ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueUint16 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueUint16 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.uint16ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueUint32 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueUint32 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.uint32ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueUint64 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueUint64 v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = (Literals.uint64ToBigint v1), Syntax.integerLiteralBigint = False}))- Core.IntegerValueBigint v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {+ Model.IntegerValueBigint v1 -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral { Syntax.integerLiteralValue = v1, Syntax.integerLiteralBigint = True}))- Core.LiteralBinary v0 ->+ Model.LiteralBinary v0 -> let byteValues = Literals.binaryToBytes v0 in (Syntax.ExpressionVector (Syntax.VectorLiteral { Syntax.vectorLiteralElements = (Lists.map (\bv -> Syntax.ExpressionLiteral (Syntax.LiteralInteger (Syntax.IntegerLiteral {@@ -262,11 +264,11 @@ Syntax.integerLiteralBigint = False}))) byteValues)})) -- | Encode a Hydra record projection as a Lisp expression, with an optional argument for applied projections-encodeProjectionElim :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Core.Projection -> Maybe Core.Term -> Either t1 Syntax.Expression+encodeProjectionElim :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Model.Projection -> Maybe Model.Term -> Either t1 Syntax.Expression encodeProjectionElim dialect overlaySubs cx g proj marg = - let fname = Formatting.convertCaseCamelToLowerSnake (Core.unName (Core.projectionFieldName proj))- tname = qualifiedSnakeName (Core.projectionTypeName proj)+ let fname = Formatting.convertCaseCamelToLowerSnake (Model.unName (Model.projectionFieldName proj))+ tname = qualifiedSnakeName (Model.projectionTypeName proj) in (Optionals.match marg (Right (lispLambdaExpr [ "__rec"] (Syntax.ExpressionFieldAccess (Syntax.FieldAccess { Syntax.fieldAccessRecordType = (Syntax.Symbol tname),@@ -277,72 +279,73 @@ Syntax.fieldAccessTarget = sarg}))))) -- | Encode a Hydra term as a Lisp expression-encodeTerm :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Core.Term -> Either t1 Syntax.Expression+encodeTerm :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Model.Term -> Either t1 Syntax.Expression encodeTerm dialect overlaySubs cx g term = case term of- Core.TermAnnotated v0 -> encodeTerm dialect overlaySubs cx g (Core.annotatedTermBody v0)- Core.TermApplication v0 ->- let rawFun = Core.applicationFunction v0- rawArg = Core.applicationArgument v0+ Model.TermAnnotated v0 -> encodeTerm dialect overlaySubs cx g (Model.annotatedTermBody v0)+ Model.TermApplication v0 ->+ let rawFun = Model.applicationFunction v0+ rawArg = Model.applicationArgument v0 in (encodeApplication dialect overlaySubs cx g rawFun rawArg)- Core.TermEither v0 -> Eithers.either (\l -> Eithers.bind (encodeTerm dialect overlaySubs cx g l) (\sl -> Right (lispApp (lispVar "list") [+ Model.TermEither v0 -> Eithers.either (\l -> Eithers.bind (encodeTerm dialect overlaySubs cx g l) (\sl -> Right (lispApp (lispVar "list") [ lispKeyword "left", sl]))) (\r -> Eithers.bind (encodeTerm dialect overlaySubs cx g r) (\sr -> Right (lispApp (lispVar "list") [ lispKeyword "right", sr]))) v0- Core.TermLambda v0 -> encodeLambdaTerm dialect overlaySubs cx g v0- Core.TermProject v0 -> encodeProjectionElim dialect overlaySubs cx g v0 Nothing- Core.TermCases v0 -> encodeUnionElim dialect overlaySubs cx g v0 Nothing- Core.TermUnwrap v0 -> encodeUnwrapElim dialect overlaySubs cx g v0 Nothing- Core.TermLet v0 ->- let bindings = Core.letBindings v0- body = Core.letBody v0+ Model.TermLambda v0 -> encodeLambdaTerm dialect overlaySubs cx g v0+ Model.TermProject v0 -> encodeProjectionElim dialect overlaySubs cx g v0 Nothing+ Model.TermCases v0 -> encodeUnionElim dialect overlaySubs cx g v0 Nothing+ Model.TermUnwrap v0 -> encodeUnwrapElim dialect overlaySubs cx g v0 Nothing+ Model.TermLet v0 ->+ let bindings = Model.letBindings v0+ body = Model.letBody v0 in (encodeLetAsNative dialect overlaySubs cx g bindings body)- Core.TermList v0 -> Eithers.bind (Eithers.mapList (encodeTerm dialect overlaySubs cx g) v0) (\sels -> Right (lispListExpr sels))- Core.TermLiteral v0 -> Right (encodeLiteral v0)- Core.TermMap v0 -> Eithers.bind (Eithers.mapList (\entry -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.first entry)) (\k -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.second entry)) (\v -> Right (Syntax.MapEntry {+ Model.TermList v0 -> Eithers.bind (Eithers.mapList (encodeTerm dialect overlaySubs cx g) v0) (\sels -> Right (lispListExpr sels))+ Model.TermLiteral v0 -> Right (encodeLiteral v0)+ Model.TermMap v0 -> Eithers.bind (Eithers.mapList (\entry -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.first entry)) (\k -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.second entry)) (\v -> Right (Syntax.MapEntry { Syntax.mapEntryKey = k, Syntax.mapEntryValue = v})))) (Maps.toList v0)) (\pairs -> Right (Syntax.ExpressionMap (Syntax.MapLiteral { Syntax.mapLiteralEntries = pairs})))- Core.TermOptional v0 -> Optionals.match v0 (Right (lispApp (lispVar "list") [+ Model.TermOptional v0 -> Optionals.match v0 (Right (lispApp (lispVar "list") [ lispKeyword "none"])) (\val -> Eithers.bind (encodeTerm dialect overlaySubs cx g val) (\sval -> Right (lispApp (lispVar "list") [ lispKeyword "given", sval])))- Core.TermPair v0 -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.first v0)) (\f -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.second v0)) (\s -> Right (lispListExpr [+ Model.TermPair v0 -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.first v0)) (\f -> Eithers.bind (encodeTerm dialect overlaySubs cx g (Pairs.second v0)) (\s -> Right (lispListExpr [ f, s])))- Core.TermRecord v0 ->- let rname = Core.recordTypeName v0- fields = Core.recordFields v0- in (Eithers.bind (Eithers.mapList (\f -> encodeTerm dialect overlaySubs cx g (Core.fieldTerm f)) fields) (\sfields ->+ Model.TermRecord v0 ->+ let rname = Model.recordTypeName v0+ fields = Model.recordFields v0+ in (Eithers.bind (Eithers.mapList (\f -> encodeTerm dialect overlaySubs cx g (Model.fieldTerm f)) fields) (\sfields -> let constructorName = Strings.concat2 (dialectConstructorPrefix dialect) (qualifiedSnakeName rname) in (Right (lispApp (lispVar constructorName) sfields))))- Core.TermSet v0 -> Eithers.bind (Eithers.mapList (encodeTerm dialect overlaySubs cx g) (Sets.toList v0)) (\sels -> Right (Syntax.ExpressionSet (Syntax.SetLiteral {+ Model.TermSet v0 -> Eithers.bind (Eithers.mapList (encodeTerm dialect overlaySubs cx g) (Sets.toList v0)) (\sels -> Right (Syntax.ExpressionSet (Syntax.SetLiteral { Syntax.setLiteralElements = sels})))- Core.TermInject v0 ->- let tname = Names.localNameOf (Core.injectionTypeName v0)- field = Core.injectionField v0- fname = Core.unName (Core.fieldName field)- fterm = Core.fieldTerm field+ Model.TermInject v0 ->+ let tname = Names.localNameOf (Model.injectionTypeName v0)+ field = Model.injectionField v0+ fname = Model.unName (Model.fieldName field)+ fterm = Model.fieldTerm field dterm = Strip.deannotateTerm fterm isUnit = case dterm of- Core.TermUnit -> True- Core.TermRecord v1 -> Lists.isEmpty (Core.recordFields v1)+ Model.TermUnit -> True+ Model.TermRecord v1 -> Lists.isEmpty (Model.recordFields v1) _ -> False in (Logic.ifElse isUnit (Right (lispApp (lispVar "list") [ lispKeyword (Formatting.convertCaseCamelToLowerSnake fname), lispNilExpr])) (Eithers.bind (encodeTerm dialect overlaySubs cx g fterm) (\sval -> Right (lispApp (lispVar "list") [ lispKeyword (Formatting.convertCaseCamelToLowerSnake fname), sval]))))- Core.TermUnit -> Right lispNilExpr- Core.TermVariable v0 ->- let fullName = Core.unName v0+ Model.TermUnit -> Right lispNilExpr+ Model.TermVariable v0 ->+ let fullName = Model.unName v0 parts = Strings.splitOn "." fullName- sub = Optionals.withDefault "" (Lists.at 2 parts)+ sub = Optionals.withDefault "" (Lists.at 3 parts) redirectedName =- Logic.ifElse (Logic.and (Logic.and (Equality.equal (Lists.length parts) 4) (Equality.equal (Lists.take 2 parts) [+ Logic.ifElse (Logic.and (Logic.and (Equality.equal (Lists.length parts) 5) (Equality.equal (Lists.take 3 parts) [ "hydra",+ "core", "lib"])) (Sets.member sub overlaySubs)) (Strings.concat [ "hydra.overlay.", case dialect of@@ -352,11 +355,11 @@ Syntax.DialectEmacsLisp -> "emacs_lisp" _ -> "lisp", ".lib.",- (Strings.join "." (Lists.drop 2 parts))]) fullName+ (Strings.join "." (Lists.drop 3 parts))]) fullName in (Right (lispVar (Formatting.convertCaseCamelOrUnderscoreToLowerSnake (Formatting.sanitizeWithUnderscores Language.lispReservedWords redirectedName))))- Core.TermTypeApplication v0 -> encodeTerm dialect overlaySubs cx g (Core.typeApplicationTermBody v0)- Core.TermTypeLambda v0 -> encodeTerm dialect overlaySubs cx g (Core.typeLambdaBody v0)- Core.TermWrap v0 -> encodeTerm dialect overlaySubs cx g (Core.wrappedTermBody v0)+ Model.TermTypeApplication v0 -> encodeTerm dialect overlaySubs cx g (Model.typeApplicationTermBody v0)+ Model.TermTypeLambda v0 -> encodeTerm dialect overlaySubs cx g (Model.typeLambdaBody v0)+ Model.TermWrap v0 -> encodeTerm dialect overlaySubs cx g (Model.wrappedTermBody v0) -- | Encode a Hydra term definition as a Lisp top-level form encodeTermDefinition :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Packaging.TermDefinition -> Either t1 Syntax.TopLevelFormWithComments@@ -367,7 +370,7 @@ lname = qualifiedSnakeName name dterm = Strip.deannotateTerm term in case dterm of- Core.TermLambda _ -> Eithers.bind (encodeTerm dialect overlaySubs cx g term) (\sterm -> Right (lispTopForm (Syntax.TopLevelFormVariable (Syntax.VariableDefinition {+ Model.TermLambda _ -> Eithers.bind (encodeTerm dialect overlaySubs cx g term) (\sterm -> Right (lispTopForm (Syntax.TopLevelFormVariable (Syntax.VariableDefinition { Syntax.variableDefinitionName = (Syntax.Symbol lname), Syntax.variableDefinitionValue = sterm, Syntax.variableDefinitionDoc = Nothing}))))@@ -377,57 +380,57 @@ Syntax.variableDefinitionDoc = Nothing})))) -- | Encode a Hydra type as a Lisp type specifier, used for type annotations-encodeType :: t0 -> t1 -> Core.Type -> Either t2 Syntax.TypeSpecifier+encodeType :: t0 -> t1 -> Model.Type -> Either t2 Syntax.TypeSpecifier encodeType cx g t = let typ = Strip.deannotateType t in case typ of- Core.TypeAnnotated v0 -> encodeType cx g (Core.annotatedTypeBody v0)- Core.TypeApplication v0 -> encodeType cx g (Core.applicationTypeFunction v0)- Core.TypeUnit -> Right Syntax.TypeSpecifierUnit- Core.TypeLiteral v0 -> Right (case v0 of- Core.LiteralTypeBinary -> Syntax.TypeSpecifierNamed (Syntax.Symbol "ByteArray")- Core.LiteralTypeBoolean -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Boolean")- Core.LiteralTypeDecimal -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Decimal")- Core.LiteralTypeFloat _ -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Float")- Core.LiteralTypeInteger _ -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Integer")- Core.LiteralTypeString -> Syntax.TypeSpecifierNamed (Syntax.Symbol "String"))- Core.TypeList v0 -> Eithers.map (\enc -> Syntax.TypeSpecifierList enc) (encodeType cx g v0)- Core.TypeSet v0 -> Eithers.map (\enc -> Syntax.TypeSpecifierSet enc) (encodeType cx g v0)- Core.TypeMap _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Map"))- Core.TypeOptional v0 -> Eithers.map (\enc -> Syntax.TypeSpecifierMaybe enc) (encodeType cx g v0)- Core.TypeEither _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Either"))- Core.TypeEffect v0 -> encodeType cx g v0- Core.TypePair _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Pair"))- Core.TypeFunction _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Function"))- Core.TypeRecord _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Record"))- Core.TypeUnion _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Union"))- Core.TypeWrap _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Wrapper"))- Core.TypeVariable v0 -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol (Core.unName v0)))- Core.TypeForall v0 -> encodeType cx g (Core.forallTypeBody v0)+ Model.TypeAnnotated v0 -> encodeType cx g (Model.annotatedTypeBody v0)+ Model.TypeApplication v0 -> encodeType cx g (Model.applicationTypeFunction v0)+ Model.TypeUnit -> Right Syntax.TypeSpecifierUnit+ Model.TypeLiteral v0 -> Right (case v0 of+ Model.LiteralTypeBinary -> Syntax.TypeSpecifierNamed (Syntax.Symbol "ByteArray")+ Model.LiteralTypeBoolean -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Boolean")+ Model.LiteralTypeDecimal -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Decimal")+ Model.LiteralTypeFloat _ -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Float")+ Model.LiteralTypeInteger _ -> Syntax.TypeSpecifierNamed (Syntax.Symbol "Integer")+ Model.LiteralTypeString -> Syntax.TypeSpecifierNamed (Syntax.Symbol "String"))+ Model.TypeList v0 -> Eithers.map (\enc -> Syntax.TypeSpecifierList enc) (encodeType cx g v0)+ Model.TypeSet v0 -> Eithers.map (\enc -> Syntax.TypeSpecifierSet enc) (encodeType cx g v0)+ Model.TypeMap _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Map"))+ Model.TypeOptional v0 -> Eithers.map (\enc -> Syntax.TypeSpecifierMaybe enc) (encodeType cx g v0)+ Model.TypeEither _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Either"))+ Model.TypeEffect v0 -> encodeType cx g v0+ Model.TypePair _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Pair"))+ Model.TypeFunction _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Function"))+ Model.TypeRecord _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Record"))+ Model.TypeUnion _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Union"))+ Model.TypeWrap _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Wrapper"))+ Model.TypeVariable v0 -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol (Model.unName v0)))+ Model.TypeForall v0 -> encodeType cx g (Model.forallTypeBody v0) _ -> Right (Syntax.TypeSpecifierNamed (Syntax.Symbol "Any")) -- | Encode a type body, after stripping annotations and foralls, as a Lisp top-level form-encodeTypeBody :: String -> Core.Type -> Core.Type -> Either t0 Syntax.TopLevelFormWithComments+encodeTypeBody :: String -> Model.Type -> Model.Type -> Either t0 Syntax.TopLevelFormWithComments encodeTypeBody lname origTyp typ = case typ of- Core.TypeForall v0 -> encodeTypeBody lname origTyp (Core.forallTypeBody v0)- Core.TypeRecord v0 ->+ Model.TypeForall v0 -> encodeTypeBody lname origTyp (Model.forallTypeBody v0)+ Model.TypeRecord v0 -> let fields = Lists.map encodeFieldDef v0 in (Right (lispTopForm (Syntax.TopLevelFormRecordType (Syntax.RecordTypeDefinition { Syntax.recordTypeDefinitionName = (Syntax.Symbol lname), Syntax.recordTypeDefinitionFields = fields, Syntax.recordTypeDefinitionDoc = Nothing}))))- Core.TypeUnion v0 ->+ Model.TypeUnion v0 -> let variantNames = Lists.map (\f -> Syntax.ExpressionLiteral (Syntax.LiteralKeyword (Syntax.Keyword {- Syntax.keywordName = (Formatting.convertCaseCamelToLowerSnake (Core.unName (Core.fieldTypeName f))),+ Syntax.keywordName = (Formatting.convertCaseCamelToLowerSnake (Model.unName (Model.fieldTypeName f))), Syntax.keywordNamespace = Nothing}))) v0 in (Right (lispTopForm (Syntax.TopLevelFormVariable (Syntax.VariableDefinition { Syntax.variableDefinitionName = (Syntax.Symbol (Strings.concat2 lname "-variants")), Syntax.variableDefinitionValue = (lispListExpr variantNames), Syntax.variableDefinitionDoc = (Just (Syntax.Docstring (Strings.concat2 "Variants of the " lname)))}))))- Core.TypeWrap _ -> Right (lispTopForm (Syntax.TopLevelFormRecordType (Syntax.RecordTypeDefinition {+ Model.TypeWrap _ -> Right (lispTopForm (Syntax.TopLevelFormRecordType (Syntax.RecordTypeDefinition { Syntax.recordTypeDefinitionName = (Syntax.Symbol lname), Syntax.recordTypeDefinitionFields = [ Syntax.FieldDefinition {@@ -438,7 +441,7 @@ Syntax.topLevelFormWithCommentsDoc = Nothing, Syntax.topLevelFormWithCommentsComment = (Just (Syntax.Comment { Syntax.commentStyle = Syntax.CommentStyleLine,- Syntax.commentText = (Strings.concat2 (Strings.concat2 lname " = ") (PrintCore.type_ origTyp))})),+ Syntax.commentText = (Strings.concat2 (Strings.concat2 lname " = ") (PrintModel.type_ origTyp))})), Syntax.topLevelFormWithCommentsForm = (Syntax.TopLevelFormExpression (Syntax.ExpressionLiteral Syntax.LiteralNil))}) -- | Encode a Hydra type definition as a Lisp top-level form@@ -446,29 +449,29 @@ encodeTypeDefinition cx g tdef = let name = Packaging.typeDefinitionName tdef- typ = Core.typeSchemeBody (Packaging.typeDefinitionBody tdef)+ typ = Model.typeSchemeBody (Packaging.typeDefinitionBody tdef) lname = qualifiedSnakeName name dtyp = Strip.deannotateType typ in (encodeTypeBody lname typ dtyp) -- | Encode a Hydra case statement (union elimination) as a Lisp expression, with an optional argument for applied case statements-encodeUnionElim :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Core.CaseStatement -> Maybe Core.Term -> Either t1 Syntax.Expression+encodeUnionElim :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Model.CaseStatement -> Maybe Model.Term -> Either t1 Syntax.Expression encodeUnionElim dialect overlaySubs cx g cs marg = - let tname = Names.localNameOf (Core.caseStatementTypeName cs)- caseFields = Core.caseStatementCases cs- defCase = Core.caseStatementDefault cs+ let tname = Names.localNameOf (Model.caseStatementTypeName cs)+ caseFields = Model.caseStatementCases cs+ defCase = Model.caseStatementDefault cs in (Eithers.bind (Eithers.mapList (\cf ->- let cfname = Formatting.convertCaseCamelToLowerSnake (Core.unName (Core.caseAlternativeName cf))- cfterm = Core.caseAlternativeHandler cf+ let cfname = Formatting.convertCaseCamelToLowerSnake (Model.unName (Model.caseAlternativeName cf))+ cfterm = Model.caseAlternativeHandler cf condExpr = lispApp (lispVar (dialectEqual dialect)) [ lispApp (lispVar (dialectCar dialect)) [ lispVar "match_target"], (lispKeyword cfname)]- in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Core.TermApplication (Core.Application {- Core.applicationFunction = cfterm,- Core.applicationArgument = (Core.TermVariable (Core.Name "match_value"))}))) (\bodyExpr -> Right (Syntax.CondClause {+ in (Eithers.bind (encodeTerm dialect overlaySubs cx g (Model.TermApplication (Model.Application {+ Model.applicationFunction = cfterm,+ Model.applicationArgument = (Model.TermVariable (Model.Name "match_value"))}))) (\bodyExpr -> Right (Syntax.CondClause { Syntax.condClauseCondition = condExpr, Syntax.condClauseBody = bodyExpr})))) caseFields) (\clauses -> Eithers.bind (Optionals.match defCase (Right Nothing) (\dt -> Eithers.bind (encodeTerm dialect overlaySubs cx g dt) (\defBody -> Right (Just defBody)))) (\defExpr -> let condExpr =@@ -486,23 +489,23 @@ sarg]))))))) -- | Encode a Hydra wrap elimination (unwrap) as a Lisp expression, with an optional argument for applied unwraps-encodeUnwrapElim :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Core.Name -> Maybe Core.Term -> Either t1 Syntax.Expression+encodeUnwrapElim :: Syntax.Dialect -> S.Set String -> t0 -> Graph.Graph -> Model.Name -> Maybe Model.Term -> Either t1 Syntax.Expression encodeUnwrapElim dialect overlaySubs cx g name marg = Optionals.match marg (Right (lispLambdaExpr [ "__rec"] (lispVar "__rec"))) (\arg -> encodeTerm dialect overlaySubs cx g arg) -- | Check whether a term is a reference to a specific primitive, stripping type applications, type lambdas, and annotations-isPrimitiveRef :: String -> Core.Term -> Bool+isPrimitiveRef :: String -> Model.Term -> Bool isPrimitiveRef primName term = case term of- Core.TermVariable v0 -> Equality.equal (Core.unName v0) primName- Core.TermAnnotated v0 -> isPrimitiveRef primName (Core.annotatedTermBody v0)- Core.TermTypeApplication v0 -> isPrimitiveRef primName (Core.typeApplicationTermBody v0)- Core.TermTypeLambda v0 -> isPrimitiveRef primName (Core.typeLambdaBody v0)+ Model.TermVariable v0 -> Equality.equal (Model.unName v0) primName+ Model.TermAnnotated v0 -> isPrimitiveRef primName (Model.annotatedTermBody v0)+ Model.TermTypeApplication v0 -> isPrimitiveRef primName (Model.typeApplicationTermBody v0)+ Model.TermTypeLambda v0 -> isPrimitiveRef primName (Model.typeLambdaBody v0) _ -> False -- | The per-parameter isLazy flags of the primitive a head term refers to, in order; empty if the head is not a registered primitive-lazyFlagsForPrimitiveTerm :: Graph.Graph -> Core.Term -> [Bool]+lazyFlagsForPrimitiveTerm :: Graph.Graph -> Model.Term -> [Bool] lazyFlagsForPrimitiveTerm g headTerm = Optionals.match (primHeadName headTerm) [] (\name -> Optionals.match (Maps.lookup name (Graph.graphPrimitives g)) [] (\prim -> Lists.map (\p -> Typing.parameterIsLazy p) (Typing.termSignatureParameters (Packaging.primitiveDefinitionSignature (Graph.primitiveDefinition prim))))) @@ -623,15 +626,20 @@ Syntax.DialectCommonLisp -> "common_lisp" Syntax.DialectEmacsLisp -> "emacs_lisp" _ -> "lisp"+ overlayNsPrefix =+ case dialect of+ Syntax.DialectClojure -> "hydra.core.overlay."+ _ -> "hydra.overlay." redirectedNsString = \ns -> let raw = Packaging.unModuleName ns parts = Strings.splitOn "." raw- sub = Strings.join "." (Lists.drop 2 parts)- in (Logic.ifElse (Logic.and (Logic.and (Equality.equal (Lists.length parts) 3) (Equality.equal (Lists.take 2 parts) [+ sub = Strings.join "." (Lists.drop 3 parts)+ in (Logic.ifElse (Logic.and (Logic.and (Equality.equal (Lists.length parts) 4) (Equality.equal (Lists.take 3 parts) [ "hydra",+ "core", "lib"])) (Sets.member sub overlaySubs)) (Strings.concat [- "hydra.overlay.",+ overlayNsPrefix, langSeg, ".lib.", sub]) raw)@@ -649,7 +657,7 @@ allTypeDefs = Pairs.first partitioned termDefs = Pairs.second partitioned typeDefs =- Lists.filter (\td -> Predicates.isNominalType (Core.typeSchemeBody (Packaging.typeDefinitionBody td))) allTypeDefs+ Lists.filter (\td -> Predicates.isNominalType (Model.typeSchemeBody (Packaging.typeDefinitionBody td))) allTypeDefs in (Eithers.bind (Eithers.mapList (encodeTypeDefinition cx g) typeDefs) (\typeItems -> Eithers.bind (Eithers.mapList (encodeTermDefinition dialect overlaySubs cx g) termDefs) (\termItems -> let allItems = Lists.concat2 typeItems termItems nsName = Packaging.unModuleName (Packaging.moduleName mod)@@ -666,31 +674,31 @@ Syntax.programForms = allItems}))))) -- | Extract the primitive or variable name a head term refers to, or nothing if the head is not a plain reference-primHeadName :: Core.Term -> Maybe Core.Name+primHeadName :: Model.Term -> Maybe Model.Name primHeadName term = case term of- Core.TermVariable v0 -> Just v0- Core.TermAnnotated v0 -> primHeadName (Core.annotatedTermBody v0)- Core.TermTypeApplication v0 -> primHeadName (Core.typeApplicationTermBody v0)- Core.TermTypeLambda v0 -> primHeadName (Core.typeLambdaBody v0)+ Model.TermVariable v0 -> Just v0+ Model.TermAnnotated v0 -> primHeadName (Model.annotatedTermBody v0)+ Model.TermTypeApplication v0 -> primHeadName (Model.typeApplicationTermBody v0)+ Model.TermTypeLambda v0 -> primHeadName (Model.typeLambdaBody v0) _ -> Nothing -- | Whether the primitive referenced by a head term is lazy in the parameter at the given zero-based position-primIsLazyAt :: Graph.Graph -> Core.Term -> Int -> Bool+primIsLazyAt :: Graph.Graph -> Model.Term -> Int -> Bool primIsLazyAt g headTerm i = Optionals.withDefault False (Lists.at i (lazyFlagsForPrimitiveTerm g headTerm)) -- | Convert a fully-qualified Hydra Name to a snake_case identifier string-qualifiedSnakeName :: Core.Name -> String+qualifiedSnakeName :: Model.Name -> String qualifiedSnakeName name = - let raw = Core.unName name+ let raw = Model.unName name parts = Strings.splitOn "." raw snakeParts = Lists.map (\p -> Formatting.convertCaseCamelOrUnderscoreToLowerSnake p) parts joined = Strings.join "_" snakeParts in (Formatting.sanitizeWithUnderscores Language.lispReservedWords joined) -- | Convert a fully-qualified Hydra Name to a PascalCase type identifier string-qualifiedTypeName :: Core.Name -> String+qualifiedTypeName :: Model.Name -> String qualifiedTypeName name = Formatting.capitalize (Names.localNameOf name) -- | Wrap an expression in a zero-argument lambda for lazy evaluation
+ src/main/haskell/Hydra/Lisp/Dsl/Syntax.hs view
@@ -0,0 +1,4822 @@+-- Note: this is an automatically generated file. Do not edit.++-- | DSL functions for hydra.lisp.syntax++module Hydra.Lisp.Dsl.Syntax where++import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Lisp.Syntax as Syntax+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void++-- | DSL constructor for hydra.lisp.syntax.AndExpression+andExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.AndExpression+andExpression expressions =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.AndExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm expressions)}]}))++-- | DSL name token for hydra.lisp.syntax.AndExpression+andExpressionAndExpression :: Typed.TypedName Syntax.AndExpression+andExpressionAndExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.AndExpression")++-- | DSL accessor for the expressions field of hydra.lisp.syntax.AndExpression+andExpressionExpressions :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm [Syntax.Expression]+andExpressionExpressions x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.AndExpression"),+ Model.projectionFieldName = (Model.Name "expressions")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expressions field of hydra.lisp.syntax.AndExpression+andExpressionWithExpressions :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.AndExpression+andExpressionWithExpressions original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.AndExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.Application+application :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Application+application function arguments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "function"),+ Model.fieldTerm = (Typed.unTypedTerm function)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)}]}))++-- | DSL name token for hydra.lisp.syntax.Application+applicationApplication :: Typed.TypedName Syntax.Application+applicationApplication = Typed.TypedName (Model.Name "hydra.lisp.syntax.Application")++-- | DSL accessor for the arguments field of hydra.lisp.syntax.Application+applicationArguments :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm [Syntax.Expression]+applicationArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the function field of hydra.lisp.syntax.Application+applicationFunction :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm Syntax.Expression+applicationFunction x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.projectionFieldName = (Model.Name "function")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the arguments field of hydra.lisp.syntax.Application+applicationWithArguments :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Application+applicationWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "function"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.projectionFieldName = (Model.Name "function")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the function field of hydra.lisp.syntax.Application+applicationWithFunction :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Application+applicationWithFunction original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "function"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Application"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.BeginExpression+beginExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.BeginExpression+beginExpression expressions =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.BeginExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm expressions)}]}))++-- | DSL name token for hydra.lisp.syntax.BeginExpression+beginExpressionBeginExpression :: Typed.TypedName Syntax.BeginExpression+beginExpressionBeginExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.BeginExpression")++-- | DSL accessor for the expressions field of hydra.lisp.syntax.BeginExpression+beginExpressionExpressions :: Typed.TypedTerm Syntax.BeginExpression -> Typed.TypedTerm [Syntax.Expression]+beginExpressionExpressions x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.BeginExpression"),+ Model.projectionFieldName = (Model.Name "expressions")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expressions field of hydra.lisp.syntax.BeginExpression+beginExpressionWithExpressions :: Typed.TypedTerm Syntax.BeginExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.BeginExpression+beginExpressionWithExpressions original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.BeginExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.lisp.syntax.BooleanStyle+booleanStyleBooleanStyle :: Typed.TypedName Syntax.BooleanStyle+booleanStyleBooleanStyle = Typed.TypedName (Model.Name "hydra.lisp.syntax.BooleanStyle")++-- | DSL injection for the hashTF variant of hydra.lisp.syntax.BooleanStyle+booleanStyleHashTF :: Typed.TypedTerm Syntax.BooleanStyle+booleanStyleHashTF =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.BooleanStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "hashTF"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the tNil variant of hydra.lisp.syntax.BooleanStyle+booleanStyleTNil :: Typed.TypedTerm Syntax.BooleanStyle+booleanStyleTNil =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.BooleanStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "tNil"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the trueFalse variant of hydra.lisp.syntax.BooleanStyle+booleanStyleTrueFalse :: Typed.TypedTerm Syntax.BooleanStyle+booleanStyleTrueFalse =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.BooleanStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "trueFalse"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.lisp.syntax.CaseClause+caseClause :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CaseClause+caseClause keys body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "keys"),+ Model.fieldTerm = (Typed.unTypedTerm keys)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.CaseClause+caseClauseBody :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm Syntax.Expression+caseClauseBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseClause"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.CaseClause+caseClauseCaseClause :: Typed.TypedName Syntax.CaseClause+caseClauseCaseClause = Typed.TypedName (Model.Name "hydra.lisp.syntax.CaseClause")++-- | DSL accessor for the keys field of hydra.lisp.syntax.CaseClause+caseClauseKeys :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm [Syntax.Expression]+caseClauseKeys x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseClause"),+ Model.projectionFieldName = (Model.Name "keys")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.lisp.syntax.CaseClause+caseClauseWithBody :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CaseClause+caseClauseWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "keys"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseClause"),+ Model.projectionFieldName = (Model.Name "keys")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the keys field of hydra.lisp.syntax.CaseClause+caseClauseWithKeys :: Typed.TypedTerm Syntax.CaseClause -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.CaseClause+caseClauseWithKeys original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "keys"),+ 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.lisp.syntax.CaseClause"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.CaseExpression+caseExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm [Syntax.CaseClause] -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CaseExpression+caseExpression scrutinee clauses default_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "scrutinee"),+ Model.fieldTerm = (Typed.unTypedTerm scrutinee)},+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ Model.fieldTerm = (Typed.unTypedTerm clauses)},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Typed.unTypedTerm default_)}]}))++-- | DSL name token for hydra.lisp.syntax.CaseExpression+caseExpressionCaseExpression :: Typed.TypedName Syntax.CaseExpression+caseExpressionCaseExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.CaseExpression")++-- | DSL accessor for the clauses field of hydra.lisp.syntax.CaseExpression+caseExpressionClauses :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm [Syntax.CaseClause]+caseExpressionClauses x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "clauses")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the default field of hydra.lisp.syntax.CaseExpression+caseExpressionDefault :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm (Maybe Syntax.Expression)+caseExpressionDefault x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the scrutinee field of hydra.lisp.syntax.CaseExpression+caseExpressionScrutinee :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm Syntax.Expression+caseExpressionScrutinee x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "scrutinee")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the clauses field of hydra.lisp.syntax.CaseExpression+caseExpressionWithClauses :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm [Syntax.CaseClause] -> Typed.TypedTerm Syntax.CaseExpression+caseExpressionWithClauses original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "scrutinee"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "scrutinee")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ 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.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the default field of hydra.lisp.syntax.CaseExpression+caseExpressionWithDefault :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CaseExpression+caseExpressionWithDefault original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "scrutinee"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "scrutinee")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "clauses")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the scrutinee field of hydra.lisp.syntax.CaseExpression+caseExpressionWithScrutinee :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CaseExpression+caseExpressionWithScrutinee original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "scrutinee"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "clauses")})),+ 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.lisp.syntax.CaseExpression"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.CharacterLiteral+characterLiteral :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.CharacterLiteral+characterLiteral value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CharacterLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL name token for hydra.lisp.syntax.CharacterLiteral+characterLiteralCharacterLiteral :: Typed.TypedName Syntax.CharacterLiteral+characterLiteralCharacterLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.CharacterLiteral")++-- | DSL accessor for the value field of hydra.lisp.syntax.CharacterLiteral+characterLiteralValue :: Typed.TypedTerm Syntax.CharacterLiteral -> Typed.TypedTerm String+characterLiteralValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CharacterLiteral"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the value field of hydra.lisp.syntax.CharacterLiteral+characterLiteralWithValue :: Typed.TypedTerm Syntax.CharacterLiteral -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.CharacterLiteral+characterLiteralWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CharacterLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.Comment+comment :: Typed.TypedTerm Syntax.CommentStyle -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.Comment+comment style text =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "style"),+ Model.fieldTerm = (Typed.unTypedTerm style)},+ Model.Field {+ Model.fieldName = (Model.Name "text"),+ Model.fieldTerm = (Typed.unTypedTerm text)}]}))++-- | DSL name token for hydra.lisp.syntax.Comment+commentComment :: Typed.TypedName Syntax.Comment+commentComment = Typed.TypedName (Model.Name "hydra.lisp.syntax.Comment")++-- | DSL accessor for the style field of hydra.lisp.syntax.Comment+commentStyle :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm Syntax.CommentStyle+commentStyle x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.projectionFieldName = (Model.Name "style")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL injection for the block variant of hydra.lisp.syntax.CommentStyle+commentStyleBlock :: Typed.TypedTerm Syntax.CommentStyle+commentStyleBlock =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.CommentStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.lisp.syntax.CommentStyle+commentStyleCommentStyle :: Typed.TypedName Syntax.CommentStyle+commentStyleCommentStyle = Typed.TypedName (Model.Name "hydra.lisp.syntax.CommentStyle")++-- | DSL injection for the datum variant of hydra.lisp.syntax.CommentStyle+commentStyleDatum :: Typed.TypedTerm Syntax.CommentStyle+commentStyleDatum =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.CommentStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "datum"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the line variant of hydra.lisp.syntax.CommentStyle+commentStyleLine :: Typed.TypedTerm Syntax.CommentStyle+commentStyleLine =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.CommentStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "line"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL accessor for the text field of hydra.lisp.syntax.Comment+commentText :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm String+commentText x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.projectionFieldName = (Model.Name "text")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the style field of hydra.lisp.syntax.Comment+commentWithStyle :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm Syntax.CommentStyle -> Typed.TypedTerm Syntax.Comment+commentWithStyle original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "style"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "text"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.projectionFieldName = (Model.Name "text")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the text field of hydra.lisp.syntax.Comment+commentWithText :: Typed.TypedTerm Syntax.Comment -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.Comment+commentWithText original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "style"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Comment"),+ Model.projectionFieldName = (Model.Name "style")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "text"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.CondClause+condClause :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CondClause+condClause condition body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CondClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ Model.fieldTerm = (Typed.unTypedTerm condition)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.CondClause+condClauseBody :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression+condClauseBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CondClause"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.CondClause+condClauseCondClause :: Typed.TypedName Syntax.CondClause+condClauseCondClause = Typed.TypedName (Model.Name "hydra.lisp.syntax.CondClause")++-- | DSL accessor for the condition field of hydra.lisp.syntax.CondClause+condClauseCondition :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression+condClauseCondition x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CondClause"),+ Model.projectionFieldName = (Model.Name "condition")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.lisp.syntax.CondClause+condClauseWithBody :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CondClause+condClauseWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CondClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CondClause"),+ Model.projectionFieldName = (Model.Name "condition")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the condition field of hydra.lisp.syntax.CondClause+condClauseWithCondition :: Typed.TypedTerm Syntax.CondClause -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.CondClause+condClauseWithCondition original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CondClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ 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.lisp.syntax.CondClause"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.CondExpression+condExpression :: Typed.TypedTerm [Syntax.CondClause] -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CondExpression+condExpression clauses default_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CondExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ Model.fieldTerm = (Typed.unTypedTerm clauses)},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Typed.unTypedTerm default_)}]}))++-- | DSL accessor for the clauses field of hydra.lisp.syntax.CondExpression+condExpressionClauses :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm [Syntax.CondClause]+condExpressionClauses x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CondExpression"),+ Model.projectionFieldName = (Model.Name "clauses")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.CondExpression+condExpressionCondExpression :: Typed.TypedName Syntax.CondExpression+condExpressionCondExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.CondExpression")++-- | DSL accessor for the default field of hydra.lisp.syntax.CondExpression+condExpressionDefault :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm (Maybe Syntax.Expression)+condExpressionDefault x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CondExpression"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the clauses field of hydra.lisp.syntax.CondExpression+condExpressionWithClauses :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm [Syntax.CondClause] -> Typed.TypedTerm Syntax.CondExpression+condExpressionWithClauses original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CondExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ 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.lisp.syntax.CondExpression"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the default field of hydra.lisp.syntax.CondExpression+condExpressionWithDefault :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.CondExpression+condExpressionWithDefault original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.CondExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "clauses"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.CondExpression"),+ Model.projectionFieldName = (Model.Name "clauses")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.ConsExpression+consExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConsExpression+consExpression head tail =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "head"),+ Model.fieldTerm = (Typed.unTypedTerm head)},+ Model.Field {+ Model.fieldName = (Model.Name "tail"),+ Model.fieldTerm = (Typed.unTypedTerm tail)}]}))++-- | DSL name token for hydra.lisp.syntax.ConsExpression+consExpressionConsExpression :: Typed.TypedName Syntax.ConsExpression+consExpressionConsExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.ConsExpression")++-- | DSL accessor for the head field of hydra.lisp.syntax.ConsExpression+consExpressionHead :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression+consExpressionHead x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.projectionFieldName = (Model.Name "head")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tail field of hydra.lisp.syntax.ConsExpression+consExpressionTail :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression+consExpressionTail x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.projectionFieldName = (Model.Name "tail")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the head field of hydra.lisp.syntax.ConsExpression+consExpressionWithHead :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConsExpression+consExpressionWithHead original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "head"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "tail"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.projectionFieldName = (Model.Name "tail")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tail field of hydra.lisp.syntax.ConsExpression+consExpressionWithTail :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConsExpression+consExpressionWithTail original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "head"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConsExpression"),+ Model.projectionFieldName = (Model.Name "head")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "tail"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.ConstantDefinition+constantDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ConstantDefinition+constantDefinition name value doc =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm doc)}]}))++-- | DSL name token for hydra.lisp.syntax.ConstantDefinition+constantDefinitionConstantDefinition :: Typed.TypedName Syntax.ConstantDefinition+constantDefinitionConstantDefinition = Typed.TypedName (Model.Name "hydra.lisp.syntax.ConstantDefinition")++-- | DSL accessor for the doc field of hydra.lisp.syntax.ConstantDefinition+constantDefinitionDoc :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)+constantDefinitionDoc x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.lisp.syntax.ConstantDefinition+constantDefinitionName :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Symbol+constantDefinitionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the value field of hydra.lisp.syntax.ConstantDefinition+constantDefinitionValue :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Expression+constantDefinitionValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the doc field of hydra.lisp.syntax.ConstantDefinition+constantDefinitionWithDoc :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ConstantDefinition+constantDefinitionWithDoc original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ 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.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.ConstantDefinition+constantDefinitionWithName :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.ConstantDefinition+constantDefinitionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.ConstantDefinition+constantDefinitionWithValue :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConstantDefinition+constantDefinitionWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ 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.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstantDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.ConstructorPattern+constructorPattern :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.ConstructorPattern+constructorPattern constructor arguments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Typed.unTypedTerm constructor)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)}]}))++-- | DSL accessor for the arguments field of hydra.lisp.syntax.ConstructorPattern+constructorPatternArguments :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm [Syntax.Pattern]+constructorPatternArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the constructor field of hydra.lisp.syntax.ConstructorPattern+constructorPatternConstructor :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm Syntax.Symbol+constructorPatternConstructor x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.projectionFieldName = (Model.Name "constructor")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.ConstructorPattern+constructorPatternConstructorPattern :: Typed.TypedName Syntax.ConstructorPattern+constructorPatternConstructorPattern = Typed.TypedName (Model.Name "hydra.lisp.syntax.ConstructorPattern")++-- | DSL updater for the arguments field of hydra.lisp.syntax.ConstructorPattern+constructorPatternWithArguments :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.ConstructorPattern+constructorPatternWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.projectionFieldName = (Model.Name "constructor")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the constructor field of hydra.lisp.syntax.ConstructorPattern+constructorPatternWithConstructor :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.ConstructorPattern+constructorPatternWithConstructor original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ConstructorPattern"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.DecimalLiteral+decimalLiteral :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.DecimalLiteral+decimalLiteral digits =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DecimalLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "digits"),+ Model.fieldTerm = (Typed.unTypedTerm digits)}]}))++-- | DSL name token for hydra.lisp.syntax.DecimalLiteral+decimalLiteralDecimalLiteral :: Typed.TypedName Syntax.DecimalLiteral+decimalLiteralDecimalLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.DecimalLiteral")++-- | DSL accessor for the digits field of hydra.lisp.syntax.DecimalLiteral+decimalLiteralDigits :: Typed.TypedTerm Syntax.DecimalLiteral -> Typed.TypedTerm String+decimalLiteralDigits x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DecimalLiteral"),+ Model.projectionFieldName = (Model.Name "digits")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the digits field of hydra.lisp.syntax.DecimalLiteral+decimalLiteralWithDigits :: Typed.TypedTerm Syntax.DecimalLiteral -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.DecimalLiteral+decimalLiteralWithDigits original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DecimalLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "digits"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.DestructuringBinding+destructuringBinding :: Typed.TypedTerm Syntax.DestructuringPattern -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DestructuringBinding+destructuringBinding pattern value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Typed.unTypedTerm pattern)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL name token for hydra.lisp.syntax.DestructuringBinding+destructuringBindingDestructuringBinding :: Typed.TypedName Syntax.DestructuringBinding+destructuringBindingDestructuringBinding = Typed.TypedName (Model.Name "hydra.lisp.syntax.DestructuringBinding")++-- | DSL accessor for the pattern field of hydra.lisp.syntax.DestructuringBinding+destructuringBindingPattern :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.DestructuringPattern+destructuringBindingPattern x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.projectionFieldName = (Model.Name "pattern")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the value field of hydra.lisp.syntax.DestructuringBinding+destructuringBindingValue :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.Expression+destructuringBindingValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the pattern field of hydra.lisp.syntax.DestructuringBinding+destructuringBindingWithPattern :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.DestructuringPattern -> Typed.TypedTerm Syntax.DestructuringBinding+destructuringBindingWithPattern original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.DestructuringBinding+destructuringBindingWithValue :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DestructuringBinding+destructuringBindingWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringBinding"),+ Model.projectionFieldName = (Model.Name "pattern")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the associative variant of hydra.lisp.syntax.DestructuringPattern+destructuringPatternAssociative :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.DestructuringPattern+destructuringPatternAssociative x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringPattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "associative"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.DestructuringPattern+destructuringPatternDestructuringPattern :: Typed.TypedName Syntax.DestructuringPattern+destructuringPatternDestructuringPattern = Typed.TypedName (Model.Name "hydra.lisp.syntax.DestructuringPattern")++-- | DSL injection for the rest variant of hydra.lisp.syntax.DestructuringPattern+destructuringPatternRest :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.DestructuringPattern+destructuringPatternRest x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringPattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "rest"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the sequential variant of hydra.lisp.syntax.DestructuringPattern+destructuringPatternSequential :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.DestructuringPattern+destructuringPatternSequential x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.DestructuringPattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "sequential"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the clojure variant of hydra.lisp.syntax.Dialect+dialectClojure :: Typed.TypedTerm Syntax.Dialect+dialectClojure =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Dialect"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "clojure"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the commonLisp variant of hydra.lisp.syntax.Dialect+dialectCommonLisp :: Typed.TypedTerm Syntax.Dialect+dialectCommonLisp =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Dialect"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "commonLisp"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.lisp.syntax.Dialect+dialectDialect :: Typed.TypedName Syntax.Dialect+dialectDialect = Typed.TypedName (Model.Name "hydra.lisp.syntax.Dialect")++-- | DSL injection for the emacsLisp variant of hydra.lisp.syntax.Dialect+dialectEmacsLisp :: Typed.TypedTerm Syntax.Dialect+dialectEmacsLisp =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Dialect"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "emacsLisp"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the scheme variant of hydra.lisp.syntax.Dialect+dialectScheme :: Typed.TypedTerm Syntax.Dialect+dialectScheme =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Dialect"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "scheme"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.lisp.syntax.DoExpression+doExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.DoExpression+doExpression expressions =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DoExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm expressions)}]}))++-- | DSL name token for hydra.lisp.syntax.DoExpression+doExpressionDoExpression :: Typed.TypedName Syntax.DoExpression+doExpressionDoExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.DoExpression")++-- | DSL accessor for the expressions field of hydra.lisp.syntax.DoExpression+doExpressionExpressions :: Typed.TypedTerm Syntax.DoExpression -> Typed.TypedTerm [Syntax.Expression]+doExpressionExpressions x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DoExpression"),+ Model.projectionFieldName = (Model.Name "expressions")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expressions field of hydra.lisp.syntax.DoExpression+doExpressionWithExpressions :: Typed.TypedTerm Syntax.DoExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.DoExpression+doExpressionWithExpressions original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DoExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.lisp.syntax.Docstring wrapper+docstring :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Docstring+docstring x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.lisp.syntax.Docstring"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.Docstring+docstringDocstring :: Typed.TypedName Syntax.Docstring+docstringDocstring = Typed.TypedName (Model.Name "hydra.lisp.syntax.Docstring")++-- | DSL constructor for hydra.lisp.syntax.DottedPair+dottedPair :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DottedPair+dottedPair car cdr =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "car"),+ Model.fieldTerm = (Typed.unTypedTerm car)},+ Model.Field {+ Model.fieldName = (Model.Name "cdr"),+ Model.fieldTerm = (Typed.unTypedTerm cdr)}]}))++-- | DSL accessor for the car field of hydra.lisp.syntax.DottedPair+dottedPairCar :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression+dottedPairCar x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.projectionFieldName = (Model.Name "car")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cdr field of hydra.lisp.syntax.DottedPair+dottedPairCdr :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression+dottedPairCdr x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.projectionFieldName = (Model.Name "cdr")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.DottedPair+dottedPairDottedPair :: Typed.TypedName Syntax.DottedPair+dottedPairDottedPair = Typed.TypedName (Model.Name "hydra.lisp.syntax.DottedPair")++-- | DSL updater for the car field of hydra.lisp.syntax.DottedPair+dottedPairWithCar :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DottedPair+dottedPairWithCar original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "car"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "cdr"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.projectionFieldName = (Model.Name "cdr")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the cdr field of hydra.lisp.syntax.DottedPair+dottedPairWithCdr :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DottedPair+dottedPairWithCdr original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "car"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.DottedPair"),+ Model.projectionFieldName = (Model.Name "car")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "cdr"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.ExportDeclaration+exportDeclaration :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.ExportDeclaration+exportDeclaration symbols =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ExportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "symbols"),+ Model.fieldTerm = (Typed.unTypedTerm symbols)}]}))++-- | DSL name token for hydra.lisp.syntax.ExportDeclaration+exportDeclarationExportDeclaration :: Typed.TypedName Syntax.ExportDeclaration+exportDeclarationExportDeclaration = Typed.TypedName (Model.Name "hydra.lisp.syntax.ExportDeclaration")++-- | DSL accessor for the symbols field of hydra.lisp.syntax.ExportDeclaration+exportDeclarationSymbols :: Typed.TypedTerm Syntax.ExportDeclaration -> Typed.TypedTerm [Syntax.Symbol]+exportDeclarationSymbols x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ExportDeclaration"),+ Model.projectionFieldName = (Model.Name "symbols")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the symbols field of hydra.lisp.syntax.ExportDeclaration+exportDeclarationWithSymbols :: Typed.TypedTerm Syntax.ExportDeclaration -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.ExportDeclaration+exportDeclarationWithSymbols original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ExportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "symbols"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the and variant of hydra.lisp.syntax.Expression+expressionAnd :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm Syntax.Expression+expressionAnd x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "and"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the application variant of hydra.lisp.syntax.Expression+expressionApplication :: Typed.TypedTerm Syntax.Application -> Typed.TypedTerm Syntax.Expression+expressionApplication x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "application"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the begin variant of hydra.lisp.syntax.Expression+expressionBegin :: Typed.TypedTerm Syntax.BeginExpression -> Typed.TypedTerm Syntax.Expression+expressionBegin x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "begin"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the case variant of hydra.lisp.syntax.Expression+expressionCase :: Typed.TypedTerm Syntax.CaseExpression -> Typed.TypedTerm Syntax.Expression+expressionCase x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "case"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the cond variant of hydra.lisp.syntax.Expression+expressionCond :: Typed.TypedTerm Syntax.CondExpression -> Typed.TypedTerm Syntax.Expression+expressionCond x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the cons variant of hydra.lisp.syntax.Expression+expressionCons :: Typed.TypedTerm Syntax.ConsExpression -> Typed.TypedTerm Syntax.Expression+expressionCons x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "cons"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the do variant of hydra.lisp.syntax.Expression+expressionDo :: Typed.TypedTerm Syntax.DoExpression -> Typed.TypedTerm Syntax.Expression+expressionDo x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "do"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the dottedPair variant of hydra.lisp.syntax.Expression+expressionDottedPair :: Typed.TypedTerm Syntax.DottedPair -> Typed.TypedTerm Syntax.Expression+expressionDottedPair x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "dottedPair"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.Expression+expressionExpression :: Typed.TypedName Syntax.Expression+expressionExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.Expression")++-- | DSL injection for the fieldAccess variant of hydra.lisp.syntax.Expression+expressionFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Expression+expressionFieldAccess x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "fieldAccess"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the if variant of hydra.lisp.syntax.Expression+expressionIf :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression+expressionIf x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "if"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the lambda variant of hydra.lisp.syntax.Expression+expressionLambda :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm Syntax.Expression+expressionLambda x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "lambda"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the let variant of hydra.lisp.syntax.Expression+expressionLet :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm Syntax.Expression+expressionLet x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "let"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the list variant of hydra.lisp.syntax.Expression+expressionList :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm Syntax.Expression+expressionList x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "list"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the literal variant of hydra.lisp.syntax.Expression+expressionLiteral :: Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.Expression+expressionLiteral x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "literal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the map variant of hydra.lisp.syntax.Expression+expressionMap :: Typed.TypedTerm Syntax.MapLiteral -> Typed.TypedTerm Syntax.Expression+expressionMap x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "map"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the not variant of hydra.lisp.syntax.Expression+expressionNot :: Typed.TypedTerm Syntax.NotExpression -> Typed.TypedTerm Syntax.Expression+expressionNot x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "not"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the or variant of hydra.lisp.syntax.Expression+expressionOr :: Typed.TypedTerm Syntax.OrExpression -> Typed.TypedTerm Syntax.Expression+expressionOr x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "or"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the quasiquote variant of hydra.lisp.syntax.Expression+expressionQuasiquote :: Typed.TypedTerm Syntax.QuasiquoteExpression -> Typed.TypedTerm Syntax.Expression+expressionQuasiquote x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "quasiquote"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the quote variant of hydra.lisp.syntax.Expression+expressionQuote :: Typed.TypedTerm Syntax.QuoteExpression -> Typed.TypedTerm Syntax.Expression+expressionQuote x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "quote"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the sExpression variant of hydra.lisp.syntax.Expression+expressionSExpression :: Typed.TypedTerm Syntax.SExpression -> Typed.TypedTerm Syntax.Expression+expressionSExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "sExpression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the set variant of hydra.lisp.syntax.Expression+expressionSet :: Typed.TypedTerm Syntax.SetLiteral -> Typed.TypedTerm Syntax.Expression+expressionSet x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "set"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the splicingUnquote variant of hydra.lisp.syntax.Expression+expressionSplicingUnquote :: Typed.TypedTerm Syntax.SplicingUnquoteExpression -> Typed.TypedTerm Syntax.Expression+expressionSplicingUnquote x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "splicingUnquote"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typeAnnotation variant of hydra.lisp.syntax.Expression+expressionTypeAnnotation :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.Expression+expressionTypeAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "typeAnnotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unquote variant of hydra.lisp.syntax.Expression+expressionUnquote :: Typed.TypedTerm Syntax.UnquoteExpression -> Typed.TypedTerm Syntax.Expression+expressionUnquote x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unquote"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the variable variant of hydra.lisp.syntax.Expression+expressionVariable :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Syntax.Expression+expressionVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the vector variant of hydra.lisp.syntax.Expression+expressionVector :: Typed.TypedTerm Syntax.VectorLiteral -> Typed.TypedTerm Syntax.Expression+expressionVector x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "vector"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.lisp.syntax.FieldAccess+fieldAccess :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.FieldAccess+fieldAccess recordType field target =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "recordType"),+ Model.fieldTerm = (Typed.unTypedTerm recordType)},+ Model.Field {+ Model.fieldName = (Model.Name "field"),+ Model.fieldTerm = (Typed.unTypedTerm field)},+ Model.Field {+ Model.fieldName = (Model.Name "target"),+ Model.fieldTerm = (Typed.unTypedTerm target)}]}))++-- | DSL accessor for the field field of hydra.lisp.syntax.FieldAccess+fieldAccessField :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol+fieldAccessField x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "field")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.FieldAccess+fieldAccessFieldAccess :: Typed.TypedName Syntax.FieldAccess+fieldAccessFieldAccess = Typed.TypedName (Model.Name "hydra.lisp.syntax.FieldAccess")++-- | DSL accessor for the recordType field of hydra.lisp.syntax.FieldAccess+fieldAccessRecordType :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol+fieldAccessRecordType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "recordType")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the target field of hydra.lisp.syntax.FieldAccess+fieldAccessTarget :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Expression+fieldAccessTarget x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "target")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the field field of hydra.lisp.syntax.FieldAccess+fieldAccessWithField :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FieldAccess+fieldAccessWithField original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "recordType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "recordType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "field"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "target"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "target")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the recordType field of hydra.lisp.syntax.FieldAccess+fieldAccessWithRecordType :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FieldAccess+fieldAccessWithRecordType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "recordType"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "field"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "field")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "target"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "target")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the target field of hydra.lisp.syntax.FieldAccess+fieldAccessWithTarget :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.FieldAccess+fieldAccessWithTarget original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "recordType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "recordType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "field"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "field")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "target"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.FieldDefinition+fieldDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.FieldDefinition+fieldDefinition name defaultValue =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "defaultValue"),+ Model.fieldTerm = (Typed.unTypedTerm defaultValue)}]}))++-- | DSL accessor for the defaultValue field of hydra.lisp.syntax.FieldDefinition+fieldDefinitionDefaultValue :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm (Maybe Syntax.Expression)+fieldDefinitionDefaultValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldDefinition"),+ Model.projectionFieldName = (Model.Name "defaultValue")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.FieldDefinition+fieldDefinitionFieldDefinition :: Typed.TypedName Syntax.FieldDefinition+fieldDefinitionFieldDefinition = Typed.TypedName (Model.Name "hydra.lisp.syntax.FieldDefinition")++-- | DSL accessor for the name field of hydra.lisp.syntax.FieldDefinition+fieldDefinitionName :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm Syntax.Symbol+fieldDefinitionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the defaultValue field of hydra.lisp.syntax.FieldDefinition+fieldDefinitionWithDefaultValue :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.FieldDefinition+fieldDefinitionWithDefaultValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldDefinition"),+ 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.lisp.syntax.FieldDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "defaultValue"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.FieldDefinition+fieldDefinitionWithName :: Typed.TypedTerm Syntax.FieldDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FieldDefinition+fieldDefinitionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FieldDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "defaultValue"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FieldDefinition"),+ Model.projectionFieldName = (Model.Name "defaultValue")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.FloatLiteral+floatLiteral :: Typed.TypedTerm Double -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.FloatLiteral+floatLiteral value precision =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "precision"),+ Model.fieldTerm = (Typed.unTypedTerm precision)}]}))++-- | DSL name token for hydra.lisp.syntax.FloatLiteral+floatLiteralFloatLiteral :: Typed.TypedName Syntax.FloatLiteral+floatLiteralFloatLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.FloatLiteral")++-- | DSL accessor for the precision field of hydra.lisp.syntax.FloatLiteral+floatLiteralPrecision :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm (Maybe String)+floatLiteralPrecision x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.projectionFieldName = (Model.Name "precision")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the value field of hydra.lisp.syntax.FloatLiteral+floatLiteralValue :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm Double+floatLiteralValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the precision field of hydra.lisp.syntax.FloatLiteral+floatLiteralWithPrecision :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.FloatLiteral+floatLiteralWithPrecision original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "precision"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.FloatLiteral+floatLiteralWithValue :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm Double -> Typed.TypedTerm Syntax.FloatLiteral+floatLiteralWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "precision"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FloatLiteral"),+ Model.projectionFieldName = (Model.Name "precision")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.FunctionDefinition+functionDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm [Syntax.TypeHint] -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinition name params restParam doc typeHints body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Typed.unTypedTerm params)},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Typed.unTypedTerm restParam)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm doc)},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ Model.fieldTerm = (Typed.unTypedTerm typeHints)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionBody :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Expression]+functionDefinitionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the doc field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionDoc :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)+functionDefinitionDoc x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.FunctionDefinition+functionDefinitionFunctionDefinition :: Typed.TypedName Syntax.FunctionDefinition+functionDefinitionFunctionDefinition = Typed.TypedName (Model.Name "hydra.lisp.syntax.FunctionDefinition")++-- | DSL accessor for the name field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionName :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm Syntax.Symbol+functionDefinitionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the params field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionParams :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Symbol]+functionDefinitionParams x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the restParam field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionRestParam :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol)+functionDefinitionRestParam x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeHints field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionTypeHints :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.TypeHint]+functionDefinitionTypeHints x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "typeHints")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionWithBody :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinitionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "typeHints")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the doc field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionWithDoc :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinitionWithDoc original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "typeHints")})),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionWithName :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinitionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "typeHints")})),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the params field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionWithParams :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinitionWithParams original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "typeHints")})),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the restParam field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionWithRestParam :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinitionWithRestParam original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "typeHints")})),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeHints field of hydra.lisp.syntax.FunctionDefinition+functionDefinitionWithTypeHints :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm [Syntax.TypeHint] -> Typed.TypedTerm Syntax.FunctionDefinition+functionDefinitionWithTypeHints original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeHints"),+ 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.lisp.syntax.FunctionDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.IfExpression+ifExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfExpression+ifExpression condition then_ else_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ Model.fieldTerm = (Typed.unTypedTerm condition)},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Typed.unTypedTerm then_)},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Typed.unTypedTerm else_)}]}))++-- | DSL accessor for the condition field of hydra.lisp.syntax.IfExpression+ifExpressionCondition :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression+ifExpressionCondition x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "condition")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the else field of hydra.lisp.syntax.IfExpression+ifExpressionElse :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm (Maybe Syntax.Expression)+ifExpressionElse x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.IfExpression+ifExpressionIfExpression :: Typed.TypedName Syntax.IfExpression+ifExpressionIfExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.IfExpression")++-- | DSL accessor for the then field of hydra.lisp.syntax.IfExpression+ifExpressionThen :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression+ifExpressionThen x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the condition field of hydra.lisp.syntax.IfExpression+ifExpressionWithCondition :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.IfExpression+ifExpressionWithCondition original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the else field of hydra.lisp.syntax.IfExpression+ifExpressionWithElse :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfExpression+ifExpressionWithElse original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "condition")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the then field of hydra.lisp.syntax.IfExpression+ifExpressionWithThen :: Typed.TypedTerm Syntax.IfExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.IfExpression+ifExpressionWithThen original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "condition"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "condition")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IfExpression"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.ImportDeclaration+importDeclaration :: Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm Syntax.ImportSpec -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclaration module_ spec =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm module_)},+ Model.Field {+ Model.fieldName = (Model.Name "spec"),+ Model.fieldTerm = (Typed.unTypedTerm spec)}]}))++-- | DSL name token for hydra.lisp.syntax.ImportDeclaration+importDeclarationImportDeclaration :: Typed.TypedName Syntax.ImportDeclaration+importDeclarationImportDeclaration = Typed.TypedName (Model.Name "hydra.lisp.syntax.ImportDeclaration")++-- | DSL accessor for the module field of hydra.lisp.syntax.ImportDeclaration+importDeclarationModule :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.NamespaceName+importDeclarationModule x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the spec field of hydra.lisp.syntax.ImportDeclaration+importDeclarationSpec :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.ImportSpec+importDeclarationSpec x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.projectionFieldName = (Model.Name "spec")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the module field of hydra.lisp.syntax.ImportDeclaration+importDeclarationWithModule :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclarationWithModule original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "spec"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.projectionFieldName = (Model.Name "spec")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the spec field of hydra.lisp.syntax.ImportDeclaration+importDeclarationWithSpec :: Typed.TypedTerm Syntax.ImportDeclaration -> Typed.TypedTerm Syntax.ImportSpec -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclarationWithSpec original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ImportDeclaration"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "spec"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the alias variant of hydra.lisp.syntax.ImportSpec+importSpecAlias :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.ImportSpec+importSpecAlias x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.ImportSpec"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "alias"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the all variant of hydra.lisp.syntax.ImportSpec+importSpecAll :: Typed.TypedTerm Syntax.ImportSpec+importSpecAll =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.ImportSpec"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "all"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.lisp.syntax.ImportSpec+importSpecImportSpec :: Typed.TypedName Syntax.ImportSpec+importSpecImportSpec = Typed.TypedName (Model.Name "hydra.lisp.syntax.ImportSpec")++-- | DSL injection for the only variant of hydra.lisp.syntax.ImportSpec+importSpecOnly :: Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.ImportSpec+importSpecOnly x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.ImportSpec"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "only"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the rename variant of hydra.lisp.syntax.ImportSpec+importSpecRename :: Typed.TypedTerm [[Syntax.Symbol]] -> Typed.TypedTerm Syntax.ImportSpec+importSpecRename x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.ImportSpec"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "rename"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.lisp.syntax.IntegerLiteral+integerLiteral :: Typed.TypedTerm Integer -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.IntegerLiteral+integerLiteral value bigint =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "bigint"),+ Model.fieldTerm = (Typed.unTypedTerm bigint)}]}))++-- | DSL accessor for the bigint field of hydra.lisp.syntax.IntegerLiteral+integerLiteralBigint :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Bool+integerLiteralBigint x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.projectionFieldName = (Model.Name "bigint")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.IntegerLiteral+integerLiteralIntegerLiteral :: Typed.TypedName Syntax.IntegerLiteral+integerLiteralIntegerLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.IntegerLiteral")++-- | DSL accessor for the value field of hydra.lisp.syntax.IntegerLiteral+integerLiteralValue :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Integer+integerLiteralValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the bigint field of hydra.lisp.syntax.IntegerLiteral+integerLiteralWithBigint :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.IntegerLiteral+integerLiteralWithBigint original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bigint"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.IntegerLiteral+integerLiteralWithValue :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Integer -> Typed.TypedTerm Syntax.IntegerLiteral+integerLiteralWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "bigint"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.IntegerLiteral"),+ Model.projectionFieldName = (Model.Name "bigint")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.Keyword+keyword :: Typed.TypedTerm String -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.Keyword+keyword name namespace =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Keyword"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "namespace"),+ Model.fieldTerm = (Typed.unTypedTerm namespace)}]}))++-- | DSL name token for hydra.lisp.syntax.Keyword+keywordKeyword :: Typed.TypedName Syntax.Keyword+keywordKeyword = Typed.TypedName (Model.Name "hydra.lisp.syntax.Keyword")++-- | DSL accessor for the name field of hydra.lisp.syntax.Keyword+keywordName :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm String+keywordName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Keyword"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the namespace field of hydra.lisp.syntax.Keyword+keywordNamespace :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm (Maybe String)+keywordNamespace x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Keyword"),+ Model.projectionFieldName = (Model.Name "namespace")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.lisp.syntax.Keyword+keywordWithName :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.Keyword+keywordWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Keyword"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "namespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Keyword"),+ Model.projectionFieldName = (Model.Name "namespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the namespace field of hydra.lisp.syntax.Keyword+keywordWithNamespace :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.Keyword+keywordWithNamespace original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Keyword"),+ 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.lisp.syntax.Keyword"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "namespace"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.Lambda+lambda :: Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Lambda+lambda name params restParam body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Typed.unTypedTerm params)},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Typed.unTypedTerm restParam)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.Lambda+lambdaBody :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Expression]+lambdaBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.Lambda+lambdaLambda :: Typed.TypedName Syntax.Lambda+lambdaLambda = Typed.TypedName (Model.Name "hydra.lisp.syntax.Lambda")++-- | DSL accessor for the name field of hydra.lisp.syntax.Lambda+lambdaName :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol)+lambdaName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the params field of hydra.lisp.syntax.Lambda+lambdaParams :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Symbol]+lambdaParams x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the restParam field of hydra.lisp.syntax.Lambda+lambdaRestParam :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol)+lambdaRestParam x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.lisp.syntax.Lambda+lambdaWithBody :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.Lambda+lambdaWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ 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.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.Lambda+lambdaWithName :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.Lambda+lambdaWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ 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.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the params field of hydra.lisp.syntax.Lambda+lambdaWithParams :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.Lambda+lambdaWithParams original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ 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.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ 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.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the restParam field of hydra.lisp.syntax.Lambda+lambdaWithRestParam :: Typed.TypedTerm Syntax.Lambda -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.Lambda+lambdaWithRestParam original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ 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.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ 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.lisp.syntax.Lambda"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the destructuring variant of hydra.lisp.syntax.LetBinding+letBindingDestructuring :: Typed.TypedTerm Syntax.DestructuringBinding -> Typed.TypedTerm Syntax.LetBinding+letBindingDestructuring x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.LetBinding"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "destructuring"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.LetBinding+letBindingLetBinding :: Typed.TypedName Syntax.LetBinding+letBindingLetBinding = Typed.TypedName (Model.Name "hydra.lisp.syntax.LetBinding")++-- | DSL injection for the simple variant of hydra.lisp.syntax.LetBinding+letBindingSimple :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.LetBinding+letBindingSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.LetBinding"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.lisp.syntax.LetExpression+letExpression :: Typed.TypedTerm Syntax.LetKind -> Typed.TypedTerm [Syntax.LetBinding] -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.LetExpression+letExpression kind bindings body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "kind"),+ Model.fieldTerm = (Typed.unTypedTerm kind)},+ Model.Field {+ Model.fieldName = (Model.Name "bindings"),+ Model.fieldTerm = (Typed.unTypedTerm bindings)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the bindings field of hydra.lisp.syntax.LetExpression+letExpressionBindings :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.LetBinding]+letExpressionBindings x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "bindings")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body field of hydra.lisp.syntax.LetExpression+letExpressionBody :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.Expression]+letExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the kind field of hydra.lisp.syntax.LetExpression+letExpressionKind :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm Syntax.LetKind+letExpressionKind x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "kind")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.LetExpression+letExpressionLetExpression :: Typed.TypedName Syntax.LetExpression+letExpressionLetExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.LetExpression")++-- | DSL updater for the bindings field of hydra.lisp.syntax.LetExpression+letExpressionWithBindings :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.LetBinding] -> Typed.TypedTerm Syntax.LetExpression+letExpressionWithBindings original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "kind"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "kind")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bindings"),+ 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.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the body field of hydra.lisp.syntax.LetExpression+letExpressionWithBody :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.LetExpression+letExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "kind"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "kind")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bindings"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "bindings")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the kind field of hydra.lisp.syntax.LetExpression+letExpressionWithKind :: Typed.TypedTerm Syntax.LetExpression -> Typed.TypedTerm Syntax.LetKind -> Typed.TypedTerm Syntax.LetExpression+letExpressionWithKind original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "kind"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "bindings"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "bindings")})),+ 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.lisp.syntax.LetExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.lisp.syntax.LetKind+letKindLetKind :: Typed.TypedName Syntax.LetKind+letKindLetKind = Typed.TypedName (Model.Name "hydra.lisp.syntax.LetKind")++-- | DSL injection for the parallel variant of hydra.lisp.syntax.LetKind+letKindParallel :: Typed.TypedTerm Syntax.LetKind+letKindParallel =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.LetKind"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "parallel"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the recursive variant of hydra.lisp.syntax.LetKind+letKindRecursive :: Typed.TypedTerm Syntax.LetKind+letKindRecursive =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.LetKind"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "recursive"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the sequential variant of hydra.lisp.syntax.LetKind+letKindSequential :: Typed.TypedTerm Syntax.LetKind+letKindSequential =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.LetKind"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "sequential"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.lisp.syntax.ListLiteral+listLiteral :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ListLiteral+listLiteral elements quoted =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Typed.unTypedTerm elements)},+ Model.Field {+ Model.fieldName = (Model.Name "quoted"),+ Model.fieldTerm = (Typed.unTypedTerm quoted)}]}))++-- | DSL accessor for the elements field of hydra.lisp.syntax.ListLiteral+listLiteralElements :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm [Syntax.Expression]+listLiteralElements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.projectionFieldName = (Model.Name "elements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.ListLiteral+listLiteralListLiteral :: Typed.TypedName Syntax.ListLiteral+listLiteralListLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.ListLiteral")++-- | DSL accessor for the quoted field of hydra.lisp.syntax.ListLiteral+listLiteralQuoted :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm Bool+listLiteralQuoted x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.projectionFieldName = (Model.Name "quoted")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the elements field of hydra.lisp.syntax.ListLiteral+listLiteralWithElements :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.ListLiteral+listLiteralWithElements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "quoted"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.projectionFieldName = (Model.Name "quoted")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the quoted field of hydra.lisp.syntax.ListLiteral+listLiteralWithQuoted :: Typed.TypedTerm Syntax.ListLiteral -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ListLiteral+listLiteralWithQuoted original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ListLiteral"),+ Model.projectionFieldName = (Model.Name "elements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "quoted"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the boolean variant of hydra.lisp.syntax.Literal+literalBoolean :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.Literal+literalBoolean x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "boolean"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the character variant of hydra.lisp.syntax.Literal+literalCharacter :: Typed.TypedTerm Syntax.CharacterLiteral -> Typed.TypedTerm Syntax.Literal+literalCharacter x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "character"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the decimal variant of hydra.lisp.syntax.Literal+literalDecimal :: Typed.TypedTerm Syntax.DecimalLiteral -> Typed.TypedTerm Syntax.Literal+literalDecimal x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "decimal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the float variant of hydra.lisp.syntax.Literal+literalFloat :: Typed.TypedTerm Syntax.FloatLiteral -> Typed.TypedTerm Syntax.Literal+literalFloat x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "float"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the integer variant of hydra.lisp.syntax.Literal+literalInteger :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Syntax.Literal+literalInteger x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "integer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the keyword variant of hydra.lisp.syntax.Literal+literalKeyword :: Typed.TypedTerm Syntax.Keyword -> Typed.TypedTerm Syntax.Literal+literalKeyword x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "keyword"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.Literal+literalLiteral :: Typed.TypedName Syntax.Literal+literalLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.Literal")++-- | DSL injection for the nil variant of hydra.lisp.syntax.Literal+literalNil :: Typed.TypedTerm Syntax.Literal+literalNil =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "nil"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.lisp.syntax.LiteralPattern+literalPattern :: Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.LiteralPattern+literalPattern value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.LiteralPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL name token for hydra.lisp.syntax.LiteralPattern+literalPatternLiteralPattern :: Typed.TypedName Syntax.LiteralPattern+literalPatternLiteralPattern = Typed.TypedName (Model.Name "hydra.lisp.syntax.LiteralPattern")++-- | DSL accessor for the value field of hydra.lisp.syntax.LiteralPattern+literalPatternValue :: Typed.TypedTerm Syntax.LiteralPattern -> Typed.TypedTerm Syntax.Literal+literalPatternValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.LiteralPattern"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the value field of hydra.lisp.syntax.LiteralPattern+literalPatternWithValue :: Typed.TypedTerm Syntax.LiteralPattern -> Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.LiteralPattern+literalPatternWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.LiteralPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the string variant of hydra.lisp.syntax.Literal+literalString :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Literal+literalString x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "string"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the symbol variant of hydra.lisp.syntax.Literal+literalSymbol :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Literal+literalSymbol x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "symbol"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.lisp.syntax.MacroDefinition+macroDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MacroDefinition+macroDefinition name params restParam body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Typed.unTypedTerm params)},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Typed.unTypedTerm restParam)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.MacroDefinition+macroDefinitionBody :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Expression]+macroDefinitionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.MacroDefinition+macroDefinitionMacroDefinition :: Typed.TypedName Syntax.MacroDefinition+macroDefinitionMacroDefinition = Typed.TypedName (Model.Name "hydra.lisp.syntax.MacroDefinition")++-- | DSL accessor for the name field of hydra.lisp.syntax.MacroDefinition+macroDefinitionName :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm Syntax.Symbol+macroDefinitionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the params field of hydra.lisp.syntax.MacroDefinition+macroDefinitionParams :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Symbol]+macroDefinitionParams x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the restParam field of hydra.lisp.syntax.MacroDefinition+macroDefinitionRestParam :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol)+macroDefinitionRestParam x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.lisp.syntax.MacroDefinition+macroDefinitionWithBody :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MacroDefinition+macroDefinitionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ 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.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.MacroDefinition+macroDefinitionWithName :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.MacroDefinition+macroDefinitionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ 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.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the params field of hydra.lisp.syntax.MacroDefinition+macroDefinitionWithParams :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm [Syntax.Symbol] -> Typed.TypedTerm Syntax.MacroDefinition+macroDefinitionWithParams original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ 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.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "restParam")})),+ 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.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the restParam field of hydra.lisp.syntax.MacroDefinition+macroDefinitionWithRestParam :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm (Maybe Syntax.Symbol) -> Typed.TypedTerm Syntax.MacroDefinition+macroDefinitionWithRestParam original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ 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.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "params"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "params")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "restParam"),+ 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.lisp.syntax.MacroDefinition"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.MapEntry+mapEntry :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.MapEntry+mapEntry key value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "key"),+ Model.fieldTerm = (Typed.unTypedTerm key)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL accessor for the key field of hydra.lisp.syntax.MapEntry+mapEntryKey :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression+mapEntryKey x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.projectionFieldName = (Model.Name "key")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.MapEntry+mapEntryMapEntry :: Typed.TypedName Syntax.MapEntry+mapEntryMapEntry = Typed.TypedName (Model.Name "hydra.lisp.syntax.MapEntry")++-- | DSL accessor for the value field of hydra.lisp.syntax.MapEntry+mapEntryValue :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression+mapEntryValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the key field of hydra.lisp.syntax.MapEntry+mapEntryWithKey :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.MapEntry+mapEntryWithKey original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "key"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.MapEntry+mapEntryWithValue :: Typed.TypedTerm Syntax.MapEntry -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.MapEntry+mapEntryWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "key"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MapEntry"),+ Model.projectionFieldName = (Model.Name "key")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.MapLiteral+mapLiteral :: Typed.TypedTerm [Syntax.MapEntry] -> Typed.TypedTerm Syntax.MapLiteral+mapLiteral entries =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MapLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "entries"),+ Model.fieldTerm = (Typed.unTypedTerm entries)}]}))++-- | DSL accessor for the entries field of hydra.lisp.syntax.MapLiteral+mapLiteralEntries :: Typed.TypedTerm Syntax.MapLiteral -> Typed.TypedTerm [Syntax.MapEntry]+mapLiteralEntries x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.MapLiteral"),+ Model.projectionFieldName = (Model.Name "entries")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.MapLiteral+mapLiteralMapLiteral :: Typed.TypedName Syntax.MapLiteral+mapLiteralMapLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.MapLiteral")++-- | DSL updater for the entries field of hydra.lisp.syntax.MapLiteral+mapLiteralWithEntries :: Typed.TypedTerm Syntax.MapLiteral -> Typed.TypedTerm [Syntax.MapEntry] -> Typed.TypedTerm Syntax.MapLiteral+mapLiteralWithEntries original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.MapLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "entries"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.ModuleDeclaration+moduleDeclaration :: Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclaration name doc =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm doc)}]}))++-- | DSL accessor for the doc field of hydra.lisp.syntax.ModuleDeclaration+moduleDeclarationDoc :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm (Maybe Syntax.Docstring)+moduleDeclarationDoc x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.ModuleDeclaration+moduleDeclarationModuleDeclaration :: Typed.TypedName Syntax.ModuleDeclaration+moduleDeclarationModuleDeclaration = Typed.TypedName (Model.Name "hydra.lisp.syntax.ModuleDeclaration")++-- | DSL accessor for the name field of hydra.lisp.syntax.ModuleDeclaration+moduleDeclarationName :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.NamespaceName+moduleDeclarationName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the doc field of hydra.lisp.syntax.ModuleDeclaration+moduleDeclarationWithDoc :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclarationWithDoc original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ModuleDeclaration"),+ 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.lisp.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.ModuleDeclaration+moduleDeclarationWithName :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclarationWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.lisp.syntax.NamespaceName wrapper+namespaceName :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.NamespaceName+namespaceName x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.lisp.syntax.NamespaceName"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.NamespaceName+namespaceNameNamespaceName :: Typed.TypedName Syntax.NamespaceName+namespaceNameNamespaceName = Typed.TypedName (Model.Name "hydra.lisp.syntax.NamespaceName")++-- | DSL injection for the emptyList variant of hydra.lisp.syntax.NilStyle+nilStyleEmptyList :: Typed.TypedTerm Syntax.NilStyle+nilStyleEmptyList =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.NilStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "emptyList"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the nil variant of hydra.lisp.syntax.NilStyle+nilStyleNil :: Typed.TypedTerm Syntax.NilStyle+nilStyleNil =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.NilStyle"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "nil"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.lisp.syntax.NilStyle+nilStyleNilStyle :: Typed.TypedName Syntax.NilStyle+nilStyleNilStyle = Typed.TypedName (Model.Name "hydra.lisp.syntax.NilStyle")++-- | DSL constructor for hydra.lisp.syntax.NotExpression+notExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.NotExpression+notExpression expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.NotExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL accessor for the expression field of hydra.lisp.syntax.NotExpression+notExpressionExpression :: Typed.TypedTerm Syntax.NotExpression -> Typed.TypedTerm Syntax.Expression+notExpressionExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.NotExpression"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.NotExpression+notExpressionNotExpression :: Typed.TypedName Syntax.NotExpression+notExpressionNotExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.NotExpression")++-- | DSL updater for the expression field of hydra.lisp.syntax.NotExpression+notExpressionWithExpression :: Typed.TypedTerm Syntax.NotExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.NotExpression+notExpressionWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.NotExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.OrExpression+orExpression :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.OrExpression+orExpression expressions =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.OrExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm expressions)}]}))++-- | DSL accessor for the expressions field of hydra.lisp.syntax.OrExpression+orExpressionExpressions :: Typed.TypedTerm Syntax.OrExpression -> Typed.TypedTerm [Syntax.Expression]+orExpressionExpressions x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.OrExpression"),+ Model.projectionFieldName = (Model.Name "expressions")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.OrExpression+orExpressionOrExpression :: Typed.TypedName Syntax.OrExpression+orExpressionOrExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.OrExpression")++-- | DSL updater for the expressions field of hydra.lisp.syntax.OrExpression+orExpressionWithExpressions :: Typed.TypedTerm Syntax.OrExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.OrExpression+orExpressionWithExpressions original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.OrExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expressions"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the constructor variant of hydra.lisp.syntax.Pattern+patternConstructor :: Typed.TypedTerm Syntax.ConstructorPattern -> Typed.TypedTerm Syntax.Pattern+patternConstructor x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Pattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the literal variant of hydra.lisp.syntax.Pattern+patternLiteral :: Typed.TypedTerm Syntax.LiteralPattern -> Typed.TypedTerm Syntax.Pattern+patternLiteral x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Pattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "literal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.Pattern+patternPattern :: Typed.TypedName Syntax.Pattern+patternPattern = Typed.TypedName (Model.Name "hydra.lisp.syntax.Pattern")++-- | DSL injection for the variable variant of hydra.lisp.syntax.Pattern+patternVariable :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Pattern+patternVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Pattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the wildcard variant of hydra.lisp.syntax.Pattern+patternWildcard :: Typed.TypedTerm Syntax.WildcardPattern -> Typed.TypedTerm Syntax.Pattern+patternWildcard x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.Pattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "wildcard"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.lisp.syntax.Program+program :: Typed.TypedTerm Syntax.Dialect -> Typed.TypedTerm (Maybe Syntax.ModuleDeclaration) -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm [Syntax.ExportDeclaration] -> Typed.TypedTerm [Syntax.TopLevelFormWithComments] -> Typed.TypedTerm Syntax.Program+program dialect module_ imports exports forms =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dialect"),+ Model.fieldTerm = (Typed.unTypedTerm dialect)},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm module_)},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Typed.unTypedTerm imports)},+ Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Typed.unTypedTerm exports)},+ Model.Field {+ Model.fieldName = (Model.Name "forms"),+ Model.fieldTerm = (Typed.unTypedTerm forms)}]}))++-- | DSL accessor for the dialect field of hydra.lisp.syntax.Program+programDialect :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm Syntax.Dialect+programDialect x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "dialect")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the exports field of hydra.lisp.syntax.Program+programExports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ExportDeclaration]+programExports x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "exports")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the forms field of hydra.lisp.syntax.Program+programForms :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.TopLevelFormWithComments]+programForms x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "forms")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the imports field of hydra.lisp.syntax.Program+programImports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ImportDeclaration]+programImports x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the module field of hydra.lisp.syntax.Program+programModule :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm (Maybe Syntax.ModuleDeclaration)+programModule x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.Program+programProgram :: Typed.TypedName Syntax.Program+programProgram = Typed.TypedName (Model.Name "hydra.lisp.syntax.Program")++-- | DSL updater for the dialect field of hydra.lisp.syntax.Program+programWithDialect :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm Syntax.Dialect -> Typed.TypedTerm Syntax.Program+programWithDialect original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dialect"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "exports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "forms"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "forms")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the exports field of hydra.lisp.syntax.Program+programWithExports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ExportDeclaration] -> Typed.TypedTerm Syntax.Program+programWithExports original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dialect"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "dialect")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "forms"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "forms")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the forms field of hydra.lisp.syntax.Program+programWithForms :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.TopLevelFormWithComments] -> Typed.TypedTerm Syntax.Program+programWithForms original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dialect"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "dialect")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "exports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "forms"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the imports field of hydra.lisp.syntax.Program+programWithImports :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.Program+programWithImports original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dialect"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "dialect")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "exports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "forms"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "forms")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the module field of hydra.lisp.syntax.Program+programWithModule :: Typed.TypedTerm Syntax.Program -> Typed.TypedTerm (Maybe Syntax.ModuleDeclaration) -> Typed.TypedTerm Syntax.Program+programWithModule original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dialect"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "dialect")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "exports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "forms"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.Program"),+ Model.projectionFieldName = (Model.Name "forms")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.QualifiedSymbol+qualifiedSymbol :: Typed.TypedTerm String -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.QualifiedSymbol+qualifiedSymbol namespace name =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QualifiedSymbol"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "namespace"),+ Model.fieldTerm = (Typed.unTypedTerm namespace)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.lisp.syntax.QualifiedSymbol+qualifiedSymbolName :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String+qualifiedSymbolName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.QualifiedSymbol"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the namespace field of hydra.lisp.syntax.QualifiedSymbol+qualifiedSymbolNamespace :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String+qualifiedSymbolNamespace x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.QualifiedSymbol"),+ Model.projectionFieldName = (Model.Name "namespace")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.QualifiedSymbol+qualifiedSymbolQualifiedSymbol :: Typed.TypedName Syntax.QualifiedSymbol+qualifiedSymbolQualifiedSymbol = Typed.TypedName (Model.Name "hydra.lisp.syntax.QualifiedSymbol")++-- | DSL updater for the name field of hydra.lisp.syntax.QualifiedSymbol+qualifiedSymbolWithName :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.QualifiedSymbol+qualifiedSymbolWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QualifiedSymbol"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "namespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.QualifiedSymbol"),+ Model.projectionFieldName = (Model.Name "namespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the namespace field of hydra.lisp.syntax.QualifiedSymbol+qualifiedSymbolWithNamespace :: Typed.TypedTerm Syntax.QualifiedSymbol -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.QualifiedSymbol+qualifiedSymbolWithNamespace original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QualifiedSymbol"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "namespace"),+ 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.lisp.syntax.QualifiedSymbol"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.QuasiquoteExpression+quasiquoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuasiquoteExpression+quasiquoteExpression body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QuasiquoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.QuasiquoteExpression+quasiquoteExpressionBody :: Typed.TypedTerm Syntax.QuasiquoteExpression -> Typed.TypedTerm Syntax.Expression+quasiquoteExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.QuasiquoteExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.QuasiquoteExpression+quasiquoteExpressionQuasiquoteExpression :: Typed.TypedName Syntax.QuasiquoteExpression+quasiquoteExpressionQuasiquoteExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.QuasiquoteExpression")++-- | DSL updater for the body field of hydra.lisp.syntax.QuasiquoteExpression+quasiquoteExpressionWithBody :: Typed.TypedTerm Syntax.QuasiquoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuasiquoteExpression+quasiquoteExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QuasiquoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.QuoteExpression+quoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuoteExpression+quoteExpression body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QuoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.QuoteExpression+quoteExpressionBody :: Typed.TypedTerm Syntax.QuoteExpression -> Typed.TypedTerm Syntax.Expression+quoteExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.QuoteExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.QuoteExpression+quoteExpressionQuoteExpression :: Typed.TypedName Syntax.QuoteExpression+quoteExpressionQuoteExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.QuoteExpression")++-- | DSL updater for the body field of hydra.lisp.syntax.QuoteExpression+quoteExpressionWithBody :: Typed.TypedTerm Syntax.QuoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.QuoteExpression+quoteExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.QuoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm [Syntax.FieldDefinition] -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.RecordTypeDefinition+recordTypeDefinition name fields doc =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "fields"),+ Model.fieldTerm = (Typed.unTypedTerm fields)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm doc)}]}))++-- | DSL accessor for the doc field of hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionDoc :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)+recordTypeDefinitionDoc x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the fields field of hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionFields :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm [Syntax.FieldDefinition]+recordTypeDefinitionFields x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "fields")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionName :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm Syntax.Symbol+recordTypeDefinitionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionRecordTypeDefinition :: Typed.TypedName Syntax.RecordTypeDefinition+recordTypeDefinitionRecordTypeDefinition = Typed.TypedName (Model.Name "hydra.lisp.syntax.RecordTypeDefinition")++-- | DSL updater for the doc field of hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionWithDoc :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.RecordTypeDefinition+recordTypeDefinitionWithDoc original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ 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.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "fields"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "fields")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the fields field of hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionWithFields :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm [Syntax.FieldDefinition] -> Typed.TypedTerm Syntax.RecordTypeDefinition+recordTypeDefinitionWithFields original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ 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.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "fields"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.RecordTypeDefinition+recordTypeDefinitionWithName :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.RecordTypeDefinition+recordTypeDefinitionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "fields"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "fields")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.RecordTypeDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the atom variant of hydra.lisp.syntax.SExpression+sExpressionAtom :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.SExpression+sExpressionAtom x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.SExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "atom"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the list variant of hydra.lisp.syntax.SExpression+sExpressionList :: Typed.TypedTerm [Syntax.SExpression] -> Typed.TypedTerm Syntax.SExpression+sExpressionList x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.SExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "list"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.SExpression+sExpressionSExpression :: Typed.TypedName Syntax.SExpression+sExpressionSExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.SExpression")++-- | DSL constructor for hydra.lisp.syntax.SetLiteral+setLiteral :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.SetLiteral+setLiteral elements =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SetLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Typed.unTypedTerm elements)}]}))++-- | DSL accessor for the elements field of hydra.lisp.syntax.SetLiteral+setLiteralElements :: Typed.TypedTerm Syntax.SetLiteral -> Typed.TypedTerm [Syntax.Expression]+setLiteralElements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.SetLiteral"),+ Model.projectionFieldName = (Model.Name "elements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.SetLiteral+setLiteralSetLiteral :: Typed.TypedName Syntax.SetLiteral+setLiteralSetLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.SetLiteral")++-- | DSL updater for the elements field of hydra.lisp.syntax.SetLiteral+setLiteralWithElements :: Typed.TypedTerm Syntax.SetLiteral -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.SetLiteral+setLiteralWithElements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SetLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.SimpleBinding+simpleBinding :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SimpleBinding+simpleBinding name value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SimpleBinding"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL accessor for the name field of hydra.lisp.syntax.SimpleBinding+simpleBindingName :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Symbol+simpleBindingName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.SimpleBinding"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.SimpleBinding+simpleBindingSimpleBinding :: Typed.TypedName Syntax.SimpleBinding+simpleBindingSimpleBinding = Typed.TypedName (Model.Name "hydra.lisp.syntax.SimpleBinding")++-- | DSL accessor for the value field of hydra.lisp.syntax.SimpleBinding+simpleBindingValue :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Expression+simpleBindingValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.SimpleBinding"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.lisp.syntax.SimpleBinding+simpleBindingWithName :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.SimpleBinding+simpleBindingWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SimpleBinding"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.SimpleBinding"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.SimpleBinding+simpleBindingWithValue :: Typed.TypedTerm Syntax.SimpleBinding -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SimpleBinding+simpleBindingWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SimpleBinding"),+ 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.lisp.syntax.SimpleBinding"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.SplicingUnquoteExpression+splicingUnquoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SplicingUnquoteExpression+splicingUnquoteExpression body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SplicingUnquoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.SplicingUnquoteExpression+splicingUnquoteExpressionBody :: Typed.TypedTerm Syntax.SplicingUnquoteExpression -> Typed.TypedTerm Syntax.Expression+splicingUnquoteExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.SplicingUnquoteExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.SplicingUnquoteExpression+splicingUnquoteExpressionSplicingUnquoteExpression :: Typed.TypedName Syntax.SplicingUnquoteExpression+splicingUnquoteExpressionSplicingUnquoteExpression =+ Typed.TypedName (Model.Name "hydra.lisp.syntax.SplicingUnquoteExpression")++-- | DSL updater for the body field of hydra.lisp.syntax.SplicingUnquoteExpression+splicingUnquoteExpressionWithBody :: Typed.TypedTerm Syntax.SplicingUnquoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SplicingUnquoteExpression+splicingUnquoteExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.SplicingUnquoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.lisp.syntax.Symbol wrapper+symbol :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Symbol+symbol x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.lisp.syntax.Symbol"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.Symbol+symbolSymbol :: Typed.TypedName Syntax.Symbol+symbolSymbol = Typed.TypedName (Model.Name "hydra.lisp.syntax.Symbol")++-- | DSL injection for the constant variant of hydra.lisp.syntax.TopLevelForm+topLevelFormConstant :: Typed.TypedTerm Syntax.ConstantDefinition -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormConstant x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelForm"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "constant"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expression variant of hydra.lisp.syntax.TopLevelForm+topLevelFormExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelForm"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the function variant of hydra.lisp.syntax.TopLevelForm+topLevelFormFunction :: Typed.TypedTerm Syntax.FunctionDefinition -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormFunction x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelForm"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "function"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the macro variant of hydra.lisp.syntax.TopLevelForm+topLevelFormMacro :: Typed.TypedTerm Syntax.MacroDefinition -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormMacro x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelForm"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "macro"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the recordType variant of hydra.lisp.syntax.TopLevelForm+topLevelFormRecordType :: Typed.TypedTerm Syntax.RecordTypeDefinition -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormRecordType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelForm"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "recordType"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.TopLevelForm+topLevelFormTopLevelForm :: Typed.TypedName Syntax.TopLevelForm+topLevelFormTopLevelForm = Typed.TypedName (Model.Name "hydra.lisp.syntax.TopLevelForm")++-- | DSL injection for the variable variant of hydra.lisp.syntax.TopLevelForm+topLevelFormVariable :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelForm"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithComments :: Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm (Maybe Syntax.Comment) -> Typed.TypedTerm Syntax.TopLevelForm -> Typed.TypedTerm Syntax.TopLevelFormWithComments+topLevelFormWithComments doc comment form =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm doc)},+ Model.Field {+ Model.fieldName = (Model.Name "comment"),+ Model.fieldTerm = (Typed.unTypedTerm comment)},+ Model.Field {+ Model.fieldName = (Model.Name "form"),+ Model.fieldTerm = (Typed.unTypedTerm form)}]}))++-- | DSL accessor for the comment field of hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsComment :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Comment)+topLevelFormWithCommentsComment x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "comment")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the doc field of hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsDoc :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Docstring)+topLevelFormWithCommentsDoc x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the form field of hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsForm :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm Syntax.TopLevelForm+topLevelFormWithCommentsForm x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "form")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsTopLevelFormWithComments :: Typed.TypedName Syntax.TopLevelFormWithComments+topLevelFormWithCommentsTopLevelFormWithComments =+ Typed.TypedName (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments")++-- | DSL updater for the comment field of hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsWithComment :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Comment) -> Typed.TypedTerm Syntax.TopLevelFormWithComments+topLevelFormWithCommentsWithComment original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "comment"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "form"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "form")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the doc field of hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsWithDoc :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.TopLevelFormWithComments+topLevelFormWithCommentsWithDoc original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "comment"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "comment")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "form"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "form")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the form field of hydra.lisp.syntax.TopLevelFormWithComments+topLevelFormWithCommentsWithForm :: Typed.TypedTerm Syntax.TopLevelFormWithComments -> Typed.TypedTerm Syntax.TopLevelForm -> Typed.TypedTerm Syntax.TopLevelFormWithComments+topLevelFormWithCommentsWithForm original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "comment"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TopLevelFormWithComments"),+ Model.projectionFieldName = (Model.Name "comment")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "form"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.TypeAnnotation+typeAnnotation :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeAnnotation+typeAnnotation expression type_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)}]}))++-- | DSL accessor for the expression field of hydra.lisp.syntax.TypeAnnotation+typeAnnotationExpression :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.Expression+typeAnnotationExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.lisp.syntax.TypeAnnotation+typeAnnotationType :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.TypeSpecifier+typeAnnotationType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.TypeAnnotation+typeAnnotationTypeAnnotation :: Typed.TypedName Syntax.TypeAnnotation+typeAnnotationTypeAnnotation = Typed.TypedName (Model.Name "hydra.lisp.syntax.TypeAnnotation")++-- | DSL updater for the expression field of hydra.lisp.syntax.TypeAnnotation+typeAnnotationWithExpression :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.TypeAnnotation+typeAnnotationWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.lisp.syntax.TypeAnnotation+typeAnnotationWithType :: Typed.TypedTerm Syntax.TypeAnnotation -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeAnnotation+typeAnnotationWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeAnnotation"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.TypeHint+typeHint :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeHint+typeHint name type_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TypeHint"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)}]}))++-- | DSL accessor for the name field of hydra.lisp.syntax.TypeHint+typeHintName :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.Symbol+typeHintName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeHint"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.lisp.syntax.TypeHint+typeHintType :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.TypeSpecifier+typeHintType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeHint"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.TypeHint+typeHintTypeHint :: Typed.TypedName Syntax.TypeHint+typeHintTypeHint = Typed.TypedName (Model.Name "hydra.lisp.syntax.TypeHint")++-- | DSL updater for the name field of hydra.lisp.syntax.TypeHint+typeHintWithName :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.TypeHint+typeHintWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TypeHint"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.TypeHint"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.lisp.syntax.TypeHint+typeHintWithType :: Typed.TypedTerm Syntax.TypeHint -> Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeHint+typeHintWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.TypeHint"),+ 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.lisp.syntax.TypeHint"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the either variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierEither :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierEither x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "either"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the function variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierFunction :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierFunction x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "function"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the list variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierList :: Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierList x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "list"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the map variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierMap :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierMap x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "map"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the maybe variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierMaybe :: Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierMaybe x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "maybe"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the named variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierNamed :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierNamed x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "named"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the pair variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierPair :: Typed.TypedTerm [Syntax.TypeSpecifier] -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierPair x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "pair"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the set variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierSet :: Typed.TypedTerm Syntax.TypeSpecifier -> Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierSet x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "set"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.lisp.syntax.TypeSpecifier+typeSpecifierTypeSpecifier :: Typed.TypedName Syntax.TypeSpecifier+typeSpecifierTypeSpecifier = Typed.TypedName (Model.Name "hydra.lisp.syntax.TypeSpecifier")++-- | DSL injection for the unit variant of hydra.lisp.syntax.TypeSpecifier+typeSpecifierUnit :: Typed.TypedTerm Syntax.TypeSpecifier+typeSpecifierUnit =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.lisp.syntax.TypeSpecifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unit"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL accessor for the body of hydra.lisp.syntax.Docstring+unDocstring :: Typed.TypedTerm Syntax.Docstring -> Typed.TypedTerm String+unDocstring x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.lisp.syntax.Docstring")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.lisp.syntax.NamespaceName+unNamespaceName :: Typed.TypedTerm Syntax.NamespaceName -> Typed.TypedTerm String+unNamespaceName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.lisp.syntax.NamespaceName")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.lisp.syntax.Symbol+unSymbol :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm String+unSymbol x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.lisp.syntax.Symbol")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.lisp.syntax.UnquoteExpression+unquoteExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.UnquoteExpression+unquoteExpression body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.UnquoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.lisp.syntax.UnquoteExpression+unquoteExpressionBody :: Typed.TypedTerm Syntax.UnquoteExpression -> Typed.TypedTerm Syntax.Expression+unquoteExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.UnquoteExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.UnquoteExpression+unquoteExpressionUnquoteExpression :: Typed.TypedName Syntax.UnquoteExpression+unquoteExpressionUnquoteExpression = Typed.TypedName (Model.Name "hydra.lisp.syntax.UnquoteExpression")++-- | DSL updater for the body field of hydra.lisp.syntax.UnquoteExpression+unquoteExpressionWithBody :: Typed.TypedTerm Syntax.UnquoteExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.UnquoteExpression+unquoteExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.UnquoteExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.lisp.syntax.VariableDefinition+variableDefinition :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.VariableDefinition+variableDefinition name value doc =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm doc)}]}))++-- | DSL accessor for the doc field of hydra.lisp.syntax.VariableDefinition+variableDefinitionDoc :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring)+variableDefinitionDoc x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.lisp.syntax.VariableDefinition+variableDefinitionName :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Symbol+variableDefinitionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the value field of hydra.lisp.syntax.VariableDefinition+variableDefinitionValue :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Expression+variableDefinitionValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.VariableDefinition+variableDefinitionVariableDefinition :: Typed.TypedName Syntax.VariableDefinition+variableDefinitionVariableDefinition = Typed.TypedName (Model.Name "hydra.lisp.syntax.VariableDefinition")++-- | DSL updater for the doc field of hydra.lisp.syntax.VariableDefinition+variableDefinitionWithDoc :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm (Maybe Syntax.Docstring) -> Typed.TypedTerm Syntax.VariableDefinition+variableDefinitionWithDoc original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ 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.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.VariableDefinition+variableDefinitionWithName :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.VariableDefinition+variableDefinitionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.lisp.syntax.VariableDefinition+variableDefinitionWithValue :: Typed.TypedTerm Syntax.VariableDefinition -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.VariableDefinition+variableDefinitionWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ 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.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "doc"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableDefinition"),+ Model.projectionFieldName = (Model.Name "doc")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.VariableReference+variableReference :: Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.VariableReference+variableReference name functionNamespace =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableReference"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "functionNamespace"),+ Model.fieldTerm = (Typed.unTypedTerm functionNamespace)}]}))++-- | DSL accessor for the functionNamespace field of hydra.lisp.syntax.VariableReference+variableReferenceFunctionNamespace :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Bool+variableReferenceFunctionNamespace x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableReference"),+ Model.projectionFieldName = (Model.Name "functionNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.lisp.syntax.VariableReference+variableReferenceName :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Syntax.Symbol+variableReferenceName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableReference"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.VariableReference+variableReferenceVariableReference :: Typed.TypedName Syntax.VariableReference+variableReferenceVariableReference = Typed.TypedName (Model.Name "hydra.lisp.syntax.VariableReference")++-- | DSL updater for the functionNamespace field of hydra.lisp.syntax.VariableReference+variableReferenceWithFunctionNamespace :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.VariableReference+variableReferenceWithFunctionNamespace original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableReference"),+ 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.lisp.syntax.VariableReference"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "functionNamespace"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.lisp.syntax.VariableReference+variableReferenceWithName :: Typed.TypedTerm Syntax.VariableReference -> Typed.TypedTerm Syntax.Symbol -> Typed.TypedTerm Syntax.VariableReference+variableReferenceWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VariableReference"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "functionNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VariableReference"),+ Model.projectionFieldName = (Model.Name "functionNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.lisp.syntax.VectorLiteral+vectorLiteral :: Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.VectorLiteral+vectorLiteral elements =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VectorLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Typed.unTypedTerm elements)}]}))++-- | DSL accessor for the elements field of hydra.lisp.syntax.VectorLiteral+vectorLiteralElements :: Typed.TypedTerm Syntax.VectorLiteral -> Typed.TypedTerm [Syntax.Expression]+vectorLiteralElements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.lisp.syntax.VectorLiteral"),+ Model.projectionFieldName = (Model.Name "elements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.lisp.syntax.VectorLiteral+vectorLiteralVectorLiteral :: Typed.TypedName Syntax.VectorLiteral+vectorLiteralVectorLiteral = Typed.TypedName (Model.Name "hydra.lisp.syntax.VectorLiteral")++-- | DSL updater for the elements field of hydra.lisp.syntax.VectorLiteral+vectorLiteralWithElements :: Typed.TypedTerm Syntax.VectorLiteral -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.VectorLiteral+vectorLiteralWithElements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.lisp.syntax.VectorLiteral"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "elements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))
src/main/haskell/Hydra/Lisp/Language.hs view
@@ -4,38 +4,40 @@ module Hydra.Lisp.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.Regex as Regex-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.Diff as Diff+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.Markdown as Markdown+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.Regex as Regex+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@@ -79,9 +81,9 @@ Variants.LiteralVariantInteger, Variants.LiteralVariantString] floatTypes = Sets.fromList [- Core.FloatTypeFloat64]+ Model.FloatTypeFloat64] integerTypes = Sets.fromList [- Core.IntegerTypeBigint]+ Model.IntegerTypeBigint] termVariants = Sets.fromList [ Variants.TermVariantAnnotated,@@ -165,9 +167,9 @@ Variants.LiteralVariantInteger, Variants.LiteralVariantString] floatTypes = Sets.fromList [- Core.FloatTypeFloat64]+ Model.FloatTypeFloat64] integerTypes = Sets.fromList [- Core.IntegerTypeBigint]+ Model.IntegerTypeBigint] termVariants = Sets.fromList [ Variants.TermVariantAnnotated,@@ -251,9 +253,9 @@ Variants.LiteralVariantInteger, Variants.LiteralVariantString] floatTypes = Sets.fromList [- Core.FloatTypeFloat64]+ Model.FloatTypeFloat64] integerTypes = Sets.fromList [- Core.IntegerTypeBigint]+ Model.IntegerTypeBigint] termVariants = Sets.fromList [ Variants.TermVariantAnnotated,@@ -336,9 +338,9 @@ Variants.LiteralVariantInteger, Variants.LiteralVariantString] floatTypes = Sets.fromList [- Core.FloatTypeFloat64]+ Model.FloatTypeFloat64] integerTypes = Sets.fromList [- Core.IntegerTypeBigint]+ Model.IntegerTypeBigint] termVariants = Sets.fromList [ Variants.TermVariantAnnotated,@@ -643,9 +645,9 @@ Variants.LiteralVariantInteger, Variants.LiteralVariantString] floatTypes = Sets.fromList [- Core.FloatTypeFloat64]+ Model.FloatTypeFloat64] integerTypes = Sets.fromList [- Core.IntegerTypeBigint]+ Model.IntegerTypeBigint] termVariants = Sets.fromList [ Variants.TermVariantAnnotated,
src/main/haskell/Hydra/Lisp/Serde.hs view
@@ -4,48 +4,50 @@ module Hydra.Lisp.Serde where -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.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.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.Pairs as Pairs-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings+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.Diff as Diff+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.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.Pairs as Pairs+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Markdown as Markdown+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.Regex as Regex+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.Lisp.Syntax as Syntax-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.Regex as Regex-import qualified Hydra.Relational as Relational-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
src/main/haskell/Hydra/Lisp/Syntax.hs view
@@ -4,7 +4,7 @@ module Hydra.Lisp.Syntax where -import qualified Hydra.Core as Core+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@@ -16,9 +16,9 @@ andExpressionExpressions :: [Expression]} deriving (Eq, Ord, Read, Show) -_AndExpression = Core.Name "hydra.lisp.syntax.AndExpression"+_AndExpression = Model.Name "hydra.lisp.syntax.AndExpression" -_AndExpression_expressions = Core.Name "expressions"+_AndExpression_expressions = Model.Name "expressions" -- | Function application: (function arg1 arg2 ...) data Application =@@ -29,11 +29,11 @@ applicationArguments :: [Expression]} deriving (Eq, Ord, Read, Show) -_Application = Core.Name "hydra.lisp.syntax.Application"+_Application = Model.Name "hydra.lisp.syntax.Application" -_Application_function = Core.Name "function"+_Application_function = Model.Name "function" -_Application_arguments = Core.Name "arguments"+_Application_arguments = Model.Name "arguments" -- | An explicit begin block (distinct from do for Scheme compatibility) data BeginExpression =@@ -42,9 +42,9 @@ beginExpressionExpressions :: [Expression]} deriving (Eq, Ord, Read, Show) -_BeginExpression = Core.Name "hydra.lisp.syntax.BeginExpression"+_BeginExpression = Model.Name "hydra.lisp.syntax.BeginExpression" -_BeginExpression_expressions = Core.Name "expressions"+_BeginExpression_expressions = Model.Name "expressions" -- | The style of boolean literals in a dialect data BooleanStyle =@@ -53,13 +53,13 @@ BooleanStyleHashTF deriving (Eq, Ord, Read, Show) -_BooleanStyle = Core.Name "hydra.lisp.syntax.BooleanStyle"+_BooleanStyle = Model.Name "hydra.lisp.syntax.BooleanStyle" -_BooleanStyle_trueFalse = Core.Name "trueFalse"+_BooleanStyle_trueFalse = Model.Name "trueFalse" -_BooleanStyle_tNil = Core.Name "tNil"+_BooleanStyle_tNil = Model.Name "tNil" -_BooleanStyle_hashTF = Core.Name "hashTF"+_BooleanStyle_hashTF = Model.Name "hashTF" -- | A clause in a case expression data CaseClause =@@ -70,11 +70,11 @@ caseClauseBody :: Expression} deriving (Eq, Ord, Read, Show) -_CaseClause = Core.Name "hydra.lisp.syntax.CaseClause"+_CaseClause = Model.Name "hydra.lisp.syntax.CaseClause" -_CaseClause_keys = Core.Name "keys"+_CaseClause_keys = Model.Name "keys" -_CaseClause_body = Core.Name "body"+_CaseClause_body = Model.Name "body" -- | Case dispatch on a value. Serializes as (case x key1 expr1 key2 expr2 default) in Clojure, (case x (key1 expr1) (key2 expr2) (otherwise default)) in Common Lisp, (case x ((key1) expr1) ((key2) expr2) (else default)) in Scheme data CaseExpression =@@ -87,13 +87,13 @@ caseExpressionDefault :: (Maybe Expression)} deriving (Eq, Ord, Read, Show) -_CaseExpression = Core.Name "hydra.lisp.syntax.CaseExpression"+_CaseExpression = Model.Name "hydra.lisp.syntax.CaseExpression" -_CaseExpression_scrutinee = Core.Name "scrutinee"+_CaseExpression_scrutinee = Model.Name "scrutinee" -_CaseExpression_clauses = Core.Name "clauses"+_CaseExpression_clauses = Model.Name "clauses" -_CaseExpression_default = Core.Name "default"+_CaseExpression_default = Model.Name "default" -- | A character literal. Concrete syntax varies: \a (Clojure), ?a (Emacs Lisp), #\a (Common Lisp, Scheme) data CharacterLiteral =@@ -102,9 +102,9 @@ characterLiteralValue :: String} deriving (Eq, Ord, Read, Show) -_CharacterLiteral = Core.Name "hydra.lisp.syntax.CharacterLiteral"+_CharacterLiteral = Model.Name "hydra.lisp.syntax.CharacterLiteral" -_CharacterLiteral_value = Core.Name "value"+_CharacterLiteral_value = Model.Name "value" -- | A comment data Comment =@@ -115,11 +115,11 @@ commentText :: String} deriving (Eq, Ord, Read, Show) -_Comment = Core.Name "hydra.lisp.syntax.Comment"+_Comment = Model.Name "hydra.lisp.syntax.Comment" -_Comment_style = Core.Name "style"+_Comment_style = Model.Name "style" -_Comment_text = Core.Name "text"+_Comment_text = Model.Name "text" -- | The style of a comment data CommentStyle =@@ -128,13 +128,13 @@ CommentStyleDatum deriving (Eq, Ord, Read, Show) -_CommentStyle = Core.Name "hydra.lisp.syntax.CommentStyle"+_CommentStyle = Model.Name "hydra.lisp.syntax.CommentStyle" -_CommentStyle_line = Core.Name "line"+_CommentStyle_line = Model.Name "line" -_CommentStyle_block = Core.Name "block"+_CommentStyle_block = Model.Name "block" -_CommentStyle_datum = Core.Name "datum"+_CommentStyle_datum = Model.Name "datum" -- | A clause in a cond expression data CondClause =@@ -145,11 +145,11 @@ condClauseBody :: Expression} deriving (Eq, Ord, Read, Show) -_CondClause = Core.Name "hydra.lisp.syntax.CondClause"+_CondClause = Model.Name "hydra.lisp.syntax.CondClause" -_CondClause_condition = Core.Name "condition"+_CondClause_condition = Model.Name "condition" -_CondClause_body = Core.Name "body"+_CondClause_body = Model.Name "body" -- | Multi-branch conditional. Serializes as (cond test1 expr1 test2 expr2 :else default) in Clojure, (cond (test1 expr1) (test2 expr2) (t default)) in Emacs Lisp and Common Lisp, (cond (test1 expr1) (test2 expr2) (else default)) in Scheme data CondExpression =@@ -160,11 +160,11 @@ condExpressionDefault :: (Maybe Expression)} deriving (Eq, Ord, Read, Show) -_CondExpression = Core.Name "hydra.lisp.syntax.CondExpression"+_CondExpression = Model.Name "hydra.lisp.syntax.CondExpression" -_CondExpression_clauses = Core.Name "clauses"+_CondExpression_clauses = Model.Name "clauses" -_CondExpression_default = Core.Name "default"+_CondExpression_default = Model.Name "default" -- | A cons expression: (cons head tail) data ConsExpression =@@ -175,11 +175,11 @@ consExpressionTail :: Expression} deriving (Eq, Ord, Read, Show) -_ConsExpression = Core.Name "hydra.lisp.syntax.ConsExpression"+_ConsExpression = Model.Name "hydra.lisp.syntax.ConsExpression" -_ConsExpression_head = Core.Name "head"+_ConsExpression_head = Model.Name "head" -_ConsExpression_tail = Core.Name "tail"+_ConsExpression_tail = Model.Name "tail" -- | A constant definition. Serializes as (def ^:const name value) in Clojure, (defconst name value) in Emacs Lisp, (defconstant name value) in Common Lisp. Scheme has no dedicated constant form; uses define. data ConstantDefinition =@@ -192,13 +192,13 @@ constantDefinitionDoc :: (Maybe Docstring)} deriving (Eq, Ord, Read, Show) -_ConstantDefinition = Core.Name "hydra.lisp.syntax.ConstantDefinition"+_ConstantDefinition = Model.Name "hydra.lisp.syntax.ConstantDefinition" -_ConstantDefinition_name = Core.Name "name"+_ConstantDefinition_name = Model.Name "name" -_ConstantDefinition_value = Core.Name "value"+_ConstantDefinition_value = Model.Name "value" -_ConstantDefinition_doc = Core.Name "doc"+_ConstantDefinition_doc = Model.Name "doc" -- | A constructor pattern matching a tagged value data ConstructorPattern =@@ -209,11 +209,11 @@ constructorPatternArguments :: [Pattern]} deriving (Eq, Ord, Read, Show) -_ConstructorPattern = Core.Name "hydra.lisp.syntax.ConstructorPattern"+_ConstructorPattern = Model.Name "hydra.lisp.syntax.ConstructorPattern" -_ConstructorPattern_constructor = Core.Name "constructor"+_ConstructorPattern_constructor = Model.Name "constructor" -_ConstructorPattern_arguments = Core.Name "arguments"+_ConstructorPattern_arguments = Model.Name "arguments" -- | An arbitrary-precision, scale-preserving decimal literal, pre-rendered as a plain (non-scientific) decimal digit string with the exact scale to preserve (e.g. "1.10", not "1.1"). Serializes as 1.10M in Clojure. data DecimalLiteral =@@ -222,9 +222,9 @@ decimalLiteralDigits :: String} deriving (Eq, Ord, Read, Show) -_DecimalLiteral = Core.Name "hydra.lisp.syntax.DecimalLiteral"+_DecimalLiteral = Model.Name "hydra.lisp.syntax.DecimalLiteral" -_DecimalLiteral_digits = Core.Name "digits"+_DecimalLiteral_digits = Model.Name "digits" -- | A destructuring binding in a let expression data DestructuringBinding =@@ -235,11 +235,11 @@ destructuringBindingValue :: Expression} deriving (Eq, Ord, Read, Show) -_DestructuringBinding = Core.Name "hydra.lisp.syntax.DestructuringBinding"+_DestructuringBinding = Model.Name "hydra.lisp.syntax.DestructuringBinding" -_DestructuringBinding_pattern = Core.Name "pattern"+_DestructuringBinding_pattern = Model.Name "pattern" -_DestructuringBinding_value = Core.Name "value"+_DestructuringBinding_value = Model.Name "value" -- | A destructuring pattern data DestructuringPattern =@@ -251,13 +251,13 @@ DestructuringPatternRest [Symbol] deriving (Eq, Ord, Read, Show) -_DestructuringPattern = Core.Name "hydra.lisp.syntax.DestructuringPattern"+_DestructuringPattern = Model.Name "hydra.lisp.syntax.DestructuringPattern" -_DestructuringPattern_sequential = Core.Name "sequential"+_DestructuringPattern_sequential = Model.Name "sequential" -_DestructuringPattern_associative = Core.Name "associative"+_DestructuringPattern_associative = Model.Name "associative" -_DestructuringPattern_rest = Core.Name "rest"+_DestructuringPattern_rest = Model.Name "rest" -- | A Lisp dialect data Dialect =@@ -267,15 +267,15 @@ DialectScheme deriving (Eq, Ord, Read, Show) -_Dialect = Core.Name "hydra.lisp.syntax.Dialect"+_Dialect = Model.Name "hydra.lisp.syntax.Dialect" -_Dialect_clojure = Core.Name "clojure"+_Dialect_clojure = Model.Name "clojure" -_Dialect_emacsLisp = Core.Name "emacsLisp"+_Dialect_emacsLisp = Model.Name "emacsLisp" -_Dialect_commonLisp = Core.Name "commonLisp"+_Dialect_commonLisp = Model.Name "commonLisp" -_Dialect_scheme = Core.Name "scheme"+_Dialect_scheme = Model.Name "scheme" -- | Sequential evaluation of expressions, returning the last. Serializes as (do expr1 expr2 ...) in Clojure, (progn expr1 expr2 ...) in Emacs Lisp and Common Lisp, (begin expr1 expr2 ...) in Scheme data DoExpression =@@ -284,9 +284,9 @@ doExpressionExpressions :: [Expression]} deriving (Eq, Ord, Read, Show) -_DoExpression = Core.Name "hydra.lisp.syntax.DoExpression"+_DoExpression = Model.Name "hydra.lisp.syntax.DoExpression" -_DoExpression_expressions = Core.Name "expressions"+_DoExpression_expressions = Model.Name "expressions" -- | A documentation string newtype Docstring =@@ -294,7 +294,7 @@ unDocstring :: String} deriving (Eq, Ord, Read, Show) -_Docstring = Core.Name "hydra.lisp.syntax.Docstring"+_Docstring = Model.Name "hydra.lisp.syntax.Docstring" -- | A dotted pair literal: '(a . b). Not available in Clojure. data DottedPair =@@ -305,11 +305,11 @@ dottedPairCdr :: Expression} deriving (Eq, Ord, Read, Show) -_DottedPair = Core.Name "hydra.lisp.syntax.DottedPair"+_DottedPair = Model.Name "hydra.lisp.syntax.DottedPair" -_DottedPair_car = Core.Name "car"+_DottedPair_car = Model.Name "car" -_DottedPair_cdr = Core.Name "cdr"+_DottedPair_cdr = Model.Name "cdr" -- | An export/provide declaration. Serializes as (provide 'name) in Emacs Lisp, (:export :sym1 :sym2) in Common Lisp, (export sym1 sym2) in Scheme. In Clojure, symbols are public by default. data ExportDeclaration =@@ -318,9 +318,9 @@ exportDeclarationSymbols :: [Symbol]} deriving (Eq, Ord, Read, Show) -_ExportDeclaration = Core.Name "hydra.lisp.syntax.ExportDeclaration"+_ExportDeclaration = Model.Name "hydra.lisp.syntax.ExportDeclaration" -_ExportDeclaration_symbols = Core.Name "symbols"+_ExportDeclaration_symbols = Model.Name "symbols" -- | A Lisp expression data Expression =@@ -378,59 +378,59 @@ ExpressionSExpression SExpression deriving (Eq, Ord, Read, Show) -_Expression = Core.Name "hydra.lisp.syntax.Expression"+_Expression = Model.Name "hydra.lisp.syntax.Expression" -_Expression_application = Core.Name "application"+_Expression_application = Model.Name "application" -_Expression_lambda = Core.Name "lambda"+_Expression_lambda = Model.Name "lambda" -_Expression_let = Core.Name "let"+_Expression_let = Model.Name "let" -_Expression_if = Core.Name "if"+_Expression_if = Model.Name "if" -_Expression_cond = Core.Name "cond"+_Expression_cond = Model.Name "cond" -_Expression_case = Core.Name "case"+_Expression_case = Model.Name "case" -_Expression_and = Core.Name "and"+_Expression_and = Model.Name "and" -_Expression_or = Core.Name "or"+_Expression_or = Model.Name "or" -_Expression_not = Core.Name "not"+_Expression_not = Model.Name "not" -_Expression_do = Core.Name "do"+_Expression_do = Model.Name "do" -_Expression_begin = Core.Name "begin"+_Expression_begin = Model.Name "begin" -_Expression_variable = Core.Name "variable"+_Expression_variable = Model.Name "variable" -_Expression_literal = Core.Name "literal"+_Expression_literal = Model.Name "literal" -_Expression_list = Core.Name "list"+_Expression_list = Model.Name "list" -_Expression_vector = Core.Name "vector"+_Expression_vector = Model.Name "vector" -_Expression_map = Core.Name "map"+_Expression_map = Model.Name "map" -_Expression_set = Core.Name "set"+_Expression_set = Model.Name "set" -_Expression_cons = Core.Name "cons"+_Expression_cons = Model.Name "cons" -_Expression_dottedPair = Core.Name "dottedPair"+_Expression_dottedPair = Model.Name "dottedPair" -_Expression_fieldAccess = Core.Name "fieldAccess"+_Expression_fieldAccess = Model.Name "fieldAccess" -_Expression_typeAnnotation = Core.Name "typeAnnotation"+_Expression_typeAnnotation = Model.Name "typeAnnotation" -_Expression_quote = Core.Name "quote"+_Expression_quote = Model.Name "quote" -_Expression_quasiquote = Core.Name "quasiquote"+_Expression_quasiquote = Model.Name "quasiquote" -_Expression_unquote = Core.Name "unquote"+_Expression_unquote = Model.Name "unquote" -_Expression_splicingUnquote = Core.Name "splicingUnquote"+_Expression_splicingUnquote = Model.Name "splicingUnquote" -_Expression_sExpression = Core.Name "sExpression"+_Expression_sExpression = Model.Name "sExpression" -- | Field access on a record/struct. Serializes as (:field record) in Clojure, (struct-field record) in Emacs Lisp and Common Lisp, (record-field record) in Scheme data FieldAccess =@@ -443,13 +443,13 @@ fieldAccessTarget :: Expression} deriving (Eq, Ord, Read, Show) -_FieldAccess = Core.Name "hydra.lisp.syntax.FieldAccess"+_FieldAccess = Model.Name "hydra.lisp.syntax.FieldAccess" -_FieldAccess_recordType = Core.Name "recordType"+_FieldAccess_recordType = Model.Name "recordType" -_FieldAccess_field = Core.Name "field"+_FieldAccess_field = Model.Name "field" -_FieldAccess_target = Core.Name "target"+_FieldAccess_target = Model.Name "target" -- | A field in a record type definition data FieldDefinition =@@ -460,11 +460,11 @@ fieldDefinitionDefaultValue :: (Maybe Expression)} deriving (Eq, Ord, Read, Show) -_FieldDefinition = Core.Name "hydra.lisp.syntax.FieldDefinition"+_FieldDefinition = Model.Name "hydra.lisp.syntax.FieldDefinition" -_FieldDefinition_name = Core.Name "name"+_FieldDefinition_name = Model.Name "name" -_FieldDefinition_defaultValue = Core.Name "defaultValue"+_FieldDefinition_defaultValue = Model.Name "defaultValue" -- | A floating-point literal data FloatLiteral =@@ -475,11 +475,11 @@ floatLiteralPrecision :: (Maybe String)} deriving (Eq, Ord, Read, Show) -_FloatLiteral = Core.Name "hydra.lisp.syntax.FloatLiteral"+_FloatLiteral = Model.Name "hydra.lisp.syntax.FloatLiteral" -_FloatLiteral_value = Core.Name "value"+_FloatLiteral_value = Model.Name "value" -_FloatLiteral_precision = Core.Name "precision"+_FloatLiteral_precision = Model.Name "precision" -- | A named function definition. Serializes as (defn name [params] body) in Clojure, (defun name (params) body) in Emacs Lisp and Common Lisp, (define (name params) body) in Scheme data FunctionDefinition =@@ -498,19 +498,19 @@ functionDefinitionBody :: [Expression]} deriving (Eq, Ord, Read, Show) -_FunctionDefinition = Core.Name "hydra.lisp.syntax.FunctionDefinition"+_FunctionDefinition = Model.Name "hydra.lisp.syntax.FunctionDefinition" -_FunctionDefinition_name = Core.Name "name"+_FunctionDefinition_name = Model.Name "name" -_FunctionDefinition_params = Core.Name "params"+_FunctionDefinition_params = Model.Name "params" -_FunctionDefinition_restParam = Core.Name "restParam"+_FunctionDefinition_restParam = Model.Name "restParam" -_FunctionDefinition_doc = Core.Name "doc"+_FunctionDefinition_doc = Model.Name "doc" -_FunctionDefinition_typeHints = Core.Name "typeHints"+_FunctionDefinition_typeHints = Model.Name "typeHints" -_FunctionDefinition_body = Core.Name "body"+_FunctionDefinition_body = Model.Name "body" -- | Conditional: (if test then else) data IfExpression =@@ -523,13 +523,13 @@ ifExpressionElse :: (Maybe Expression)} deriving (Eq, Ord, Read, Show) -_IfExpression = Core.Name "hydra.lisp.syntax.IfExpression"+_IfExpression = Model.Name "hydra.lisp.syntax.IfExpression" -_IfExpression_condition = Core.Name "condition"+_IfExpression_condition = Model.Name "condition" -_IfExpression_then = Core.Name "then"+_IfExpression_then = Model.Name "then" -_IfExpression_else = Core.Name "else"+_IfExpression_else = Model.Name "else" -- | An import/require declaration. Serializes as (:require [name ...]) in Clojure, (require 'name) in Emacs Lisp, (:use :name) or (:import-from :name ...) in Common Lisp, (import (name)) in Scheme data ImportDeclaration =@@ -540,11 +540,11 @@ importDeclarationSpec :: ImportSpec} deriving (Eq, Ord, Read, Show) -_ImportDeclaration = Core.Name "hydra.lisp.syntax.ImportDeclaration"+_ImportDeclaration = Model.Name "hydra.lisp.syntax.ImportDeclaration" -_ImportDeclaration_module = Core.Name "module"+_ImportDeclaration_module = Model.Name "module" -_ImportDeclaration_spec = Core.Name "spec"+_ImportDeclaration_spec = Model.Name "spec" -- | An import specification describing how to import symbols data ImportSpec =@@ -558,15 +558,15 @@ ImportSpecRename [[Symbol]] deriving (Eq, Ord, Read, Show) -_ImportSpec = Core.Name "hydra.lisp.syntax.ImportSpec"+_ImportSpec = Model.Name "hydra.lisp.syntax.ImportSpec" -_ImportSpec_all = Core.Name "all"+_ImportSpec_all = Model.Name "all" -_ImportSpec_alias = Core.Name "alias"+_ImportSpec_alias = Model.Name "alias" -_ImportSpec_only = Core.Name "only"+_ImportSpec_only = Model.Name "only" -_ImportSpec_rename = Core.Name "rename"+_ImportSpec_rename = Model.Name "rename" -- | An integer literal data IntegerLiteral =@@ -577,11 +577,11 @@ integerLiteralBigint :: Bool} deriving (Eq, Ord, Read, Show) -_IntegerLiteral = Core.Name "hydra.lisp.syntax.IntegerLiteral"+_IntegerLiteral = Model.Name "hydra.lisp.syntax.IntegerLiteral" -_IntegerLiteral_value = Core.Name "value"+_IntegerLiteral_value = Model.Name "value" -_IntegerLiteral_bigint = Core.Name "bigint"+_IntegerLiteral_bigint = Model.Name "bigint" -- | A keyword (self-evaluating symbol). Serializes as :name in Clojure, Emacs Lisp, and Common Lisp data Keyword =@@ -592,11 +592,11 @@ keywordNamespace :: (Maybe String)} deriving (Eq, Ord, Read, Show) -_Keyword = Core.Name "hydra.lisp.syntax.Keyword"+_Keyword = Model.Name "hydra.lisp.syntax.Keyword" -_Keyword_name = Core.Name "name"+_Keyword_name = Model.Name "name" -_Keyword_namespace = Core.Name "namespace"+_Keyword_namespace = Model.Name "namespace" -- | An anonymous function. Serializes as (fn [params] body) in Clojure, (lambda (params) body) in Emacs Lisp, Common Lisp, and Scheme. If name is provided, emits (fn name [params] body) in Clojure for self-reference. data Lambda =@@ -611,15 +611,15 @@ lambdaBody :: [Expression]} deriving (Eq, Ord, Read, Show) -_Lambda = Core.Name "hydra.lisp.syntax.Lambda"+_Lambda = Model.Name "hydra.lisp.syntax.Lambda" -_Lambda_name = Core.Name "name"+_Lambda_name = Model.Name "name" -_Lambda_params = Core.Name "params"+_Lambda_params = Model.Name "params" -_Lambda_restParam = Core.Name "restParam"+_Lambda_restParam = Model.Name "restParam" -_Lambda_body = Core.Name "body"+_Lambda_body = Model.Name "body" -- | A single binding in a let expression data LetBinding =@@ -629,11 +629,11 @@ LetBindingDestructuring DestructuringBinding deriving (Eq, Ord, Read, Show) -_LetBinding = Core.Name "hydra.lisp.syntax.LetBinding"+_LetBinding = Model.Name "hydra.lisp.syntax.LetBinding" -_LetBinding_simple = Core.Name "simple"+_LetBinding_simple = Model.Name "simple" -_LetBinding_destructuring = Core.Name "destructuring"+_LetBinding_destructuring = Model.Name "destructuring" -- | Local variable bindings. Serializes as (let [x 1 y 2] body) in Clojure (always sequential), (let ((x 1) (y 2)) body) or (let* ...) in other dialects data LetExpression =@@ -646,13 +646,13 @@ letExpressionBody :: [Expression]} deriving (Eq, Ord, Read, Show) -_LetExpression = Core.Name "hydra.lisp.syntax.LetExpression"+_LetExpression = Model.Name "hydra.lisp.syntax.LetExpression" -_LetExpression_kind = Core.Name "kind"+_LetExpression_kind = Model.Name "kind" -_LetExpression_bindings = Core.Name "bindings"+_LetExpression_bindings = Model.Name "bindings" -_LetExpression_body = Core.Name "body"+_LetExpression_body = Model.Name "body" -- | The kind of let binding data LetKind =@@ -661,13 +661,13 @@ LetKindRecursive deriving (Eq, Ord, Read, Show) -_LetKind = Core.Name "hydra.lisp.syntax.LetKind"+_LetKind = Model.Name "hydra.lisp.syntax.LetKind" -_LetKind_parallel = Core.Name "parallel"+_LetKind_parallel = Model.Name "parallel" -_LetKind_sequential = Core.Name "sequential"+_LetKind_sequential = Model.Name "sequential" -_LetKind_recursive = Core.Name "recursive"+_LetKind_recursive = Model.Name "recursive" -- | A list literal: '(1 2 3) or (list 1 2 3) data ListLiteral =@@ -678,11 +678,11 @@ listLiteralQuoted :: Bool} deriving (Eq, Ord, Read, Show) -_ListLiteral = Core.Name "hydra.lisp.syntax.ListLiteral"+_ListLiteral = Model.Name "hydra.lisp.syntax.ListLiteral" -_ListLiteral_elements = Core.Name "elements"+_ListLiteral_elements = Model.Name "elements" -_ListLiteral_quoted = Core.Name "quoted"+_ListLiteral_quoted = Model.Name "quoted" -- | A Lisp literal value data Literal =@@ -706,25 +706,25 @@ LiteralSymbol Symbol deriving (Eq, Ord, Read, Show) -_Literal = Core.Name "hydra.lisp.syntax.Literal"+_Literal = Model.Name "hydra.lisp.syntax.Literal" -_Literal_integer = Core.Name "integer"+_Literal_integer = Model.Name "integer" -_Literal_float = Core.Name "float"+_Literal_float = Model.Name "float" -_Literal_decimal = Core.Name "decimal"+_Literal_decimal = Model.Name "decimal" -_Literal_string = Core.Name "string"+_Literal_string = Model.Name "string" -_Literal_character = Core.Name "character"+_Literal_character = Model.Name "character" -_Literal_boolean = Core.Name "boolean"+_Literal_boolean = Model.Name "boolean" -_Literal_nil = Core.Name "nil"+_Literal_nil = Model.Name "nil" -_Literal_keyword = Core.Name "keyword"+_Literal_keyword = Model.Name "keyword" -_Literal_symbol = Core.Name "symbol"+_Literal_symbol = Model.Name "symbol" -- | A pattern matching a literal value data LiteralPattern =@@ -733,9 +733,9 @@ literalPatternValue :: Literal} deriving (Eq, Ord, Read, Show) -_LiteralPattern = Core.Name "hydra.lisp.syntax.LiteralPattern"+_LiteralPattern = Model.Name "hydra.lisp.syntax.LiteralPattern" -_LiteralPattern_value = Core.Name "value"+_LiteralPattern_value = Model.Name "value" -- | A macro definition. Serializes as (defmacro name [params] body) in Clojure, (defmacro name (params) body) in Emacs Lisp and Common Lisp, (define-syntax name ...) in Scheme data MacroDefinition =@@ -750,15 +750,15 @@ macroDefinitionBody :: [Expression]} deriving (Eq, Ord, Read, Show) -_MacroDefinition = Core.Name "hydra.lisp.syntax.MacroDefinition"+_MacroDefinition = Model.Name "hydra.lisp.syntax.MacroDefinition" -_MacroDefinition_name = Core.Name "name"+_MacroDefinition_name = Model.Name "name" -_MacroDefinition_params = Core.Name "params"+_MacroDefinition_params = Model.Name "params" -_MacroDefinition_restParam = Core.Name "restParam"+_MacroDefinition_restParam = Model.Name "restParam" -_MacroDefinition_body = Core.Name "body"+_MacroDefinition_body = Model.Name "body" -- | A key-value pair in a map literal data MapEntry =@@ -769,11 +769,11 @@ mapEntryValue :: Expression} deriving (Eq, Ord, Read, Show) -_MapEntry = Core.Name "hydra.lisp.syntax.MapEntry"+_MapEntry = Model.Name "hydra.lisp.syntax.MapEntry" -_MapEntry_key = Core.Name "key"+_MapEntry_key = Model.Name "key" -_MapEntry_value = Core.Name "value"+_MapEntry_value = Model.Name "value" -- | A map/dictionary literal. Serializes as {:a 1 :b 2} in Clojure, as an alist '((a . 1) (b . 2)) in other dialects data MapLiteral =@@ -782,9 +782,9 @@ mapLiteralEntries :: [MapEntry]} deriving (Eq, Ord, Read, Show) -_MapLiteral = Core.Name "hydra.lisp.syntax.MapLiteral"+_MapLiteral = Model.Name "hydra.lisp.syntax.MapLiteral" -_MapLiteral_entries = Core.Name "entries"+_MapLiteral_entries = Model.Name "entries" -- | A module/namespace declaration. Serializes as (ns name ...) in Clojure, (provide 'name) in Emacs Lisp, (defpackage :name ... ) (in-package :name) in Common Lisp, (define-library (name) ...) in Scheme data ModuleDeclaration =@@ -795,11 +795,11 @@ moduleDeclarationDoc :: (Maybe Docstring)} deriving (Eq, Ord, Read, Show) -_ModuleDeclaration = Core.Name "hydra.lisp.syntax.ModuleDeclaration"+_ModuleDeclaration = Model.Name "hydra.lisp.syntax.ModuleDeclaration" -_ModuleDeclaration_name = Core.Name "name"+_ModuleDeclaration_name = Model.Name "name" -_ModuleDeclaration_doc = Core.Name "doc"+_ModuleDeclaration_doc = Model.Name "doc" -- | A namespace or package name newtype NamespaceName =@@ -807,7 +807,7 @@ unNamespaceName :: String} deriving (Eq, Ord, Read, Show) -_NamespaceName = Core.Name "hydra.lisp.syntax.NamespaceName"+_NamespaceName = Model.Name "hydra.lisp.syntax.NamespaceName" -- | The style of nil/null in a dialect data NilStyle =@@ -815,11 +815,11 @@ NilStyleEmptyList deriving (Eq, Ord, Read, Show) -_NilStyle = Core.Name "hydra.lisp.syntax.NilStyle"+_NilStyle = Model.Name "hydra.lisp.syntax.NilStyle" -_NilStyle_nil = Core.Name "nil"+_NilStyle_nil = Model.Name "nil" -_NilStyle_emptyList = Core.Name "emptyList"+_NilStyle_emptyList = Model.Name "emptyList" -- | Logical negation: (not expr) data NotExpression =@@ -828,9 +828,9 @@ notExpressionExpression :: Expression} deriving (Eq, Ord, Read, Show) -_NotExpression = Core.Name "hydra.lisp.syntax.NotExpression"+_NotExpression = Model.Name "hydra.lisp.syntax.NotExpression" -_NotExpression_expression = Core.Name "expression"+_NotExpression_expression = Model.Name "expression" -- | Logical or: (or expr1 expr2 ...) data OrExpression =@@ -839,9 +839,9 @@ orExpressionExpressions :: [Expression]} deriving (Eq, Ord, Read, Show) -_OrExpression = Core.Name "hydra.lisp.syntax.OrExpression"+_OrExpression = Model.Name "hydra.lisp.syntax.OrExpression" -_OrExpression_expressions = Core.Name "expressions"+_OrExpression_expressions = Model.Name "expressions" -- | A pattern for use in case expressions or match forms data Pattern =@@ -855,15 +855,15 @@ PatternVariable Symbol deriving (Eq, Ord, Read, Show) -_Pattern = Core.Name "hydra.lisp.syntax.Pattern"+_Pattern = Model.Name "hydra.lisp.syntax.Pattern" -_Pattern_constructor = Core.Name "constructor"+_Pattern_constructor = Model.Name "constructor" -_Pattern_literal = Core.Name "literal"+_Pattern_literal = Model.Name "literal" -_Pattern_wildcard = Core.Name "wildcard"+_Pattern_wildcard = Model.Name "wildcard" -_Pattern_variable = Core.Name "variable"+_Pattern_variable = Model.Name "variable" -- | A Lisp program, consisting of a sequence of top-level forms data Program =@@ -880,17 +880,17 @@ programForms :: [TopLevelFormWithComments]} deriving (Eq, Ord, Read, Show) -_Program = Core.Name "hydra.lisp.syntax.Program"+_Program = Model.Name "hydra.lisp.syntax.Program" -_Program_dialect = Core.Name "dialect"+_Program_dialect = Model.Name "dialect" -_Program_module = Core.Name "module"+_Program_module = Model.Name "module" -_Program_imports = Core.Name "imports"+_Program_imports = Model.Name "imports" -_Program_exports = Core.Name "exports"+_Program_exports = Model.Name "exports" -_Program_forms = Core.Name "forms"+_Program_forms = Model.Name "forms" -- | A namespace-qualified symbol. Serializes as ns/name in Clojure, pkg:name or pkg::name in Common Lisp data QualifiedSymbol =@@ -901,11 +901,11 @@ qualifiedSymbolName :: String} deriving (Eq, Ord, Read, Show) -_QualifiedSymbol = Core.Name "hydra.lisp.syntax.QualifiedSymbol"+_QualifiedSymbol = Model.Name "hydra.lisp.syntax.QualifiedSymbol" -_QualifiedSymbol_namespace = Core.Name "namespace"+_QualifiedSymbol_namespace = Model.Name "namespace" -_QualifiedSymbol_name = Core.Name "name"+_QualifiedSymbol_name = Model.Name "name" -- | A quasiquoted form: `expr data QuasiquoteExpression =@@ -914,9 +914,9 @@ quasiquoteExpressionBody :: Expression} deriving (Eq, Ord, Read, Show) -_QuasiquoteExpression = Core.Name "hydra.lisp.syntax.QuasiquoteExpression"+_QuasiquoteExpression = Model.Name "hydra.lisp.syntax.QuasiquoteExpression" -_QuasiquoteExpression_body = Core.Name "body"+_QuasiquoteExpression_body = Model.Name "body" -- | A quoted form: 'expr or (quote expr) data QuoteExpression =@@ -925,9 +925,9 @@ quoteExpressionBody :: Expression} deriving (Eq, Ord, Read, Show) -_QuoteExpression = Core.Name "hydra.lisp.syntax.QuoteExpression"+_QuoteExpression = Model.Name "hydra.lisp.syntax.QuoteExpression" -_QuoteExpression_body = Core.Name "body"+_QuoteExpression_body = Model.Name "body" -- | A record/struct type definition. Serializes as (defrecord Name [fields]) in Clojure, (cl-defstruct name fields) in Emacs Lisp, (defstruct name fields) in Common Lisp, (define-record-type <Name> ...) in Scheme data RecordTypeDefinition =@@ -940,13 +940,13 @@ recordTypeDefinitionDoc :: (Maybe Docstring)} deriving (Eq, Ord, Read, Show) -_RecordTypeDefinition = Core.Name "hydra.lisp.syntax.RecordTypeDefinition"+_RecordTypeDefinition = Model.Name "hydra.lisp.syntax.RecordTypeDefinition" -_RecordTypeDefinition_name = Core.Name "name"+_RecordTypeDefinition_name = Model.Name "name" -_RecordTypeDefinition_fields = Core.Name "fields"+_RecordTypeDefinition_fields = Model.Name "fields" -_RecordTypeDefinition_doc = Core.Name "doc"+_RecordTypeDefinition_doc = Model.Name "doc" -- | A raw S-expression. This is an escape hatch for expressing arbitrary Lisp forms that do not fit into the structured AST above. data SExpression =@@ -956,11 +956,11 @@ SExpressionList [SExpression] deriving (Eq, Ord, Read, Show) -_SExpression = Core.Name "hydra.lisp.syntax.SExpression"+_SExpression = Model.Name "hydra.lisp.syntax.SExpression" -_SExpression_atom = Core.Name "atom"+_SExpression_atom = Model.Name "atom" -_SExpression_list = Core.Name "list"+_SExpression_list = Model.Name "list" -- | A set literal. Serializes as #{1 2 3} in Clojure. Other dialects use a list-based construction. data SetLiteral =@@ -969,9 +969,9 @@ setLiteralElements :: [Expression]} deriving (Eq, Ord, Read, Show) -_SetLiteral = Core.Name "hydra.lisp.syntax.SetLiteral"+_SetLiteral = Model.Name "hydra.lisp.syntax.SetLiteral" -_SetLiteral_elements = Core.Name "elements"+_SetLiteral_elements = Model.Name "elements" -- | A simple name-value binding in a let expression data SimpleBinding =@@ -982,11 +982,11 @@ simpleBindingValue :: Expression} deriving (Eq, Ord, Read, Show) -_SimpleBinding = Core.Name "hydra.lisp.syntax.SimpleBinding"+_SimpleBinding = Model.Name "hydra.lisp.syntax.SimpleBinding" -_SimpleBinding_name = Core.Name "name"+_SimpleBinding_name = Model.Name "name" -_SimpleBinding_value = Core.Name "value"+_SimpleBinding_value = Model.Name "value" -- | A splicing unquote within a quasiquote: ~@expr or ,@expr data SplicingUnquoteExpression =@@ -995,9 +995,9 @@ splicingUnquoteExpressionBody :: Expression} deriving (Eq, Ord, Read, Show) -_SplicingUnquoteExpression = Core.Name "hydra.lisp.syntax.SplicingUnquoteExpression"+_SplicingUnquoteExpression = Model.Name "hydra.lisp.syntax.SplicingUnquoteExpression" -_SplicingUnquoteExpression_body = Core.Name "body"+_SplicingUnquoteExpression_body = Model.Name "body" -- | A Lisp symbol (identifier) newtype Symbol =@@ -1005,7 +1005,7 @@ unSymbol :: String} deriving (Eq, Ord, Read, Show) -_Symbol = Core.Name "hydra.lisp.syntax.Symbol"+_Symbol = Model.Name "hydra.lisp.syntax.Symbol" -- | A top-level form in a Lisp program data TopLevelForm =@@ -1023,19 +1023,19 @@ TopLevelFormExpression Expression deriving (Eq, Ord, Read, Show) -_TopLevelForm = Core.Name "hydra.lisp.syntax.TopLevelForm"+_TopLevelForm = Model.Name "hydra.lisp.syntax.TopLevelForm" -_TopLevelForm_function = Core.Name "function"+_TopLevelForm_function = Model.Name "function" -_TopLevelForm_variable = Core.Name "variable"+_TopLevelForm_variable = Model.Name "variable" -_TopLevelForm_constant = Core.Name "constant"+_TopLevelForm_constant = Model.Name "constant" -_TopLevelForm_recordType = Core.Name "recordType"+_TopLevelForm_recordType = Model.Name "recordType" -_TopLevelForm_macro = Core.Name "macro"+_TopLevelForm_macro = Model.Name "macro" -_TopLevelForm_expression = Core.Name "expression"+_TopLevelForm_expression = Model.Name "expression" -- | A top-level form together with optional documentation data TopLevelFormWithComments =@@ -1048,13 +1048,13 @@ topLevelFormWithCommentsForm :: TopLevelForm} deriving (Eq, Ord, Read, Show) -_TopLevelFormWithComments = Core.Name "hydra.lisp.syntax.TopLevelFormWithComments"+_TopLevelFormWithComments = Model.Name "hydra.lisp.syntax.TopLevelFormWithComments" -_TopLevelFormWithComments_doc = Core.Name "doc"+_TopLevelFormWithComments_doc = Model.Name "doc" -_TopLevelFormWithComments_comment = Core.Name "comment"+_TopLevelFormWithComments_comment = Model.Name "comment" -_TopLevelFormWithComments_form = Core.Name "form"+_TopLevelFormWithComments_form = Model.Name "form" -- | An expression with a type annotation data TypeAnnotation =@@ -1065,11 +1065,11 @@ typeAnnotationType :: TypeSpecifier} deriving (Eq, Ord, Read, Show) -_TypeAnnotation = Core.Name "hydra.lisp.syntax.TypeAnnotation"+_TypeAnnotation = Model.Name "hydra.lisp.syntax.TypeAnnotation" -_TypeAnnotation_expression = Core.Name "expression"+_TypeAnnotation_expression = Model.Name "expression" -_TypeAnnotation_type = Core.Name "type"+_TypeAnnotation_type = Model.Name "type" -- | A type hint or annotation. In Clojure: ^Type name. In Common Lisp: (declare (type Type name)). In Scheme and Emacs Lisp: typically unused. data TypeHint =@@ -1080,11 +1080,11 @@ typeHintType :: TypeSpecifier} deriving (Eq, Ord, Read, Show) -_TypeHint = Core.Name "hydra.lisp.syntax.TypeHint"+_TypeHint = Model.Name "hydra.lisp.syntax.TypeHint" -_TypeHint_name = Core.Name "name"+_TypeHint_name = Model.Name "name" -_TypeHint_type = Core.Name "type"+_TypeHint_type = Model.Name "type" -- | A type specifier data TypeSpecifier =@@ -1108,25 +1108,25 @@ TypeSpecifierUnit deriving (Eq, Ord, Read, Show) -_TypeSpecifier = Core.Name "hydra.lisp.syntax.TypeSpecifier"+_TypeSpecifier = Model.Name "hydra.lisp.syntax.TypeSpecifier" -_TypeSpecifier_named = Core.Name "named"+_TypeSpecifier_named = Model.Name "named" -_TypeSpecifier_list = Core.Name "list"+_TypeSpecifier_list = Model.Name "list" -_TypeSpecifier_function = Core.Name "function"+_TypeSpecifier_function = Model.Name "function" -_TypeSpecifier_maybe = Core.Name "maybe"+_TypeSpecifier_maybe = Model.Name "maybe" -_TypeSpecifier_map = Core.Name "map"+_TypeSpecifier_map = Model.Name "map" -_TypeSpecifier_set = Core.Name "set"+_TypeSpecifier_set = Model.Name "set" -_TypeSpecifier_pair = Core.Name "pair"+_TypeSpecifier_pair = Model.Name "pair" -_TypeSpecifier_either = Core.Name "either"+_TypeSpecifier_either = Model.Name "either" -_TypeSpecifier_unit = Core.Name "unit"+_TypeSpecifier_unit = Model.Name "unit" -- | An unquoted form within a quasiquote: ~expr or ,expr data UnquoteExpression =@@ -1135,9 +1135,9 @@ unquoteExpressionBody :: Expression} deriving (Eq, Ord, Read, Show) -_UnquoteExpression = Core.Name "hydra.lisp.syntax.UnquoteExpression"+_UnquoteExpression = Model.Name "hydra.lisp.syntax.UnquoteExpression" -_UnquoteExpression_body = Core.Name "body"+_UnquoteExpression_body = Model.Name "body" -- | A global variable definition. Serializes as (def name value) in Clojure, (defvar name value) in Emacs Lisp and Common Lisp, (define name value) in Scheme data VariableDefinition =@@ -1150,13 +1150,13 @@ variableDefinitionDoc :: (Maybe Docstring)} deriving (Eq, Ord, Read, Show) -_VariableDefinition = Core.Name "hydra.lisp.syntax.VariableDefinition"+_VariableDefinition = Model.Name "hydra.lisp.syntax.VariableDefinition" -_VariableDefinition_name = Core.Name "name"+_VariableDefinition_name = Model.Name "name" -_VariableDefinition_value = Core.Name "value"+_VariableDefinition_value = Model.Name "value" -_VariableDefinition_doc = Core.Name "doc"+_VariableDefinition_doc = Model.Name "doc" -- | A reference to a variable by name data VariableReference =@@ -1167,11 +1167,11 @@ variableReferenceFunctionNamespace :: Bool} deriving (Eq, Ord, Read, Show) -_VariableReference = Core.Name "hydra.lisp.syntax.VariableReference"+_VariableReference = Model.Name "hydra.lisp.syntax.VariableReference" -_VariableReference_name = Core.Name "name"+_VariableReference_name = Model.Name "name" -_VariableReference_functionNamespace = Core.Name "functionNamespace"+_VariableReference_functionNamespace = Model.Name "functionNamespace" -- | A vector literal. Serializes as [1 2 3] in Clojure and Emacs Lisp, #(1 2 3) in Common Lisp and Scheme data VectorLiteral =@@ -1180,11 +1180,11 @@ vectorLiteralElements :: [Expression]} deriving (Eq, Ord, Read, Show) -_VectorLiteral = Core.Name "hydra.lisp.syntax.VectorLiteral"+_VectorLiteral = Model.Name "hydra.lisp.syntax.VectorLiteral" -_VectorLiteral_elements = Core.Name "elements"+_VectorLiteral_elements = Model.Name "elements" -- | A wildcard pattern that matches any value type WildcardPattern = () -_WildcardPattern = Core.Name "hydra.lisp.syntax.WildcardPattern"+_WildcardPattern = Model.Name "hydra.lisp.syntax.WildcardPattern"