title: How to mix apparently incompatible paradigms: OOP and FP?
body: <p>Reading back some of my Scala code, I noticed that it is either functional or object oriented.</p>
  
  <p>Indeed, I have no idea on how to conciliate the no-side effects rule implied by immutable types and pure functions and the premise of OO, where methods modify instance state in-place, which is obviously side-effects.</p>
  
  <p>One solution I am investigating is to make all methods return a clone of the current instance with the appropriate state modifications. Seems eager, but might help when I'll decide to paralelize the code, right ?  </p>
  
  <p>What are the best practices on mixing those 2 paradigms ? What is the balance ?</p>
  
  <p>Thanks.</p>