title: Longest common sub-list
body: <p>I need a function <code>f :: Eq a =&gt; [[a]] -&gt; [a]</code> returning the longest sub-list of each of the list of lists supplied. E.g., <code>f [[1,2,3], [0,1,3], [1,3,4]] =
  [1,3]</code>. [1,3] is defined to be a sub-List of <code>[1,2,3]</code>, therefore the elements of the sublist don't have to be in neighbouring positions of the super-list.</p>
  
  <p>What I have thought so far is making a function let's call it: <code>findCombinations :: [a] -&gt; [[a]]</code> that takes a list and returns all possible combinations of elements of that list. For example, <code>[1,2,3] -&gt; [[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]</code>, and then using that function for every sublist of the superlist in order to find all possible combinations for each sublist and then find the combinations that appears the most, however I am stuck with the implementation. Any ideas?</p>