sig val list : order:('a -> 'a -> bool) -> 'a list -> 'a list val array : order:('a -> 'a -> bool) -> 'a array -> unit val merge : order:('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list end