The difference is not one of &quot;philosophy&quot;, but rather of <i>using the right types</i>. Haskell&#x27;s so-called &quot;list&quot; type constructor is actually a type constructor of <i>streams</i>. Unsurprisingly, streams are much better than lists if you want to do stream processing.