Initial proof of concept followed by repository, build, documentation, testing, and typeclass-foundation hardening.
Eq, Ord, Semigroup, Monoid, reusable syntax functions, and standard instances.
Reusable algebraic law checks and jqwik property suites.
Option, Either, Validated, sealed ADTs, compositional Eq and Show instances.
NonEmptyList, smart constructors, typed validation errors, domain invariants, and lawful Semigroup<NonEmptyList<A>>.
Kind<F, A>, witness types, partial type application, and centralized widen/narrow helpers.
Functor<F>Applicative<F>Monad<F>MonadError<F, E>where the encoding remains practical- laws for the new typeclasses
- instances for
OptionK,EitherK<E>, andValidatedK<E>as appropriate
Foldable<F>Traverse<F>Bifunctor<F>sequence/traverse- corresponding laws and examples
IdEval- minimal educational
IO FunctionK<F, G>- natural-transformation examples
Kleisli<F, A, B>- composition of effectful functions
- Reader-style examples
- algebras parameterized by effect witness
F - programs written against abstract capabilities
- multiple interpreters
- tests using pure interpreters
Free<F, A>- algebra ASTs
- interpreters via natural transformations
- comparison with Tagless Final
LensPrismOptional- immutable nested updates and composition
SemigroupKMonoidKAlternative- richer error accumulation
- derived instances where useful
- optional instance resolution experiments
- summon-like ergonomics without hiding the underlying model
- JMH where measurements are meaningful
- allocation analysis
- API cleanup and compatibility review
Stable public API, complete documentation, examples, laws, and a coherent Java-to-functional-programming learning path.