functor (S : T_LENGTH_AND_COMPSUB->   sig     val index_of_string :       ?from:int ->       ?sub_index:int -> ?sub_length:int -> S.t -> sub:S.t -> int option     val index_of_string_reverse :       ?from:int ->       ?sub_index:int -> ?sub_length:int -> S.t -> sub:S.t -> int option   end