anchor.diff:  enc_cg({call_gen,Prefix,Key,Gen,_,As0}) ->
       As = [mk_val(A) || A <- As0],
       asn1ct_func:call_gen(Prefix, Key, Gen, As);
  -enc_cg({call_gen,Prefix,Key,Gen,_,As0,Dst}) ->
  -    As = [mk_val(A) || A <- As0],
  -    emit([mk_val(Dst)," = "]),
  -    asn1ct_func:call_gen(Prefix, Key, Gen, As);
   enc_cg({'cond',Cs}) ->
  -    enc_cg_cond(Cs);
  -enc_cg({'cond',Cs,Dst0}) ->
  -    Dst = mk_val(Dst0),
  -    emit([Dst," = "]),
       enc_cg_cond(Cs);
   enc_cg({error,Error}) when is_function(Error, 0) ->
       Error();
  
positive.code: %%%
  
  per_fixup([{apply,_,_}=H|T]) ->
      [H|per_fixup(T)];
  per_fixup([{apply,_,_,_}=H|T]) ->
      [H|per_fixup(T)];
  per_fixup([{block,Block}|T]) ->
      [{block,per_fixup(Block)}|per_fixup(T)];
  
negative.code:     throw(impossible);
  num_bits([], Sum) -> Sum.
  
  per_enc_open_type_output(Imm) ->
      Dst = output_var(),
      {Dst,[{list,Imm,Dst}]}.
  
  output_var() ->
      asn1ct_name:new(enc),
  