0 o a o
ยฉ What's New in Higher-Kinded-J 0.2.0
Massive Optics Expansion
This release dramatically expands the optics library with 6 new optic types and dozens of utility classes:
+ Fold, Getter, Setter: New fundamental optic types for read-only queries, single-element access, and write-only modifications
+ Indexed Optics: Position-aware transformations with IndexedTraversal , IndexedFold ,and IndexedLens
+ Filtered Traversals: Compose predicates directly into optic chains with filtered() and filterBy()
+ Limiting Traversals: Focus on specific portions of lists with taking() , dropping() , takingwhile() , slicing() , etc.
+ PartsOf: Transform all focused elements as a single list with operations like sorted() , reversed() , distinct()
+ Fluent API: New operator-style API with Free Monad DSL for building composable optic programs with multiple interpreters
New Functional Programming Primitives
+ FreeMonad: Build domain-specific languages (DSLs) with stack-safe execution and multiple interpreters
+ Trampoline: Stack-safe recursion support for tail-call optimization
+ Const Functor: Phantom type parameter support for advanced type-level programming
+ Alternative Type Class: Choice and failure operations for applicative functors
Enhanced Type Classes
+ Monoid: New methods ( firstOptional() , lastOptional() , maximum() , minimum() ) and instances (Long, Double)
+ Monad: Added flatMap2-5 for sequencing multiple monadic values with effectful combining functions
Six new Composable Optics and a FreeMonad DSL all in the latest #higher-kinded-j release
check it out higher-kinded-j.github.io/optics/optic...
#Java #FunctionalProgramming #Monads #Optics
21.11.2025 17:54 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0
Bifunctor - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner, more composable Java code for your projects using Optics.
๐ New in higher-kinded-j: Bifunctor support!
Transform both sides of your data structures with bimap, first, and second operations.
โจ Use with Either, Tuple2, Validated, and Writer
โจ Type-safe
โจ Law-verified
higher-kinded-j.github.io/functional/b...
#Java #FunctionalProgramming #TypeSafety
15.11.2025 12:08 โ ๐ 4 ๐ 2 ๐ฌ 0 ๐ 1
Nice post. Lots of interesting applications of this with profunctor adapter patterns.
21.09.2025 07:17 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0
Understanding Contramap
Understanding Contramap
blog.rhetoricalmusings.com/posts/contra...
20.09.2025 23:03 โ ๐ 3 ๐ 1 ๐ฌ 1 ๐ 1
Profunctor - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner...
๐ New Higher-Kinded-J 0.1.8 ๐
โจ Protofunctors - Transform both inputs & outputs of your functions with dimap, lmap, rmap
๐ Protofunctor enhanced Optics - Lens, Prism, Traversal & Iso for immutable data manipulation
Checkout the hkj-book higher-kinded-j.github.io/functional/p...
#Java #FP #Optics
10.09.2025 16:11 โ ๐ 2 ๐ 2 ๐ฌ 0 ๐ 0
Original post: mastodon.scot/@Wen/1151514...
05.09.2025 22:15 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0
Introduction to Higher-Kinded-J - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner...
๐ higher-kinded-j v0.1.7 is here!
โจ Auto wither methods via @GenerateLenses
โ
Error accumulating Validated (Applicative)
๐งฎ New Semigroup, Monoid, & Foldable interfaces
โ๏ธ Improved type flexibility on core interfaces
All documented in the updated hkj-book: higher-kinded-j.github.io
#Java #FP
29.08.2025 16:24 โ ๐ 2 ๐ 1 ๐ฌ 0 ๐ 0
Growing the Java Language #JVMLS
#Java is getting Typeclasses. This is a super interesting talk from @briangoetz.bsky.social looks to be a huge evolutionary improvement to Java and very well thought out. Can't wait to try it! youtu.be/Gz7Or9C0TpM...
22.08.2025 10:50 โ ๐ 4 ๐ 1 ๐ฌ 0 ๐ 0
Auditing Complex Data - The Power of Optics - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner...
Higher-Kinded-J
๐ Traverse complex records with Lenses, Traversals, & Prisms, all type-safe, compile-time generated, and fully immutable in Java
Full example: higher-kinded-j.github.io/optics/audit...
Explore more: higher-kinded-j.github.io
#Java #FunctionalProgramming #Optics #Immutability #HKTs
23.07.2025 16:07 โ ๐ 2 ๐ 1 ๐ฌ 0 ๐ 0
Introduction to Higher-Kinded-J - Higher-Kinded Types and Optics for Java
Explore Higher-Kinded Types (HKTs) and Optcs in Java with the Higher-Kinded-J library. Learn about Functors, Applicatives, Monads, Transformers, practical functional patterns, and how to write cleaner...
Say goodbye to verbose "copy-and-update" logic! #higher-kinded-j higher-kinded-j.github.io now has a powerful #Optics library. Generate #Lenses, #Prisms, #Isos and #Traversals with a simple annotation and perform deep, immutable updates in a single line of code. #Java #JavaDev #FP #FunctionalJava
20.07.2025 14:16 โ ๐ 1 ๐ 1 ๐ฌ 0 ๐ 0
With ADTs we are unbundling data from behaviour. Data goes in the ADTs and behavior goes in functions that operate on them. Think pattern matching vs polymorphism. Often The choice of approach is nuanced on what is mainly driving change. For types OO and operations ADT
15.07.2025 12:21 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0
This is great analysis of AI hype/reality/motives of the pkayers and played
29.06.2025 10:04 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0
Thats great. Let me know how you get on
21.06.2025 10:19 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0
What sort of examples would useful? I had some ideas about potentially integrating with springs reactive webflux types and form validation. That might be a bit more practical for some users.
08.06.2025 18:06 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0
There is certainly boilerplate adding hkts to java and room for improvements but i think you might be surprised once you get familiar with the patterns how much they can help. Did you see the draughts game i added? If you have any suggestions as to what might help i'm really happy to here
08.06.2025 17:58 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0
Responding to Real Usage ยท Poutsma Principles
New post: Responding to Real Usage
In Part 3 of Crafting Fluent APIs, I share how a conference demo led to a last-minute fix in WebClient's fluent API. Watch how people use your API, then improve it.
#Java #Spring #APIDesign #FluentAPI #tech
28.05.2025 11:02 โ ๐ 7 ๐ 5 ๐ฌ 1 ๐ 0
There is certainly an art to writing a good fluent api. An enjoyable and insightful series.
28.05.2025 22:07 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0
A most excellent commentary and thoroughly good read!
19.05.2025 09:26 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0
Thoughts on AI and software development - Part 2
The real forces that drive markets and decision makers
i released the 2nd post, pondering the idea of ai-based coding and its potential impact on software development. this time i discuss the forces that drive the market and decision making (might feel a bit darker and more controversial than usual): www.ufried.com/blog/ai_and_...
enjoy if you like ;)
18.05.2025 08:41 โ ๐ 3 ๐ 2 ๐ฌ 2 ๐ 0
Phantom types are an under appreciated feature in #Java. Can simulate typestate programming where an objects type changes to reflect current state, with operations available on that object depending on its current typestate. We can parametrise this using a base type and phantom type.
10.05.2025 23:40 โ ๐ 1 ๐ 1 ๐ฌ 0 ๐ 0
Recursion, Thunks and Trampolines with Java and Scala
In this post we will see how Thunks and Trampolines can help solve problems by converting deep stack-based recursion into heap-based iteration helping to prevent StackOverflowErrors
In my latest post we explore how to manage deep recursion in Java and Scala using thunks and trampolines. Learn techniques that help avoid stack overflows and make recursive code more efficient. #Java #Scala #FunctionalProgramming
blog.scottlogic.com/2025/05/02/r...
02.05.2025 16:04 โ ๐ 1 ๐ 1 ๐ฌ 0 ๐ 0
Higher Kinded Types with Java and Scala
In this post we will see how Higher Kinded Types types can help increase the flexibility of our code and reduce duplication.
Higher-kinded types provide abstractions allowing us to define operations once and reuse across many different data structures. In my latest post i explore how they work in #Scala and how we can simulate them ourselves using #Java blog.scottlogic.com/2025/04/11/h...
11.04.2025 10:43 โ ๐ 4 ๐ 2 ๐ฌ 0 ๐ 0
DaShaun is a struggling triathlete, Raspberry Pi enthusiast, Testcontainer Champion, former professional cheerleader, keynote speaker, and Spring Developer Advocate at Broadcom. Deliberately practicing to build, run, and manage, better software, faster.
https://blog.rhetoricalmusings.com
Allo. I'm Xavier Van de Woestyne from ๐ง๐ช, living in Nantes. I'm a wannabe software engineer who tweets in rough ๐ซ๐ท and catastrophic ๐ฌ๐ง! I'm interested in functional programming (with statically typed languages).
๐ซ๐ท https://xvw.lol, ๐ฌ๐ง https://xvw.lol/en
FP and Programming languages nerd
Building the Unison Language & Unison Share
๐Victoria BC ๐จ๐ฆ
https://chrispenner.ca
Programmer, author, speaker, founder Agile Developer, Inc., co-founder of @dev2next Conference, professor @CSatUH
#Java coach/consultant/streamer. Maker of "JitterTed's TDD Game" https://tdd.cards
Live streaming my coding mistakes at https://JitterTed.Stream and https://JitterTed.TV
#Refactoring #JUnit #TDD #TestableArchitecture #DomainDrivenDesign #Ensembling #LGM
Exploring the evolving world of software developmentโFrontend, Backend, AI/ML, and Software Design and Philosophy. Thoughts on code, architecture, and the philosophy of building modern systems. Currently at a FAANG. Opinions are my own.
Former Spring Framework committer, now writing Call of Cthulhu scenarios.
Lead Developer at Scott Logic, UK-based software consultancy
[bridged from https://hachyderm.io/@paul_edwin on the fediverse by https://fed.brid.gy/ ]
Using metaphors and analogies to explain Software Engineering in fun ways: https://youtube.com/@metaphoricallyspeaking
Staff Software Engineer. Passionate about DDD, CQRS, Event Sourcing and Distributed Systems.
Kayaking, too.
Uwe Friedrichsen. Longtime traveler in the world of IT. Dot Connector. Keeper of timeless wisdom. Translator between floors. System design. Resilience. Sustainability. Tries to make (not only) IT a (bit) better place.
Functional Programming brings some sanity in this quick&dirty IT world. Scala3 (ZIO, KYO), Learning Rust & Ocaml. Constantly learning. Fighting entropy. X: @scalajos mastodon: @fpjos@fosstodon
Scala dev, unison-lang wannabe dev, amateur pianist, dad, husband, and keeper of six small furry beasts.
I/me, atheist && heretic
Scala, FP, ZIO
Learner, lover, father x 2
Libertaire, libรฉral && libre.
https://github.com/cheleb/
Author of Kotlin Brain Teasers
https://pragprog.com/titles/kotlinbt
Software architect. Multi-platform developer. Committed to become a FP alchemist #Scala #Elixir #Rust. Passionate lifelong learner
ฮป coder โข ๐ Author of "Grokking Functional Programming" โข #Scala โข Learning through teaching โข https://michalplachta.com
"There was never us, Xena. Only Rome."