Some time ago I wrote a piece about generating randomized instances of domain objects for unit and integration testing using a functional approach. Looking back at my past projects, I almost always used this approach to simplify existing and newly written tests in the codebases that I was working on. Of course, the implementation matured over the years as well. What started off as a very simplistic
@FunctionalInterface became a well-tested Java-based implementation of the
Gen monad. Given that I use this small piece of code so often, I decided to release the
Gen monad to the public.