anchor.diff:              (liftVToSym
                   (Mapper.make
                       (function
  -                     | Intermediate(i, a) -> (Map.tryFind (i, a) asubs |> withDefault (siInter i a))
  +                     | Intermediate(i, a) as y -> (Map.tryFind (i, a) asubs |> withDefault (siInter i a))
                        | x -> AVar (Reg x))
                       (function
                        | Intermediate(i, a) -> (Map.tryFind (i, a) bsubs |> withDefault (sbInter i a))
  
positive.code:         | BAEq (AVar (Reg (Intermediate(i, x))), (ConstantIntFunction (Intermediate(k, y)) as fx))
          | BAEq (ConstantIntFunction (Intermediate(k, y)) as fx, AVar (Reg (Intermediate(i, x))))
              when x = y
              -> [((i, x), fx)]
          | BAnd xs -> concatMap findArithInters xs
          | _ -> []
  
  
negative.code:         | BBEq (BVar (Reg (Intermediate(i, x))), (ConstantBoolFunction (Intermediate(k, y)) as fx))
          | BBEq (ConstantBoolFunction (Intermediate(k, y)) as fx, BVar (Reg (Intermediate(i, x))))
              when x = y
              -> if i < k then [((i, x), fx)] else []
          | BAnd xs -> concatMap findBoolInters xs
          | _ -> []
  
  