public IEnumerable <BoundVariableSet> BindVariables (IValue [] arguments) { foreach (var value in values) { var var = (Runtime.Variable) arguments.Single(); if (var.ConcreteValue != null) { // In real life may want to check here if the var is already bound to the correct value // but that is not needed for this test. throw new Exception ("Variable already bound."); } var.BoundTo = new Runtime.Atom (value); yield return new BoundVariableSet {var}; } }