sig   type 'a t   val regex : Re.t -> string Tyre.t   val conv :     name:string -> ('-> 'b option) -> ('-> 'a) -> 'Tyre.t -> 'Tyre.t   val opt : 'Tyre.t -> 'a option Tyre.t   val alt : 'Tyre.t -> 'Tyre.t -> [ `Left of '| `Right of 'b ] Tyre.t   type 'a gen = unit -> 'a option   val rep : 'Tyre.t -> 'Tyre.gen Tyre.t   val rep1 : 'Tyre.t -> ('a * 'Tyre.gen) Tyre.t   val seq : 'Tyre.t -> 'Tyre.t -> ('a * 'b) Tyre.t   val prefix : 'Tyre.t * '-> 'Tyre.t -> 'Tyre.t   val prefixstr : string -> 'Tyre.t -> 'Tyre.t   val suffix : 'Tyre.t -> 'Tyre.t * '-> 'Tyre.t   val suffixstr : 'Tyre.t -> string -> 'Tyre.t   val ( <?> ) :     'Tyre.t -> 'Tyre.t -> [ `Left of '| `Right of 'b ] Tyre.t   val ( <*> ) : 'Tyre.t -> 'Tyre.t -> ('a * 'b) Tyre.t   val ( *> ) : string -> 'Tyre.t -> 'Tyre.t   val ( <* ) : 'Tyre.t -> string -> 'Tyre.t   val ( **> ) : 'Tyre.t * '-> 'Tyre.t -> 'Tyre.t   val ( <** ) : 'Tyre.t -> 'Tyre.t * '-> 'Tyre.t   val int : int Tyre.t   val pos_int : int Tyre.t   val float : float Tyre.t   val bool : bool Tyre.t   val list : 'Tyre.t -> 'a list Tyre.t   val terminated_list : sep:string -> 'Tyre.t -> 'a list Tyre.t   val separated_list : sep:string -> 'Tyre.t -> 'a list Tyre.t   val word : 'Tyre.t -> 'Tyre.t   val whole_string : 'Tyre.t -> 'Tyre.t   val longest : 'Tyre.t -> 'Tyre.t   val shortest : 'Tyre.t -> 'Tyre.t   val first : 'Tyre.t -> 'Tyre.t   val greedy : 'Tyre.t -> 'Tyre.t   val non_greedy : 'Tyre.t -> 'Tyre.t   val nest : 'Tyre.t -> 'Tyre.t   type 'a re   val compile : ?whole:bool -> 'Tyre.t -> 'Tyre.re   type 'a error =       [ `ConverterFailure of string * string       | `NoMatch of 'Tyre.re * string ]   val exec :     ?pos:int ->     ?len:int -> 'Tyre.re -> string -> ('a, 'Tyre.error) Result.result   type +'a route = Route : 'Tyre.t * ('-> 'a) -> 'Tyre.route   val ( --> ) : 'Tyre.t -> ('-> 'a) -> 'Tyre.route   val route : ?whole:bool -> 'Tyre.route list -> 'Tyre.re   val eval : 'Tyre.t -> '-> string   val evalpp : 'Tyre.t -> Format.formatter -> '-> unit   val pp : Format.formatter -> 'Tyre.t -> unit   val pp_re : Format.formatter -> 'Tyre.re -> unit   module Internal :     sig       exception ConverterFailure of string * string       type ('a, 'b) conv = { to_ : '-> 'b option; from_ : '-> 'a; }       type 'a raw =           Regexp : Re.t * Re.re Lazy.t -> string Tyre.Internal.raw         | Conv : string * 'Tyre.Internal.raw *             ('a, 'b) Tyre.Internal.conv -> 'Tyre.Internal.raw         | Opt : 'Tyre.Internal.raw -> 'a option Tyre.Internal.raw         | Alt : 'Tyre.Internal.raw *             'Tyre.Internal.raw -> [ `Left of '| `Right of 'b ]                                     Tyre.Internal.raw         | Seq : 'Tyre.Internal.raw *             'Tyre.Internal.raw -> ('a * 'b) Tyre.Internal.raw         | Prefix : 'Tyre.Internal.raw * 'b *             'Tyre.Internal.raw -> 'Tyre.Internal.raw         | Suffix : 'Tyre.Internal.raw * 'b *             'Tyre.Internal.raw -> 'Tyre.Internal.raw         | Rep : 'Tyre.Internal.raw -> 'Tyre.gen Tyre.Internal.raw         | Mod : (Re.t -> Re.t) * 'Tyre.Internal.raw -> 'Tyre.Internal.raw       val from_t : 'Tyre.t -> 'Tyre.Internal.raw       val to_t : 'Tyre.Internal.raw -> 'Tyre.t       type _ wit =           Regexp : Re.t -> string Tyre.Internal.wit         | Conv : string * 'Tyre.Internal.wit *             ('a, 'b) Tyre.Internal.conv -> 'Tyre.Internal.wit         | Opt : Re.markid * int *             'Tyre.Internal.wit -> 'a option Tyre.Internal.wit         | Alt : Re.markid * int * 'Tyre.Internal.wit * Re.markid *             'Tyre.Internal.wit -> [ `Left of '| `Right of 'b ]                                     Tyre.Internal.wit         | Seq : 'Tyre.Internal.wit *             'Tyre.Internal.wit -> ('a * 'b) Tyre.Internal.wit         | Rep : 'Tyre.Internal.wit * Re.re -> 'Tyre.gen Tyre.Internal.wit       val build : 'Tyre.Internal.raw -> int * 'Tyre.Internal.wit * Re.t       val extract : 'Tyre.Internal.wit -> int -> Re.substrings -> int * 'a     end end