pub fn replace<'a, T, U, V>(expr: T, old: U, new: V) -> ExprNode<'a>where
    T: Into<ExprNode<'a>>,
    U: Into<ExprNode<'a>>,
    V: Into<ExprNode<'a>>,