packages feed

hydra-java 0.17.3 → 0.17.4

raw patch · 9 files changed

+87/−309 lines, 9 filesdep ~hydra-jvmdep ~hydra-kernelPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: hydra-jvm, hydra-kernel

API changes (from Hackage documentation)

- Hydra.Decode.Gradle: antlrConfig :: Graph -> Term -> Either DecodingError AntlrConfig
- Hydra.Decode.Gradle: gradleBuildConfiguration :: Graph -> Term -> Either DecodingError GradleBuildConfiguration
- Hydra.Encode.Gradle: antlrConfig :: AntlrConfig -> Term
- Hydra.Encode.Gradle: gradleBuildConfiguration :: GradleBuildConfiguration -> Term
+ Hydra.Java.Utils: overlayLibPairFor :: String -> (ModuleName, PackageName)
- Hydra.Java.Coder: encodeDefinitions :: Module -> [Definition] -> InferenceContext -> Graph -> Either Error (Map Name CompilationUnit)
+ Hydra.Java.Coder: encodeDefinitions :: Set String -> Module -> [Definition] -> InferenceContext -> Graph -> Either Error (Map Name CompilationUnit)
- Hydra.Java.Coder: moduleToJava :: Module -> [Definition] -> InferenceContext -> Graph -> Either Error (Map String String)
+ Hydra.Java.Coder: moduleToJava :: Set String -> Module -> [Definition] -> InferenceContext -> Graph -> Either Error (Map String String)
- Hydra.Java.Utils: importAliasesForModule :: Module -> Aliases
+ Hydra.Java.Utils: importAliasesForModule :: Set String -> Module -> Aliases
- Hydra.Java.Utils: overlayJavaLibPackageAliases :: Map ModuleName PackageName
+ Hydra.Java.Utils: overlayJavaLibPackageAliases :: Set String -> Map ModuleName PackageName

Files

