sig
  val split_str : pred:(char -> bool) -> string -> string list
  val may : ('-> 'b) -> 'a option -> 'b option
  val maycons : ('-> 'b) -> 'a option -> 'b list -> 'b list
end