struct Func {} impl Func { fn new(func: F) -> Self; fn params(&self) -> &'static [Type]; fn returns(&self) -> &'static [Type]; fn call(...) -> Result; fn get_vm_func(&self) -> NonNull; }