struct Func {} impl Func { fn new(func: F) -> Self; fn params(&self) -> &[Type]; fn returns(&self) -> &[Type]; fn call(...) -> Result; fn dyn_call(&self, params: &[Value]) -> Result, RuntimeError>; fn signature(&self) -> &FuncSig; }