sig
type 'a regexp =
Vide
| Eps
| L of 'a
| Conc of 'a Regexp.regexp * 'a Regexp.regexp
| Union of 'a Regexp.regexp * 'a Regexp.regexp
| Etoile of 'a Regexp.regexp
val epsilon : 'a Regexp.regexp -> bool
val map : ('a -> 'b) -> 'a Regexp.regexp -> 'b Regexp.regexp
val fold :
('a -> 'b -> 'c * 'a) -> 'a -> 'b Regexp.regexp -> 'c Regexp.regexp * 'a
val auto_r :
('a -> 'a -> int) ->
'a list -> 'a Regexp.regexp -> (('a * int) option, 'a) Automate.automate
type 'a revexp =
RVide
| REps
| RL of 'a
| RConc of 'a Regexp.revexp * 'a Regexp.revexp
| RUnion of 'a Regexp.revexp * 'a Regexp.revexp
| REtoile of 'a Regexp.revexp
| Rev of 'a Regexp.revexp
val rev_to_reg : ('a -> 'a) -> 'a Regexp.revexp -> 'a Regexp.regexp
end