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