Module Expr

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.