title: all possibilities of dividing a list in two in Haskell
body: <p>What's the most direct/efficient way to create all possibilities of dividing one (even) list into two in Haskell? I toyed with splitting all permutations of the list but that would add many extras - all the instances where each half contains the same elements, just in a different order. For example,</p>
  
  <pre><code>[1,2,3,4] should produce something like:
  
  [ [1,2],  [3,4] ]
  [ [1,3],  [2,4] ]
  [ [1,4],  [2,3] ]
  </code></pre>
  
  <p>Edit: thank you for your comments -- the order of elements and the type of the result is less important to me than the concept - an expression of all two-groups from one group, where element order is unimportant.</p>