<p>See <a href="http://arxiv.org/abs/cs/0509027" rel="noreferrer">Haskell's Overlooked Object System</a> 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.</p>

<p>Remember that objects are a poor man's closure, and closures are a poor man's object.</p>
Does Haskell support object oriented programming
<p>Does it support concepts like separation of declaration and implementation (interfaces and classes in Java)?</p>

<p>How about restricting access (like access modifiers in Java)?</p>