public ExpressionNode(Expression expr, Node parent)
        {
            Requires.NotNull(expr, nameof(expr));
            Requires.NotNull(parent, nameof(parent));

            this.Expression = expr;
            this.Parent = parent;
        }
 public ExpressionTree()
 {
     this.rootNode = new RootNode();
 }
 public void AddChild(Node child)
 {
     Requires.NotNull(child, nameof(child));
     var list = Children.ToList();
     list.Add(child);
     this.Children = list.AsReadOnly();
 }