Glossary of Functional Programming Terms
- Key terminology used throughout Higher-Kinded-J documentation
- Explanations tailored for mid-level Java developers
- Practical examples to reinforce understanding
- Quick reference for concepts you encounter whilst coding
This glossary provides clear, practical explanations of functional programming and Higher-Kinded-J concepts. Each term includes Java-friendly explanations and examples where helpful.
Type System & Higher-Kinded Types
Variance, higher-kinded type simulation, witnesses, and phantom types.
Contravariant, Covariant, Defunctionalisation, Higher-Kinded Type (HKT), Invariant, Kind, Phantom Type, Type Constructor, TypeArity, Variance Summary Table, Witness Type, WitnessArity
Type Classes
Functor, Monad, and the rest of the abstraction hierarchy.
Applicative, Bifunctor, Coyoneda, Free Applicative, Functor, Instances Facade, Map Fusion, Monad, Monad Transformer, MonadError, Monoid, Natural Transformation, Profunctor, Selective, Semigroup, Update
Data & Core Effect Types
Core data structures and the effect types built on them.
Choice, Cons, Const, Either, EitherOrBoth, IO, Maybe, NonEmptyList, Snoc, TimeSource, Try, Tuple, Unit, Validated
Effect Paths & Effect Handlers
The Effect Path API and the Free-monad effect-handler machinery.
BoundSet, @ComposeEffects, Continuation-Passing Style (CPS), Effect, Effect Algebra, Effect Path, Effect-Optics Bridge, @EffectAlgebra, EitherF, foldMap, Free Monad, Inject, Interpreter (Effect Handler), Leg, mapK, Path, ProgramAnalyser, Railway-Oriented Programming, recover, via, VResultPath
Optics, Validation & Mapping
Lenses, prisms, traversals, the Focus DSL, and record mapping.
Affine, At, Edits, ErrorEnvelope, FieldError, Focus DSL, FocusPath, Fold, @GenerateAssembly, @GenerateErrorEnvelope, @GenerateMapping, @GenerateMerge, Iso (Isomorphism), Lens, MappingLaws, MappingSpec, Parse, Don't Validate, Prism, Setter, StandardCodecs, Traversal, UpdateSpec, Validated Assembly, ValidatedPrism
Concurrency & Resilience
Virtual-thread concurrency, structured scopes, and resilience.
Bracket Pattern, Bulkhead, Circuit Breaker, Resilience Combinators, Resource (VTask), Scope, ScopeJoiner, Structured Concurrency, Virtual Thread