let rec partition inf x = function
  | [] -> [],[]
  | y :: s -> let l,r = partition inf x s in if inf y x then y::l,r else l,y::r

let rec qsort inf = function
  | [] | [_] as l -> l
  | x :: xs -> let l,r = partition inf x xs in qsort inf l @ x :: qsort inf r

This document was generated using caml2html