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 +8/−2
- src/main/haskell/Hydra/Build/Format.hs +470/−0
- src/main/haskell/Hydra/Build/Libraries.hs +67/−0
- src/main/haskell/Hydra/Build/ManifestWriter.hs +57/−0
- src/main/haskell/Hydra/Build/Modules.hs +3/−3
- src/main/haskell/Hydra/Build/Reconcile.hs +5/−4
- src/main/haskell/Hydra/Build/Routing.hs +5/−5
- src/main/haskell/Hydra/Decode/Build/Format.hs +415/−0
- src/main/haskell/Hydra/Dsl/Build/Format.hs +3988/−0
- src/main/haskell/Hydra/Encode/Build/Format.hs +412/−0
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))}]})