Interfaces with the help of kindedj. See all the posts of John
https://medium.com/@johnmcclean. HKT, TaglessFinal, Free... Really a nice work, cyclops is misunderstood.
but is pure FP in Java could be recommended ? No sure... I would rather work with vavr. The geeks'll use derive4j I think.