functor (S : T_LENGTH_SUB_AND_SEARCH) -> sig val split : S.t -> on:[< `Character of S.character | `String of S.t ] -> S.t list end