Here is what I came up with:
> let insertBy cmp x seq = let (s1,s2) = partition (\y -> cmp xy == GT) seq in (s1 |> x) >< s2 > let s = fromList [1,2,3,4,5] > insertBy compare 2 s fromList [1,2,2,3,4,5]
Or you can just use the version for lists:
{-
Mikhail Glushenkov
source share