sig   type t = Empty   type 'a parse_func = '-> unit -> unit   type 'a parse_opt_func = ('-> unit -> unit) option   type 'a generate_func = 'a   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 empty : Sharp_router.Final.t end