pub trait Vm<'a> {
// Required methods
fn heap(&self) -> &Heap;
fn heap_mut(&mut self) -> &mut Heap;
fn engine(&self) -> &Engine<'a>;
fn engine_mut(&mut self) -> &mut Engine<'a>;
fn call_func(&mut self, func: &Func, args: Args) -> SourceResult<Value>;
}