pub trait FunctionDefinition<Q: QueryContext> {
// Required method
fn call<'a>(
&'a self,
state: &mut State<'a, Q>,
context: &'a Q::ExecContext<'a>,
args: &'a [Option<Pattern<Q>>],
logs: &mut AnalysisLogs,
) -> GritResult<FuncEvaluation<'_, Q>>;
}