// See #1470.

impl Environment {
    pub fn new_root() -> Rc<RefCell<Environment>> {
        let mut env = Environment::new();
        let builtin_functions = &[
            (
                "println",
                Function::NativeVoid(
                    CallSign {
                        num_params: 0,
                        variadic: true,
                        param_types: vec![],
                    },
                    native_println,
                ),
            ),
            (
                "run_http_server",
                Function::NativeVoid(
                    CallSign {
                        num_params: 1,
                        variadic: false,
                        param_types: vec![Some(ConstraintType::Function)],
                    },
                    native_run_http_server,
                ),
            ),
            (
                "len",
                Function::NativeReturning(
                    CallSign {
                        num_params: 1,
                        variadic: false,
                        param_types: vec![None],
                    },
                    native_len,
                ),
            ),
        ];
    }
}