/// `[t1.a, t1.b, t2.a, t2.b]` with `[u1.a, u1.b, u2.a, u2.b]`: entries of one type have one width.
fn flat_scalar_lex_comparison(expr: &Expression, symbols: &SymbolTable) -> ApplicationResult {
/// entries, then the rest: `a <lex b` iff `a[1] < b[1]`, or `a[1] = b[1]` and the tails compare
let ready = |entry: &Expression| is_scalar(entry) || matches!(entry, Expression::Atomic(..));