sig
  val replace : ('a * 'b) list -> '-> '-> ('a * 'b) list
  val remove_assoc_all : ('a * 'b) list -> '-> ('a * 'b) list
  val sub : 'a list -> int -> int -> 'a list
  val take : int -> 'a list -> 'a list
  val drop : int -> 'a list -> 'a list
  val output_lines : Pervasives.out_channel -> string list -> unit
  val output_chars : Pervasives.out_channel -> char list -> unit
end