anchor.diff:      asn1ct_rtt:assert_defined(MFA),
       cast({need,MFA}).
   
  +call_gen(Prefix, Key, Gen, Args) when is_function(Gen, 2) ->
  +    F = req({gen_func,Prefix,Key,Gen}),
  +    asn1ct_gen:emit([F,"(",call_args(Args, ""),")"]).
  +
  +call_gen(Prefix, Key, Gen) when is_function(Gen, 2) ->
  +    req({gen_func,Prefix,Key,Gen}).
  +
   generate(Fd) ->
  +    do_generate(Fd),
       Used0 = req(get_used),
       erase(?MODULE),
       Used = sofs:set(Used0, [mfa]),
  
positive.code: 	    update_worklist(T, Used, Ws)
      end;
  update_worklist([], _, Ws) -> Ws.
  
negative.code: 
  %%% Internal functions.
  
  -record(st, {used,				%Used functions
  	     gen,				%Dynamically generated functions
  	     gc=1				%Counter for generated functions
  	    }).
  
  init([]) ->
      St = #st{used=gb_sets:empty(),gen=gb_trees:empty()},
      {ok,St}.
  
  handle_cast({need,MFA}, #st{used=Used0}=St) ->
  