public ExpressionBinaryOperation(Expression left, OperationToken operation, Expression right) {
			Debug.Assert(left != null);
			Debug.Assert(operation != null);
			Debug.Assert(right != null);
			this.left = left;
			this.operation = operation;
			this.right = right;
		}
		public ExpressionUnaryOperation(OperationToken operation, Expression expression) {
			Debug.Assert(operation != null);
			Debug.Assert(expression != null);
			this.operation = operation;
			this.expression = expression;
		}