* For folks not familiar with Haskell who count three or two items in the two patterns and do not see why I am talking of lists of at least two and one or two elements respectively: in Haskell, (a:b) means a is an element and b is a list of zero or more elements.