anchor.diff:              match terms.TryGetValue termName with
               | (true, term) -> Subquery.lesserEqual term term2
               | (false, _) -> false
  +        | If (termName, pred) ->
  +            match terms.TryGetValue termName with
  +            | (true, term) -> pred term
  +            | (false, _) -> false
           | Not subquery ->
               not (Subquery.eval terms subquery)
           | And subqueries ->
  
positive.code:     static member singleton termName term = Term.dict [(termName, term)]
      static member zero = Term.dict []
  
  and [<StructuralEquality; NoComparison>] Subquery =
      | Is of string
      | Of of string * string
      | ByName of string * string
  
negative.code:     | Ge of string * Term
      | Lt of string * Term
      | Le of string * Term
      | If of string * (Term -> bool)
      | Not of Subquery
      | And of Subquery list
      | Or of Subquery list
  