anchor.diff:                                  #b_br{}=Br ->
                                       opt_terminator(Br, Ts, Ds);
                                   Sw ->
  -                                    Sw
  +                                    beam_ssa:normalize(Sw)
                               end;
                           false ->
  -                            Sw0
  +                            beam_ssa:normalize(Sw0)
                       end
               end
       end;
   opt_terminator(#b_ret{}=Ret, _Ts, _Ds) ->
       Ret.
   
  -update_successors(#b_br{bool=#b_literal{val=false},fail=S}, Ts, D) ->
  -    update_successor(S, Ts, D);
   update_successors(#b_br{bool=#b_literal{val=true},succ=S}, Ts, D) ->
       update_successor(S, Ts, D);
   update_successors(#b_br{bool=#b_var{name=V},succ=Succ,fail=Fail}, Ts, D0) ->
  
positive.code: anno_float_arg(_) -> convert.
  
  opt_terminator(#b_br{bool=#b_literal{}}=Br, _Ts, _Ds) ->
      Br;
  opt_terminator(#b_br{bool=#b_var{name=V}=Var}=Br, Ts, Ds) ->
      BoolType = get_type(Var, Ts),
      case get_literal_from_type(BoolType) of
          #b_literal{}=BoolLit ->
              Br#b_br{bool=BoolLit};
          none ->
              #{V:=Set} = Ds,
              case Set of
  
negative.code:                     simplify_not(Br, Ts, Ds)
              end
      end;
  opt_terminator(#b_switch{arg=V}=Sw0, Ts, Ds) ->
      Type = get_type(V, Ts),
      case get_literal_from_type(Type) of
          #b_literal{}=Lit ->
              Sw = Sw0#b_switch{arg=Lit},
              beam_ssa:normalize(Sw);
          none ->
              case Type of
                  #t_integer{elements={_,_}=Range} ->
                      simplify_switch_int(Sw0, Range);
                  Type ->
  