1. 7
  1.  

  2. 1

    I am not a haskeller, and I’ve found success with this approach in other languages.

    I’ve also observed from looking at libraries I use that the most elegant solutions tend to have this model of a functional core and an imperative shell.

    A fantastic talk on this subject is boundaries by Gary Bernhardt.