#[macro_export]
macro_rules! apl {
($expr:expr) => {{ $crate::parse::parse_and_evaluate($expr) }};
($expr:expr, $env:expr) => {{ $crate::parse::parse_and_evaluate_with_env($expr, $env) }};
($expr:expr, omega: $omega:expr) => {{
let mut env = $crate::Env::new();
env.vars
.insert("⍵".to_string(), $crate::parse::val::Val::from_f64s($omega));
$crate::parse::parse_and_evaluate_with_env($expr, &mut env)
}};
($expr:expr, alpha: $alpha:expr, omega: $omega:expr) => {{
let mut env = $crate::Env::new();
env.vars
.insert("⍺".to_string(), $crate::parse::val::Val::from_f64s($alpha));
env.vars
.insert("⍵".to_string(), $crate::parse::val::Val::from_f64s($omega));
$crate::parse::parse_and_evaluate_with_env($expr, &mut env)
}};
}