Java's Interface and Haskell's type class: differences and similarities? Java's Interface and Haskell's type class: differences and similarities? java java