public override ITable Evaluate(IRequest context)
{
// Evaluate the child branch,
var result = Child.Evaluate(context);
// Get the table of the complete mark name,
var completeLeft = context.Access().GetCachedTable(MarkerName);
// The rows in 'complete_left' that are outside (not in) the rows in the
// left result.
var outside = completeLeft.OuterJoin(result);
// Create an OuterTable
var outerTable = OuterTable.Create(result);
outerTable.MergeIn(outside);
// Return the outer table
return outerTable;
}