anchor.diff:      | Lt of Subquery * Subquery
       | Le of Subquery * Subquery
       | If of Subquery * Subquery * Subquery
  +    | GetX of Subquery
  +    | GetY of Subquery
  +    | GetZ of Subquery
  +    | GetPosition of Subquery
  +    | GetSize of Subquery
       | Intersects of Subquery * Subquery
       | Or of Subquery * Subquery
       | And of Subquery * Subquery
  
positive.code:             | B b -> if b then Subquery.eval terms consequent else Subquery.eval terms alternate
              | Err _ as err -> err
              | _ -> Err "Invalid If predicate; B required."
          | Intersects (subquery, subquery2) ->
              match (Subquery.eval terms subquery, Subquery.eval terms subquery2) with
              | (Box3 box, Box3 box2) -> B (box.Intersects box2)
  
negative.code:             match (info.Name, args) with
              | ("Item", [arg]) -> At (Subquery.unquote arg, Subquery.unquote target)
              | _ -> failwith "Unsupported call."
          | Patterns.FieldGet (Some target, info) ->
              match info.Name with
              | "X" -> GetX (Subquery.unquote target)
              | "Y" -> GetY (Subquery.unquote target)
              | "Z" -> GetZ (Subquery.unquote target)
              | "Position" -> GetPosition (Subquery.unquote target)
              | "Size" -> GetSize (Subquery.unquote target)
              | _ -> failwith "Unsupported index."
          | Patterns.NewTuple args ->
              match args with
              | [arg; arg2] -> PairCtor (Subquery.unquote arg, Subquery.unquote arg2)
  