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