anchor.diff:              Ds = Ds0#{ Dst => I },
               {I, Ts, Ds}
       end;
  -simplify(#b_set{op={succeeded,Kind},args=[Arg],dst=Dst}=I0,
  +simplify(#b_set{op={succeeded,Kind},args=[Arg],dst=Dst}=I,
            Ts0, Ds0, _Ls, Sub) ->
  -    Type = case will_succeed(I0, Ts0, Ds0, Sub) of
  +    Type = case will_succeed(I, Ts0, Ds0, Sub) of
                  yes -> beam_types:make_atom(true);
                  no -> beam_types:make_atom(false);
                  maybe -> beam_types:make_boolean()
  
positive.code:                dst=Dst}=I0 | Is],
         Ts0, Ds0, Ls, Fdb, Sub, State0) ->
      Args = simplify_args(Args0, Ts0, Sub),
      I1 = beam_ssa:normalize(I0#b_set{args=Args}),
  
      [_ | CallArgs] = Args,
      {I, State} = sig_local_call(I1, Callee, CallArgs, Ts0, Fdb, State0),
  
negative.code:                dst=Dst}=I0 | Is],
         Ts0, Ds0, Ls, Fdb, Sub, State) ->
      Args = simplify_args(Args0, Ts0, Sub),
      I1 = I0#b_set{args=Args},
  
      [Fun | _] = Args,
      I = case normalized_type(Fun, Ts0) of
  