Module Stdlib.Sort

Sorting and merging lists.

val list : ('a -> 'a -> bool) -> 'a list -> 'a list

Sort a list in increasing order according to an ordering predicate. The predicate should return true if its first argument is less than or equal to its second argument.

val array : ('a -> 'a -> bool) -> 'a array -> unit

Sort an array in increasing order according to an ordering predicate. The predicate should return true if its first argument is less than or equal to its second argument. The array is sorted in place.

val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list

Merge two lists according to the given predicate. Assuming the two argument lists are sorted according to the predicate, merge returns a sorted list containing the elements from the two lists. The behavior is undefined if the two argument lists were not sorted.