functor (Rest : Part->   sig     type t = Var of Rest.t     type 'a parse_func = string -> 'Rest.parse_func     type 'a parse_opt_func = string -> 'Rest.parse_opt_func     type 'a generate_func = string -> 'Rest.generate_func     val parse : t -> 'a parse_func -> 'a route     val parse_opt : t -> 'a parse_opt_func -> 'a route     val generate : t -> string list generate_func     val generate_ : string list -> t -> string list generate_func     val to_fragment : t -> string generate_func     val to_fragment_ : string -> t -> string generate_func     val var : Rest.t -> Sharp_router.Var.t   end