# derive4j/derive4j

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/derive4j-derive4j).**

577 stars · 47 forks · Java

## Links

- GitHub: https://github.com/derive4j/derive4j
- awesome-repositories: https://awesome-repositories.com/repository/derive4j-derive4j.md

## Topics

`algebra` `algebraic-data-types` `annotation-processor` `catamorphisms` `derive4j` `discriminated-unions` `exhaustiveness-checking` `fold` `functional-programming` `java` `java-8` `laziness` `optics` `sum-types` `tagged-unions` `visitor` `visitor-pattern`

## Description

Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.

## Tags

### Part of an Awesome List

- [Functional Programming](https://awesome-repositories.com/f/awesome-lists/devtools/functional-programming.md) — Framework for algebraic data types and pattern matching.
- [Metaprogramming and Compilers](https://awesome-repositories.com/f/awesome-lists/devtools/metaprogramming-and-compilers.md) — Algebraic data types and pattern-matching for Java.
