sig
exception ConverterFailure of string * string
type ('a, 'b) conv = { to_ : 'a -> 'b option; from_ : 'b -> 'a; }
type 'a raw =
Regexp : Re.t * Re.re Lazy.t -> string Tyre.Internal.raw
| Conv : string * 'a Tyre.Internal.raw *
('a, 'b) Tyre.Internal.conv -> 'b Tyre.Internal.raw
| Opt : 'a Tyre.Internal.raw -> 'a option Tyre.Internal.raw
| Alt : 'a Tyre.Internal.raw *
'b Tyre.Internal.raw -> [ `Left of 'a | `Right of 'b ]
Tyre.Internal.raw
| Seq : 'a Tyre.Internal.raw *
'b Tyre.Internal.raw -> ('a * 'b) Tyre.Internal.raw
| Prefix : 'b Tyre.Internal.raw * 'b *
'a Tyre.Internal.raw -> 'a Tyre.Internal.raw
| Suffix : 'a Tyre.Internal.raw * 'b *
'b Tyre.Internal.raw -> 'a Tyre.Internal.raw
| Rep : 'a Tyre.Internal.raw -> 'a Tyre.gen Tyre.Internal.raw
| Mod : (Re.t -> Re.t) * 'a Tyre.Internal.raw -> 'a Tyre.Internal.raw
val from_t : 'a Tyre.t -> 'a Tyre.Internal.raw
val to_t : 'a Tyre.Internal.raw -> 'a Tyre.t
type _ wit =
Regexp : Re.t -> string Tyre.Internal.wit
| Conv : string * 'a Tyre.Internal.wit *
('a, 'b) Tyre.Internal.conv -> 'b Tyre.Internal.wit
| Opt : Re.markid * int *
'a Tyre.Internal.wit -> 'a option Tyre.Internal.wit
| Alt : Re.markid * int * 'a Tyre.Internal.wit * Re.markid *
'b Tyre.Internal.wit -> [ `Left of 'a | `Right of 'b ]
Tyre.Internal.wit
| Seq : 'a Tyre.Internal.wit *
'b Tyre.Internal.wit -> ('a * 'b) Tyre.Internal.wit
| Rep : 'a Tyre.Internal.wit * Re.re -> 'a Tyre.gen Tyre.Internal.wit
val build : 'a Tyre.Internal.raw -> int * 'a Tyre.Internal.wit * Re.t
val extract : 'a Tyre.Internal.wit -> int -> Re.substrings -> int * 'a
end