module Expr: sig
.. end
Types of expressions and comparisons.
type 'a
expr = [ `Conc of 'a expr * 'a expr
| `Conv of 'a expr
| `Inter of 'a expr * 'a expr
| `Star of 'a expr
| `Un
| `Union of 'a expr * 'a expr
| `Var of 'a
| `Zero ]
Very general type, including ε, ø, union, intersection, sequence,
converse and non-nul iteration.
type 'a
rklm = [ `Conc of 'a rklm * 'a rklm
| `Inter of 'a rklm * 'a rklm
| `Star of 'a rklm
| `Union of 'a rklm * 'a rklm
| `Var of 'a ]
Without identity ε and ø.
type 'a
rkli = [ `Conc of 'a rkli * 'a rkli
| `Inter of 'a rkli * 'a rkli
| `Un
| `Union of 'a rkli * 'a rkli
| `Var of 'a
| `Zero ]
Without iteration.
type 'a
rkl = [ `Conc of 'a rkl * 'a rkl
| `Inter of 'a rkl * 'a rkl
| `Union of 'a rkl * 'a rkl
| `Var of 'a
| `Zero ]
Without iteration and converse.
type 'a
ground = [ `Conc of 'a ground * 'a ground
| `Inter of 'a ground * 'a ground
| `Var of 'a ]
Only variables, intersections and sequences.
type
comp = [ `Eq | `Geq | `Gt | `Incomp | `Leq | `Lt | `Neq ]
Type for comparisons.
type 'a
eqs = comp * 'a expr * 'a expr
Type of (in)equations.