Воозможные значения переменной я определил как
num Atomic {
// Closed interval of natural numbers
Interval(Interval),
// Concrete value
Constant(i64),
// Regular interval
Chres(Chres),
// Periodic sequence
Periodic((Vec<i64>, i64)),
}
struct Composite(Vec<Atomic>);
impl Composite {
fn compress(&mut self) {
todo!();
}
}
// Defines the set of possible values of a variable
enum Value {
Atomic(Atomic),
Composite(Composite),
}