pub(crate) fn compile_fn( env: &mut SloshVm, state: &mut CompileState, args: Value, cdr: &[Value], result: usize, is_macro: bool, ) -> VMResult<()>