pub trait StructuralFn { type Args: StructuredArgs; type Output; // Required method fn eval(&self) -> Self::Output; }