pub trait Substitute<T> {
type Output;
// Required method
fn substitute(&self, s: &Substitution<T>) -> Self::Output;
}
pub trait Substitute<T> {
type Output;
// Required method
fn substitute(&self, s: &Substitution<T>) -> Self::Output;
}