packages feed

hydra-build 0.17.2 → 0.17.3

raw patch · 10 files changed

+5430/−14 lines, 10 filesdep ~hydra-kernelPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: hydra-kernel

API changes (from Hackage documentation)

+ Hydra.Build.Format: DefinitionNameConventionProfile :: Severity -> Bool -> DefinitionNameConventionProfile
+ Hydra.Build.Format: DefinitionValidationProfile :: Maybe DocumentationProfile -> Maybe Severity -> Maybe DefinitionNameConventionProfile -> Maybe Severity -> Maybe Severity -> DefinitionValidationProfile
+ Hydra.Build.Format: DigestEntry :: DigestKind -> Sha256Hash -> DigestEntry
+ Hydra.Build.Format: DigestKindDslSource :: DigestKind
+ Hydra.Build.Format: DigestKindJsonFile :: DigestKind
+ Hydra.Build.Format: DigestKindOther :: DigestKind
+ Hydra.Build.Format: DigestKindRuntimeFile :: DigestKind
+ Hydra.Build.Format: DigestKindTargetFile :: DigestKind
+ Hydra.Build.Format: DocumentationProfile :: Severity -> Bool -> DocumentationProfile
+ Hydra.Build.Format: Generation :: String -> GenerationMode -> LanguageName -> Maybe Version -> Maybe String -> Maybe String -> Generation
+ Hydra.Build.Format: GenerationModePublished :: GenerationMode
+ Hydra.Build.Format: GenerationModeShim :: GenerationMode
+ Hydra.Build.Format: HostOverrideLocal :: HostOverride
+ Hydra.Build.Format: HostOverrideVersion :: Version -> HostOverride
+ Hydra.Build.Format: InputDigest :: Int -> Int -> Maybe Sha256Hash -> Map PackageName Sha256Hash -> Map ModuleName Sha256Hash -> InputDigest
+ Hydra.Build.Format: LanguageName :: String -> LanguageName
+ Hydra.Build.Format: ModuleValidationProfile :: Maybe DefinitionValidationProfile -> Maybe Severity -> Maybe Severity -> ModuleValidationProfile
+ Hydra.Build.Format: OutputDigest :: Int -> Int -> String -> Generation -> Maybe Sha256Hash -> Map PackageName Sha256Hash -> Map String DigestEntry -> Map String DigestEntry -> OutputDigest
+ Hydra.Build.Format: PackageDescriptor :: Int -> PackageName -> String -> LanguageName -> Maybe [LanguageName] -> [PackageName] -> Maybe PackageValidationConfiguration -> PackageDescriptor
+ Hydra.Build.Format: PackageManifest :: Int -> Int -> PackageName -> [ModuleName] -> [ModuleName] -> [ModuleName] -> [ModuleName] -> PackageManifest
+ Hydra.Build.Format: PackageValidationConfiguration :: Maybe PackageValidationProfile -> Maybe ModuleValidationProfile -> Maybe TypeValidationProfile -> Maybe TermValidationProfile -> PackageValidationConfiguration
+ Hydra.Build.Format: PackageValidationProfile :: Maybe Severity -> Maybe Severity -> Maybe Severity -> PackageValidationProfile
+ Hydra.Build.Format: RepositoryDescriptor :: Version -> Version -> Map LanguageName HostOverride -> String -> String -> String -> String -> [PackageName] -> RepositoryDescriptor
+ Hydra.Build.Format: SeverityError :: Severity
+ Hydra.Build.Format: SeverityWarning :: Severity
+ Hydra.Build.Format: Sha256Hash :: String -> Sha256Hash
+ Hydra.Build.Format: TermValidationProfile :: Maybe Severity -> Maybe Severity -> Maybe Severity -> TermValidationProfile
+ Hydra.Build.Format: TypeValidationProfile :: Maybe Severity -> Maybe Severity -> Maybe Severity -> TypeValidationProfile
+ Hydra.Build.Format: [definitionNameConventionProfileAllowUnderscores] :: DefinitionNameConventionProfile -> Bool
+ Hydra.Build.Format: [definitionNameConventionProfileSeverity] :: DefinitionNameConventionProfile -> Severity
+ Hydra.Build.Format: [definitionValidationProfileDuplicateName] :: DefinitionValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [definitionValidationProfileHasDescription] :: DefinitionValidationProfile -> Maybe DocumentationProfile
+ Hydra.Build.Format: [definitionValidationProfileNameConvention] :: DefinitionValidationProfile -> Maybe DefinitionNameConventionProfile
+ Hydra.Build.Format: [definitionValidationProfileNotInModuleName] :: DefinitionValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [definitionValidationProfileOrdering] :: DefinitionValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [digestEntryHash] :: DigestEntry -> Sha256Hash
+ Hydra.Build.Format: [digestEntryKind] :: DigestEntry -> DigestKind
+ Hydra.Build.Format: [documentationProfileExemptDeprecated] :: DocumentationProfile -> Bool
+ Hydra.Build.Format: [documentationProfileSeverity] :: DocumentationProfile -> Severity
+ Hydra.Build.Format: [generationGeneratorId] :: Generation -> String
+ Hydra.Build.Format: [generationHost] :: Generation -> LanguageName
+ Hydra.Build.Format: [generationHydraVersion] :: Generation -> Maybe Version
+ Hydra.Build.Format: [generationMode] :: Generation -> GenerationMode
+ Hydra.Build.Format: [generationRevision] :: Generation -> Maybe String
+ Hydra.Build.Format: [generationTimestamp] :: Generation -> Maybe String
+ Hydra.Build.Format: [inputDigestDependencyHashes] :: InputDigest -> Map PackageName Sha256Hash
+ Hydra.Build.Format: [inputDigestDigestFormatVersion] :: InputDigest -> Int
+ Hydra.Build.Format: [inputDigestModuleFormatVersion] :: InputDigest -> Int
+ Hydra.Build.Format: [inputDigestModuleHashes] :: InputDigest -> Map ModuleName Sha256Hash
+ Hydra.Build.Format: [inputDigestSelfHash] :: InputDigest -> Maybe Sha256Hash
+ Hydra.Build.Format: [moduleValidationProfileConflictingVariantName] :: ModuleValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [moduleValidationProfileDefinitions] :: ModuleValidationProfile -> Maybe DefinitionValidationProfile
+ Hydra.Build.Format: [moduleValidationProfileNameConvention] :: ModuleValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [outputDigestDependencyHashes] :: OutputDigest -> Map PackageName Sha256Hash
+ Hydra.Build.Format: [outputDigestDigestFormatVersion] :: OutputDigest -> Int
+ Hydra.Build.Format: [outputDigestGeneration] :: OutputDigest -> Generation
+ Hydra.Build.Format: [outputDigestGenerator] :: OutputDigest -> String
+ Hydra.Build.Format: [outputDigestInputs] :: OutputDigest -> Map String DigestEntry
+ Hydra.Build.Format: [outputDigestModuleFormatVersion] :: OutputDigest -> Int
+ Hydra.Build.Format: [outputDigestOutputs] :: OutputDigest -> Map String DigestEntry
+ Hydra.Build.Format: [outputDigestSelfHash] :: OutputDigest -> Maybe Sha256Hash
+ Hydra.Build.Format: [packageDescriptorDependencies] :: PackageDescriptor -> [PackageName]
+ Hydra.Build.Format: [packageDescriptorDescription] :: PackageDescriptor -> String
+ Hydra.Build.Format: [packageDescriptorName] :: PackageDescriptor -> PackageName
+ Hydra.Build.Format: [packageDescriptorPackageFormatVersion] :: PackageDescriptor -> Int
+ Hydra.Build.Format: [packageDescriptorSourceLanguage] :: PackageDescriptor -> LanguageName
+ Hydra.Build.Format: [packageDescriptorTargetLanguages] :: PackageDescriptor -> Maybe [LanguageName]
+ Hydra.Build.Format: [packageDescriptorValidation] :: PackageDescriptor -> Maybe PackageValidationConfiguration
+ Hydra.Build.Format: [packageManifestMainDslModules] :: PackageManifest -> [ModuleName]
+ Hydra.Build.Format: [packageManifestMainEncodingModules] :: PackageManifest -> [ModuleName]
+ Hydra.Build.Format: [packageManifestMainModules] :: PackageManifest -> [ModuleName]
+ Hydra.Build.Format: [packageManifestManifestFormatVersion] :: PackageManifest -> Int
+ Hydra.Build.Format: [packageManifestModuleFormatVersion] :: PackageManifest -> Int
+ Hydra.Build.Format: [packageManifestPackage] :: PackageManifest -> PackageName
+ Hydra.Build.Format: [packageManifestTestModules] :: PackageManifest -> [ModuleName]
+ Hydra.Build.Format: [packageValidationConfigurationModule] :: PackageValidationConfiguration -> Maybe ModuleValidationProfile
+ Hydra.Build.Format: [packageValidationConfigurationPackage] :: PackageValidationConfiguration -> Maybe PackageValidationProfile
+ Hydra.Build.Format: [packageValidationConfigurationTerm] :: PackageValidationConfiguration -> Maybe TermValidationProfile
+ Hydra.Build.Format: [packageValidationConfigurationType] :: PackageValidationConfiguration -> Maybe TypeValidationProfile
+ Hydra.Build.Format: [packageValidationProfileConflictingModuleName] :: PackageValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [packageValidationProfileDuplicateModuleName] :: PackageValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [packageValidationProfileNameConvention] :: PackageValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [repositoryDescriptorAuthor] :: RepositoryDescriptor -> String
+ Hydra.Build.Format: [repositoryDescriptorCurrentVersion] :: RepositoryDescriptor -> Version
+ Hydra.Build.Format: [repositoryDescriptorGroup] :: RepositoryDescriptor -> String
+ Hydra.Build.Format: [repositoryDescriptorHostOverrides] :: RepositoryDescriptor -> Map LanguageName HostOverride
+ Hydra.Build.Format: [repositoryDescriptorHostVersion] :: RepositoryDescriptor -> Version
+ Hydra.Build.Format: [repositoryDescriptorLicense] :: RepositoryDescriptor -> String
+ Hydra.Build.Format: [repositoryDescriptorPackages] :: RepositoryDescriptor -> [PackageName]
+ Hydra.Build.Format: [repositoryDescriptorUrl] :: RepositoryDescriptor -> String
+ Hydra.Build.Format: [termValidationProfileDuplicateBinding] :: TermValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [termValidationProfileEmptyTermAnnotation] :: TermValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [termValidationProfileUndefinedVariable] :: TermValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [typeValidationProfileDuplicateField] :: TypeValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [typeValidationProfileEmptyAnnotation] :: TypeValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [typeValidationProfileSingleVariantUnion] :: TypeValidationProfile -> Maybe Severity
+ Hydra.Build.Format: [unLanguageName] :: LanguageName -> String
+ Hydra.Build.Format: [unSha256Hash] :: Sha256Hash -> String
+ Hydra.Build.Format: _DefinitionNameConventionProfile :: Name
+ Hydra.Build.Format: _DefinitionNameConventionProfile_allowUnderscores :: Name
+ Hydra.Build.Format: _DefinitionNameConventionProfile_severity :: Name
+ Hydra.Build.Format: _DefinitionValidationProfile :: Name
+ Hydra.Build.Format: _DefinitionValidationProfile_duplicateName :: Name
+ Hydra.Build.Format: _DefinitionValidationProfile_hasDescription :: Name
+ Hydra.Build.Format: _DefinitionValidationProfile_nameConvention :: Name
+ Hydra.Build.Format: _DefinitionValidationProfile_notInModuleName :: Name
+ Hydra.Build.Format: _DefinitionValidationProfile_ordering :: Name
+ Hydra.Build.Format: _DigestEntry :: Name
+ Hydra.Build.Format: _DigestEntry_hash :: Name
+ Hydra.Build.Format: _DigestEntry_kind :: Name
+ Hydra.Build.Format: _DigestKind :: Name
+ Hydra.Build.Format: _DigestKind_dslSource :: Name
+ Hydra.Build.Format: _DigestKind_jsonFile :: Name
+ Hydra.Build.Format: _DigestKind_other :: Name
+ Hydra.Build.Format: _DigestKind_runtimeFile :: Name
+ Hydra.Build.Format: _DigestKind_targetFile :: Name
+ Hydra.Build.Format: _DocumentationProfile :: Name
+ Hydra.Build.Format: _DocumentationProfile_exemptDeprecated :: Name
+ Hydra.Build.Format: _DocumentationProfile_severity :: Name
+ Hydra.Build.Format: _Generation :: Name
+ Hydra.Build.Format: _GenerationMode :: Name
+ Hydra.Build.Format: _GenerationMode_published :: Name
+ Hydra.Build.Format: _GenerationMode_shim :: Name
+ Hydra.Build.Format: _Generation_generatorId :: Name
+ Hydra.Build.Format: _Generation_host :: Name
+ Hydra.Build.Format: _Generation_hydraVersion :: Name
+ Hydra.Build.Format: _Generation_mode :: Name
+ Hydra.Build.Format: _Generation_revision :: Name
+ Hydra.Build.Format: _Generation_timestamp :: Name
+ Hydra.Build.Format: _HostOverride :: Name
+ Hydra.Build.Format: _HostOverride_local :: Name
+ Hydra.Build.Format: _HostOverride_version :: Name
+ Hydra.Build.Format: _InputDigest :: Name
+ Hydra.Build.Format: _InputDigest_dependencyHashes :: Name
+ Hydra.Build.Format: _InputDigest_digestFormatVersion :: Name
+ Hydra.Build.Format: _InputDigest_moduleFormatVersion :: Name
+ Hydra.Build.Format: _InputDigest_moduleHashes :: Name
+ Hydra.Build.Format: _InputDigest_selfHash :: Name
+ Hydra.Build.Format: _LanguageName :: Name
+ Hydra.Build.Format: _ModuleValidationProfile :: Name
+ Hydra.Build.Format: _ModuleValidationProfile_conflictingVariantName :: Name
+ Hydra.Build.Format: _ModuleValidationProfile_definitions :: Name
+ Hydra.Build.Format: _ModuleValidationProfile_nameConvention :: Name
+ Hydra.Build.Format: _OutputDigest :: Name
+ Hydra.Build.Format: _OutputDigest_dependencyHashes :: Name
+ Hydra.Build.Format: _OutputDigest_digestFormatVersion :: Name
+ Hydra.Build.Format: _OutputDigest_generation :: Name
+ Hydra.Build.Format: _OutputDigest_generator :: Name
+ Hydra.Build.Format: _OutputDigest_inputs :: Name
+ Hydra.Build.Format: _OutputDigest_moduleFormatVersion :: Name
+ Hydra.Build.Format: _OutputDigest_outputs :: Name
+ Hydra.Build.Format: _OutputDigest_selfHash :: Name
+ Hydra.Build.Format: _PackageDescriptor :: Name
+ Hydra.Build.Format: _PackageDescriptor_dependencies :: Name
+ Hydra.Build.Format: _PackageDescriptor_description :: Name
+ Hydra.Build.Format: _PackageDescriptor_name :: Name
+ Hydra.Build.Format: _PackageDescriptor_packageFormatVersion :: Name
+ Hydra.Build.Format: _PackageDescriptor_sourceLanguage :: Name
+ Hydra.Build.Format: _PackageDescriptor_targetLanguages :: Name
+ Hydra.Build.Format: _PackageDescriptor_validation :: Name
+ Hydra.Build.Format: _PackageManifest :: Name
+ Hydra.Build.Format: _PackageManifest_mainDslModules :: Name
+ Hydra.Build.Format: _PackageManifest_mainEncodingModules :: Name
+ Hydra.Build.Format: _PackageManifest_mainModules :: Name
+ Hydra.Build.Format: _PackageManifest_manifestFormatVersion :: Name
+ Hydra.Build.Format: _PackageManifest_moduleFormatVersion :: Name
+ Hydra.Build.Format: _PackageManifest_package :: Name
+ Hydra.Build.Format: _PackageManifest_testModules :: Name
+ Hydra.Build.Format: _PackageValidationConfiguration :: Name
+ Hydra.Build.Format: _PackageValidationConfiguration_module :: Name
+ Hydra.Build.Format: _PackageValidationConfiguration_package :: Name
+ Hydra.Build.Format: _PackageValidationConfiguration_term :: Name
+ Hydra.Build.Format: _PackageValidationConfiguration_type :: Name
+ Hydra.Build.Format: _PackageValidationProfile :: Name
+ Hydra.Build.Format: _PackageValidationProfile_conflictingModuleName :: Name
+ Hydra.Build.Format: _PackageValidationProfile_duplicateModuleName :: Name
+ Hydra.Build.Format: _PackageValidationProfile_nameConvention :: Name
+ Hydra.Build.Format: _RepositoryDescriptor :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_author :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_currentVersion :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_group :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_hostOverrides :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_hostVersion :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_license :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_packages :: Name
+ Hydra.Build.Format: _RepositoryDescriptor_url :: Name
+ Hydra.Build.Format: _Severity :: Name
+ Hydra.Build.Format: _Severity_error :: Name
+ Hydra.Build.Format: _Severity_warning :: Name
+ Hydra.Build.Format: _Sha256Hash :: Name
+ Hydra.Build.Format: _TermValidationProfile :: Name
+ Hydra.Build.Format: _TermValidationProfile_duplicateBinding :: Name
+ Hydra.Build.Format: _TermValidationProfile_emptyTermAnnotation :: Name
+ Hydra.Build.Format: _TermValidationProfile_undefinedVariable :: Name
+ Hydra.Build.Format: _TypeValidationProfile :: Name
+ Hydra.Build.Format: _TypeValidationProfile_duplicateField :: Name
+ Hydra.Build.Format: _TypeValidationProfile_emptyAnnotation :: Name
+ Hydra.Build.Format: _TypeValidationProfile_singleVariantUnion :: Name
+ Hydra.Build.Format: data DefinitionNameConventionProfile
+ Hydra.Build.Format: data DefinitionValidationProfile
+ Hydra.Build.Format: data DigestEntry
+ Hydra.Build.Format: data DigestKind
+ Hydra.Build.Format: data DocumentationProfile
+ Hydra.Build.Format: data Generation
+ Hydra.Build.Format: data GenerationMode
+ Hydra.Build.Format: data HostOverride
+ Hydra.Build.Format: data InputDigest
+ Hydra.Build.Format: data ModuleValidationProfile
+ Hydra.Build.Format: data OutputDigest
+ Hydra.Build.Format: data PackageDescriptor
+ Hydra.Build.Format: data PackageManifest
+ Hydra.Build.Format: data PackageValidationConfiguration
+ Hydra.Build.Format: data PackageValidationProfile
+ Hydra.Build.Format: data RepositoryDescriptor
+ Hydra.Build.Format: data Severity
+ Hydra.Build.Format: data TermValidationProfile
+ Hydra.Build.Format: data TypeValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.DefinitionNameConventionProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.DefinitionValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.DigestEntry
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.DigestKind
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.DocumentationProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.Generation
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.GenerationMode
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.HostOverride
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.InputDigest
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.LanguageName
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.ModuleValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.OutputDigest
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.PackageDescriptor
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.PackageManifest
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.PackageValidationConfiguration
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.PackageValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.RepositoryDescriptor
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.Severity
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.Sha256Hash
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.TermValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Eq Hydra.Build.Format.TypeValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.DefinitionNameConventionProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.DefinitionValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.DigestEntry
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.DigestKind
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.DocumentationProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.Generation
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.GenerationMode
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.HostOverride
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.InputDigest
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.LanguageName
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.ModuleValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.OutputDigest
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.PackageDescriptor
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.PackageManifest
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.PackageValidationConfiguration
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.PackageValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.RepositoryDescriptor
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.Severity
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.Sha256Hash
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.TermValidationProfile
+ Hydra.Build.Format: instance GHC.Classes.Ord Hydra.Build.Format.TypeValidationProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.DefinitionNameConventionProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.DefinitionValidationProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.DigestEntry
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.DigestKind
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.DocumentationProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.Generation
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.GenerationMode
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.HostOverride
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.InputDigest
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.LanguageName
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.ModuleValidationProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.OutputDigest
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.PackageDescriptor
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.PackageManifest
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.PackageValidationConfiguration
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.PackageValidationProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.RepositoryDescriptor
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.Severity
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.Sha256Hash
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.TermValidationProfile
+ Hydra.Build.Format: instance GHC.Read.Read Hydra.Build.Format.TypeValidationProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.DefinitionNameConventionProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.DefinitionValidationProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.DigestEntry
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.DigestKind
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.DocumentationProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.Generation
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.GenerationMode
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.HostOverride
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.InputDigest
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.LanguageName
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.ModuleValidationProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.OutputDigest
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.PackageDescriptor
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.PackageManifest
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.PackageValidationConfiguration
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.PackageValidationProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.RepositoryDescriptor
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.Severity
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.Sha256Hash
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.TermValidationProfile
+ Hydra.Build.Format: instance GHC.Show.Show Hydra.Build.Format.TypeValidationProfile
+ Hydra.Build.Format: newtype LanguageName
+ Hydra.Build.Format: newtype Sha256Hash
+ Hydra.Build.Libraries: expectedLibraries :: [String]
+ Hydra.Build.Libraries: isExpectedLibrary :: String -> Bool
+ Hydra.Build.ManifestWriter: packageManifestJson :: String -> [Module] -> [Module] -> [Module] -> [Module] -> Value
+ Hydra.Build.ManifestWriter: sortedNamespaces :: [Module] -> Value
+ Hydra.Decode.Build.Format: definitionNameConventionProfile :: Graph -> Term -> Either DecodingError DefinitionNameConventionProfile
+ Hydra.Decode.Build.Format: definitionValidationProfile :: Graph -> Term -> Either DecodingError DefinitionValidationProfile
+ Hydra.Decode.Build.Format: digestEntry :: Graph -> Term -> Either DecodingError DigestEntry
+ Hydra.Decode.Build.Format: digestKind :: Graph -> Term -> Either DecodingError DigestKind
+ Hydra.Decode.Build.Format: documentationProfile :: Graph -> Term -> Either DecodingError DocumentationProfile
+ Hydra.Decode.Build.Format: generation :: Graph -> Term -> Either DecodingError Generation
+ Hydra.Decode.Build.Format: generationMode :: Graph -> Term -> Either DecodingError GenerationMode
+ Hydra.Decode.Build.Format: hostOverride :: Graph -> Term -> Either DecodingError HostOverride
+ Hydra.Decode.Build.Format: inputDigest :: Graph -> Term -> Either DecodingError InputDigest
+ Hydra.Decode.Build.Format: languageName :: Graph -> Term -> Either DecodingError LanguageName
+ Hydra.Decode.Build.Format: moduleValidationProfile :: Graph -> Term -> Either DecodingError ModuleValidationProfile
+ Hydra.Decode.Build.Format: outputDigest :: Graph -> Term -> Either DecodingError OutputDigest
+ Hydra.Decode.Build.Format: packageDescriptor :: Graph -> Term -> Either DecodingError PackageDescriptor
+ Hydra.Decode.Build.Format: packageManifest :: Graph -> Term -> Either DecodingError PackageManifest
+ Hydra.Decode.Build.Format: packageValidationConfiguration :: Graph -> Term -> Either DecodingError PackageValidationConfiguration
+ Hydra.Decode.Build.Format: packageValidationProfile :: Graph -> Term -> Either DecodingError PackageValidationProfile
+ Hydra.Decode.Build.Format: repositoryDescriptor :: Graph -> Term -> Either DecodingError RepositoryDescriptor
+ Hydra.Decode.Build.Format: severity :: Graph -> Term -> Either DecodingError Severity
+ Hydra.Decode.Build.Format: sha256Hash :: Graph -> Term -> Either DecodingError Sha256Hash
+ Hydra.Decode.Build.Format: termValidationProfile :: Graph -> Term -> Either DecodingError TermValidationProfile
+ Hydra.Decode.Build.Format: typeValidationProfile :: Graph -> Term -> Either DecodingError TypeValidationProfile
+ Hydra.Dsl.Build.Format: definitionNameConventionProfile :: TypedTerm Severity -> TypedTerm Bool -> TypedTerm DefinitionNameConventionProfile
+ Hydra.Dsl.Build.Format: definitionNameConventionProfileAllowUnderscores :: TypedTerm DefinitionNameConventionProfile -> TypedTerm Bool
+ Hydra.Dsl.Build.Format: definitionNameConventionProfileDefinitionNameConventionProfile :: TypedName DefinitionNameConventionProfile
+ Hydra.Dsl.Build.Format: definitionNameConventionProfileSeverity :: TypedTerm DefinitionNameConventionProfile -> TypedTerm Severity
+ Hydra.Dsl.Build.Format: definitionNameConventionProfileWithAllowUnderscores :: TypedTerm DefinitionNameConventionProfile -> TypedTerm Bool -> TypedTerm DefinitionNameConventionProfile
+ Hydra.Dsl.Build.Format: definitionNameConventionProfileWithSeverity :: TypedTerm DefinitionNameConventionProfile -> TypedTerm Severity -> TypedTerm DefinitionNameConventionProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfile :: TypedTerm (Maybe DocumentationProfile) -> TypedTerm (Maybe Severity) -> TypedTerm (Maybe DefinitionNameConventionProfile) -> TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfileDefinitionValidationProfile :: TypedName DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfileDuplicateName :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: definitionValidationProfileHasDescription :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe DocumentationProfile)
+ Hydra.Dsl.Build.Format: definitionValidationProfileNameConvention :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe DefinitionNameConventionProfile)
+ Hydra.Dsl.Build.Format: definitionValidationProfileNotInModuleName :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: definitionValidationProfileOrdering :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: definitionValidationProfileWithDuplicateName :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfileWithHasDescription :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe DocumentationProfile) -> TypedTerm DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfileWithNameConvention :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe DefinitionNameConventionProfile) -> TypedTerm DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfileWithNotInModuleName :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: definitionValidationProfileWithOrdering :: TypedTerm DefinitionValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm DefinitionValidationProfile
+ Hydra.Dsl.Build.Format: digestEntry :: TypedTerm DigestKind -> TypedTerm Sha256Hash -> TypedTerm DigestEntry
+ Hydra.Dsl.Build.Format: digestEntryDigestEntry :: TypedName DigestEntry
+ Hydra.Dsl.Build.Format: digestEntryHash :: TypedTerm DigestEntry -> TypedTerm Sha256Hash
+ Hydra.Dsl.Build.Format: digestEntryKind :: TypedTerm DigestEntry -> TypedTerm DigestKind
+ Hydra.Dsl.Build.Format: digestEntryWithHash :: TypedTerm DigestEntry -> TypedTerm Sha256Hash -> TypedTerm DigestEntry
+ Hydra.Dsl.Build.Format: digestEntryWithKind :: TypedTerm DigestEntry -> TypedTerm DigestKind -> TypedTerm DigestEntry
+ Hydra.Dsl.Build.Format: digestKindDigestKind :: TypedName DigestKind
+ Hydra.Dsl.Build.Format: digestKindDslSource :: TypedTerm DigestKind
+ Hydra.Dsl.Build.Format: digestKindJsonFile :: TypedTerm DigestKind
+ Hydra.Dsl.Build.Format: digestKindOther :: TypedTerm DigestKind
+ Hydra.Dsl.Build.Format: digestKindRuntimeFile :: TypedTerm DigestKind
+ Hydra.Dsl.Build.Format: digestKindTargetFile :: TypedTerm DigestKind
+ Hydra.Dsl.Build.Format: documentationProfile :: TypedTerm Severity -> TypedTerm Bool -> TypedTerm DocumentationProfile
+ Hydra.Dsl.Build.Format: documentationProfileDocumentationProfile :: TypedName DocumentationProfile
+ Hydra.Dsl.Build.Format: documentationProfileExemptDeprecated :: TypedTerm DocumentationProfile -> TypedTerm Bool
+ Hydra.Dsl.Build.Format: documentationProfileSeverity :: TypedTerm DocumentationProfile -> TypedTerm Severity
+ Hydra.Dsl.Build.Format: documentationProfileWithExemptDeprecated :: TypedTerm DocumentationProfile -> TypedTerm Bool -> TypedTerm DocumentationProfile
+ Hydra.Dsl.Build.Format: documentationProfileWithSeverity :: TypedTerm DocumentationProfile -> TypedTerm Severity -> TypedTerm DocumentationProfile
+ Hydra.Dsl.Build.Format: generation :: TypedTerm String -> TypedTerm GenerationMode -> TypedTerm LanguageName -> TypedTerm (Maybe Version) -> TypedTerm (Maybe String) -> TypedTerm (Maybe String) -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: generationGeneration :: TypedName Generation
+ Hydra.Dsl.Build.Format: generationGeneratorId :: TypedTerm Generation -> TypedTerm String
+ Hydra.Dsl.Build.Format: generationHost :: TypedTerm Generation -> TypedTerm LanguageName
+ Hydra.Dsl.Build.Format: generationHydraVersion :: TypedTerm Generation -> TypedTerm (Maybe Version)
+ Hydra.Dsl.Build.Format: generationMode :: TypedTerm Generation -> TypedTerm GenerationMode
+ Hydra.Dsl.Build.Format: generationModeGenerationMode :: TypedName GenerationMode
+ Hydra.Dsl.Build.Format: generationModePublished :: TypedTerm GenerationMode
+ Hydra.Dsl.Build.Format: generationModeShim :: TypedTerm GenerationMode
+ Hydra.Dsl.Build.Format: generationRevision :: TypedTerm Generation -> TypedTerm (Maybe String)
+ Hydra.Dsl.Build.Format: generationTimestamp :: TypedTerm Generation -> TypedTerm (Maybe String)
+ Hydra.Dsl.Build.Format: generationWithGeneratorId :: TypedTerm Generation -> TypedTerm String -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: generationWithHost :: TypedTerm Generation -> TypedTerm LanguageName -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: generationWithHydraVersion :: TypedTerm Generation -> TypedTerm (Maybe Version) -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: generationWithMode :: TypedTerm Generation -> TypedTerm GenerationMode -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: generationWithRevision :: TypedTerm Generation -> TypedTerm (Maybe String) -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: generationWithTimestamp :: TypedTerm Generation -> TypedTerm (Maybe String) -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: hostOverrideHostOverride :: TypedName HostOverride
+ Hydra.Dsl.Build.Format: hostOverrideLocal :: TypedTerm HostOverride
+ Hydra.Dsl.Build.Format: hostOverrideVersion :: TypedTerm Version -> TypedTerm HostOverride
+ Hydra.Dsl.Build.Format: inputDigest :: TypedTerm Int -> TypedTerm Int -> TypedTerm (Maybe Sha256Hash) -> TypedTerm (Map PackageName Sha256Hash) -> TypedTerm (Map ModuleName Sha256Hash) -> TypedTerm InputDigest
+ Hydra.Dsl.Build.Format: inputDigestDependencyHashes :: TypedTerm InputDigest -> TypedTerm (Map PackageName Sha256Hash)
+ Hydra.Dsl.Build.Format: inputDigestDigestFormatVersion :: TypedTerm InputDigest -> TypedTerm Int
+ Hydra.Dsl.Build.Format: inputDigestInputDigest :: TypedName InputDigest
+ Hydra.Dsl.Build.Format: inputDigestModuleFormatVersion :: TypedTerm InputDigest -> TypedTerm Int
+ Hydra.Dsl.Build.Format: inputDigestModuleHashes :: TypedTerm InputDigest -> TypedTerm (Map ModuleName Sha256Hash)
+ Hydra.Dsl.Build.Format: inputDigestSelfHash :: TypedTerm InputDigest -> TypedTerm (Maybe Sha256Hash)
+ Hydra.Dsl.Build.Format: inputDigestWithDependencyHashes :: TypedTerm InputDigest -> TypedTerm (Map PackageName Sha256Hash) -> TypedTerm InputDigest
+ Hydra.Dsl.Build.Format: inputDigestWithDigestFormatVersion :: TypedTerm InputDigest -> TypedTerm Int -> TypedTerm InputDigest
+ Hydra.Dsl.Build.Format: inputDigestWithModuleFormatVersion :: TypedTerm InputDigest -> TypedTerm Int -> TypedTerm InputDigest
+ Hydra.Dsl.Build.Format: inputDigestWithModuleHashes :: TypedTerm InputDigest -> TypedTerm (Map ModuleName Sha256Hash) -> TypedTerm InputDigest
+ Hydra.Dsl.Build.Format: inputDigestWithSelfHash :: TypedTerm InputDigest -> TypedTerm (Maybe Sha256Hash) -> TypedTerm InputDigest
+ Hydra.Dsl.Build.Format: languageName :: TypedTerm String -> TypedTerm LanguageName
+ Hydra.Dsl.Build.Format: languageNameLanguageName :: TypedName LanguageName
+ Hydra.Dsl.Build.Format: moduleValidationProfile :: TypedTerm (Maybe DefinitionValidationProfile) -> TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm ModuleValidationProfile
+ Hydra.Dsl.Build.Format: moduleValidationProfileConflictingVariantName :: TypedTerm ModuleValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: moduleValidationProfileDefinitions :: TypedTerm ModuleValidationProfile -> TypedTerm (Maybe DefinitionValidationProfile)
+ Hydra.Dsl.Build.Format: moduleValidationProfileModuleValidationProfile :: TypedName ModuleValidationProfile
+ Hydra.Dsl.Build.Format: moduleValidationProfileNameConvention :: TypedTerm ModuleValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: moduleValidationProfileWithConflictingVariantName :: TypedTerm ModuleValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm ModuleValidationProfile
+ Hydra.Dsl.Build.Format: moduleValidationProfileWithDefinitions :: TypedTerm ModuleValidationProfile -> TypedTerm (Maybe DefinitionValidationProfile) -> TypedTerm ModuleValidationProfile
+ Hydra.Dsl.Build.Format: moduleValidationProfileWithNameConvention :: TypedTerm ModuleValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm ModuleValidationProfile
+ Hydra.Dsl.Build.Format: outputDigest :: TypedTerm Int -> TypedTerm Int -> TypedTerm String -> TypedTerm Generation -> TypedTerm (Maybe Sha256Hash) -> TypedTerm (Map PackageName Sha256Hash) -> TypedTerm (Map String DigestEntry) -> TypedTerm (Map String DigestEntry) -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestDependencyHashes :: TypedTerm OutputDigest -> TypedTerm (Map PackageName Sha256Hash)
+ Hydra.Dsl.Build.Format: outputDigestDigestFormatVersion :: TypedTerm OutputDigest -> TypedTerm Int
+ Hydra.Dsl.Build.Format: outputDigestGeneration :: TypedTerm OutputDigest -> TypedTerm Generation
+ Hydra.Dsl.Build.Format: outputDigestGenerator :: TypedTerm OutputDigest -> TypedTerm String
+ Hydra.Dsl.Build.Format: outputDigestInputs :: TypedTerm OutputDigest -> TypedTerm (Map String DigestEntry)
+ Hydra.Dsl.Build.Format: outputDigestModuleFormatVersion :: TypedTerm OutputDigest -> TypedTerm Int
+ Hydra.Dsl.Build.Format: outputDigestOutputDigest :: TypedName OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestOutputs :: TypedTerm OutputDigest -> TypedTerm (Map String DigestEntry)
+ Hydra.Dsl.Build.Format: outputDigestSelfHash :: TypedTerm OutputDigest -> TypedTerm (Maybe Sha256Hash)
+ Hydra.Dsl.Build.Format: outputDigestWithDependencyHashes :: TypedTerm OutputDigest -> TypedTerm (Map PackageName Sha256Hash) -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithDigestFormatVersion :: TypedTerm OutputDigest -> TypedTerm Int -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithGeneration :: TypedTerm OutputDigest -> TypedTerm Generation -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithGenerator :: TypedTerm OutputDigest -> TypedTerm String -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithInputs :: TypedTerm OutputDigest -> TypedTerm (Map String DigestEntry) -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithModuleFormatVersion :: TypedTerm OutputDigest -> TypedTerm Int -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithOutputs :: TypedTerm OutputDigest -> TypedTerm (Map String DigestEntry) -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: outputDigestWithSelfHash :: TypedTerm OutputDigest -> TypedTerm (Maybe Sha256Hash) -> TypedTerm OutputDigest
+ Hydra.Dsl.Build.Format: packageDescriptor :: TypedTerm Int -> TypedTerm PackageName -> TypedTerm String -> TypedTerm LanguageName -> TypedTerm (Maybe [LanguageName]) -> TypedTerm [PackageName] -> TypedTerm (Maybe PackageValidationConfiguration) -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorDependencies :: TypedTerm PackageDescriptor -> TypedTerm [PackageName]
+ Hydra.Dsl.Build.Format: packageDescriptorDescription :: TypedTerm PackageDescriptor -> TypedTerm String
+ Hydra.Dsl.Build.Format: packageDescriptorName :: TypedTerm PackageDescriptor -> TypedTerm PackageName
+ Hydra.Dsl.Build.Format: packageDescriptorPackageDescriptor :: TypedName PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorPackageFormatVersion :: TypedTerm PackageDescriptor -> TypedTerm Int
+ Hydra.Dsl.Build.Format: packageDescriptorSourceLanguage :: TypedTerm PackageDescriptor -> TypedTerm LanguageName
+ Hydra.Dsl.Build.Format: packageDescriptorTargetLanguages :: TypedTerm PackageDescriptor -> TypedTerm (Maybe [LanguageName])
+ Hydra.Dsl.Build.Format: packageDescriptorValidation :: TypedTerm PackageDescriptor -> TypedTerm (Maybe PackageValidationConfiguration)
+ Hydra.Dsl.Build.Format: packageDescriptorWithDependencies :: TypedTerm PackageDescriptor -> TypedTerm [PackageName] -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorWithDescription :: TypedTerm PackageDescriptor -> TypedTerm String -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorWithName :: TypedTerm PackageDescriptor -> TypedTerm PackageName -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorWithPackageFormatVersion :: TypedTerm PackageDescriptor -> TypedTerm Int -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorWithSourceLanguage :: TypedTerm PackageDescriptor -> TypedTerm LanguageName -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorWithTargetLanguages :: TypedTerm PackageDescriptor -> TypedTerm (Maybe [LanguageName]) -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageDescriptorWithValidation :: TypedTerm PackageDescriptor -> TypedTerm (Maybe PackageValidationConfiguration) -> TypedTerm PackageDescriptor
+ Hydra.Dsl.Build.Format: packageManifest :: TypedTerm Int -> TypedTerm Int -> TypedTerm PackageName -> TypedTerm [ModuleName] -> TypedTerm [ModuleName] -> TypedTerm [ModuleName] -> TypedTerm [ModuleName] -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestMainDslModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName]
+ Hydra.Dsl.Build.Format: packageManifestMainEncodingModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName]
+ Hydra.Dsl.Build.Format: packageManifestMainModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName]
+ Hydra.Dsl.Build.Format: packageManifestManifestFormatVersion :: TypedTerm PackageManifest -> TypedTerm Int
+ Hydra.Dsl.Build.Format: packageManifestModuleFormatVersion :: TypedTerm PackageManifest -> TypedTerm Int
+ Hydra.Dsl.Build.Format: packageManifestPackage :: TypedTerm PackageManifest -> TypedTerm PackageName
+ Hydra.Dsl.Build.Format: packageManifestPackageManifest :: TypedName PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestTestModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName]
+ Hydra.Dsl.Build.Format: packageManifestWithMainDslModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName] -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestWithMainEncodingModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName] -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestWithMainModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName] -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestWithManifestFormatVersion :: TypedTerm PackageManifest -> TypedTerm Int -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestWithModuleFormatVersion :: TypedTerm PackageManifest -> TypedTerm Int -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestWithPackage :: TypedTerm PackageManifest -> TypedTerm PackageName -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageManifestWithTestModules :: TypedTerm PackageManifest -> TypedTerm [ModuleName] -> TypedTerm PackageManifest
+ Hydra.Dsl.Build.Format: packageValidationConfiguration :: TypedTerm (Maybe PackageValidationProfile) -> TypedTerm (Maybe ModuleValidationProfile) -> TypedTerm (Maybe TypeValidationProfile) -> TypedTerm (Maybe TermValidationProfile) -> TypedTerm PackageValidationConfiguration
+ Hydra.Dsl.Build.Format: packageValidationConfigurationModule :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe ModuleValidationProfile)
+ Hydra.Dsl.Build.Format: packageValidationConfigurationPackage :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe PackageValidationProfile)
+ Hydra.Dsl.Build.Format: packageValidationConfigurationPackageValidationConfiguration :: TypedName PackageValidationConfiguration
+ Hydra.Dsl.Build.Format: packageValidationConfigurationTerm :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe TermValidationProfile)
+ Hydra.Dsl.Build.Format: packageValidationConfigurationType :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe TypeValidationProfile)
+ Hydra.Dsl.Build.Format: packageValidationConfigurationWithModule :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe ModuleValidationProfile) -> TypedTerm PackageValidationConfiguration
+ Hydra.Dsl.Build.Format: packageValidationConfigurationWithPackage :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe PackageValidationProfile) -> TypedTerm PackageValidationConfiguration
+ Hydra.Dsl.Build.Format: packageValidationConfigurationWithTerm :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe TermValidationProfile) -> TypedTerm PackageValidationConfiguration
+ Hydra.Dsl.Build.Format: packageValidationConfigurationWithType :: TypedTerm PackageValidationConfiguration -> TypedTerm (Maybe TypeValidationProfile) -> TypedTerm PackageValidationConfiguration
+ Hydra.Dsl.Build.Format: packageValidationProfile :: TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm PackageValidationProfile
+ Hydra.Dsl.Build.Format: packageValidationProfileConflictingModuleName :: TypedTerm PackageValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: packageValidationProfileDuplicateModuleName :: TypedTerm PackageValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: packageValidationProfileNameConvention :: TypedTerm PackageValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: packageValidationProfilePackageValidationProfile :: TypedName PackageValidationProfile
+ Hydra.Dsl.Build.Format: packageValidationProfileWithConflictingModuleName :: TypedTerm PackageValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm PackageValidationProfile
+ Hydra.Dsl.Build.Format: packageValidationProfileWithDuplicateModuleName :: TypedTerm PackageValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm PackageValidationProfile
+ Hydra.Dsl.Build.Format: packageValidationProfileWithNameConvention :: TypedTerm PackageValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm PackageValidationProfile
+ Hydra.Dsl.Build.Format: repositoryDescriptor :: TypedTerm Version -> TypedTerm Version -> TypedTerm (Map LanguageName HostOverride) -> TypedTerm String -> TypedTerm String -> TypedTerm String -> TypedTerm String -> TypedTerm [PackageName] -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorAuthor :: TypedTerm RepositoryDescriptor -> TypedTerm String
+ Hydra.Dsl.Build.Format: repositoryDescriptorCurrentVersion :: TypedTerm RepositoryDescriptor -> TypedTerm Version
+ Hydra.Dsl.Build.Format: repositoryDescriptorGroup :: TypedTerm RepositoryDescriptor -> TypedTerm String
+ Hydra.Dsl.Build.Format: repositoryDescriptorHostOverrides :: TypedTerm RepositoryDescriptor -> TypedTerm (Map LanguageName HostOverride)
+ Hydra.Dsl.Build.Format: repositoryDescriptorHostVersion :: TypedTerm RepositoryDescriptor -> TypedTerm Version
+ Hydra.Dsl.Build.Format: repositoryDescriptorLicense :: TypedTerm RepositoryDescriptor -> TypedTerm String
+ Hydra.Dsl.Build.Format: repositoryDescriptorPackages :: TypedTerm RepositoryDescriptor -> TypedTerm [PackageName]
+ Hydra.Dsl.Build.Format: repositoryDescriptorRepositoryDescriptor :: TypedName RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorUrl :: TypedTerm RepositoryDescriptor -> TypedTerm String
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithAuthor :: TypedTerm RepositoryDescriptor -> TypedTerm String -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithCurrentVersion :: TypedTerm RepositoryDescriptor -> TypedTerm Version -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithGroup :: TypedTerm RepositoryDescriptor -> TypedTerm String -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithHostOverrides :: TypedTerm RepositoryDescriptor -> TypedTerm (Map LanguageName HostOverride) -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithHostVersion :: TypedTerm RepositoryDescriptor -> TypedTerm Version -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithLicense :: TypedTerm RepositoryDescriptor -> TypedTerm String -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithPackages :: TypedTerm RepositoryDescriptor -> TypedTerm [PackageName] -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: repositoryDescriptorWithUrl :: TypedTerm RepositoryDescriptor -> TypedTerm String -> TypedTerm RepositoryDescriptor
+ Hydra.Dsl.Build.Format: severityError :: TypedTerm Severity
+ Hydra.Dsl.Build.Format: severitySeverity :: TypedName Severity
+ Hydra.Dsl.Build.Format: severityWarning :: TypedTerm Severity
+ Hydra.Dsl.Build.Format: sha256Hash :: TypedTerm String -> TypedTerm Sha256Hash
+ Hydra.Dsl.Build.Format: sha256HashSha256Hash :: TypedName Sha256Hash
+ Hydra.Dsl.Build.Format: termValidationProfile :: TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm TermValidationProfile
+ Hydra.Dsl.Build.Format: termValidationProfileDuplicateBinding :: TypedTerm TermValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: termValidationProfileEmptyTermAnnotation :: TypedTerm TermValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: termValidationProfileTermValidationProfile :: TypedName TermValidationProfile
+ Hydra.Dsl.Build.Format: termValidationProfileUndefinedVariable :: TypedTerm TermValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: termValidationProfileWithDuplicateBinding :: TypedTerm TermValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm TermValidationProfile
+ Hydra.Dsl.Build.Format: termValidationProfileWithEmptyTermAnnotation :: TypedTerm TermValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm TermValidationProfile
+ Hydra.Dsl.Build.Format: termValidationProfileWithUndefinedVariable :: TypedTerm TermValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm TermValidationProfile
+ Hydra.Dsl.Build.Format: typeValidationProfile :: TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm (Maybe Severity) -> TypedTerm TypeValidationProfile
+ Hydra.Dsl.Build.Format: typeValidationProfileDuplicateField :: TypedTerm TypeValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: typeValidationProfileEmptyAnnotation :: TypedTerm TypeValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: typeValidationProfileSingleVariantUnion :: TypedTerm TypeValidationProfile -> TypedTerm (Maybe Severity)
+ Hydra.Dsl.Build.Format: typeValidationProfileTypeValidationProfile :: TypedName TypeValidationProfile
+ Hydra.Dsl.Build.Format: typeValidationProfileWithDuplicateField :: TypedTerm TypeValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm TypeValidationProfile
+ Hydra.Dsl.Build.Format: typeValidationProfileWithEmptyAnnotation :: TypedTerm TypeValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm TypeValidationProfile
+ Hydra.Dsl.Build.Format: typeValidationProfileWithSingleVariantUnion :: TypedTerm TypeValidationProfile -> TypedTerm (Maybe Severity) -> TypedTerm TypeValidationProfile
+ Hydra.Dsl.Build.Format: unLanguageName :: TypedTerm LanguageName -> TypedTerm String
+ Hydra.Dsl.Build.Format: unSha256Hash :: TypedTerm Sha256Hash -> TypedTerm String
+ Hydra.Encode.Build.Format: definitionNameConventionProfile :: DefinitionNameConventionProfile -> Term
+ Hydra.Encode.Build.Format: definitionValidationProfile :: DefinitionValidationProfile -> Term
+ Hydra.Encode.Build.Format: digestEntry :: DigestEntry -> Term
+ Hydra.Encode.Build.Format: digestKind :: DigestKind -> Term
+ Hydra.Encode.Build.Format: documentationProfile :: DocumentationProfile -> Term
+ Hydra.Encode.Build.Format: generation :: Generation -> Term
+ Hydra.Encode.Build.Format: generationMode :: GenerationMode -> Term
+ Hydra.Encode.Build.Format: hostOverride :: HostOverride -> Term
+ Hydra.Encode.Build.Format: inputDigest :: InputDigest -> Term
+ Hydra.Encode.Build.Format: languageName :: LanguageName -> Term
+ Hydra.Encode.Build.Format: moduleValidationProfile :: ModuleValidationProfile -> Term
+ Hydra.Encode.Build.Format: outputDigest :: OutputDigest -> Term
+ Hydra.Encode.Build.Format: packageDescriptor :: PackageDescriptor -> Term
+ Hydra.Encode.Build.Format: packageManifest :: PackageManifest -> Term
+ Hydra.Encode.Build.Format: packageValidationConfiguration :: PackageValidationConfiguration -> Term
+ Hydra.Encode.Build.Format: packageValidationProfile :: PackageValidationProfile -> Term
+ Hydra.Encode.Build.Format: repositoryDescriptor :: RepositoryDescriptor -> Term
+ Hydra.Encode.Build.Format: severity :: Severity -> Term
+ Hydra.Encode.Build.Format: sha256Hash :: Sha256Hash -> Term
+ Hydra.Encode.Build.Format: termValidationProfile :: TermValidationProfile -> Term
+ Hydra.Encode.Build.Format: typeValidationProfile :: TypeValidationProfile -> Term

