title: Creating parallel executing List combinators
body: <p>I have function that splits List[B] in half and returns tuple.
  I need to release combinators for executing them in parallel.</p>
  
  <p>If I do something like fl.map(x => x.map(...)) it is not parallel. </p>
  
  <pre><code>object Parallel {
  
    implicit class ParList[A](fl: Future[List[A]]) {
  
      private def split[B](l: List[B]): (List[B], List[B]) = l.splitAt(l.length / 2)
  
      def paralFilter(f: A =&gt; Boolean): Future[List[A]] = ???
  
      def paralFold(init: A)(f: (A, A) =&gt; A): Future[A] = ???
    }
  </code></pre>
  
  <p>I understand that I must split list elementwise via split[B] and execute combinators with elements in parallel. How can I do it?</p>