anchor.diff:          in
           match (unparen rel).tm with
           | Op (id, _) ->
  -            begin match op_as_term env 2 Range.dummyRange id with
  +            begin match op_as_term env 2 id with
               | Some t -> is_impl_t t
               | None -> false
               end
  
positive.code:     (* if op_Star has not been rebound, then it's reserved for tuples *)
      | Op(op_star, [lhs;rhs]) when
        (Ident.text_of_id op_star = "*" &&
         op_as_term env 2 top.range op_star |> Option.isNone) ->
        (* See the comment in parse.mly to understand why this implicitly relies
         * on the presence of a Paren node in the AST. *)
        let rec flatten t = match t.tm with
          // * is left-associative
          | Op(id, [t1;t2]) when
             text_of_id id = "*" &&
             op_as_term env 2 top.range op_star |> Option.isNone ->
            flatten t1 @ [ t2 ]
          | _ -> [t]
        in
  
negative.code: 
      | Op(s, args) ->
        begin
        match op_as_term env (List.length args) s with
        | None ->
          raise_error (Errors.Fatal_UnepxectedOrUnboundOperator,
                       "Unexpected or unbound operator: " ^
  