anchor.diff:      emit([mk_val(Dst)," = ["]),
       enc_cg(Body),
       emit([" || ",mk_val(Var)," <- ",mk_val(List),"]"]);
  +enc_cg({list,List,Dst}) ->
  +    emit([mk_val(Dst)," = "]),
  +    enc_cg(List);
   enc_cg(nil) ->
       emit("[]");
   enc_cg({sub,Src0,Int,Dst0}) ->
  
positive.code:     [{lc,per_fixup(B),V,L}|per_fixup(T)];
  per_fixup([{lc,B,V,L,Dst}|T]) ->
      [{lc,per_fixup(B),V,L,Dst}|per_fixup(T)];
  per_fixup([{set,_,_}=H|T]) ->
      [H|per_fixup(T)];
  per_fixup([{sub,_,_,_}=H|T]) ->
  
negative.code:     {[{'cond',Cs}],Al};
  enc_opt_al({error,_}=Imm, Al) ->
      {[Imm],Al};
  enc_opt_al({list,Imm0,Dst}, Al) ->
      Imm1 = enc_opt_hoist_align(Imm0),
      {Imm,_} = enc_opt_al_1(Imm1, 0),
      {[{list,Imm,Dst}],Al};
  enc_opt_al({put_bits,V,N,[U,align]}, Al0) when Al0 rem 8 =:= 0 ->
      Al = if
  	     is_integer(N) -> N*U;
  