use crate::prelude::*;
use std::collections::HashMap;
mod core;
mod fn_def;
mod import;
mod list;
mod math;
mod private;
mod ty;
pub fn all_functions() -> HashMap<String, Atom> {
let mut builtins = HashMap::new();
for module in [
core::functions(),
fn_def::functions(),
import::functions(),
private::functions(),
ty::functions(),
functions(),
] {
for (name, function) in module {
builtins.insert(name.to_string(), Atom::Function(function));
}
}
builtins
}
functions! {
"__builtin_int_math"(3) => math::builtin_int_math
"__builtin_int_shift"(3) => math::builtin_int_shift
"__builtin_list_api"(_) => list::builtin_list_api
}