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