Files

hydra-build.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           hydra-build-version:        0.17.2+version:        0.17.3 synopsis:       Hydra's build system, promoted into Hydra 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". This package is Hydra's build system, promoted into Hydra itself: the manifest-derived module-to-package router, kernel/host reconciliation utilities, and pure module-list helpers, expressed as Hydra modules and generated into every self-hosting dialect. It builds on hydra-kernel. category:       Data@@ -27,9 +27,15 @@  library   exposed-modules:+      Hydra.Build.Format+      Hydra.Build.Libraries+      Hydra.Build.ManifestWriter       Hydra.Build.Modules       Hydra.Build.Reconcile       Hydra.Build.Routing+      Hydra.Decode.Build.Format+      Hydra.Dsl.Build.Format+      Hydra.Encode.Build.Format   other-modules:       Paths_hydra_build   hs-source-dirs:@@ -37,6 +43,6 @@   build-depends:       base >=4.19.0 && <4.22     , containers >=0.6.7 && <0.8-    , hydra-kernel ==0.17.2+    , hydra-kernel ==0.17.3     , scientific >=0.3.7 && <0.4   default-language: Haskell2010
+ src/main/haskell/Hydra/Build/Format.hs view
@@ -0,0 +1,470 @@+-- Note: this is an automatically generated file. Do not edit.++-- | Type-level specifications of the JSON formats used by Hydra's build system: the repository descriptor (hydra.json), per-package descriptors (package.json), per-source-set input and output digests (digest.json), generated-source manifests (manifest.json), and per-package validation configuration. Each on-disk file is the canonical JSON encoding of the corresponding type. Overlay build configuration (overlay/<lang>/<pkg>/build.json) is specified separately, by hydra.gradle and hydra.python.pyproject. See https://github.com/CategoricalData/hydra/issues/512++module Hydra.Build.Format where++import qualified Hydra.Core as Core+import qualified Hydra.Packaging as Packaging+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)+import qualified Data.Scientific as Sci+import qualified Data.Map as M++-- | Configuration for the definition-name-convention check+data DefinitionNameConventionProfile =+  DefinitionNameConventionProfile {+    -- | How a finding of this check is treated+    definitionNameConventionProfileSeverity :: Severity,+    -- | Whether underscores are permitted in definition names+    definitionNameConventionProfileAllowUnderscores :: Bool}+  deriving (Eq, Ord, Read, Show)++_DefinitionNameConventionProfile = Core.Name "hydra.build.format.DefinitionNameConventionProfile"++_DefinitionNameConventionProfile_severity = Core.Name "severity"++_DefinitionNameConventionProfile_allowUnderscores = Core.Name "allowUnderscores"++-- | Validation rules applying to individual definitions within a module. Absent fields mean the corresponding check is not configured.+data DefinitionValidationProfile =+  DefinitionValidationProfile {+    -- | Configuration for the definition-documentation check+    definitionValidationProfileHasDescription :: (Maybe DocumentationProfile),+    -- | Whether definitions must appear in alphabetical order+    definitionValidationProfileOrdering :: (Maybe Severity),+    -- | Configuration for the definition-name-convention check+    definitionValidationProfileNameConvention :: (Maybe DefinitionNameConventionProfile),+    -- | Whether a definition name may duplicate part of its module name+    definitionValidationProfileNotInModuleName :: (Maybe Severity),+    -- | Whether duplicate definition names within a module are reported+    definitionValidationProfileDuplicateName :: (Maybe Severity)}+  deriving (Eq, Ord, Read, Show)++_DefinitionValidationProfile = Core.Name "hydra.build.format.DefinitionValidationProfile"++_DefinitionValidationProfile_hasDescription = Core.Name "hasDescription"++_DefinitionValidationProfile_ordering = Core.Name "ordering"++_DefinitionValidationProfile_nameConvention = Core.Name "nameConvention"++_DefinitionValidationProfile_notInModuleName = Core.Name "notInModuleName"++_DefinitionValidationProfile_duplicateName = Core.Name "duplicateName"++-- | One file's classification and content hash within a digest+data DigestEntry =+  DigestEntry {+    -- | The kind of artifact recorded+    digestEntryKind :: DigestKind,+    -- | The SHA-256 hash of the file content+    digestEntryHash :: Sha256Hash}+  deriving (Eq, Ord, Read, Show)++_DigestEntry = Core.Name "hydra.build.format.DigestEntry"++_DigestEntry_kind = Core.Name "kind"++_DigestEntry_hash = Core.Name "hash"++-- | The kind of artifact recorded in a digest entry. Lets a single digest mix typed entries without losing the discriminator.+data DigestKind =+  -- | A DSL source file under a package's src/main source tree+  DigestKindDslSource |+  -- | A JSON file under dist/json/+  DigestKindJsonFile |+  -- | A generated source file under dist/<lang>/+  DigestKindTargetFile |+  -- | A hand-written runtime support file copied into the distribution+  DigestKindRuntimeFile |+  -- | Anything else (escape hatch; unknown kinds round-trip as this variant)+  DigestKindOther+  deriving (Eq, Ord, Read, Show)++_DigestKind = Core.Name "hydra.build.format.DigestKind"++_DigestKind_dslSource = Core.Name "dslSource"++_DigestKind_jsonFile = Core.Name "jsonFile"++_DigestKind_targetFile = Core.Name "targetFile"++_DigestKind_runtimeFile = Core.Name "runtimeFile"++_DigestKind_other = Core.Name "other"++-- | Configuration for the definition-documentation check+data DocumentationProfile =+  DocumentationProfile {+    -- | How a finding of this check is treated+    documentationProfileSeverity :: Severity,+    -- | Whether deprecated definitions are exempt from the documentation requirement+    documentationProfileExemptDeprecated :: Bool}+  deriving (Eq, Ord, Read, Show)++_DocumentationProfile = Core.Name "hydra.build.format.DocumentationProfile"++_DocumentationProfile_severity = Core.Name "severity"++_DocumentationProfile_exemptDeprecated = Core.Name "exemptDeprecated"++-- | A structured generation-provenance record for generated artifacts, separating gating identity from informational provenance. Only generatorId gates cache freshness; it is host-independent by design, since self-hosting requires every host to produce byte-identical output. All other fields are informational and must not gate. Invariant: a shim-mode generation has a revision (a shim has no release version, so the working-tree revision is its only precise identity).+data Generation =+  Generation {+    -- | The gating cache key identifying the generator that produced the outputs+    generationGeneratorId :: String,+    -- | Whether the artifact was produced by a published host or a locally-built migration shim+    generationMode :: GenerationMode,+    -- | The producing host language (informational)+    generationHost :: LanguageName,+    -- | The release version of the producing host (informational; omitted for shim builds)+    generationHydraVersion :: (Maybe Packaging.Version),+    -- | The producing worktree's revision, as <short-sha> with "-dirty" appended when the tree has uncommitted changes (informational; required for shim builds)+    generationRevision :: (Maybe String),+    -- | The ISO-8601 UTC time of generation (informational; non-deterministic across byte-identical rebuilds)+    generationTimestamp :: (Maybe String)}+  deriving (Eq, Ord, Read, Show)++_Generation = Core.Name "hydra.build.format.Generation"++_Generation_generatorId = Core.Name "generatorId"++_Generation_mode = Core.Name "mode"++_Generation_host = Core.Name "host"++_Generation_hydraVersion = Core.Name "hydraVersion"++_Generation_revision = Core.Name "revision"++_Generation_timestamp = Core.Name "timestamp"++-- | The provenance class of a generated artifact+data GenerationMode =+  -- | Produced by a published, versioned host+  GenerationModePublished |+  -- | Produced by a locally-built migration shim, ahead of any published host+  GenerationModeShim+  deriving (Eq, Ord, Read, Show)++_GenerationMode = Core.Name "hydra.build.format.GenerationMode"++_GenerationMode_published = Core.Name "published"++_GenerationMode_shim = Core.Name "shim"++-- | An override of the default published-host consumption for one host language: either force a local from-source build, or pin a specific published version.+data HostOverride =+  -- | Build and consume the host locally from source rather than from the package registry+  HostOverrideLocal |+  -- | Pin the host to a specific published version+  HostOverrideVersion Packaging.Version+  deriving (Eq, Ord, Read, Show)++_HostOverride = Core.Name "hydra.build.format.HostOverride"++_HostOverride_local = Core.Name "local"++_HostOverride_version = Core.Name "version"++-- | A per-package, per-source-set input digest (dist/json/<pkg>/build/<set>/digest.json): Merkle-style hashes of the package's DSL sources, recorded when the package's JSON is written and consumed by downstream freshness checks. The selfHash summarizes the package's own module hashes; dependencyHashes captures the selfHash of each declared dependency package at write time, giving transitive invalidation.+data InputDigest =+  InputDigest {+    -- | The version of this digest file's own schema+    inputDigestDigestFormatVersion :: Int,+    -- | The version of the JSON encoding of the sibling module files+    inputDigestModuleFormatVersion :: Int,+    -- | A deterministic hash over all of the package's per-module hashes (absent in legacy digests)+    inputDigestSelfHash :: (Maybe Sha256Hash),+    -- | For each declared dependency package, that package's selfHash as recorded at write time+    inputDigestDependencyHashes :: (M.Map Packaging.PackageName Sha256Hash),+    -- | The hash of each module's source, keyed by module name+    inputDigestModuleHashes :: (M.Map Packaging.ModuleName Sha256Hash)}+  deriving (Eq, Ord, Read, Show)++_InputDigest = Core.Name "hydra.build.format.InputDigest"++_InputDigest_digestFormatVersion = Core.Name "digestFormatVersion"++_InputDigest_moduleFormatVersion = Core.Name "moduleFormatVersion"++_InputDigest_selfHash = Core.Name "selfHash"++_InputDigest_dependencyHashes = Core.Name "dependencyHashes"++_InputDigest_moduleHashes = Core.Name "moduleHashes"++-- | The name of a source or target language in Hydra's build system, e.g. "haskell", "java", or "python"+newtype LanguageName =+  LanguageName {+    unLanguageName :: String}+  deriving (Eq, Ord, Read, Show)++_LanguageName = Core.Name "hydra.build.format.LanguageName"++-- | Validation rules applying to a module as a whole. Absent fields mean the corresponding check is not configured.+data ModuleValidationProfile =+  ModuleValidationProfile {+    -- | Validation rules applying to the module's individual definitions+    moduleValidationProfileDefinitions :: (Maybe DefinitionValidationProfile),+    -- | Whether module names must follow naming conventions+    moduleValidationProfileNameConvention :: (Maybe Severity),+    -- | Whether union variant names conflicting across the module are reported+    moduleValidationProfileConflictingVariantName :: (Maybe Severity)}+  deriving (Eq, Ord, Read, Show)++_ModuleValidationProfile = Core.Name "hydra.build.format.ModuleValidationProfile"++_ModuleValidationProfile_definitions = Core.Name "definitions"++_ModuleValidationProfile_nameConvention = Core.Name "nameConvention"++_ModuleValidationProfile_conflictingVariantName = Core.Name "conflictingVariantName"++-- | A per-package, per-source-set output digest for one target language (dist/<lang>/<pkg>/build/<set>/digest.json), recording every input file whose content determines the generated output, every output file the generation step is responsible for, and the identity of the generator. A generation step is fresh exactly when all input hashes, all output hashes, the generator identity, and the recorded package and dependency hashes match.+data OutputDigest =+  OutputDigest {+    -- | The version of this digest file's own schema+    outputDigestDigestFormatVersion :: Int,+    -- | The version of the JSON encoding of the module files this digest governs+    outputDigestModuleFormatVersion :: Int,+    -- | The flat gating generator identity (a compatibility duplicate of generation.generatorId)+    outputDigestGenerator :: String,+    -- | The structured generation-provenance record+    outputDigestGeneration :: Generation,+    -- | The input package's selfHash as recorded at refresh time (absent in legacy digests)+    outputDigestSelfHash :: (Maybe Sha256Hash),+    -- | For each declared dependency package, that package's selfHash as recorded at refresh time+    outputDigestDependencyHashes :: (M.Map Packaging.PackageName Sha256Hash),+    -- | Every input file's kind and hash, keyed by worktree-relative path+    outputDigestInputs :: (M.Map String DigestEntry),+    -- | Every output file's kind and hash, keyed by path relative to the output directory+    outputDigestOutputs :: (M.Map String DigestEntry)}+  deriving (Eq, Ord, Read, Show)++_OutputDigest = Core.Name "hydra.build.format.OutputDigest"++_OutputDigest_digestFormatVersion = Core.Name "digestFormatVersion"++_OutputDigest_moduleFormatVersion = Core.Name "moduleFormatVersion"++_OutputDigest_generator = Core.Name "generator"++_OutputDigest_generation = Core.Name "generation"++_OutputDigest_selfHash = Core.Name "selfHash"++_OutputDigest_dependencyHashes = Core.Name "dependencyHashes"++_OutputDigest_inputs = Core.Name "inputs"++_OutputDigest_outputs = Core.Name "outputs"++-- | A package descriptor (packages/<pkg>/package.json): the source-of-truth declaration of a Hydra package's name, source language, dependencies, and optional per-package configuration.+data PackageDescriptor =+  PackageDescriptor {+    -- | The version of this descriptor file's schema+    packageDescriptorPackageFormatVersion :: Int,+    -- | The unique name of the package, e.g. "hydra-kernel"+    packageDescriptorName :: Packaging.PackageName,+    -- | A concise human-readable summary of the package+    packageDescriptorDescription :: String,+    -- | The language in which the package's DSL sources are authored+    packageDescriptorSourceLanguage :: LanguageName,+    -- | The target languages for which distributions of this package are generated. When absent, the default target set applies.+    packageDescriptorTargetLanguages :: (Maybe [LanguageName]),+    -- | The names of the packages this package depends upon+    packageDescriptorDependencies :: [Packaging.PackageName],+    -- | Optional per-package validation configuration. When absent, the validation engine's defaults apply.+    packageDescriptorValidation :: (Maybe PackageValidationConfiguration)}+  deriving (Eq, Ord, Read, Show)++_PackageDescriptor = Core.Name "hydra.build.format.PackageDescriptor"++_PackageDescriptor_packageFormatVersion = Core.Name "packageFormatVersion"++_PackageDescriptor_name = Core.Name "name"++_PackageDescriptor_description = Core.Name "description"++_PackageDescriptor_sourceLanguage = Core.Name "sourceLanguage"++_PackageDescriptor_targetLanguages = Core.Name "targetLanguages"++_PackageDescriptor_dependencies = Core.Name "dependencies"++_PackageDescriptor_validation = Core.Name "validation"++-- | A generated-source manifest (dist/<lang>/<pkg>/src/<set>/<lang>/manifest.json): the list of modules generated into a distribution package, partitioned by role.+data PackageManifest =+  PackageManifest {+    -- | The version of this manifest file's schema+    packageManifestManifestFormatVersion :: Int,+    -- | The version of the JSON encoding of the sibling module files+    packageManifestModuleFormatVersion :: Int,+    -- | The name of the package this manifest describes+    packageManifestPackage :: Packaging.PackageName,+    -- | All main-source-set modules in the package+    packageManifestMainModules :: [Packaging.ModuleName],+    -- | All test-source-set modules in the package+    packageManifestTestModules :: [Packaging.ModuleName],+    -- | The subset of main modules which define type schemas and give rise to generated DSL wrapper modules+    packageManifestMainDslModules :: [Packaging.ModuleName],+    -- | The subset of main modules for which encoding and decoding modules are generated+    packageManifestMainEncodingModules :: [Packaging.ModuleName]}+  deriving (Eq, Ord, Read, Show)++_PackageManifest = Core.Name "hydra.build.format.PackageManifest"++_PackageManifest_manifestFormatVersion = Core.Name "manifestFormatVersion"++_PackageManifest_moduleFormatVersion = Core.Name "moduleFormatVersion"++_PackageManifest_package = Core.Name "package"++_PackageManifest_mainModules = Core.Name "mainModules"++_PackageManifest_testModules = Core.Name "testModules"++_PackageManifest_mainDslModules = Core.Name "mainDslModules"++_PackageManifest_mainEncodingModules = Core.Name "mainEncodingModules"++-- | The full, opt-in validation configuration for a package, as declared in its package descriptor. Every field cascades optional; an absent field means the corresponding rule family is not configured and the validation engine's defaults apply.+data PackageValidationConfiguration =+  PackageValidationConfiguration {+    -- | Validation rules applying to the package as a whole+    packageValidationConfigurationPackage :: (Maybe PackageValidationProfile),+    -- | Validation rules applying to each module+    packageValidationConfigurationModule :: (Maybe ModuleValidationProfile),+    -- | Validation rules applying to type-definition bodies+    packageValidationConfigurationType :: (Maybe TypeValidationProfile),+    -- | Validation rules applying to term-definition bodies+    packageValidationConfigurationTerm :: (Maybe TermValidationProfile)}+  deriving (Eq, Ord, Read, Show)++_PackageValidationConfiguration = Core.Name "hydra.build.format.PackageValidationConfiguration"++_PackageValidationConfiguration_package = Core.Name "package"++_PackageValidationConfiguration_module = Core.Name "module"++_PackageValidationConfiguration_type = Core.Name "type"++_PackageValidationConfiguration_term = Core.Name "term"++-- | Validation rules applying to a package as a whole. Absent fields mean the corresponding check is not configured.+data PackageValidationProfile =+  PackageValidationProfile {+    -- | Whether module names conflicting across the package are reported+    packageValidationProfileConflictingModuleName :: (Maybe Severity),+    -- | Whether duplicate module names within the package are reported+    packageValidationProfileDuplicateModuleName :: (Maybe Severity),+    -- | Whether package names must follow naming conventions+    packageValidationProfileNameConvention :: (Maybe Severity)}+  deriving (Eq, Ord, Read, Show)++_PackageValidationProfile = Core.Name "hydra.build.format.PackageValidationProfile"++_PackageValidationProfile_conflictingModuleName = Core.Name "conflictingModuleName"++_PackageValidationProfile_duplicateModuleName = Core.Name "duplicateModuleName"++_PackageValidationProfile_nameConvention = Core.Name "nameConvention"++-- | The repository descriptor (hydra.json at the repository root): release and host versions, host consumption overrides, publication metadata, and the list of source packages.+data RepositoryDescriptor =+  RepositoryDescriptor {+    -- | The version currently under development+    repositoryDescriptorCurrentVersion :: Packaging.Version,+    -- | The published host version consumed by default when generating code+    repositoryDescriptorHostVersion :: Packaging.Version,+    -- | Per-host-language overrides of the default published-host consumption+    repositoryDescriptorHostOverrides :: (M.Map LanguageName HostOverride),+    -- | The group identifier under which artifacts are published, e.g. a Maven group id+    repositoryDescriptorGroup :: String,+    -- | The author attribution for published artifacts+    repositoryDescriptorAuthor :: String,+    -- | The URL of the project+    repositoryDescriptorUrl :: String,+    -- | The license identifier for published artifacts, e.g. "Apache-2.0"+    repositoryDescriptorLicense :: String,+    -- | The names of the repository's source packages+    repositoryDescriptorPackages :: [Packaging.PackageName]}+  deriving (Eq, Ord, Read, Show)++_RepositoryDescriptor = Core.Name "hydra.build.format.RepositoryDescriptor"++_RepositoryDescriptor_currentVersion = Core.Name "currentVersion"++_RepositoryDescriptor_hostVersion = Core.Name "hostVersion"++_RepositoryDescriptor_hostOverrides = Core.Name "hostOverrides"++_RepositoryDescriptor_group = Core.Name "group"++_RepositoryDescriptor_author = Core.Name "author"++_RepositoryDescriptor_url = Core.Name "url"++_RepositoryDescriptor_license = Core.Name "license"++_RepositoryDescriptor_packages = Core.Name "packages"++-- | How a validation finding is treated+data Severity =+  SeverityError |+  SeverityWarning+  deriving (Eq, Ord, Read, Show)++_Severity = Core.Name "hydra.build.format.Severity"++_Severity_error = Core.Name "error"++_Severity_warning = Core.Name "warning"++-- | A SHA-256 hash in lowercase hexadecimal notation+newtype Sha256Hash =+  Sha256Hash {+    unSha256Hash :: String}+  deriving (Eq, Ord, Read, Show)++_Sha256Hash = Core.Name "hydra.build.format.Sha256Hash"++-- | Validation rules applying to term-definition bodies. Absent fields mean the corresponding check is not configured.+data TermValidationProfile =+  TermValidationProfile {+    -- | Whether duplicate let bindings are reported+    termValidationProfileDuplicateBinding :: (Maybe Severity),+    -- | Whether empty term annotations are reported+    termValidationProfileEmptyTermAnnotation :: (Maybe Severity),+    -- | Whether references to undefined variables are reported+    termValidationProfileUndefinedVariable :: (Maybe Severity)}+  deriving (Eq, Ord, Read, Show)++_TermValidationProfile = Core.Name "hydra.build.format.TermValidationProfile"++_TermValidationProfile_duplicateBinding = Core.Name "duplicateBinding"++_TermValidationProfile_emptyTermAnnotation = Core.Name "emptyTermAnnotation"++_TermValidationProfile_undefinedVariable = Core.Name "undefinedVariable"++-- | Validation rules applying to type-definition bodies. Absent fields mean the corresponding check is not configured.+data TypeValidationProfile =+  TypeValidationProfile {+    -- | Whether empty type annotations are reported+    typeValidationProfileEmptyAnnotation :: (Maybe Severity),+    -- | Whether duplicate field names within a record or union are reported+    typeValidationProfileDuplicateField :: (Maybe Severity),+    -- | Whether single-variant unions are reported+    typeValidationProfileSingleVariantUnion :: (Maybe Severity)}+  deriving (Eq, Ord, Read, Show)++_TypeValidationProfile = Core.Name "hydra.build.format.TypeValidationProfile"++_TypeValidationProfile_emptyAnnotation = Core.Name "emptyAnnotation"++_TypeValidationProfile_duplicateField = Core.Name "duplicateField"++_TypeValidationProfile_singleVariantUnion = Core.Name "singleVariantUnion"
+ src/main/haskell/Hydra/Build/Libraries.hs view
@@ -0,0 +1,67 @@+-- Note: this is an automatically generated file. Do not edit.++-- | The translingual expected-libraries registry: every hydra.lib.<sub> module name every self-hosting host must register, load, and test. See https://github.com/CategoricalData/hydra/issues/533++module Hydra.Build.Libraries 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.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Packaging as Packaging+import qualified Hydra.Parsing as Parsing+import qualified Hydra.Paths as Paths+import qualified Hydra.Query as Query+import qualified Hydra.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 Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)+import qualified Data.Scientific as Sci++-- | Every hydra.lib.<sub> module name every self-hosting host must register+expectedLibraries :: [String]+expectedLibraries =+    [+      "chars",+      "effects",+      "eithers",+      "equality",+      "files",+      "functions",+      "hashing",+      "lists",+      "literals",+      "logic",+      "maps",+      "math",+      "optionals",+      "ordering",+      "pairs",+      "regex",+      "sets",+      "strings",+      "system",+      "text"]++-- | Whether a bare sub-namespace name is a member of expectedLibraries+isExpectedLibrary :: String -> Bool+isExpectedLibrary sub = Lists.member sub expectedLibraries
+ src/main/haskell/Hydra/Build/ManifestWriter.hs view
@@ -0,0 +1,57 @@+-- Note: this is an automatically generated file. Do not edit.++-- | Per-package manifest.json field-assembly and serialization logic shared by the code-generation drivers++module Hydra.Build.ManifestWriter 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.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Overlay.Haskell.Lib.Literals as Literals+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 Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)+import qualified Data.Scientific as Sci++-- | The manifest.json contents for one package: field assembly + serialization, given the package name and its main/dsl/encoding/test module lists+packageManifestJson :: String -> [Packaging.Module] -> [Packaging.Module] -> [Packaging.Module] -> [Packaging.Module] -> Model.Value+packageManifestJson pkg mainMods dslMods encMods testMods =+    Model.ValueObject [+      ("mainDslModules", (sortedNamespaces dslMods)),+      ("mainEncodingModules", (sortedNamespaces encMods)),+      ("mainModules", (sortedNamespaces mainMods)),+      ("manifestFormatVersion", (Model.ValueNumber (Literals.bigintToDecimal 1))),+      ("package", (Model.ValueString pkg)),+      ("testModules", (sortedNamespaces testMods))]++-- | The sorted namespace strings of a list of modules, as a JSON string array+sortedNamespaces :: [Packaging.Module] -> Model.Value+sortedNamespaces mods =++      let names = Lists.sort (Lists.map (\m -> Packaging.unModuleName (Packaging.moduleName m)) mods)+      in (Model.ValueArray (Lists.map (\n -> Model.ValueString n) names))
src/main/haskell/Hydra/Build/Modules.hs view
@@ -17,10 +17,10 @@ import qualified Hydra.File as File import qualified Hydra.Graph as Graph import qualified Hydra.Json.Model as Model-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic import qualified Hydra.Overlay.Haskell.Lib.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.Packaging as Packaging@@ -45,7 +45,7 @@  -- | Deduplicate a list of strings, preserving first-occurrence order dedupPreservingOrder :: Eq t0 => ([t0] -> [t0])-dedupPreservingOrder xs = Lists.nub xs+dedupPreservingOrder xs = Lists.distinct xs  -- | Keep only modules outside the hydra.* and hydra.json.yaml.* namespaces filterKernelModules :: [Packaging.Module] -> [Packaging.Module]@@ -71,7 +71,7 @@ secondLevelDir rel =        let parts = Strings.splitOn "/" rel-      in (Logic.ifElse (Equality.lt (Lists.length parts) 2) Nothing (Just (Strings.intercalate "/" (Lists.take 2 parts))))+      in (Logic.ifElse (Ordering.lt (Lists.length parts) 2) Nothing (Just (Strings.join "/" (Lists.take 2 parts))))  -- | Strip System F type annotations from every module in a list stripAllTermTypes :: [Packaging.Module] -> [Packaging.Module]
src/main/haskell/Hydra/Build/Reconcile.hs view
@@ -22,6 +22,7 @@ import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings import qualified Hydra.Packaging as Packaging@@ -49,9 +50,9 @@ extensionOf path =        let segs = Strings.splitOn "/" path-      in (Optionals.cases (Lists.maybeLast segs) Nothing (\fileName ->+      in (Optionals.cases (Lists.last segs) Nothing (\fileName ->         let dotParts = Strings.splitOn "." fileName-        in (Logic.ifElse (Equality.gt (Lists.length dotParts) 1) (Lists.maybeLast dotParts) Nothing)))+        in (Logic.ifElse (Ordering.gt (Lists.length dotParts) 1) (Lists.last dotParts) Nothing)))  -- | Whether a relative path lies under at least one prefix, matched segment-wise isUnderAnyPrefix :: S.Set String -> String -> Bool@@ -65,7 +66,7 @@ -- | The keep-set of relative JSON paths (moduleNameToPath(ns) ++ .json) for written modules keepPathsForModules :: [Packaging.ModuleName] -> S.Set String keepPathsForModules mods =-    Sets.fromList (Lists.map (\m -> Strings.cat [+    Sets.fromList (Lists.map (\m -> Strings.concat [       Codegen.moduleNameToPath m,       ".json"]) mods) @@ -93,4 +94,4 @@ secondLevelDir path =        let segs = Strings.splitOn "/" path-      in (Logic.ifElse (Equality.gte (Lists.length segs) 2) (Just (Strings.intercalate "/" (Lists.take 2 segs))) Nothing)+      in (Logic.ifElse (Ordering.gte (Lists.length segs) 2) (Just (Strings.join "/" (Lists.take 2 segs))) Nothing)
src/main/haskell/Hydra/Build/Routing.hs view
@@ -75,13 +75,13 @@ groupByPackageIn rm mods =        let step =-              \acc -> \m -> Eithers.bind acc (\grouped -> Eithers.bind (namespaceToPackageIn rm (Packaging.moduleName m)) (\pkg -> Right (Maps.alter (\mods0 -> Just (Lists.cons m (Optionals.fromOptional [] mods0))) pkg grouped)))+              \acc -> \m -> Eithers.bind acc (\grouped -> Eithers.bind (namespaceToPackageIn rm (Packaging.moduleName m)) (\pkg -> Right (Maps.alter (\mods0 -> Just (Lists.cons m (Optionals.withDefault [] mods0))) pkg grouped)))       in (Eithers.map (\grouped -> Maps.toList grouped) (Lists.foldl step (Right Maps.empty) mods))  -- | Map a module name to the package that owns it, failing loudly if unrouted namespaceToPackageIn :: M.Map Packaging.ModuleName t0 -> Packaging.ModuleName -> Either Errors.Error t0 namespaceToPackageIn rm ns =-    Optionals.cases (Maps.lookup ns rm) (Left (Errors.ErrorOther (Errors.OtherError (Strings.cat [+    Optionals.cases (Maps.lookup ns rm) (Left (Errors.ErrorOther (Errors.OtherError (Strings.concat [       "unrouted module: ",       (Packaging.unModuleName ns),       " is not declared in any package's manifest (RoutingMap). Add it to the owning package's Manifest.mainModules."])))) (\p -> Right p)@@ -92,9 +92,9 @@        let parts = Strings.splitOn "." (Packaging.unModuleName ns)           fallback =-                  Packaging.ModuleName (Strings.cat [+                  Packaging.ModuleName (Strings.concat [                     "hydra.sources.",                     (Packaging.unModuleName ns)])-      in (Optionals.cases (Lists.uncons parts) fallback (\uc -> Packaging.ModuleName (Strings.cat [+      in (Optionals.cases (Lists.uncons parts) fallback (\uc -> Packaging.ModuleName (Strings.concat [         "hydra.sources.",-        (Strings.intercalate "." (Pairs.second uc))])))+        (Strings.join "." (Pairs.second uc))])))
+ src/main/haskell/Hydra/Decode/Build/Format.hs view
@@ -0,0 +1,415 @@+-- Note: this is an automatically generated file. Do not edit.++-- | Term decoders for hydra.build.format++module Hydra.Decode.Build.Format where++import qualified Hydra.Build.Format as Format+import qualified Hydra.Core as Core+import qualified Hydra.Decode.Packaging as Packaging+import qualified Hydra.Errors as Errors+import qualified Hydra.Extract.Core as ExtractCore+import qualified Hydra.Graph as Graph+import qualified Hydra.Lexical as Lexical+import qualified Hydra.Overlay.Haskell.Lib.Eithers as Eithers+import qualified Hydra.Overlay.Haskell.Lib.Maps as Maps+import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Rewriting as Rewriting+import qualified Hydra.Util as Util+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)+import qualified Data.Scientific as Sci++-- | Decoder for hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.DefinitionNameConventionProfile+definitionNameConventionProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "severity" severity fieldMap cx) (\field_severity -> Eithers.bind (ExtractCore.requireField "allowUnderscores" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralBoolean v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected boolean literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_allowUnderscores -> Right (Format.DefinitionNameConventionProfile {+          Format.definitionNameConventionProfileSeverity = field_severity,+          Format.definitionNameConventionProfileAllowUnderscores = field_allowUnderscores}))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.DefinitionNameConventionProfile")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.DefinitionValidationProfile+definitionValidationProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.DefinitionValidationProfile+definitionValidationProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "hasDescription" (ExtractCore.decodeMaybe documentationProfile) fieldMap cx) (\field_hasDescription -> Eithers.bind (ExtractCore.requireField "ordering" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_ordering -> Eithers.bind (ExtractCore.requireField "nameConvention" (ExtractCore.decodeMaybe definitionNameConventionProfile) fieldMap cx) (\field_nameConvention -> Eithers.bind (ExtractCore.requireField "notInModuleName" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_notInModuleName -> Eithers.bind (ExtractCore.requireField "duplicateName" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_duplicateName -> Right (Format.DefinitionValidationProfile {+          Format.definitionValidationProfileHasDescription = field_hasDescription,+          Format.definitionValidationProfileOrdering = field_ordering,+          Format.definitionValidationProfileNameConvention = field_nameConvention,+          Format.definitionValidationProfileNotInModuleName = field_notInModuleName,+          Format.definitionValidationProfileDuplicateName = field_duplicateName})))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.DefinitionValidationProfile")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.DigestEntry+digestEntry :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.DigestEntry+digestEntry cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "kind" digestKind fieldMap cx) (\field_kind -> Eithers.bind (ExtractCore.requireField "hash" sha256Hash fieldMap cx) (\field_hash -> Right (Format.DigestEntry {+          Format.digestEntryKind = field_kind,+          Format.digestEntryHash = field_hash}))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.DigestEntry")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.DigestKind+digestKind :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.DigestKind+digestKind cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermInject v0 ->+        let field = Core.injectionField v0+            fname = Core.fieldName field+            fterm = Core.fieldTerm field+            variantMap =+                    Maps.fromList [+                      (Core.Name "dslSource", (\input -> Eithers.map (\t -> Format.DigestKindDslSource) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "jsonFile", (\input -> Eithers.map (\t -> Format.DigestKindJsonFile) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "targetFile", (\input -> Eithers.map (\t -> Format.DigestKindTargetFile) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "runtimeFile", (\input -> Eithers.map (\t -> Format.DigestKindRuntimeFile) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "other", (\input -> Eithers.map (\t -> Format.DigestKindOther) (ExtractCore.decodeUnit cx input)))]+        in (Optionals.cases (Maps.lookup fname variantMap) (Left (Errors.DecodingError (Strings.concat [+          "no such field ",+          (Core.unName fname),+          " in union"]))) (\f -> f fterm))+      _ -> Left (Errors.DecodingError "expected union")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.DocumentationProfile+documentationProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.DocumentationProfile+documentationProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "severity" severity fieldMap cx) (\field_severity -> Eithers.bind (ExtractCore.requireField "exemptDeprecated" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralBoolean v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected boolean literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_exemptDeprecated -> Right (Format.DocumentationProfile {+          Format.documentationProfileSeverity = field_severity,+          Format.documentationProfileExemptDeprecated = field_exemptDeprecated}))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.DocumentationProfile")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.Generation+generation :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.Generation+generation cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "generatorId" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_generatorId -> Eithers.bind (ExtractCore.requireField "mode" generationMode fieldMap cx) (\field_mode -> Eithers.bind (ExtractCore.requireField "host" languageName fieldMap cx) (\field_host -> Eithers.bind (ExtractCore.requireField "hydraVersion" (ExtractCore.decodeMaybe Packaging.version) fieldMap cx) (\field_hydraVersion -> Eithers.bind (ExtractCore.requireField "revision" (ExtractCore.decodeMaybe (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2))) fieldMap cx) (\field_revision -> Eithers.bind (ExtractCore.requireField "timestamp" (ExtractCore.decodeMaybe (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2))) fieldMap cx) (\field_timestamp -> Right (Format.Generation {+          Format.generationGeneratorId = field_generatorId,+          Format.generationMode = field_mode,+          Format.generationHost = field_host,+          Format.generationHydraVersion = field_hydraVersion,+          Format.generationRevision = field_revision,+          Format.generationTimestamp = field_timestamp}))))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.Generation")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.GenerationMode+generationMode :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.GenerationMode+generationMode cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermInject v0 ->+        let field = Core.injectionField v0+            fname = Core.fieldName field+            fterm = Core.fieldTerm field+            variantMap =+                    Maps.fromList [+                      (Core.Name "published", (\input -> Eithers.map (\t -> Format.GenerationModePublished) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "shim", (\input -> Eithers.map (\t -> Format.GenerationModeShim) (ExtractCore.decodeUnit cx input)))]+        in (Optionals.cases (Maps.lookup fname variantMap) (Left (Errors.DecodingError (Strings.concat [+          "no such field ",+          (Core.unName fname),+          " in union"]))) (\f -> f fterm))+      _ -> Left (Errors.DecodingError "expected union")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.HostOverride+hostOverride :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.HostOverride+hostOverride cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermInject v0 ->+        let field = Core.injectionField v0+            fname = Core.fieldName field+            fterm = Core.fieldTerm field+            variantMap =+                    Maps.fromList [+                      (Core.Name "local", (\input -> Eithers.map (\t -> Format.HostOverrideLocal) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "version", (\input -> Eithers.map (\t -> Format.HostOverrideVersion t) (Packaging.version cx input)))]+        in (Optionals.cases (Maps.lookup fname variantMap) (Left (Errors.DecodingError (Strings.concat [+          "no such field ",+          (Core.unName fname),+          " in union"]))) (\f -> f fterm))+      _ -> Left (Errors.DecodingError "expected union")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.InputDigest+inputDigest :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.InputDigest+inputDigest cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "digestFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_digestFormatVersion -> Eithers.bind (ExtractCore.requireField "moduleFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_moduleFormatVersion -> Eithers.bind (ExtractCore.requireField "selfHash" (ExtractCore.decodeMaybe sha256Hash) fieldMap cx) (\field_selfHash -> Eithers.bind (ExtractCore.requireField "dependencyHashes" (ExtractCore.decodeMap Packaging.packageName sha256Hash) fieldMap cx) (\field_dependencyHashes -> Eithers.bind (ExtractCore.requireField "moduleHashes" (ExtractCore.decodeMap Packaging.moduleName sha256Hash) fieldMap cx) (\field_moduleHashes -> Right (Format.InputDigest {+          Format.inputDigestDigestFormatVersion = field_digestFormatVersion,+          Format.inputDigestModuleFormatVersion = field_moduleFormatVersion,+          Format.inputDigestSelfHash = field_selfHash,+          Format.inputDigestDependencyHashes = field_dependencyHashes,+          Format.inputDigestModuleHashes = field_moduleHashes})))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.InputDigest")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.LanguageName+languageName :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.LanguageName+languageName cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermWrap v0 -> Eithers.map (\b -> Format.LanguageName b) ((\raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+        Core.TermLiteral v1 -> case v1 of+          Core.LiteralString v2 -> Right v2+          _ -> Left (Errors.DecodingError "expected string literal")+        _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx raw2)) (Core.wrappedTermBody v0))+      _ -> Left (Errors.DecodingError "expected wrapped type")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.ModuleValidationProfile+moduleValidationProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.ModuleValidationProfile+moduleValidationProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "definitions" (ExtractCore.decodeMaybe definitionValidationProfile) fieldMap cx) (\field_definitions -> Eithers.bind (ExtractCore.requireField "nameConvention" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_nameConvention -> Eithers.bind (ExtractCore.requireField "conflictingVariantName" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_conflictingVariantName -> Right (Format.ModuleValidationProfile {+          Format.moduleValidationProfileDefinitions = field_definitions,+          Format.moduleValidationProfileNameConvention = field_nameConvention,+          Format.moduleValidationProfileConflictingVariantName = field_conflictingVariantName})))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.ModuleValidationProfile")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.OutputDigest+outputDigest :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.OutputDigest+outputDigest cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "digestFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_digestFormatVersion -> Eithers.bind (ExtractCore.requireField "moduleFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_moduleFormatVersion -> Eithers.bind (ExtractCore.requireField "generator" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_generator -> Eithers.bind (ExtractCore.requireField "generation" generation fieldMap cx) (\field_generation -> Eithers.bind (ExtractCore.requireField "selfHash" (ExtractCore.decodeMaybe sha256Hash) fieldMap cx) (\field_selfHash -> Eithers.bind (ExtractCore.requireField "dependencyHashes" (ExtractCore.decodeMap Packaging.packageName sha256Hash) fieldMap cx) (\field_dependencyHashes -> Eithers.bind (ExtractCore.requireField "inputs" (ExtractCore.decodeMap (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) digestEntry) fieldMap cx) (\field_inputs -> Eithers.bind (ExtractCore.requireField "outputs" (ExtractCore.decodeMap (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) digestEntry) fieldMap cx) (\field_outputs -> Right (Format.OutputDigest {+          Format.outputDigestDigestFormatVersion = field_digestFormatVersion,+          Format.outputDigestModuleFormatVersion = field_moduleFormatVersion,+          Format.outputDigestGenerator = field_generator,+          Format.outputDigestGeneration = field_generation,+          Format.outputDigestSelfHash = field_selfHash,+          Format.outputDigestDependencyHashes = field_dependencyHashes,+          Format.outputDigestInputs = field_inputs,+          Format.outputDigestOutputs = field_outputs}))))))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.OutputDigest")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.PackageDescriptor+packageDescriptor :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.PackageDescriptor+packageDescriptor cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "packageFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_packageFormatVersion -> Eithers.bind (ExtractCore.requireField "name" Packaging.packageName fieldMap cx) (\field_name -> Eithers.bind (ExtractCore.requireField "description" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_description -> Eithers.bind (ExtractCore.requireField "sourceLanguage" languageName fieldMap cx) (\field_sourceLanguage -> Eithers.bind (ExtractCore.requireField "targetLanguages" (ExtractCore.decodeMaybe (ExtractCore.decodeList languageName)) fieldMap cx) (\field_targetLanguages -> Eithers.bind (ExtractCore.requireField "dependencies" (ExtractCore.decodeList Packaging.packageName) fieldMap cx) (\field_dependencies -> Eithers.bind (ExtractCore.requireField "validation" (ExtractCore.decodeMaybe packageValidationConfiguration) fieldMap cx) (\field_validation -> Right (Format.PackageDescriptor {+          Format.packageDescriptorPackageFormatVersion = field_packageFormatVersion,+          Format.packageDescriptorName = field_name,+          Format.packageDescriptorDescription = field_description,+          Format.packageDescriptorSourceLanguage = field_sourceLanguage,+          Format.packageDescriptorTargetLanguages = field_targetLanguages,+          Format.packageDescriptorDependencies = field_dependencies,+          Format.packageDescriptorValidation = field_validation})))))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.PackageDescriptor")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.PackageManifest+packageManifest :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.PackageManifest+packageManifest cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "manifestFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_manifestFormatVersion -> Eithers.bind (ExtractCore.requireField "moduleFormatVersion" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralInteger v2 -> case v2 of+              Core.IntegerValueInt32 v3 -> Right v3+              _ -> Left (Errors.DecodingError "expected int32 value")+            _ -> Left (Errors.DecodingError "expected int32 literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_moduleFormatVersion -> Eithers.bind (ExtractCore.requireField "package" Packaging.packageName fieldMap cx) (\field_package -> Eithers.bind (ExtractCore.requireField "mainModules" (ExtractCore.decodeList Packaging.moduleName) fieldMap cx) (\field_mainModules -> Eithers.bind (ExtractCore.requireField "testModules" (ExtractCore.decodeList Packaging.moduleName) fieldMap cx) (\field_testModules -> Eithers.bind (ExtractCore.requireField "mainDslModules" (ExtractCore.decodeList Packaging.moduleName) fieldMap cx) (\field_mainDslModules -> Eithers.bind (ExtractCore.requireField "mainEncodingModules" (ExtractCore.decodeList Packaging.moduleName) fieldMap cx) (\field_mainEncodingModules -> Right (Format.PackageManifest {+          Format.packageManifestManifestFormatVersion = field_manifestFormatVersion,+          Format.packageManifestModuleFormatVersion = field_moduleFormatVersion,+          Format.packageManifestPackage = field_package,+          Format.packageManifestMainModules = field_mainModules,+          Format.packageManifestTestModules = field_testModules,+          Format.packageManifestMainDslModules = field_mainDslModules,+          Format.packageManifestMainEncodingModules = field_mainEncodingModules})))))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.PackageManifest")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.PackageValidationConfiguration+packageValidationConfiguration :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.PackageValidationConfiguration+packageValidationConfiguration cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "package" (ExtractCore.decodeMaybe packageValidationProfile) fieldMap cx) (\field_package -> Eithers.bind (ExtractCore.requireField "module" (ExtractCore.decodeMaybe moduleValidationProfile) fieldMap cx) (\field_module -> Eithers.bind (ExtractCore.requireField "type" (ExtractCore.decodeMaybe typeValidationProfile) fieldMap cx) (\field_type -> Eithers.bind (ExtractCore.requireField "term" (ExtractCore.decodeMaybe termValidationProfile) fieldMap cx) (\field_term -> Right (Format.PackageValidationConfiguration {+          Format.packageValidationConfigurationPackage = field_package,+          Format.packageValidationConfigurationModule = field_module,+          Format.packageValidationConfigurationType = field_type,+          Format.packageValidationConfigurationTerm = field_term}))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.PackageValidationConfiguration")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.PackageValidationProfile+packageValidationProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.PackageValidationProfile+packageValidationProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "conflictingModuleName" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_conflictingModuleName -> Eithers.bind (ExtractCore.requireField "duplicateModuleName" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_duplicateModuleName -> Eithers.bind (ExtractCore.requireField "nameConvention" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_nameConvention -> Right (Format.PackageValidationProfile {+          Format.packageValidationProfileConflictingModuleName = field_conflictingModuleName,+          Format.packageValidationProfileDuplicateModuleName = field_duplicateModuleName,+          Format.packageValidationProfileNameConvention = field_nameConvention})))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.PackageValidationProfile")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.RepositoryDescriptor+repositoryDescriptor :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.RepositoryDescriptor+repositoryDescriptor cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "currentVersion" Packaging.version fieldMap cx) (\field_currentVersion -> Eithers.bind (ExtractCore.requireField "hostVersion" Packaging.version fieldMap cx) (\field_hostVersion -> Eithers.bind (ExtractCore.requireField "hostOverrides" (ExtractCore.decodeMap languageName hostOverride) fieldMap cx) (\field_hostOverrides -> Eithers.bind (ExtractCore.requireField "group" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_group -> Eithers.bind (ExtractCore.requireField "author" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_author -> Eithers.bind (ExtractCore.requireField "url" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_url -> Eithers.bind (ExtractCore.requireField "license" (\cx2 -> \raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+          Core.TermLiteral v1 -> case v1 of+            Core.LiteralString v2 -> Right v2+            _ -> Left (Errors.DecodingError "expected string literal")+          _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx2 raw2)) fieldMap cx) (\field_license -> Eithers.bind (ExtractCore.requireField "packages" (ExtractCore.decodeList Packaging.packageName) fieldMap cx) (\field_packages -> Right (Format.RepositoryDescriptor {+          Format.repositoryDescriptorCurrentVersion = field_currentVersion,+          Format.repositoryDescriptorHostVersion = field_hostVersion,+          Format.repositoryDescriptorHostOverrides = field_hostOverrides,+          Format.repositoryDescriptorGroup = field_group,+          Format.repositoryDescriptorAuthor = field_author,+          Format.repositoryDescriptorUrl = field_url,+          Format.repositoryDescriptorLicense = field_license,+          Format.repositoryDescriptorPackages = field_packages}))))))))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.RepositoryDescriptor")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.Severity+severity :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.Severity+severity cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermInject v0 ->+        let field = Core.injectionField v0+            fname = Core.fieldName field+            fterm = Core.fieldTerm field+            variantMap =+                    Maps.fromList [+                      (Core.Name "error", (\input -> Eithers.map (\t -> Format.SeverityError) (ExtractCore.decodeUnit cx input))),+                      (Core.Name "warning", (\input -> Eithers.map (\t -> Format.SeverityWarning) (ExtractCore.decodeUnit cx input)))]+        in (Optionals.cases (Maps.lookup fname variantMap) (Left (Errors.DecodingError (Strings.concat [+          "no such field ",+          (Core.unName fname),+          " in union"]))) (\f -> f fterm))+      _ -> Left (Errors.DecodingError "expected union")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.Sha256Hash+sha256Hash :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.Sha256Hash+sha256Hash cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermWrap v0 -> Eithers.map (\b -> Format.Sha256Hash b) ((\raw2 -> Eithers.either (\err -> Left err) (\stripped2 -> case stripped2 of+        Core.TermLiteral v1 -> case v1 of+          Core.LiteralString v2 -> Right v2+          _ -> Left (Errors.DecodingError "expected string literal")+        _ -> Left (Errors.DecodingError "expected literal")) (ExtractCore.stripWithDecodingError cx raw2)) (Core.wrappedTermBody v0))+      _ -> Left (Errors.DecodingError "expected wrapped type")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.TermValidationProfile+termValidationProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.TermValidationProfile+termValidationProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "duplicateBinding" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_duplicateBinding -> Eithers.bind (ExtractCore.requireField "emptyTermAnnotation" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_emptyTermAnnotation -> Eithers.bind (ExtractCore.requireField "undefinedVariable" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_undefinedVariable -> Right (Format.TermValidationProfile {+          Format.termValidationProfileDuplicateBinding = field_duplicateBinding,+          Format.termValidationProfileEmptyTermAnnotation = field_emptyTermAnnotation,+          Format.termValidationProfileUndefinedVariable = field_undefinedVariable})))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.TermValidationProfile")) (ExtractCore.stripWithDecodingError cx raw)++-- | Decoder for hydra.build.format.TypeValidationProfile+typeValidationProfile :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Format.TypeValidationProfile+typeValidationProfile cx raw =+    Eithers.either (\err -> Left err) (\stripped -> case stripped of+      Core.TermRecord v0 ->+        let fieldMap = ExtractCore.toFieldMap v0+        in (Eithers.bind (ExtractCore.requireField "emptyAnnotation" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_emptyAnnotation -> Eithers.bind (ExtractCore.requireField "duplicateField" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_duplicateField -> Eithers.bind (ExtractCore.requireField "singleVariantUnion" (ExtractCore.decodeMaybe severity) fieldMap cx) (\field_singleVariantUnion -> Right (Format.TypeValidationProfile {+          Format.typeValidationProfileEmptyAnnotation = field_emptyAnnotation,+          Format.typeValidationProfileDuplicateField = field_duplicateField,+          Format.typeValidationProfileSingleVariantUnion = field_singleVariantUnion})))))+      _ -> Left (Errors.DecodingError "expected a record of type hydra.build.format.TypeValidationProfile")) (ExtractCore.stripWithDecodingError cx raw)
+ src/main/haskell/Hydra/Dsl/Build/Format.hs view
@@ -0,0 +1,3988 @@+-- Note: this is an automatically generated file. Do not edit.++-- | DSL functions for hydra.build.format++module Hydra.Dsl.Build.Format where++import qualified Hydra.Build.Format as Format+import qualified Hydra.Core as Core+import qualified Hydra.Decode.Build.Format as DecodeBuildFormat+import qualified Hydra.Dsl.Packaging as DslPackaging+import qualified Hydra.Encode.Build.Format as EncodeBuildFormat+import qualified Hydra.Packaging as Packaging+import qualified Hydra.Typed as Typed+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)+import qualified Data.Scientific as Sci+import qualified Data.Map as M++-- | DSL constructor for hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfile :: Typed.TypedTerm Format.Severity -> Typed.TypedTerm Bool -> Typed.TypedTerm Format.DefinitionNameConventionProfile+definitionNameConventionProfile severity allowUnderscores =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (Typed.unTypedTerm severity)},+        Core.Field {+          Core.fieldName = (Core.Name "allowUnderscores"),+          Core.fieldTerm = (Typed.unTypedTerm allowUnderscores)}]}))++-- | DSL accessor for the allowUnderscores field of hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfileAllowUnderscores :: Typed.TypedTerm Format.DefinitionNameConventionProfile -> Typed.TypedTerm Bool+definitionNameConventionProfileAllowUnderscores x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+        Core.projectionFieldName = (Core.Name "allowUnderscores")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfileDefinitionNameConventionProfile :: Typed.TypedName Format.DefinitionNameConventionProfile+definitionNameConventionProfileDefinitionNameConventionProfile =+    Typed.TypedName (Core.Name "hydra.build.format.DefinitionNameConventionProfile")++-- | DSL accessor for the severity field of hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfileSeverity :: Typed.TypedTerm Format.DefinitionNameConventionProfile -> Typed.TypedTerm Format.Severity+definitionNameConventionProfileSeverity x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+        Core.projectionFieldName = (Core.Name "severity")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the allowUnderscores field of hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfileWithAllowUnderscores :: Typed.TypedTerm Format.DefinitionNameConventionProfile -> Typed.TypedTerm Bool -> Typed.TypedTerm Format.DefinitionNameConventionProfile+definitionNameConventionProfileWithAllowUnderscores original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+              Core.projectionFieldName = (Core.Name "severity")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "allowUnderscores"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the severity field of hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfileWithSeverity :: Typed.TypedTerm Format.DefinitionNameConventionProfile -> Typed.TypedTerm Format.Severity -> Typed.TypedTerm Format.DefinitionNameConventionProfile+definitionNameConventionProfileWithSeverity original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "allowUnderscores"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+              Core.projectionFieldName = (Core.Name "allowUnderscores")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.DefinitionValidationProfile+definitionValidationProfile :: Typed.TypedTerm (Maybe Format.DocumentationProfile) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.DefinitionNameConventionProfile) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.DefinitionValidationProfile+definitionValidationProfile hasDescription ordering nameConvention notInModuleName duplicateName =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = (Typed.unTypedTerm hasDescription)},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = (Typed.unTypedTerm ordering)},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Typed.unTypedTerm nameConvention)},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = (Typed.unTypedTerm notInModuleName)},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = (Typed.unTypedTerm duplicateName)}]}))++-- | DSL name token for hydra.build.format.DefinitionValidationProfile+definitionValidationProfileDefinitionValidationProfile :: Typed.TypedName Format.DefinitionValidationProfile+definitionValidationProfileDefinitionValidationProfile =+    Typed.TypedName (Core.Name "hydra.build.format.DefinitionValidationProfile")++-- | DSL accessor for the duplicateName field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileDuplicateName :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+definitionValidationProfileDuplicateName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+        Core.projectionFieldName = (Core.Name "duplicateName")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the hasDescription field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileHasDescription :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.DocumentationProfile)+definitionValidationProfileHasDescription x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+        Core.projectionFieldName = (Core.Name "hasDescription")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the nameConvention field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileNameConvention :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.DefinitionNameConventionProfile)+definitionValidationProfileNameConvention x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+        Core.projectionFieldName = (Core.Name "nameConvention")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the notInModuleName field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileNotInModuleName :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+definitionValidationProfileNotInModuleName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+        Core.projectionFieldName = (Core.Name "notInModuleName")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the ordering field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileOrdering :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+definitionValidationProfileOrdering x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+        Core.projectionFieldName = (Core.Name "ordering")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the duplicateName field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileWithDuplicateName :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.DefinitionValidationProfile+definitionValidationProfileWithDuplicateName original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "hasDescription")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "ordering")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "notInModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the hasDescription field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileWithHasDescription :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.DocumentationProfile) -> Typed.TypedTerm Format.DefinitionValidationProfile+definitionValidationProfileWithHasDescription original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "ordering")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "notInModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the nameConvention field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileWithNameConvention :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.DefinitionNameConventionProfile) -> Typed.TypedTerm Format.DefinitionValidationProfile+definitionValidationProfileWithNameConvention original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "hasDescription")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "ordering")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "notInModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the notInModuleName field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileWithNotInModuleName :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.DefinitionValidationProfile+definitionValidationProfileWithNotInModuleName original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "hasDescription")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "ordering")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the ordering field of hydra.build.format.DefinitionValidationProfile+definitionValidationProfileWithOrdering :: Typed.TypedTerm Format.DefinitionValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.DefinitionValidationProfile+definitionValidationProfileWithOrdering original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "hasDescription")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "notInModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.DigestEntry+digestEntry :: Typed.TypedTerm Format.DigestKind -> Typed.TypedTerm Format.Sha256Hash -> Typed.TypedTerm Format.DigestEntry+digestEntry kind hash =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DigestEntry"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "kind"),+          Core.fieldTerm = (Typed.unTypedTerm kind)},+        Core.Field {+          Core.fieldName = (Core.Name "hash"),+          Core.fieldTerm = (Typed.unTypedTerm hash)}]}))++-- | DSL name token for hydra.build.format.DigestEntry+digestEntryDigestEntry :: Typed.TypedName Format.DigestEntry+digestEntryDigestEntry = Typed.TypedName (Core.Name "hydra.build.format.DigestEntry")++-- | DSL accessor for the hash field of hydra.build.format.DigestEntry+digestEntryHash :: Typed.TypedTerm Format.DigestEntry -> Typed.TypedTerm Format.Sha256Hash+digestEntryHash x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DigestEntry"),+        Core.projectionFieldName = (Core.Name "hash")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the kind field of hydra.build.format.DigestEntry+digestEntryKind :: Typed.TypedTerm Format.DigestEntry -> Typed.TypedTerm Format.DigestKind+digestEntryKind x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DigestEntry"),+        Core.projectionFieldName = (Core.Name "kind")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the hash field of hydra.build.format.DigestEntry+digestEntryWithHash :: Typed.TypedTerm Format.DigestEntry -> Typed.TypedTerm Format.Sha256Hash -> Typed.TypedTerm Format.DigestEntry+digestEntryWithHash original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DigestEntry"),+      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.build.format.DigestEntry"),+              Core.projectionFieldName = (Core.Name "kind")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hash"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the kind field of hydra.build.format.DigestEntry+digestEntryWithKind :: Typed.TypedTerm Format.DigestEntry -> Typed.TypedTerm Format.DigestKind -> Typed.TypedTerm Format.DigestEntry+digestEntryWithKind original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DigestEntry"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "kind"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "hash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DigestEntry"),+              Core.projectionFieldName = (Core.Name "hash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.build.format.DigestKind+digestKindDigestKind :: Typed.TypedName Format.DigestKind+digestKindDigestKind = Typed.TypedName (Core.Name "hydra.build.format.DigestKind")++-- | DSL injection for the dslSource variant of hydra.build.format.DigestKind+digestKindDslSource :: Typed.TypedTerm Format.DigestKind+digestKindDslSource =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "dslSource"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL injection for the jsonFile variant of hydra.build.format.DigestKind+digestKindJsonFile :: Typed.TypedTerm Format.DigestKind+digestKindJsonFile =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "jsonFile"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL injection for the other variant of hydra.build.format.DigestKind+digestKindOther :: Typed.TypedTerm Format.DigestKind+digestKindOther =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "other"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL injection for the runtimeFile variant of hydra.build.format.DigestKind+digestKindRuntimeFile :: Typed.TypedTerm Format.DigestKind+digestKindRuntimeFile =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "runtimeFile"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL injection for the targetFile variant of hydra.build.format.DigestKind+digestKindTargetFile :: Typed.TypedTerm Format.DigestKind+digestKindTargetFile =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "targetFile"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL constructor for hydra.build.format.DocumentationProfile+documentationProfile :: Typed.TypedTerm Format.Severity -> Typed.TypedTerm Bool -> Typed.TypedTerm Format.DocumentationProfile+documentationProfile severity exemptDeprecated =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (Typed.unTypedTerm severity)},+        Core.Field {+          Core.fieldName = (Core.Name "exemptDeprecated"),+          Core.fieldTerm = (Typed.unTypedTerm exemptDeprecated)}]}))++-- | DSL name token for hydra.build.format.DocumentationProfile+documentationProfileDocumentationProfile :: Typed.TypedName Format.DocumentationProfile+documentationProfileDocumentationProfile = Typed.TypedName (Core.Name "hydra.build.format.DocumentationProfile")++-- | DSL accessor for the exemptDeprecated field of hydra.build.format.DocumentationProfile+documentationProfileExemptDeprecated :: Typed.TypedTerm Format.DocumentationProfile -> Typed.TypedTerm Bool+documentationProfileExemptDeprecated x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+        Core.projectionFieldName = (Core.Name "exemptDeprecated")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the severity field of hydra.build.format.DocumentationProfile+documentationProfileSeverity :: Typed.TypedTerm Format.DocumentationProfile -> Typed.TypedTerm Format.Severity+documentationProfileSeverity x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+        Core.projectionFieldName = (Core.Name "severity")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the exemptDeprecated field of hydra.build.format.DocumentationProfile+documentationProfileWithExemptDeprecated :: Typed.TypedTerm Format.DocumentationProfile -> Typed.TypedTerm Bool -> Typed.TypedTerm Format.DocumentationProfile+documentationProfileWithExemptDeprecated original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+              Core.projectionFieldName = (Core.Name "severity")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "exemptDeprecated"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the severity field of hydra.build.format.DocumentationProfile+documentationProfileWithSeverity :: Typed.TypedTerm Format.DocumentationProfile -> Typed.TypedTerm Format.Severity -> Typed.TypedTerm Format.DocumentationProfile+documentationProfileWithSeverity original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "exemptDeprecated"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+              Core.projectionFieldName = (Core.Name "exemptDeprecated")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.Generation+generation :: Typed.TypedTerm String -> Typed.TypedTerm Format.GenerationMode -> Typed.TypedTerm Format.LanguageName -> Typed.TypedTerm (Maybe Packaging.Version) -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Format.Generation+generation generatorId mode host hydraVersion revision timestamp =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Typed.unTypedTerm generatorId)},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Typed.unTypedTerm mode)},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Typed.unTypedTerm host)},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Typed.unTypedTerm hydraVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Typed.unTypedTerm revision)},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Typed.unTypedTerm timestamp)}]}))++-- | DSL name token for hydra.build.format.Generation+generationGeneration :: Typed.TypedName Format.Generation+generationGeneration = Typed.TypedName (Core.Name "hydra.build.format.Generation")++-- | DSL accessor for the generatorId field of hydra.build.format.Generation+generationGeneratorId :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm String+generationGeneratorId x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+        Core.projectionFieldName = (Core.Name "generatorId")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the host field of hydra.build.format.Generation+generationHost :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm Format.LanguageName+generationHost x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+        Core.projectionFieldName = (Core.Name "host")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the hydraVersion field of hydra.build.format.Generation+generationHydraVersion :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe Packaging.Version)+generationHydraVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+        Core.projectionFieldName = (Core.Name "hydraVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mode field of hydra.build.format.Generation+generationMode :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm Format.GenerationMode+generationMode x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+        Core.projectionFieldName = (Core.Name "mode")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.GenerationMode+generationModeGenerationMode :: Typed.TypedName Format.GenerationMode+generationModeGenerationMode = Typed.TypedName (Core.Name "hydra.build.format.GenerationMode")++-- | DSL injection for the published variant of hydra.build.format.GenerationMode+generationModePublished :: Typed.TypedTerm Format.GenerationMode+generationModePublished =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.GenerationMode"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "published"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL injection for the shim variant of hydra.build.format.GenerationMode+generationModeShim :: Typed.TypedTerm Format.GenerationMode+generationModeShim =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.GenerationMode"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "shim"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL accessor for the revision field of hydra.build.format.Generation+generationRevision :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe String)+generationRevision x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+        Core.projectionFieldName = (Core.Name "revision")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the timestamp field of hydra.build.format.Generation+generationTimestamp :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe String)+generationTimestamp x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+        Core.projectionFieldName = (Core.Name "timestamp")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the generatorId field of hydra.build.format.Generation+generationWithGeneratorId :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm String -> Typed.TypedTerm Format.Generation+generationWithGeneratorId original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "mode")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "host")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "hydraVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "revision")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "timestamp")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the host field of hydra.build.format.Generation+generationWithHost :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm Format.LanguageName -> Typed.TypedTerm Format.Generation+generationWithHost original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "generatorId")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "mode")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "hydraVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "revision")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "timestamp")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the hydraVersion field of hydra.build.format.Generation+generationWithHydraVersion :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe Packaging.Version) -> Typed.TypedTerm Format.Generation+generationWithHydraVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "generatorId")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "mode")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "host")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "revision")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "timestamp")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mode field of hydra.build.format.Generation+generationWithMode :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm Format.GenerationMode -> Typed.TypedTerm Format.Generation+generationWithMode original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "generatorId")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "host")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "hydraVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "revision")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "timestamp")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the revision field of hydra.build.format.Generation+generationWithRevision :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Format.Generation+generationWithRevision original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "generatorId")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "mode")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "host")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "hydraVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "timestamp")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the timestamp field of hydra.build.format.Generation+generationWithTimestamp :: Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Format.Generation+generationWithTimestamp original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "generatorId")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "mode")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "host")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "hydraVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.Generation"),+              Core.projectionFieldName = (Core.Name "revision")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.build.format.HostOverride+hostOverrideHostOverride :: Typed.TypedName Format.HostOverride+hostOverrideHostOverride = Typed.TypedName (Core.Name "hydra.build.format.HostOverride")++-- | DSL injection for the local variant of hydra.build.format.HostOverride+hostOverrideLocal :: Typed.TypedTerm Format.HostOverride+hostOverrideLocal =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.HostOverride"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "local"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL injection for the version variant of hydra.build.format.HostOverride+hostOverrideVersion :: Typed.TypedTerm Packaging.Version -> Typed.TypedTerm Format.HostOverride+hostOverrideVersion x =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.HostOverride"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "version"),+        Core.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.build.format.InputDigest+inputDigest :: Typed.TypedTerm Int -> Typed.TypedTerm Int -> Typed.TypedTerm (Maybe Format.Sha256Hash) -> Typed.TypedTerm (M.Map Packaging.PackageName Format.Sha256Hash) -> Typed.TypedTerm (M.Map Packaging.ModuleName Format.Sha256Hash) -> Typed.TypedTerm Format.InputDigest+inputDigest digestFormatVersion moduleFormatVersion selfHash dependencyHashes moduleHashes =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm digestFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm moduleFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Typed.unTypedTerm selfHash)},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Typed.unTypedTerm dependencyHashes)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = (Typed.unTypedTerm moduleHashes)}]}))++-- | DSL accessor for the dependencyHashes field of hydra.build.format.InputDigest+inputDigestDependencyHashes :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm (M.Map Packaging.PackageName Format.Sha256Hash)+inputDigestDependencyHashes x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+        Core.projectionFieldName = (Core.Name "dependencyHashes")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the digestFormatVersion field of hydra.build.format.InputDigest+inputDigestDigestFormatVersion :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm Int+inputDigestDigestFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+        Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.InputDigest+inputDigestInputDigest :: Typed.TypedName Format.InputDigest+inputDigestInputDigest = Typed.TypedName (Core.Name "hydra.build.format.InputDigest")++-- | DSL accessor for the moduleFormatVersion field of hydra.build.format.InputDigest+inputDigestModuleFormatVersion :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm Int+inputDigestModuleFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+        Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the moduleHashes field of hydra.build.format.InputDigest+inputDigestModuleHashes :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm (M.Map Packaging.ModuleName Format.Sha256Hash)+inputDigestModuleHashes x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+        Core.projectionFieldName = (Core.Name "moduleHashes")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the selfHash field of hydra.build.format.InputDigest+inputDigestSelfHash :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm (Maybe Format.Sha256Hash)+inputDigestSelfHash x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+        Core.projectionFieldName = (Core.Name "selfHash")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the dependencyHashes field of hydra.build.format.InputDigest+inputDigestWithDependencyHashes :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm (M.Map Packaging.PackageName Format.Sha256Hash) -> Typed.TypedTerm Format.InputDigest+inputDigestWithDependencyHashes original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the digestFormatVersion field of hydra.build.format.InputDigest+inputDigestWithDigestFormatVersion :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm Int -> Typed.TypedTerm Format.InputDigest+inputDigestWithDigestFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the moduleFormatVersion field of hydra.build.format.InputDigest+inputDigestWithModuleFormatVersion :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm Int -> Typed.TypedTerm Format.InputDigest+inputDigestWithModuleFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the moduleHashes field of hydra.build.format.InputDigest+inputDigestWithModuleHashes :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm (M.Map Packaging.ModuleName Format.Sha256Hash) -> Typed.TypedTerm Format.InputDigest+inputDigestWithModuleHashes original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the selfHash field of hydra.build.format.InputDigest+inputDigestWithSelfHash :: Typed.TypedTerm Format.InputDigest -> Typed.TypedTerm (Maybe Format.Sha256Hash) -> Typed.TypedTerm Format.InputDigest+inputDigestWithSelfHash original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.InputDigest"),+              Core.projectionFieldName = (Core.Name "moduleHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.build.format.LanguageName wrapper+languageName :: Typed.TypedTerm String -> Typed.TypedTerm Format.LanguageName+languageName x =+    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {+      Core.wrappedTermTypeName = (Core.Name "hydra.build.format.LanguageName"),+      Core.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.LanguageName+languageNameLanguageName :: Typed.TypedName Format.LanguageName+languageNameLanguageName = Typed.TypedName (Core.Name "hydra.build.format.LanguageName")++-- | DSL constructor for hydra.build.format.ModuleValidationProfile+moduleValidationProfile :: Typed.TypedTerm (Maybe Format.DefinitionValidationProfile) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.ModuleValidationProfile+moduleValidationProfile definitions nameConvention conflictingVariantName =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "definitions"),+          Core.fieldTerm = (Typed.unTypedTerm definitions)},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Typed.unTypedTerm nameConvention)},+        Core.Field {+          Core.fieldName = (Core.Name "conflictingVariantName"),+          Core.fieldTerm = (Typed.unTypedTerm conflictingVariantName)}]}))++-- | DSL accessor for the conflictingVariantName field of hydra.build.format.ModuleValidationProfile+moduleValidationProfileConflictingVariantName :: Typed.TypedTerm Format.ModuleValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+moduleValidationProfileConflictingVariantName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+        Core.projectionFieldName = (Core.Name "conflictingVariantName")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the definitions field of hydra.build.format.ModuleValidationProfile+moduleValidationProfileDefinitions :: Typed.TypedTerm Format.ModuleValidationProfile -> Typed.TypedTerm (Maybe Format.DefinitionValidationProfile)+moduleValidationProfileDefinitions x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+        Core.projectionFieldName = (Core.Name "definitions")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.ModuleValidationProfile+moduleValidationProfileModuleValidationProfile :: Typed.TypedName Format.ModuleValidationProfile+moduleValidationProfileModuleValidationProfile = Typed.TypedName (Core.Name "hydra.build.format.ModuleValidationProfile")++-- | DSL accessor for the nameConvention field of hydra.build.format.ModuleValidationProfile+moduleValidationProfileNameConvention :: Typed.TypedTerm Format.ModuleValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+moduleValidationProfileNameConvention x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+        Core.projectionFieldName = (Core.Name "nameConvention")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the conflictingVariantName field of hydra.build.format.ModuleValidationProfile+moduleValidationProfileWithConflictingVariantName :: Typed.TypedTerm Format.ModuleValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.ModuleValidationProfile+moduleValidationProfileWithConflictingVariantName original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "definitions"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+              Core.projectionFieldName = (Core.Name "definitions")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "conflictingVariantName"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the definitions field of hydra.build.format.ModuleValidationProfile+moduleValidationProfileWithDefinitions :: Typed.TypedTerm Format.ModuleValidationProfile -> Typed.TypedTerm (Maybe Format.DefinitionValidationProfile) -> Typed.TypedTerm Format.ModuleValidationProfile+moduleValidationProfileWithDefinitions original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "definitions"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "conflictingVariantName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+              Core.projectionFieldName = (Core.Name "conflictingVariantName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the nameConvention field of hydra.build.format.ModuleValidationProfile+moduleValidationProfileWithNameConvention :: Typed.TypedTerm Format.ModuleValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.ModuleValidationProfile+moduleValidationProfileWithNameConvention original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "definitions"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+              Core.projectionFieldName = (Core.Name "definitions")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "conflictingVariantName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+              Core.projectionFieldName = (Core.Name "conflictingVariantName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.OutputDigest+outputDigest :: Typed.TypedTerm Int -> Typed.TypedTerm Int -> Typed.TypedTerm String -> Typed.TypedTerm Format.Generation -> Typed.TypedTerm (Maybe Format.Sha256Hash) -> Typed.TypedTerm (M.Map Packaging.PackageName Format.Sha256Hash) -> Typed.TypedTerm (M.Map String Format.DigestEntry) -> Typed.TypedTerm (M.Map String Format.DigestEntry) -> Typed.TypedTerm Format.OutputDigest+outputDigest digestFormatVersion moduleFormatVersion generator generation selfHash dependencyHashes inputs outputs =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm digestFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm moduleFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Typed.unTypedTerm generator)},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Typed.unTypedTerm generation)},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Typed.unTypedTerm selfHash)},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Typed.unTypedTerm dependencyHashes)},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Typed.unTypedTerm inputs)},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Typed.unTypedTerm outputs)}]}))++-- | DSL accessor for the dependencyHashes field of hydra.build.format.OutputDigest+outputDigestDependencyHashes :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (M.Map Packaging.PackageName Format.Sha256Hash)+outputDigestDependencyHashes x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "dependencyHashes")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the digestFormatVersion field of hydra.build.format.OutputDigest+outputDigestDigestFormatVersion :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm Int+outputDigestDigestFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the generation field of hydra.build.format.OutputDigest+outputDigestGeneration :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm Format.Generation+outputDigestGeneration x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "generation")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the generator field of hydra.build.format.OutputDigest+outputDigestGenerator :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm String+outputDigestGenerator x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "generator")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the inputs field of hydra.build.format.OutputDigest+outputDigestInputs :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (M.Map String Format.DigestEntry)+outputDigestInputs x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "inputs")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the moduleFormatVersion field of hydra.build.format.OutputDigest+outputDigestModuleFormatVersion :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm Int+outputDigestModuleFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.OutputDigest+outputDigestOutputDigest :: Typed.TypedName Format.OutputDigest+outputDigestOutputDigest = Typed.TypedName (Core.Name "hydra.build.format.OutputDigest")++-- | DSL accessor for the outputs field of hydra.build.format.OutputDigest+outputDigestOutputs :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (M.Map String Format.DigestEntry)+outputDigestOutputs x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "outputs")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the selfHash field of hydra.build.format.OutputDigest+outputDigestSelfHash :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (Maybe Format.Sha256Hash)+outputDigestSelfHash x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+        Core.projectionFieldName = (Core.Name "selfHash")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the dependencyHashes field of hydra.build.format.OutputDigest+outputDigestWithDependencyHashes :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (M.Map Packaging.PackageName Format.Sha256Hash) -> Typed.TypedTerm Format.OutputDigest+outputDigestWithDependencyHashes original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the digestFormatVersion field of hydra.build.format.OutputDigest+outputDigestWithDigestFormatVersion :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm Int -> Typed.TypedTerm Format.OutputDigest+outputDigestWithDigestFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the generation field of hydra.build.format.OutputDigest+outputDigestWithGeneration :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm Format.Generation -> Typed.TypedTerm Format.OutputDigest+outputDigestWithGeneration original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the generator field of hydra.build.format.OutputDigest+outputDigestWithGenerator :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm String -> Typed.TypedTerm Format.OutputDigest+outputDigestWithGenerator original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the inputs field of hydra.build.format.OutputDigest+outputDigestWithInputs :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (M.Map String Format.DigestEntry) -> Typed.TypedTerm Format.OutputDigest+outputDigestWithInputs original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the moduleFormatVersion field of hydra.build.format.OutputDigest+outputDigestWithModuleFormatVersion :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm Int -> Typed.TypedTerm Format.OutputDigest+outputDigestWithModuleFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the outputs field of hydra.build.format.OutputDigest+outputDigestWithOutputs :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (M.Map String Format.DigestEntry) -> Typed.TypedTerm Format.OutputDigest+outputDigestWithOutputs original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "selfHash")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the selfHash field of hydra.build.format.OutputDigest+outputDigestWithSelfHash :: Typed.TypedTerm Format.OutputDigest -> Typed.TypedTerm (Maybe Format.Sha256Hash) -> Typed.TypedTerm Format.OutputDigest+outputDigestWithSelfHash original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "digestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generator")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "generation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "dependencyHashes")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "inputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.OutputDigest"),+              Core.projectionFieldName = (Core.Name "outputs")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.PackageDescriptor+packageDescriptor :: Typed.TypedTerm Int -> Typed.TypedTerm Packaging.PackageName -> Typed.TypedTerm String -> Typed.TypedTerm Format.LanguageName -> Typed.TypedTerm (Maybe [Format.LanguageName]) -> Typed.TypedTerm [Packaging.PackageName] -> Typed.TypedTerm (Maybe Format.PackageValidationConfiguration) -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptor packageFormatVersion name description sourceLanguage targetLanguages dependencies validation =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm packageFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Typed.unTypedTerm name)},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Typed.unTypedTerm description)},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Typed.unTypedTerm sourceLanguage)},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Typed.unTypedTerm targetLanguages)},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Typed.unTypedTerm dependencies)},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Typed.unTypedTerm validation)}]}))++-- | DSL accessor for the dependencies field of hydra.build.format.PackageDescriptor+packageDescriptorDependencies :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm [Packaging.PackageName]+packageDescriptorDependencies x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "dependencies")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the description field of hydra.build.format.PackageDescriptor+packageDescriptorDescription :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm String+packageDescriptorDescription x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "description")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.build.format.PackageDescriptor+packageDescriptorName :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm Packaging.PackageName+packageDescriptorName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "name")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.PackageDescriptor+packageDescriptorPackageDescriptor :: Typed.TypedName Format.PackageDescriptor+packageDescriptorPackageDescriptor = Typed.TypedName (Core.Name "hydra.build.format.PackageDescriptor")++-- | DSL accessor for the packageFormatVersion field of hydra.build.format.PackageDescriptor+packageDescriptorPackageFormatVersion :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm Int+packageDescriptorPackageFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the sourceLanguage field of hydra.build.format.PackageDescriptor+packageDescriptorSourceLanguage :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm Format.LanguageName+packageDescriptorSourceLanguage x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "sourceLanguage")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the targetLanguages field of hydra.build.format.PackageDescriptor+packageDescriptorTargetLanguages :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm (Maybe [Format.LanguageName])+packageDescriptorTargetLanguages x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "targetLanguages")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the validation field of hydra.build.format.PackageDescriptor+packageDescriptorValidation :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm (Maybe Format.PackageValidationConfiguration)+packageDescriptorValidation x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+        Core.projectionFieldName = (Core.Name "validation")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the dependencies field of hydra.build.format.PackageDescriptor+packageDescriptorWithDependencies :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm [Packaging.PackageName] -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithDependencies original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "name")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "description")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "sourceLanguage")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "targetLanguages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "validation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the description field of hydra.build.format.PackageDescriptor+packageDescriptorWithDescription :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm String -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithDescription original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "name")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "sourceLanguage")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "targetLanguages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "dependencies")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "validation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.build.format.PackageDescriptor+packageDescriptorWithName :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm Packaging.PackageName -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithName original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "description")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "sourceLanguage")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "targetLanguages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "dependencies")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "validation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the packageFormatVersion field of hydra.build.format.PackageDescriptor+packageDescriptorWithPackageFormatVersion :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm Int -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithPackageFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          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.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "name")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "description")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "sourceLanguage")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "targetLanguages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "dependencies")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "validation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the sourceLanguage field of hydra.build.format.PackageDescriptor+packageDescriptorWithSourceLanguage :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm Format.LanguageName -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithSourceLanguage original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "name")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "description")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "targetLanguages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "dependencies")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "validation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the targetLanguages field of hydra.build.format.PackageDescriptor+packageDescriptorWithTargetLanguages :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm (Maybe [Format.LanguageName]) -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithTargetLanguages original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "name")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "description")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "sourceLanguage")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "dependencies")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "validation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the validation field of hydra.build.format.PackageDescriptor+packageDescriptorWithValidation :: Typed.TypedTerm Format.PackageDescriptor -> Typed.TypedTerm (Maybe Format.PackageValidationConfiguration) -> Typed.TypedTerm Format.PackageDescriptor+packageDescriptorWithValidation original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "packageFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "name")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "description")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "sourceLanguage")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "targetLanguages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+              Core.projectionFieldName = (Core.Name "dependencies")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.build.format.PackageManifest+packageManifest :: Typed.TypedTerm Int -> Typed.TypedTerm Int -> Typed.TypedTerm Packaging.PackageName -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm Format.PackageManifest+packageManifest manifestFormatVersion moduleFormatVersion package mainModules testModules mainDslModules mainEncodingModules =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm manifestFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm moduleFormatVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Typed.unTypedTerm package)},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Typed.unTypedTerm mainModules)},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Typed.unTypedTerm testModules)},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Typed.unTypedTerm mainDslModules)},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Typed.unTypedTerm mainEncodingModules)}]}))++-- | DSL accessor for the mainDslModules field of hydra.build.format.PackageManifest+packageManifestMainDslModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName]+packageManifestMainDslModules x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "mainDslModules")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mainEncodingModules field of hydra.build.format.PackageManifest+packageManifestMainEncodingModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName]+packageManifestMainEncodingModules x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mainModules field of hydra.build.format.PackageManifest+packageManifestMainModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName]+packageManifestMainModules x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "mainModules")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the manifestFormatVersion field of hydra.build.format.PackageManifest+packageManifestManifestFormatVersion :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm Int+packageManifestManifestFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the moduleFormatVersion field of hydra.build.format.PackageManifest+packageManifestModuleFormatVersion :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm Int+packageManifestModuleFormatVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the package field of hydra.build.format.PackageManifest+packageManifestPackage :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm Packaging.PackageName+packageManifestPackage x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "package")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.PackageManifest+packageManifestPackageManifest :: Typed.TypedName Format.PackageManifest+packageManifestPackageManifest = Typed.TypedName (Core.Name "hydra.build.format.PackageManifest")++-- | DSL accessor for the testModules field of hydra.build.format.PackageManifest+packageManifestTestModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName]+packageManifestTestModules x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+        Core.projectionFieldName = (Core.Name "testModules")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the mainDslModules field of hydra.build.format.PackageManifest+packageManifestWithMainDslModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm Format.PackageManifest+packageManifestWithMainDslModules original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "testModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mainEncodingModules field of hydra.build.format.PackageManifest+packageManifestWithMainEncodingModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm Format.PackageManifest+packageManifestWithMainEncodingModules original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "testModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainDslModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mainModules field of hydra.build.format.PackageManifest+packageManifestWithMainModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm Format.PackageManifest+packageManifestWithMainModules original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "testModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainDslModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the manifestFormatVersion field of hydra.build.format.PackageManifest+packageManifestWithManifestFormatVersion :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm Int -> Typed.TypedTerm Format.PackageManifest+packageManifestWithManifestFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "testModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainDslModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the moduleFormatVersion field of hydra.build.format.PackageManifest+packageManifestWithModuleFormatVersion :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm Int -> Typed.TypedTerm Format.PackageManifest+packageManifestWithModuleFormatVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "testModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainDslModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the package field of hydra.build.format.PackageManifest+packageManifestWithPackage :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm Packaging.PackageName -> Typed.TypedTerm Format.PackageManifest+packageManifestWithPackage original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "testModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainDslModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the testModules field of hydra.build.format.PackageManifest+packageManifestWithTestModules :: Typed.TypedTerm Format.PackageManifest -> Typed.TypedTerm [Packaging.ModuleName] -> Typed.TypedTerm Format.PackageManifest+packageManifestWithTestModules original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "manifestFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "moduleFormatVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainDslModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageManifest"),+              Core.projectionFieldName = (Core.Name "mainEncodingModules")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.PackageValidationConfiguration+packageValidationConfiguration :: Typed.TypedTerm (Maybe Format.PackageValidationProfile) -> Typed.TypedTerm (Maybe Format.ModuleValidationProfile) -> Typed.TypedTerm (Maybe Format.TypeValidationProfile) -> Typed.TypedTerm (Maybe Format.TermValidationProfile) -> Typed.TypedTerm Format.PackageValidationConfiguration+packageValidationConfiguration package module_ type_ term =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Typed.unTypedTerm package)},+        Core.Field {+          Core.fieldName = (Core.Name "module"),+          Core.fieldTerm = (Typed.unTypedTerm module_)},+        Core.Field {+          Core.fieldName = (Core.Name "type"),+          Core.fieldTerm = (Typed.unTypedTerm type_)},+        Core.Field {+          Core.fieldName = (Core.Name "term"),+          Core.fieldTerm = (Typed.unTypedTerm term)}]}))++-- | DSL accessor for the module field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationModule :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.ModuleValidationProfile)+packageValidationConfigurationModule x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+        Core.projectionFieldName = (Core.Name "module")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the package field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationPackage :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.PackageValidationProfile)+packageValidationConfigurationPackage x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+        Core.projectionFieldName = (Core.Name "package")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationPackageValidationConfiguration :: Typed.TypedName Format.PackageValidationConfiguration+packageValidationConfigurationPackageValidationConfiguration =+    Typed.TypedName (Core.Name "hydra.build.format.PackageValidationConfiguration")++-- | DSL accessor for the term field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationTerm :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.TermValidationProfile)+packageValidationConfigurationTerm x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+        Core.projectionFieldName = (Core.Name "term")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationType :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.TypeValidationProfile)+packageValidationConfigurationType x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+        Core.projectionFieldName = (Core.Name "type")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the module field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationWithModule :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.ModuleValidationProfile) -> Typed.TypedTerm Format.PackageValidationConfiguration+packageValidationConfigurationWithModule original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "package")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "module"),+          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.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "type")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "term"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "term")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the package field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationWithPackage :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.PackageValidationProfile) -> Typed.TypedTerm Format.PackageValidationConfiguration+packageValidationConfigurationWithPackage original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          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.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "module")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "type"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "type")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "term"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "term")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the term field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationWithTerm :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.TermValidationProfile) -> Typed.TypedTerm Format.PackageValidationConfiguration+packageValidationConfigurationWithTerm original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "package")})),+            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.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "module")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "type"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "type")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "term"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.build.format.PackageValidationConfiguration+packageValidationConfigurationWithType :: Typed.TypedTerm Format.PackageValidationConfiguration -> Typed.TypedTerm (Maybe Format.TypeValidationProfile) -> Typed.TypedTerm Format.PackageValidationConfiguration+packageValidationConfigurationWithType original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "package")})),+            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.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "module")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "type"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "term"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+              Core.projectionFieldName = (Core.Name "term")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.build.format.PackageValidationProfile+packageValidationProfile :: Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.PackageValidationProfile+packageValidationProfile conflictingModuleName duplicateModuleName nameConvention =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "conflictingModuleName"),+          Core.fieldTerm = (Typed.unTypedTerm conflictingModuleName)},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateModuleName"),+          Core.fieldTerm = (Typed.unTypedTerm duplicateModuleName)},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Typed.unTypedTerm nameConvention)}]}))++-- | DSL accessor for the conflictingModuleName field of hydra.build.format.PackageValidationProfile+packageValidationProfileConflictingModuleName :: Typed.TypedTerm Format.PackageValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+packageValidationProfileConflictingModuleName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+        Core.projectionFieldName = (Core.Name "conflictingModuleName")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the duplicateModuleName field of hydra.build.format.PackageValidationProfile+packageValidationProfileDuplicateModuleName :: Typed.TypedTerm Format.PackageValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+packageValidationProfileDuplicateModuleName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+        Core.projectionFieldName = (Core.Name "duplicateModuleName")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the nameConvention field of hydra.build.format.PackageValidationProfile+packageValidationProfileNameConvention :: Typed.TypedTerm Format.PackageValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+packageValidationProfileNameConvention x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+        Core.projectionFieldName = (Core.Name "nameConvention")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.PackageValidationProfile+packageValidationProfilePackageValidationProfile :: Typed.TypedName Format.PackageValidationProfile+packageValidationProfilePackageValidationProfile =+    Typed.TypedName (Core.Name "hydra.build.format.PackageValidationProfile")++-- | DSL updater for the conflictingModuleName field of hydra.build.format.PackageValidationProfile+packageValidationProfileWithConflictingModuleName :: Typed.TypedTerm Format.PackageValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.PackageValidationProfile+packageValidationProfileWithConflictingModuleName original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "conflictingModuleName"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the duplicateModuleName field of hydra.build.format.PackageValidationProfile+packageValidationProfileWithDuplicateModuleName :: Typed.TypedTerm Format.PackageValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.PackageValidationProfile+packageValidationProfileWithDuplicateModuleName original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "conflictingModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+              Core.projectionFieldName = (Core.Name "conflictingModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateModuleName"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+              Core.projectionFieldName = (Core.Name "nameConvention")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the nameConvention field of hydra.build.format.PackageValidationProfile+packageValidationProfileWithNameConvention :: Typed.TypedTerm Format.PackageValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.PackageValidationProfile+packageValidationProfileWithNameConvention original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "conflictingModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+              Core.projectionFieldName = (Core.Name "conflictingModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateModuleName"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateModuleName")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.build.format.RepositoryDescriptor+repositoryDescriptor :: Typed.TypedTerm Packaging.Version -> Typed.TypedTerm Packaging.Version -> Typed.TypedTerm (M.Map Format.LanguageName Format.HostOverride) -> Typed.TypedTerm String -> Typed.TypedTerm String -> Typed.TypedTerm String -> Typed.TypedTerm String -> Typed.TypedTerm [Packaging.PackageName] -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptor currentVersion hostVersion hostOverrides group author url license packages =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Typed.unTypedTerm currentVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Typed.unTypedTerm hostVersion)},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Typed.unTypedTerm hostOverrides)},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Typed.unTypedTerm group)},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Typed.unTypedTerm author)},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Typed.unTypedTerm url)},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Typed.unTypedTerm license)},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Typed.unTypedTerm packages)}]}))++-- | DSL accessor for the author field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorAuthor :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String+repositoryDescriptorAuthor x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "author")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the currentVersion field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorCurrentVersion :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm Packaging.Version+repositoryDescriptorCurrentVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "currentVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the group field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorGroup :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String+repositoryDescriptorGroup x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "group")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the hostOverrides field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorHostOverrides :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm (M.Map Format.LanguageName Format.HostOverride)+repositoryDescriptorHostOverrides x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "hostOverrides")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the hostVersion field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorHostVersion :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm Packaging.Version+repositoryDescriptorHostVersion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "hostVersion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the license field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorLicense :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String+repositoryDescriptorLicense x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "license")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the packages field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorPackages :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm [Packaging.PackageName]+repositoryDescriptorPackages x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "packages")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.RepositoryDescriptor+repositoryDescriptorRepositoryDescriptor :: Typed.TypedName Format.RepositoryDescriptor+repositoryDescriptorRepositoryDescriptor = Typed.TypedName (Core.Name "hydra.build.format.RepositoryDescriptor")++-- | DSL accessor for the url field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorUrl :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String+repositoryDescriptorUrl x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+        Core.projectionFieldName = (Core.Name "url")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the author field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithAuthor :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithAuthor original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the currentVersion field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithCurrentVersion :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm Packaging.Version -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithCurrentVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the group field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithGroup :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithGroup original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the hostOverrides field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithHostOverrides :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm (M.Map Format.LanguageName Format.HostOverride) -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithHostOverrides original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the hostVersion field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithHostVersion :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm Packaging.Version -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithHostVersion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the license field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithLicense :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithLicense original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the packages field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithPackages :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm [Packaging.PackageName] -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithPackages original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "url")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the url field of hydra.build.format.RepositoryDescriptor+repositoryDescriptorWithUrl :: Typed.TypedTerm Format.RepositoryDescriptor -> Typed.TypedTerm String -> Typed.TypedTerm Format.RepositoryDescriptor+repositoryDescriptorWithUrl original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "currentVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostVersion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "hostOverrides")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "group")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "author")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "license")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+              Core.projectionFieldName = (Core.Name "packages")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the error variant of hydra.build.format.Severity+severityError :: Typed.TypedTerm Format.Severity+severityError =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.Severity"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "error"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL name token for hydra.build.format.Severity+severitySeverity :: Typed.TypedName Format.Severity+severitySeverity = Typed.TypedName (Core.Name "hydra.build.format.Severity")++-- | DSL injection for the warning variant of hydra.build.format.Severity+severityWarning :: Typed.TypedTerm Format.Severity+severityWarning =+    Typed.TypedTerm (Core.TermInject (Core.Injection {+      Core.injectionTypeName = (Core.Name "hydra.build.format.Severity"),+      Core.injectionField = Core.Field {+        Core.fieldName = (Core.Name "warning"),+        Core.fieldTerm = Core.TermUnit}}))++-- | DSL constructor for the hydra.build.format.Sha256Hash wrapper+sha256Hash :: Typed.TypedTerm String -> Typed.TypedTerm Format.Sha256Hash+sha256Hash x =+    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {+      Core.wrappedTermTypeName = (Core.Name "hydra.build.format.Sha256Hash"),+      Core.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.Sha256Hash+sha256HashSha256Hash :: Typed.TypedName Format.Sha256Hash+sha256HashSha256Hash = Typed.TypedName (Core.Name "hydra.build.format.Sha256Hash")++-- | DSL constructor for hydra.build.format.TermValidationProfile+termValidationProfile :: Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TermValidationProfile+termValidationProfile duplicateBinding emptyTermAnnotation undefinedVariable =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "duplicateBinding"),+          Core.fieldTerm = (Typed.unTypedTerm duplicateBinding)},+        Core.Field {+          Core.fieldName = (Core.Name "emptyTermAnnotation"),+          Core.fieldTerm = (Typed.unTypedTerm emptyTermAnnotation)},+        Core.Field {+          Core.fieldName = (Core.Name "undefinedVariable"),+          Core.fieldTerm = (Typed.unTypedTerm undefinedVariable)}]}))++-- | DSL accessor for the duplicateBinding field of hydra.build.format.TermValidationProfile+termValidationProfileDuplicateBinding :: Typed.TypedTerm Format.TermValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+termValidationProfileDuplicateBinding x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+        Core.projectionFieldName = (Core.Name "duplicateBinding")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the emptyTermAnnotation field of hydra.build.format.TermValidationProfile+termValidationProfileEmptyTermAnnotation :: Typed.TypedTerm Format.TermValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+termValidationProfileEmptyTermAnnotation x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+        Core.projectionFieldName = (Core.Name "emptyTermAnnotation")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.TermValidationProfile+termValidationProfileTermValidationProfile :: Typed.TypedName Format.TermValidationProfile+termValidationProfileTermValidationProfile = Typed.TypedName (Core.Name "hydra.build.format.TermValidationProfile")++-- | DSL accessor for the undefinedVariable field of hydra.build.format.TermValidationProfile+termValidationProfileUndefinedVariable :: Typed.TypedTerm Format.TermValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+termValidationProfileUndefinedVariable x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+        Core.projectionFieldName = (Core.Name "undefinedVariable")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the duplicateBinding field of hydra.build.format.TermValidationProfile+termValidationProfileWithDuplicateBinding :: Typed.TypedTerm Format.TermValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TermValidationProfile+termValidationProfileWithDuplicateBinding original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "duplicateBinding"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "emptyTermAnnotation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+              Core.projectionFieldName = (Core.Name "emptyTermAnnotation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "undefinedVariable"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+              Core.projectionFieldName = (Core.Name "undefinedVariable")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the emptyTermAnnotation field of hydra.build.format.TermValidationProfile+termValidationProfileWithEmptyTermAnnotation :: Typed.TypedTerm Format.TermValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TermValidationProfile+termValidationProfileWithEmptyTermAnnotation original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "duplicateBinding"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateBinding")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "emptyTermAnnotation"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "undefinedVariable"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+              Core.projectionFieldName = (Core.Name "undefinedVariable")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the undefinedVariable field of hydra.build.format.TermValidationProfile+termValidationProfileWithUndefinedVariable :: Typed.TypedTerm Format.TermValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TermValidationProfile+termValidationProfileWithUndefinedVariable original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "duplicateBinding"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateBinding")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "emptyTermAnnotation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+              Core.projectionFieldName = (Core.Name "emptyTermAnnotation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "undefinedVariable"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.build.format.TypeValidationProfile+typeValidationProfile :: Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TypeValidationProfile+typeValidationProfile emptyAnnotation duplicateField singleVariantUnion =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "emptyAnnotation"),+          Core.fieldTerm = (Typed.unTypedTerm emptyAnnotation)},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateField"),+          Core.fieldTerm = (Typed.unTypedTerm duplicateField)},+        Core.Field {+          Core.fieldName = (Core.Name "singleVariantUnion"),+          Core.fieldTerm = (Typed.unTypedTerm singleVariantUnion)}]}))++-- | DSL accessor for the duplicateField field of hydra.build.format.TypeValidationProfile+typeValidationProfileDuplicateField :: Typed.TypedTerm Format.TypeValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+typeValidationProfileDuplicateField x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+        Core.projectionFieldName = (Core.Name "duplicateField")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the emptyAnnotation field of hydra.build.format.TypeValidationProfile+typeValidationProfileEmptyAnnotation :: Typed.TypedTerm Format.TypeValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+typeValidationProfileEmptyAnnotation x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+        Core.projectionFieldName = (Core.Name "emptyAnnotation")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the singleVariantUnion field of hydra.build.format.TypeValidationProfile+typeValidationProfileSingleVariantUnion :: Typed.TypedTerm Format.TypeValidationProfile -> Typed.TypedTerm (Maybe Format.Severity)+typeValidationProfileSingleVariantUnion x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermProject (Core.Projection {+        Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+        Core.projectionFieldName = (Core.Name "singleVariantUnion")})),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.build.format.TypeValidationProfile+typeValidationProfileTypeValidationProfile :: Typed.TypedName Format.TypeValidationProfile+typeValidationProfileTypeValidationProfile = Typed.TypedName (Core.Name "hydra.build.format.TypeValidationProfile")++-- | DSL updater for the duplicateField field of hydra.build.format.TypeValidationProfile+typeValidationProfileWithDuplicateField :: Typed.TypedTerm Format.TypeValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TypeValidationProfile+typeValidationProfileWithDuplicateField original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "emptyAnnotation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+              Core.projectionFieldName = (Core.Name "emptyAnnotation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateField"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "singleVariantUnion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+              Core.projectionFieldName = (Core.Name "singleVariantUnion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the emptyAnnotation field of hydra.build.format.TypeValidationProfile+typeValidationProfileWithEmptyAnnotation :: Typed.TypedTerm Format.TypeValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TypeValidationProfile+typeValidationProfileWithEmptyAnnotation original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "emptyAnnotation"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateField"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateField")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "singleVariantUnion"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+              Core.projectionFieldName = (Core.Name "singleVariantUnion")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the singleVariantUnion field of hydra.build.format.TypeValidationProfile+typeValidationProfileWithSingleVariantUnion :: Typed.TypedTerm Format.TypeValidationProfile -> Typed.TypedTerm (Maybe Format.Severity) -> Typed.TypedTerm Format.TypeValidationProfile+typeValidationProfileWithSingleVariantUnion original newVal =+    Typed.TypedTerm (Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "emptyAnnotation"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+              Core.projectionFieldName = (Core.Name "emptyAnnotation")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateField"),+          Core.fieldTerm = (Core.TermApplication (Core.Application {+            Core.applicationFunction = (Core.TermProject (Core.Projection {+              Core.projectionTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+              Core.projectionFieldName = (Core.Name "duplicateField")})),+            Core.applicationArgument = (Typed.unTypedTerm original)}))},+        Core.Field {+          Core.fieldName = (Core.Name "singleVariantUnion"),+          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the body of hydra.build.format.LanguageName+unLanguageName :: Typed.TypedTerm Format.LanguageName -> Typed.TypedTerm String+unLanguageName x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.build.format.LanguageName")),+      Core.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.build.format.Sha256Hash+unSha256Hash :: Typed.TypedTerm Format.Sha256Hash -> Typed.TypedTerm String+unSha256Hash x =+    Typed.TypedTerm (Core.TermApplication (Core.Application {+      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.build.format.Sha256Hash")),+      Core.applicationArgument = (Typed.unTypedTerm x)}))
+ src/main/haskell/Hydra/Encode/Build/Format.hs view
@@ -0,0 +1,412 @@+-- Note: this is an automatically generated file. Do not edit.++-- | Term encoders for hydra.build.format++module Hydra.Encode.Build.Format where++import qualified Hydra.Build.Format as Format+import qualified Hydra.Core as Core+import qualified Hydra.Encode.Packaging as Packaging+import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Overlay.Haskell.Lib.Maps as Maps+import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)+import qualified Data.Scientific as Sci++-- | Encoder for hydra.build.format.DefinitionNameConventionProfile+definitionNameConventionProfile :: Format.DefinitionNameConventionProfile -> Core.Term+definitionNameConventionProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionNameConventionProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (severity (Format.definitionNameConventionProfileSeverity x))},+        Core.Field {+          Core.fieldName = (Core.Name "allowUnderscores"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralBoolean x2)) (Format.definitionNameConventionProfileAllowUnderscores x))}]})++-- | Encoder for hydra.build.format.DefinitionValidationProfile+definitionValidationProfile :: Format.DefinitionValidationProfile -> Core.Term+definitionValidationProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DefinitionValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "hasDescription"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map documentationProfile opt)) (Format.definitionValidationProfileHasDescription x))},+        Core.Field {+          Core.fieldName = (Core.Name "ordering"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.definitionValidationProfileOrdering x))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map definitionNameConventionProfile opt)) (Format.definitionValidationProfileNameConvention x))},+        Core.Field {+          Core.fieldName = (Core.Name "notInModuleName"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.definitionValidationProfileNotInModuleName x))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateName"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.definitionValidationProfileDuplicateName x))}]})++-- | Encoder for hydra.build.format.DigestEntry+digestEntry :: Format.DigestEntry -> Core.Term+digestEntry x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DigestEntry"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "kind"),+          Core.fieldTerm = (digestKind (Format.digestEntryKind x))},+        Core.Field {+          Core.fieldName = (Core.Name "hash"),+          Core.fieldTerm = (sha256Hash (Format.digestEntryHash x))}]})++-- | Encoder for hydra.build.format.DigestKind+digestKind :: Format.DigestKind -> Core.Term+digestKind x =+    case x of+      Format.DigestKindDslSource -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "dslSource"),+          Core.fieldTerm = Core.TermUnit}})+      Format.DigestKindJsonFile -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "jsonFile"),+          Core.fieldTerm = Core.TermUnit}})+      Format.DigestKindTargetFile -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "targetFile"),+          Core.fieldTerm = Core.TermUnit}})+      Format.DigestKindRuntimeFile -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "runtimeFile"),+          Core.fieldTerm = Core.TermUnit}})+      Format.DigestKindOther -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.DigestKind"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "other"),+          Core.fieldTerm = Core.TermUnit}})++-- | Encoder for hydra.build.format.DocumentationProfile+documentationProfile :: Format.DocumentationProfile -> Core.Term+documentationProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.DocumentationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "severity"),+          Core.fieldTerm = (severity (Format.documentationProfileSeverity x))},+        Core.Field {+          Core.fieldName = (Core.Name "exemptDeprecated"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralBoolean x2)) (Format.documentationProfileExemptDeprecated x))}]})++-- | Encoder for hydra.build.format.Generation+generation :: Format.Generation -> Core.Term+generation x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.Generation"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "generatorId"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.generationGeneratorId x))},+        Core.Field {+          Core.fieldName = (Core.Name "mode"),+          Core.fieldTerm = (generationMode (Format.generationMode x))},+        Core.Field {+          Core.fieldName = (Core.Name "host"),+          Core.fieldTerm = (languageName (Format.generationHost x))},+        Core.Field {+          Core.fieldName = (Core.Name "hydraVersion"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map Packaging.version opt)) (Format.generationHydraVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "revision"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map (\x2 -> Core.TermLiteral (Core.LiteralString x2)) opt)) (Format.generationRevision x))},+        Core.Field {+          Core.fieldName = (Core.Name "timestamp"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map (\x2 -> Core.TermLiteral (Core.LiteralString x2)) opt)) (Format.generationTimestamp x))}]})++-- | Encoder for hydra.build.format.GenerationMode+generationMode :: Format.GenerationMode -> Core.Term+generationMode x =+    case x of+      Format.GenerationModePublished -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.GenerationMode"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "published"),+          Core.fieldTerm = Core.TermUnit}})+      Format.GenerationModeShim -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.GenerationMode"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "shim"),+          Core.fieldTerm = Core.TermUnit}})++-- | Encoder for hydra.build.format.HostOverride+hostOverride :: Format.HostOverride -> Core.Term+hostOverride x =+    case x of+      Format.HostOverrideLocal -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.HostOverride"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "local"),+          Core.fieldTerm = Core.TermUnit}})+      Format.HostOverrideVersion v0 -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.HostOverride"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "version"),+          Core.fieldTerm = (Packaging.version v0)}})++-- | Encoder for hydra.build.format.InputDigest+inputDigest :: Format.InputDigest -> Core.Term+inputDigest x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.InputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.inputDigestDigestFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.inputDigestModuleFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map sha256Hash opt)) (Format.inputDigestSelfHash x))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap Packaging.packageName sha256Hash m)) (Format.inputDigestDependencyHashes x))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleHashes"),+          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap Packaging.moduleName sha256Hash m)) (Format.inputDigestModuleHashes x))}]})++-- | Encoder for hydra.build.format.LanguageName+languageName :: Format.LanguageName -> Core.Term+languageName x =+    Core.TermWrap (Core.WrappedTerm {+      Core.wrappedTermTypeName = (Core.Name "hydra.build.format.LanguageName"),+      Core.wrappedTermBody = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.unLanguageName x))})++-- | Encoder for hydra.build.format.ModuleValidationProfile+moduleValidationProfile :: Format.ModuleValidationProfile -> Core.Term+moduleValidationProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.ModuleValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "definitions"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map definitionValidationProfile opt)) (Format.moduleValidationProfileDefinitions x))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.moduleValidationProfileNameConvention x))},+        Core.Field {+          Core.fieldName = (Core.Name "conflictingVariantName"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.moduleValidationProfileConflictingVariantName x))}]})++-- | Encoder for hydra.build.format.OutputDigest+outputDigest :: Format.OutputDigest -> Core.Term+outputDigest x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.OutputDigest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "digestFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.outputDigestDigestFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.outputDigestModuleFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "generator"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.outputDigestGenerator x))},+        Core.Field {+          Core.fieldName = (Core.Name "generation"),+          Core.fieldTerm = (generation (Format.outputDigestGeneration x))},+        Core.Field {+          Core.fieldName = (Core.Name "selfHash"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map sha256Hash opt)) (Format.outputDigestSelfHash x))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencyHashes"),+          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap Packaging.packageName sha256Hash m)) (Format.outputDigestDependencyHashes x))},+        Core.Field {+          Core.fieldName = (Core.Name "inputs"),+          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap (\x2 -> Core.TermLiteral (Core.LiteralString x2)) digestEntry m)) (Format.outputDigestInputs x))},+        Core.Field {+          Core.fieldName = (Core.Name "outputs"),+          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap (\x2 -> Core.TermLiteral (Core.LiteralString x2)) digestEntry m)) (Format.outputDigestOutputs x))}]})++-- | Encoder for hydra.build.format.PackageDescriptor+packageDescriptor :: Format.PackageDescriptor -> Core.Term+packageDescriptor x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "packageFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.packageDescriptorPackageFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "name"),+          Core.fieldTerm = (Packaging.packageName (Format.packageDescriptorName x))},+        Core.Field {+          Core.fieldName = (Core.Name "description"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.packageDescriptorDescription x))},+        Core.Field {+          Core.fieldName = (Core.Name "sourceLanguage"),+          Core.fieldTerm = (languageName (Format.packageDescriptorSourceLanguage x))},+        Core.Field {+          Core.fieldName = (Core.Name "targetLanguages"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map (\xs -> Core.TermList (Lists.map languageName xs)) opt)) (Format.packageDescriptorTargetLanguages x))},+        Core.Field {+          Core.fieldName = (Core.Name "dependencies"),+          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.packageName xs)) (Format.packageDescriptorDependencies x))},+        Core.Field {+          Core.fieldName = (Core.Name "validation"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map packageValidationConfiguration opt)) (Format.packageDescriptorValidation x))}]})++-- | Encoder for hydra.build.format.PackageManifest+packageManifest :: Format.PackageManifest -> Core.Term+packageManifest x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageManifest"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "manifestFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.packageManifestManifestFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "moduleFormatVersion"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Format.packageManifestModuleFormatVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = (Packaging.packageName (Format.packageManifestPackage x))},+        Core.Field {+          Core.fieldName = (Core.Name "mainModules"),+          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.moduleName xs)) (Format.packageManifestMainModules x))},+        Core.Field {+          Core.fieldName = (Core.Name "testModules"),+          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.moduleName xs)) (Format.packageManifestTestModules x))},+        Core.Field {+          Core.fieldName = (Core.Name "mainDslModules"),+          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.moduleName xs)) (Format.packageManifestMainDslModules x))},+        Core.Field {+          Core.fieldName = (Core.Name "mainEncodingModules"),+          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.moduleName xs)) (Format.packageManifestMainEncodingModules x))}]})++-- | Encoder for hydra.build.format.PackageValidationConfiguration+packageValidationConfiguration :: Format.PackageValidationConfiguration -> Core.Term+packageValidationConfiguration x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationConfiguration"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "package"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map packageValidationProfile opt)) (Format.packageValidationConfigurationPackage x))},+        Core.Field {+          Core.fieldName = (Core.Name "module"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map moduleValidationProfile opt)) (Format.packageValidationConfigurationModule x))},+        Core.Field {+          Core.fieldName = (Core.Name "type"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map typeValidationProfile opt)) (Format.packageValidationConfigurationType x))},+        Core.Field {+          Core.fieldName = (Core.Name "term"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map termValidationProfile opt)) (Format.packageValidationConfigurationTerm x))}]})++-- | Encoder for hydra.build.format.PackageValidationProfile+packageValidationProfile :: Format.PackageValidationProfile -> Core.Term+packageValidationProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.PackageValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "conflictingModuleName"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.packageValidationProfileConflictingModuleName x))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateModuleName"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.packageValidationProfileDuplicateModuleName x))},+        Core.Field {+          Core.fieldName = (Core.Name "nameConvention"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.packageValidationProfileNameConvention x))}]})++-- | Encoder for hydra.build.format.RepositoryDescriptor+repositoryDescriptor :: Format.RepositoryDescriptor -> Core.Term+repositoryDescriptor x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.RepositoryDescriptor"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "currentVersion"),+          Core.fieldTerm = (Packaging.version (Format.repositoryDescriptorCurrentVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "hostVersion"),+          Core.fieldTerm = (Packaging.version (Format.repositoryDescriptorHostVersion x))},+        Core.Field {+          Core.fieldName = (Core.Name "hostOverrides"),+          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap languageName hostOverride m)) (Format.repositoryDescriptorHostOverrides x))},+        Core.Field {+          Core.fieldName = (Core.Name "group"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.repositoryDescriptorGroup x))},+        Core.Field {+          Core.fieldName = (Core.Name "author"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.repositoryDescriptorAuthor x))},+        Core.Field {+          Core.fieldName = (Core.Name "url"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.repositoryDescriptorUrl x))},+        Core.Field {+          Core.fieldName = (Core.Name "license"),+          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.repositoryDescriptorLicense x))},+        Core.Field {+          Core.fieldName = (Core.Name "packages"),+          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.packageName xs)) (Format.repositoryDescriptorPackages x))}]})++-- | Encoder for hydra.build.format.Severity+severity :: Format.Severity -> Core.Term+severity x =+    case x of+      Format.SeverityError -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.Severity"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "error"),+          Core.fieldTerm = Core.TermUnit}})+      Format.SeverityWarning -> Core.TermInject (Core.Injection {+        Core.injectionTypeName = (Core.Name "hydra.build.format.Severity"),+        Core.injectionField = Core.Field {+          Core.fieldName = (Core.Name "warning"),+          Core.fieldTerm = Core.TermUnit}})++-- | Encoder for hydra.build.format.Sha256Hash+sha256Hash :: Format.Sha256Hash -> Core.Term+sha256Hash x =+    Core.TermWrap (Core.WrappedTerm {+      Core.wrappedTermTypeName = (Core.Name "hydra.build.format.Sha256Hash"),+      Core.wrappedTermBody = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Format.unSha256Hash x))})++-- | Encoder for hydra.build.format.TermValidationProfile+termValidationProfile :: Format.TermValidationProfile -> Core.Term+termValidationProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TermValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "duplicateBinding"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.termValidationProfileDuplicateBinding x))},+        Core.Field {+          Core.fieldName = (Core.Name "emptyTermAnnotation"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.termValidationProfileEmptyTermAnnotation x))},+        Core.Field {+          Core.fieldName = (Core.Name "undefinedVariable"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.termValidationProfileUndefinedVariable x))}]})++-- | Encoder for hydra.build.format.TypeValidationProfile+typeValidationProfile :: Format.TypeValidationProfile -> Core.Term+typeValidationProfile x =+    Core.TermRecord (Core.Record {+      Core.recordTypeName = (Core.Name "hydra.build.format.TypeValidationProfile"),+      Core.recordFields = [+        Core.Field {+          Core.fieldName = (Core.Name "emptyAnnotation"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.typeValidationProfileEmptyAnnotation x))},+        Core.Field {+          Core.fieldName = (Core.Name "duplicateField"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.typeValidationProfileDuplicateField x))},+        Core.Field {+          Core.fieldName = (Core.Name "singleVariantUnion"),+          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map severity opt)) (Format.typeValidationProfileSingleVariantUnion x))}]})