pub trait Combine {
fn combine(&self, other: &Self) -> Self;
}
pub struct Thing;
impl Combine for Thing {
fn combine(&self, other: &Self) -> Self {
Self