pub trait ModelTransform: Debug {
// Required methods
fn name(&self) -> Cow<'_, str>;
fn transform(
&self,
model: &mut Graph<TypedFact, Box<dyn TypedOp>>,
) -> Result<(), Error>;
// Provided method
fn transform_into(
&self,
model: Graph<TypedFact, Box<dyn TypedOp>>,
) -> Result<Graph<TypedFact, Box<dyn TypedOp>>, Error> { ... }
}