Refactoring a year/month representation in Java, Scala, and Clojure