pub trait Cross { fn cross(&self, other : &Self) -> Result; }