pub fn gcd<'a, T, U>(left: T, right: U) -> ExprNode<'a>where T: Into<ExprNode<'a>>, U: Into<ExprNode<'a>>,