I am looking for a function
 f::Eq a => [a]->[a]
that takes a list and returns the longest
initial segment of the list for which all
the elements are distinct.

For example f [2,3,6,4,3,5] = [2,3,6,4].

I didn't see anything that matched using Hoogle,
but I thought this might be a common enough
operation that this function might exists somewhere
in the standard packages.