----------------------------------------------------------------------
-------------------- QuickSort ---------------------------------------
----------------------------------------------------------------------

{-@ sort3 :: (Ord a) => w:a -> [{v:a|v<=w}] -> OList a @-}
sort3 :: (Ord a) => a -> [a] -> [a]
sort3 w ls = qsort w ls []
sort3 :: (Ord a) => a -> [a] -> [a]
sort3 w ls = qsort w ls []
sort3 w ls = qsort w ls []