pub trait Add type Right = Self type Result = Self fn add(right: Self::Right) -> Self::Result end pub trait Multiply type Right = Self type Result = Self fn multiply(right: Self::Right) -> Self::Result end pub trait Negate type Result = Self fn negate() -> Self::Result end