This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-dev-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new fa19b6a 2026/05/21 23:16:40: Generated dev website from
groovy-website@2131c44
fa19b6a is described below
commit fa19b6a1611371b151817639d4100403eefe1412
Author: jenkins <[email protected]>
AuthorDate: Thu May 21 23:16:40 2026 +0000
2026/05/21 23:16:40: Generated dev website from groovy-website@2131c44
---
blog/groovy6-functional.html | 25 +++++++++++++++++++++++--
search/search-index.json | 2 +-
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/blog/groovy6-functional.html b/blog/groovy6-functional.html
index 970013c..76a1b0d 100644
--- a/blog/groovy6-functional.html
+++ b/blog/groovy6-functional.html
@@ -63,7 +63,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 6 features for Functional Programmers</a></li><li><a
href='#_introduction' class='anchor-link'>Introduction</a></li><li><a
href='#_what_groovy_already_gave_you' class='anchor-link'>What Groovy already
gave you</a></li><li><a href='#_monoids_and_semigroups_checked' c [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 6 features for Functional Programmers</a></li><li><a
href='#_introduction' class='anchor-link'>Introduction</a></li><li><a
href='#_what_groovy_already_gave_you' class='anchor-link'>What Groovy already
gave you</a></li><li><a href='#_monoids_and_semigroups_checked' c [...]
<a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><img style="border-radius:50%;height:48px;width:auto"
src="img/paulk-asert.png" alt="Paul King"></a>
<div style="display:grid;align-items:center;margin:0.1ex;padding:0ex">
<div><a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><span>Paul King</span></a></div>
@@ -103,6 +103,15 @@ the simplicity of the pragmatic path with the guarantees
of the
elaborate one.</p>
</div>
<div class="paragraph">
+<p>And — relevant before assuming this means scattering annotations
+throughout your codebase — most of these declarations are a
<strong>library-side</strong>
+concern: written once by API authors, or by AI agents producing code
+that downstream readers (human or agent) can then reason about, and
+consumed by everyday application code without local annotation. We
+come back to that in <a href="#who-writes-annotations">Who writes the
+annotations?</a> below.</p>
+</div>
+<div class="paragraph">
<p>The new pieces close a handful of the gaps that send functional
programmers reaching for FunctionalJava, HighJ or Vavr when they work
on the JVM, and they fit together:</p>
@@ -772,7 +781,7 @@ spec, not as a comment.</p>
</div>
</div>
<div class="sect1">
-<h2 id="_who_writes_the_annotations">Who writes the annotations?</h2>
+<h2 id="who-writes-annotations">Who writes the annotations?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>A reader skimming this post might infer that turning these features on
@@ -814,6 +823,18 @@ yet annotated. Vavr’s control types compose through
<code>DO</code> becaus
core allow-list names them, not because Vavr was modified or because
the user wrote <code>@Monadic</code> on a wrapper.</p>
</li>
+<li>
+<p><strong>Config scripts and compile-time customisers</strong> remove the only
+annotation that user files do otherwise carry — the
+<code>@TypeChecked(extensions = '…​')</code> that turns each
checker on. A single
+<code>ASTTransformationCustomizer</code> registered in a Groovy
<code>-configscript</code>
+enables the relevant checker for an entire module; build-tool
+equivalents exist for Gradle
(<code>compileGroovy.groovyOptions.configurationScript</code>)
+and Maven. The examples in this post carry the per-file annotation as a
+<strong>pedagogical convenience</strong> — a reader can then see exactly which
checker
+is in play — but the production deployment lives in build config,
+once, and user files stay annotation-free.</p>
+</li>
</ul>
</div>
<div class="paragraph">
diff --git a/search/search-index.json b/search/search-index.json
index 318ca46..6d1121b 100644
--- a/search/search-index.json
+++ b/search/search-index.json
@@ -240,7 +240,7 @@
{
"id": "blog/groovy6-functional.html",
"title": "The Apache Groovy programming language - Blogs - Groovy 6
features for Functional Programmers",
- "content": "The Apache Groovy programming language - Blogs - Groovy 6
features for Functional Programmers Socialize Discuss on the mailing list
Groovy on X Groovy on Bluesky Groovy on Mastodon Groovy on LinkedIn Events and
conferences Source code on GitHub Report issues in Jira Stack Overflow
questions Slack Community You are using an outdated browser. Please upgrade
your browser to improve your experience. Apache Groovy™ Learn
Documentation Download Support Contribute Ecos [...]
+ "content": "The Apache Groovy programming language - Blogs - Groovy 6
features for Functional Programmers Socialize Discuss on the mailing list
Groovy on X Groovy on Bluesky Groovy on Mastodon Groovy on LinkedIn Events and
conferences Source code on GitHub Report issues in Jira Stack Overflow
questions Slack Community You are using an outdated browser. Please upgrade
your browser to improve your experience. Apache Groovy™ Learn
Documentation Download Support Contribute Ecos [...]
"url": "blog/groovy6-functional.html",
"site": "dev"
},