JunggiKim / java-refined Java 10 0 Refinement and functional value types for Java 8+ functional-programming java java8 maven-central