title: Functional way in IO related tasks
body: <p>Most beginners program IO related tasks in an imperative way. Are there any general suggestions to help beginners switching to more functional way in implementing IO related tasks?</p>
  
  <p>As a concrete example consider the task of directory traversing and file processing along the way. For me the imperative way is to walk the directory tree and process each file as in C style languages. I then discovered the <a href="https://www.fpcomplete.com/user/snoyberg/library-documentation/conduit-overview" rel="nofollow">Conduit</a> library which for me represents the functional way: Build up the source list then consume the list.</p>
  
  <p>So may I say that the "conduit way" is the preferred functional way of programming in IO related tasks?</p>