functor   (S : sig          type t          type character          val empty : Functors.t          val is_whitespace : Functors.character -> bool          val length : Functors.t -> int          val find :            ?from:int ->            ?length:int ->            Functors.t -> f:(Functors.character -> bool) -> int option          val find_reverse :            ?from:int ->            ?length:int ->            Functors.t -> f:(Functors.character -> bool) -> int option          val sub_exn : Functors.t -> index:int -> length:int -> Functors.t        end->   sig     val strip :       ?on:[< `Both | `Left | `Right > `Both ] ->       ?whitespace:(S.character -> bool) -> S.t -> S.t   end