anchor.diff:          | (Terms terms, Terms terms2) ->
               if terms.Length = terms2.Length then
                   let mutable errOpt = ValueNone
  -                let result = List.forall2 (fun term term2 -> match Subquery.ge term term2 with Bool b -> b | Err err -> (errOpt <- ValueSome err; false) | _ -> false) terms terms2
  -                match errOpt with ValueSome err -> Err err | ValueNone -> Bool result
  +                let result = List.forall2 (fun term term2 -> match Subquery.ge term term2 with Bool b -> b | Error err -> (errOpt <- ValueSome err; false) | _ -> false) terms terms2
  +                match errOpt with ValueSome err -> Error err | ValueNone -> Bool result
               else Bool false
  -        | ((Err _ as err), _) -> err
  -        | (_, (Err _ as err)) -> err
  -        | (_, _) -> Err "Comparing non-comparable terms."
  +        | ((Error _ as err), _) -> err
  +        | (_, (Error _ as err)) -> err
  +        | (_, _) -> Error "Comparing non-comparable terms."
   
       static member lt term term2 =
           match (term, term2) with
  
positive.code:                 if b then
                      match Subquery.eq termSnd termSnd2 with
                      | Bool _ as b -> b
                      | Err _ as err -> err
                      | _ -> failwithumf ()
                  else Bool false
              | Err _ as err -> err
              | _ -> failwithumf ()
          | (Terms terms, Terms terms2) ->
              if terms.Length = terms2.Length then
                  let mutable errOpt = ValueNone
                  let result = List.forall2 (fun term term2 -> match Subquery.eq term term2 with Bool b -> b | Err err -> (errOpt <- ValueSome err; false) | _ -> false) terms terms2
                  match errOpt with ValueSome err -> Err err | ValueNone -> Bool result
              else Bool false
          | ((Err _ as err), _) -> err
          | (_, (Err _ as err)) -> err
          | _ -> Err "Checking equality on unlike terms."
  
      static member gt term term2 =
          match (term, term2) with
  
negative.code:         | (Terms terms, Terms terms2) ->
              if terms.Length = terms2.Length then
                  let mutable errOpt = ValueNone
                  let result = List.forall2 (fun term term2 -> match Subquery.gt term term2 with Bool b -> b | Error err -> (errOpt <- ValueSome err; false) | _ -> false) terms terms2
                  match errOpt with ValueSome err -> Error err | ValueNone -> Bool result
              else Bool false
          | ((Error _ as err), _) -> err
          | (_, (Error _ as err)) -> err
          | (_, _) -> Error "Comparing non-comparable terms."
  
      static member ge term term2 =
          match (term, term2) with
  