///|
/// Evaluate compound assignment with binary op
fn eval_compound_assign(
path : Expr,
op : BinaryOp,
value_expr : Expr,
input : Json,
env : Env,
) -> Iter[Json] raise InterpreterError {
eval_with_env(Update(path, Operation(Identity, op, value_expr)), input, env)
}
///|
/// Evaluate alternative assignment
fn eval_alt_assign(
path : Expr,
value_expr : Expr,
input : Json,
env : Env,
) -> Iter[Json] raise InterpreterError {
eval_with_env(Update(path, Alternative(Identity, value_expr)), input, env)
}