public virtual TResult Visit(SignedNode node)
 {
     node.Node.Visit(this);
     return(DefaultResult());
 }
        public override double Visit(SignedNode node)
        {
            var value = node.Node.Visit(this);

            return(node.Sign == Sign.Minus ? -value : value);
        }