anchor.diff:  
       static member eval term subquery =
           match subquery with
  -        | Eq term  ->
  -            Subquery.equalTo term term
  -        | Gt c ->
  -            match term with
  -            | Number c2 -> match (c, c2) with (Z i, Z i2) -> i > i2 | (R s, R s2) -> s > s2 | _ -> false
  -            | _ -> false
  -        | Ge c ->
  -            match term with
  -            | Number c2 -> match (c, c2) with (Z i, Z i2) -> i >= i2 | (R s, R s2) -> s >= s2 | _ -> false
  -            | _ -> false
  -        | Lt c ->
  -            match term with
  -            | Number c2 -> match (c, c2) with (Z i, Z i2) -> i < i2 | (R s, R s2) -> s < s2 | _ -> false
  -            | _ -> false
  -        | Le c ->
  -            match term with
  -            | Number c2 -> match (c, c2) with (Z i, Z i2) -> i <= i2 | (R s, R s2) -> s <= s2 | _ -> false
  -            | _ -> false
  +        | Eq term2  ->
  +            Subquery.equalTo term term2
  +        | Gt term2 ->
  +            match (term, term2) with
  +            | (Z i, Z i2) -> i > i2
  +            | (R s, R s2) -> s > s2
  +            | (_, _) -> false
  +        | Ge term2 ->
  +            match (term, term2) with
  +            | (Z i, Z i2) -> i >= i2
  +            | (R s, R s2) -> s >= s2
  +            | (_, _) -> false
  +        | Lt term2 ->
  +            match (term, term2) with
  +            | (Z i, Z i2) -> i < i2
  +            | (R s, R s2) -> s < s2
  +            | (_, _) -> false
  +        | Le term2 ->
  +            match (term, term2) with
  +            | (Z i, Z i2) -> i <= i2
  +            | (R s, R s2) -> s <= s2
  +            | (_, _) -> false
           | Not subquery ->
               not (Subquery.eval term subquery)
           | And subqueries ->
  
positive.code: // TODO: 3D: remove any incidental allocation.
  // TODO: 3D: make sure to use proper collection comparer for string keys.
  
  type [<StructuralEquality; NoComparison>] Number =
      | Z of int
      | R of single
  
  type [<StructuralEquality; NoComparison>] Term =
      | Tag of string
      | Entity of uint64
      | Number of Number
      | Terms of Term list
      static member equals (this : Term) (that : Term) = this.Equals that
      static member equalsMany (lefts : Dictionary<string, Term>) (rights : Dictionary<string, Term>) =
  
negative.code: 
  type [<StructuralEquality; NoComparison>] Subquery =
      | Eq of Term
      | Gt of Term
      | Ge of Term
      | Lt of Term
      | Le of Term
      | Not of Subquery
      | And of Subquery list
      | Or of Subquery list
  