sig
type ('a, 'b) conv = { to_ : 'a -> 'b; from_ : 'b -> 'a; }
type 'a raw =
Regexp : Re.t * Re.re Lazy.t -> string Tyre.Internal.raw
| Conv : '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 *
'a Tyre.Internal.raw -> 'a Tyre.Internal.raw
| Suffix : 'a Tyre.Internal.raw *
'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 =
Lit : int -> string Tyre.Internal.wit
| Conv : 'a Tyre.Internal.wit *
('a, 'b) Tyre.Internal.conv -> 'b Tyre.Internal.wit
| Opt : Re.markid * 'a Tyre.Internal.wit -> 'a option Tyre.Internal.wit
| Alt : Re.markid * 'a Tyre.Internal.wit *
'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 : int * 'a Tyre.Internal.wit *
Re.re -> 'a Tyre.gen Tyre.Internal.wit
val build :
int -> 'a Tyre.Internal.raw -> int * 'a Tyre.Internal.wit * Re.t
val extract :
original:string -> 'a Tyre.Internal.wit -> Re.substrings -> 'a
end