CHANGELOG.md view
@@ -15,6 +15,46 @@  --- +## [0.17.3] - 2026-08-01++Point release on the 0.17.x line, focused on **release-artifact integrity**. The 0.17.2 release shipped+two defects that every existing check missed because they validated only the generated `dist/` tree, never+the packaged artifact: the `hydra-build` sdist shipped 3 of 8 modules, and the published Java `hydra-kernel`+jar was a whole [#417](https://github.com/CategoricalData/hydra/issues/417) rename behind. This release adds+an artifact-level publish-completeness gate that inspects the actual uploaded archive, closing that class of+defect across all five registries.++### Highlights++- **Artifact-content completeness gate** ([#621](https://github.com/CategoricalData/hydra/issues/621)):+  every publish path (Hackage sdist, Maven-Java jar, Maven-Scala jar, PyPI wheel, npm tarball) now inspects+  the *packaged* archive and hard-fails if any module a package's manifest declares is missing. The gate also+  asserts the post-#417 class names are present in the Java kernel jar.++### Bug fixes++- **PyPI wheels dropped non-`hydra.*` roots** ([#621](https://github.com/CategoricalData/hydra/issues/621)):+  the wheel packaging hardcoded `packages = ["src/main/python/hydra"]`, silently omitting `hydra-pg`'s+  `com.gdblab.*` and `openGql.*` modules. The generator now ships every emitted top-level root.++### Improvements++- **CI guard for dist-tree completeness** ([#524](https://github.com/CategoricalData/hydra/issues/524)):+  asserts every manifest `mainModules` namespace is emitted into `dist/haskell`, catching the 0.17.2+  `hydra-build` truncation at the tree level (the artifact gate is the packaged-archive counterpart).+- **Manifest generation extracted** into `Hydra.ManifestGeneration`, and the structurally-unneeded #607+  sed shims dropped ([#622](https://github.com/CategoricalData/hydra/issues/622)).+- **Release-verification signing fix** ([#441](https://github.com/CategoricalData/hydra/issues/441)):+  sign the reproducible uncompressed `.tar` and verify the `.asc` against the GitHub Release asset.+- **Java CI signing gate** ([#591](https://github.com/CategoricalData/hydra/issues/591)): `publishToMavenLocal`+  skips gpg signing when no key is present.++### Internal++- Version bump to 0.17.3; `hostVersion` advanced to 0.17.2 and the temporary #417 Java/Python local-host+  shims removed now that 0.17.2 is published on the registries+  ([#417](https://github.com/CategoricalData/hydra/issues/417)).+ ## [0.17.2] - 2026-07-28  Point release on the 0.17.x line. Themes: promotion of the generator's routing and manifest
hydra-java.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           hydra-java-version:        0.17.3+version:        0.17.4 synopsis:       Hydra's Java coder: emit Java source from Hydra modules description:    Hydra is an implementation of the LambdaGraph data model, which takes advantage of an isomorphism between labeled hypergraphs and typed lambda calculus: in Hydra, "graphs are programs, and programs are graphs". Java support for Hydra category:       Data@@ -27,11 +27,9 @@  library   exposed-modules:-      Hydra.Decode.Gradle       Hydra.Dsl.Java.Environment       Hydra.Dsl.Java.Language       Hydra.Dsl.Java.Syntax-      Hydra.Encode.Gradle       Hydra.Gradle       Hydra.Java.Coder       Hydra.Java.Environment@@ -48,7 +46,7 @@   build-depends:       base >=4.19.0 && <4.22     , containers >=0.6.7 && <0.8-    , hydra-jvm ==0.17.3-    , hydra-kernel ==0.17.3+    , hydra-jvm ==0.17.4+    , hydra-kernel ==0.17.4     , scientific >=0.3.7 && <0.4   default-language: Haskell2010
− src/main/haskell/Hydra/Decode/Gradle.hs
@@ -1,56 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | Term decoders for hydra.gradle--module Hydra.Decode.Gradle where--import qualified Hydra.Core as Core-import qualified Hydra.Decode.File as File-import qualified Hydra.Decode.Packaging as Packaging-import qualified Hydra.Errors as Errors-import qualified Hydra.Extract.Core as ExtractCore-import qualified Hydra.Gradle as Gradle-import qualified Hydra.Graph as Graph-import qualified Hydra.Lexical as Lexical-import qualified Hydra.Overlay.Haskell.Lib.Eithers as Eithers-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.gradle.AntlrConfig-antlrConfig :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Gradle.AntlrConfig-antlrConfig cx raw =-    Eithers.either (\err -> Left err) (\stripped -> case stripped of-      Core.TermRecord v0 ->-        let fieldMap = ExtractCore.toFieldMap v0-        in (Eithers.bind (ExtractCore.requireField "arguments" (ExtractCore.decodeList (\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_arguments -> Eithers.bind (ExtractCore.requireField "outputDirectory" File.filePath fieldMap cx) (\field_outputDirectory -> Right (Gradle.AntlrConfig {-          Gradle.antlrConfigArguments = field_arguments,-          Gradle.antlrConfigOutputDirectory = field_outputDirectory}))))-      _ -> Left (Errors.DecodingError "expected a record of type hydra.gradle.AntlrConfig")) (ExtractCore.stripWithDecodingError cx raw)---- | Decoder for hydra.gradle.GradleBuildConfiguration-gradleBuildConfiguration :: Graph.Graph -> Core.Term -> Either Errors.DecodingError Gradle.GradleBuildConfiguration-gradleBuildConfiguration cx raw =-    Eithers.either (\err -> Left err) (\stripped -> case stripped of-      Core.TermRecord v0 ->-        let fieldMap = ExtractCore.toFieldMap v0-        in (Eithers.bind (ExtractCore.requireField "dependencies" (ExtractCore.decodeList Packaging.packageDependency) fieldMap cx) (\field_dependencies -> Eithers.bind (ExtractCore.requireField "excludes" (ExtractCore.decodeList (\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_excludes -> Eithers.bind (ExtractCore.requireField "extraSourceDirs" (ExtractCore.decodeList File.filePath) fieldMap cx) (\field_extraSourceDirs -> Eithers.bind (ExtractCore.requireField "plugins" (ExtractCore.decodeList (\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_plugins -> Eithers.bind (ExtractCore.requireField "antlr" (ExtractCore.decodeMaybe antlrConfig) fieldMap cx) (\field_antlr -> Right (Gradle.GradleBuildConfiguration {-          Gradle.gradleBuildConfigurationDependencies = field_dependencies,-          Gradle.gradleBuildConfigurationExcludes = field_excludes,-          Gradle.gradleBuildConfigurationExtraSourceDirs = field_extraSourceDirs,-          Gradle.gradleBuildConfigurationPlugins = field_plugins,-          Gradle.gradleBuildConfigurationAntlr = field_antlr})))))))-      _ -> Left (Errors.DecodingError "expected a record of type hydra.gradle.GradleBuildConfiguration")) (ExtractCore.stripWithDecodingError cx raw)
src/main/haskell/Hydra/Dsl/Java/Environment.hs view
@@ -5,11 +5,7 @@ module Hydra.Dsl.Java.Environment where  import qualified Hydra.Core as Core-import qualified Hydra.Dsl.Core as DslCore-import qualified Hydra.Dsl.Graph as DslGraph import qualified Hydra.Dsl.Java.Syntax as JavaSyntax-import qualified Hydra.Dsl.Packaging as DslPackaging-import qualified Hydra.Dsl.Typing as DslTyping import qualified Hydra.Graph as Graph import qualified Hydra.Java.Environment as Environment import qualified Hydra.Java.Syntax as Syntax
src/main/haskell/Hydra/Dsl/Java/Language.hs view
@@ -8,28 +8,6 @@ import qualified Hydra.Classes as Classes import qualified Hydra.Coders as Coders import qualified Hydra.Core as Core-import qualified Hydra.Dsl.Ast as DslAst-import qualified Hydra.Dsl.Coders as DslCoders-import qualified Hydra.Dsl.Core as DslCore-import qualified Hydra.Dsl.Error.Checking as ErrorChecking-import qualified Hydra.Dsl.Error.Core as DslErrorCore-import qualified Hydra.Dsl.Error.Packaging as DslErrorPackaging-import qualified Hydra.Dsl.Errors as DslErrors-import qualified Hydra.Dsl.Graph as DslGraph-import qualified Hydra.Dsl.Json.Model as JsonModel-import qualified Hydra.Dsl.Lexical as DslLexical-import qualified Hydra.Dsl.Packaging as DslPackaging-import qualified Hydra.Dsl.Parsing as DslParsing-import qualified Hydra.Dsl.Paths as DslPaths-import qualified Hydra.Dsl.Query as DslQuery-import qualified Hydra.Dsl.Relational as DslRelational-import qualified Hydra.Dsl.Tabular as DslTabular-import qualified Hydra.Dsl.Testing as DslTesting-import qualified Hydra.Dsl.Topology as DslTopology-import qualified Hydra.Dsl.Typing as DslTyping-import qualified Hydra.Dsl.Util as DslUtil-import qualified Hydra.Dsl.Validation as DslValidation-import qualified Hydra.Dsl.Variants as DslVariants import qualified Hydra.Error.Checking as Checking import qualified Hydra.Error.Core as ErrorCore import qualified Hydra.Error.Packaging as ErrorPackaging
src/main/haskell/Hydra/Dsl/Java/Syntax.hs view
@@ -5,7 +5,6 @@ module Hydra.Dsl.Java.Syntax where  import qualified Hydra.Core as Core-import qualified Hydra.Dsl.Core as DslCore import qualified Hydra.Java.Syntax as Syntax import qualified Hydra.Typed as Typed import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
− src/main/haskell/Hydra/Encode/Gradle.hs
@@ -1,49 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | Term encoders for hydra.gradle--module Hydra.Encode.Gradle where--import qualified Hydra.Core as Core-import qualified Hydra.Encode.File as File-import qualified Hydra.Encode.Packaging as Packaging-import qualified Hydra.Gradle as Gradle-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-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.gradle.AntlrConfig-antlrConfig :: Gradle.AntlrConfig -> Core.Term-antlrConfig x =-    Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.gradle.AntlrConfig"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "arguments"),-          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map (\x2 -> Core.TermLiteral (Core.LiteralString x2)) xs)) (Gradle.antlrConfigArguments x))},-        Core.Field {-          Core.fieldName = (Core.Name "outputDirectory"),-          Core.fieldTerm = (File.filePath (Gradle.antlrConfigOutputDirectory x))}]})---- | Encoder for hydra.gradle.GradleBuildConfiguration-gradleBuildConfiguration :: Gradle.GradleBuildConfiguration -> Core.Term-gradleBuildConfiguration x =-    Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.gradle.GradleBuildConfiguration"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "dependencies"),-          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map Packaging.packageDependency xs)) (Gradle.gradleBuildConfigurationDependencies x))},-        Core.Field {-          Core.fieldName = (Core.Name "excludes"),-          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map (\x2 -> Core.TermLiteral (Core.LiteralString x2)) xs)) (Gradle.gradleBuildConfigurationExcludes x))},-        Core.Field {-          Core.fieldName = (Core.Name "extraSourceDirs"),-          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map File.filePath xs)) (Gradle.gradleBuildConfigurationExtraSourceDirs x))},-        Core.Field {-          Core.fieldName = (Core.Name "plugins"),-          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map (\x2 -> Core.TermLiteral (Core.LiteralString x2)) xs)) (Gradle.gradleBuildConfigurationPlugins x))},-        Core.Field {-          Core.fieldName = (Core.Name "antlr"),-          Core.fieldTerm = ((\opt -> Core.TermOptional (Optionals.map antlrConfig opt)) (Gradle.gradleBuildConfigurationAntlr x))}]})
src/main/haskell/Hydra/Java/Coder.hs view
@@ -1162,10 +1162,10 @@           _ -> defaultExpr ()       _ -> Eithers.bind (encodeTerm env lhs cx g) (\jfun -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Right (applyJavaArg jfun jarg))))) -encodeDefinitions :: Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map Core.Name Syntax.CompilationUnit)-encodeDefinitions mod defs cx g =+encodeDefinitions :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map Core.Name Syntax.CompilationUnit)+encodeDefinitions overlaySubs mod defs cx g = -      let aliases = Utils.importAliasesForModule mod+      let aliases = Utils.importAliasesForModule overlaySubs mod           env =                   JavaEnvironment.JavaEnvironment {                     JavaEnvironment.javaEnvironmentAliases = aliases,@@ -2438,9 +2438,9 @@ lazyFlagsForPrimitive g name =     Optionals.cases (Maps.lookup name (Graph.graphPrimitives g)) [] (\prim -> Lists.map (\p -> Typing.parameterIsLazy p) (Typing.termSignatureParameters (Packaging.primitiveDefinitionSignature (Graph.primitiveDefinition prim)))) -moduleToJava :: Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map String String)-moduleToJava mod defs cx g =-    Eithers.bind (encodeDefinitions mod defs cx g) (\units -> Right (Maps.fromList (Lists.map (\entry ->+moduleToJava :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map String String)+moduleToJava overlaySubs mod defs cx g =+    Eithers.bind (encodeDefinitions overlaySubs mod defs cx g) (\units -> Right (Maps.fromList (Lists.map (\entry ->       let name = Pairs.first entry           unit = Pairs.second entry       in (bindingNameToFilePath name, (Serialization.printExpr (Serialization.parenthesize (Serde.compilationUnitToExpr unit))))) (Maps.toList units))))
src/main/haskell/Hydra/Java/Utils.hs view
@@ -49,6 +49,7 @@ import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum) import qualified Data.Scientific as Sci import qualified Data.Map as M+import qualified Data.Set as S  addExpressions :: [Syntax.MultiplicativeExpression] -> Syntax.AdditiveExpression addExpressions exprs =@@ -151,11 +152,11 @@       Syntax.localVariableDeclarationDeclarators = [         javaVariableDeclarator id (Just (Syntax.VariableInitializerExpression rhs))]})) -importAliasesForModule :: Packaging.Module -> Environment.Aliases-importAliasesForModule mod =+importAliasesForModule :: S.Set String -> Packaging.Module -> Environment.Aliases+importAliasesForModule overlaySubs mod =     Environment.Aliases {       Environment.aliasesCurrentNamespace = (Packaging.moduleName mod),-      Environment.aliasesPackages = overlayJavaLibPackageAliases,+      Environment.aliasesPackages = (overlayJavaLibPackageAliases overlaySubs),       Environment.aliasesBranchVars = Sets.empty,       Environment.aliasesRecursiveVars = Sets.empty,       Environment.aliasesInScopeTypeParams = Sets.empty,@@ -867,169 +868,40 @@                   javaTypeIdentifier (Optionals.cases mlocal (sanitizeJavaName local) (\l -> Strings.concat2 (Strings.concat2 (sanitizeJavaName local) ".") (sanitizeJavaName l)))       in (jid, pkg) -overlayJavaLibPackageAliases :: M.Map Packaging.ModuleName Syntax.PackageName-overlayJavaLibPackageAliases =-    Maps.fromList [-      (-        Packaging.ModuleName "hydra.lib.chars",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "chars"])),-      (-        Packaging.ModuleName "hydra.lib.effects",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "effects"])),-      (-        Packaging.ModuleName "hydra.lib.eithers",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "eithers"])),-      (-        Packaging.ModuleName "hydra.lib.equality",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "equality"])),-      (-        Packaging.ModuleName "hydra.lib.files",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "files"])),-      (-        Packaging.ModuleName "hydra.lib.functions",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "functions"])),-      (-        Packaging.ModuleName "hydra.lib.hashing",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "hashing"])),-      (-        Packaging.ModuleName "hydra.lib.lists",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "lists"])),-      (-        Packaging.ModuleName "hydra.lib.literals",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "literals"])),-      (-        Packaging.ModuleName "hydra.lib.logic",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "logic"])),-      (-        Packaging.ModuleName "hydra.lib.maps",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "maps"])),-      (-        Packaging.ModuleName "hydra.lib.math",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "math"])),-      (-        Packaging.ModuleName "hydra.lib.optionals",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "optionals"])),-      (-        Packaging.ModuleName "hydra.lib.ordering",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "ordering"])),-      (-        Packaging.ModuleName "hydra.lib.pairs",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "pairs"])),-      (-        Packaging.ModuleName "hydra.lib.regex",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "regex"])),-      (-        Packaging.ModuleName "hydra.lib.sets",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "sets"])),-      (-        Packaging.ModuleName "hydra.lib.strings",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "strings"])),-      (-        Packaging.ModuleName "hydra.lib.system",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "system"])),-      (-        Packaging.ModuleName "hydra.lib.text",-        (JavaNames.javaPackageName [-          "hydra",-          "overlay",-          "java",-          "lib",-          "text"]))]+overlayJavaLibPackageAliases :: S.Set String -> M.Map Packaging.ModuleName Syntax.PackageName+overlayJavaLibPackageAliases overlaySubs =+    Maps.fromList (Lists.map (\sub -> overlayLibPairFor sub) (Lists.filter (\sub -> Sets.member sub overlaySubs) [+      "chars",+      "effects",+      "eithers",+      "equality",+      "files",+      "functions",+      "hashing",+      "lists",+      "literals",+      "logic",+      "maps",+      "math",+      "optionals",+      "ordering",+      "pairs",+      "regex",+      "sets",+      "strings",+      "system",+      "text"]))++overlayLibPairFor :: String -> (Packaging.ModuleName, Syntax.PackageName)+overlayLibPairFor sub =+    (+      Packaging.ModuleName (Strings.concat2 "hydra.lib." sub),+      (JavaNames.javaPackageName (Lists.concat2 [+        "hydra",+        "overlay",+        "java",+        "lib"] [+        sub])))  overrideAnnotation :: Syntax.Annotation overrideAnnotation = Syntax.AnnotationMarker (Syntax.MarkerAnnotation (javaTypeName (Syntax.Identifier "Override")))