pub trait CanCompute<Code, Input> { type Output; // Required method fn compute(&self, _code: PhantomData<Code>, input: Input) -> Self::Output; }