anchor.diff:                                          var.Values
                                           |> Array.filter (fun a -> VariableConditionEvaluator.resolve attributeValuesByIndex variableValuesByIndex a.Condition)
                                           |> Array.map (fun a -> a.Value)
  +                                // We remove the choice if it is invalid, or if it was system generated.
                                   let value =
                                       if value.IsSome && (not var.PermitsFreeValue) && (suggestions |> Array.tryFind ((=) value.Value) |> Option.isNone) then
                                           variableValues <- variableValues |> Map.remove var.Name
  
positive.code:                                         value
                                  let newValue, newSuggestions =
                                      if value.IsNone && suggestions.Length > 0 then
                                          variableValues <- variableValues |> Map.add var.Name suggestions.[0]
                                          suggestions.[0], suggestions
                                      else if value.IsSome then
                                          // Put the current value at the front.
  
negative.code:         }
      member __.SetValue ty name value =
          if ty = "Variable" then
              variableValues <- variableValues |> Map.add name (value, true) // The user chose this one.
          else
              attributeValues <- attributeValues |> Map.add name value
      member __.Generate (config:GeneratorConfiguration) =
  