One could also change the Haskell. Data.Function (&amp;); 
Control.Arrow (&gt;&gt;&gt;)<p><pre><code>  -- the pipe operator seems to be all the rage these days
  (|&gt;) = (&amp;)
  
  -- forward application + forward composition
  xs |&gt; (drop 3 &gt;&gt;&gt; filter p &gt;&gt;&gt; take 5)
</code></pre>
Only function application<p><pre><code>  xs |&gt; drop 3 |&gt; filter p |&gt; take 5</code></pre>