pub trait Context {
// Required methods
fn call(&mut self, func: &str, values: &Vec<Value>) -> i32;
fn ident_get(&self, ident: &str) -> i32;
fn ident_set(&mut self, ident: &str, value: i32);
// Provided method
fn call_native(&mut self, _func: &str) -> i32 { ... }
}