Google's guava project is a solid utility library providing many useful interfaces and utilities, and it is a very commonly added dependency for most projects. Unfortunately, they have a strong NIH syndrome and are somewhat half-pregnant when it comes to functional-programming. This library attempts round out some of the deficiencies that a functional programmer finds when using Guava.

In particular it provides Option and Either types similar to the Scala library as well as a Pair.

There also additional helper classes for common Function and Supplier operations.

Issue Tracking

Issues are tracked in the fugue project on bitbucket

Getting fugue

Add the Atlassian public repository


And then add fugue as a dependency to your pom.xml