Does it support concepts like separation of declaration and implementation (interfaces and classes in Java)?
How about restricting access (like access modifiers in J
See Haskell's Overlooked Object System by Oleg Kiselyov and Ralf Laemmel for a detailed explanation of how OO concepts can be implemented in Haskell. But as Antal said in the comments, don't try to write a Java program in Haskell.
Remember that objects are a poor man's closure, and closures are a poor man's object.