Immutable, Functional and Quicksort in OCaml
typeocaml.com