anchor.diff:      {ok,Size,Bt} = erl_bits:set_bit_type(Size, Type0),
       {Size,erl_bits:as_list(Bt)}.
   
  -expr_lc_bc({Tag,Anno,E0,Gs0}) ->
  +expr_lc_bc({Tag,Anno,E0,Gs0}, St) ->
       Gs = lists:map(fun ({generate,L,P0,Qs}) ->
  -			   {generate,L,pattern(P0),expr(Qs, false)};
  +			   {generate,L,pattern(P0, St),expr(Qs, false, St)};
   		       ({b_generate,L,P0,Qs}) -> %R12.
  -			   {b_generate,L,pattern(P0),expr(Qs, false)};
  +			   {b_generate,L,pattern(P0, St),expr(Qs, false, St)};
   		       (Expr) ->
  -			   case is_guard_test(Expr) of
  -			       true -> {guard,guard([[Expr]])};
  -			       false -> expr(Expr, false)
  +			   case is_guard_test(Expr, St) of
  +			       true -> {guard,guard([[Expr]], St)};
  +			       false -> expr(Expr, false, St)
   			   end
   		   end, Gs0),
  -    {Tag,ln(Anno),expr(E0, false),Gs}.
  -
  -is_guard_test(Expr) ->
  +    {Tag,ln(Anno),expr(E0, false, St),Gs}.
  +
  +is_guard_test(Expr, _St) ->
       IsOverridden = fun({_,_}) -> true end,
       erl_lint:is_guard_test(Expr, [], IsOverridden).
   
  
positive.code:     throw(not_literal);
  map_literal([], M) -> M.
  
  map_fields(Fs) ->
      map_fields(Fs, fun (E) -> expr(E, false) end).
  
  map_fields([{map_field_assoc,A,N,V}|Fs], F) ->
      [{map_field_assoc,ln(A),F(N),F(V)}|map_fields(Fs)];
  map_fields([{map_field_exact,A,N,V}|Fs], F) ->
      [{map_field_exact,ln(A),F(N),F(V)}|map_fields(Fs)];
  map_fields([], _) -> [].
  
  %% new_var_name() -> VarName.
  
  
negative.code:     put(fun_count, 0),
      put(funs, []),
      put(mod_md5, MD5),
  
      Forms1 = interpret_file_attribute(Forms0),
      Forms  = standard_transforms(Forms1),
  
      store_forms(Forms, Mod, Db, #{exp=>Exp}),
      erase(mod_md5),
      erase(current_function),
      %% store_funs(Db, Mod),
  