private void BuildBindingNode(ReteBuilderContext context, BindingElement element) { var node = context.BetaSource .Sinks.OfType <BindingNode>() .FirstOrDefault(x => ExpressionComparer.AreEqual(x.BindingExpression.Expression, element.Expression)); if (node == null) { var bindingExpression = ExpressionCompiler.CompileBindingExpression(element, context.Declarations); node = new BindingNode(bindingExpression, element.ResultType, context.BetaSource); } BuildBetaMemoryNode(context, node); context.ResetAlphaSource(); }