format!("Type error: {}\n\tExepected: arithmetic expression\n\tFound: comparison expression", &ctx.source_code[node.start_byte()..node.end_byte()]),
// Equality works on any type, typechecking of operands will be handled within parse_binary_expression
"and_expr" | "or_expr" | "implication" | "iff_expr" => parse_binary_expression(ctx, &inner),
// The inner context is either Boolean or Arithmetic so the elements of the set/matrix are typechecked correctly.
// looking for the operator node (either '!' at the end or 'factorial' at the start) to add hover info