fn eq(lhs: &Atomic, rhs: &Atomic) -> bool {
match (lhs, rhs) {
(Atomic::Constant(lhs), Atomic::Constant(rhs)) => {
lhs == rhs
},
(Atomic::Interval(lhs), Atomic::Interval(rhs)) => {
false
},
(Atomic::Interval(interval), Atomic::Constant(constant))
| (Atomic::Constant(constant), Atomic::Interval(interval)) => {
false
},
_ => panic!("forbidden operation"),
}
}