pub trait Runnable: Debug {
// Required method
fn spawn(&self) -> Result<Box<dyn State>, Error>;
// Provided method
fn run(
&self,
inputs: SmallVec<[TValue; 4]>,
) -> Result<SmallVec<[TValue; 4]>, Error> { ... }
}