From Haskell to Java: modeling your problem domain with types | Dark Hacker News