anchor.diff:       || {prim, Code, #diagram_node{content = Val}, none} <- Prim].
   
   oneofs_funcs(_ModuleName, _ThisModuleName, OneOfs) ->
  -    [erl_syntax:clause([erl_syntax:variable(utils:underscore_if_ne("Size", PNodes)),
  -			erl_syntax:variable(utils:underscore_if_ne("State", PNodes)),
  -			erl_syntax:variable("_WhatToReturn"),
  -			erl_syntax:abstract(Code)],
  -		       none,
  -		       [case lists:map(fun ({_, X}) -> X end, PNodes) of
  -			    [] -> erl_syntax:atom(error);
  -			    PNodesFix ->
  -				erl_syntax:application(erl_syntax:atom(utils), erl_syntax:atom(used_or),
  -						       [erl_syntax:application(
  -							  erl_syntax:atom(utils),
  -							  erl_syntax:atom(normalise_weights),
  -							  [erl_syntax:list_comp(
  -							     erl_syntax:application(
  -							       erl_syntax:atom(utils),
  -							       erl_syntax:atom(add_weights),
  -							       [erl_syntax:variable("State"),
  -								erl_syntax:variable("Node"),
  -								erl_syntax:application(
  -								  erl_syntax:atom(used_args_for),
  -								  [erl_syntax:variable("Size"),
  -								   erl_syntax:variable("State"),
  -								   erl_syntax:variable("WhatToReturn"),
  -								   erl_syntax:variable("Node")])]),
  -							     [erl_syntax:generator(
  -								erl_syntax:tuple(
  -								  [erl_syntax:variable("WhatToReturn"),
  -								   erl_syntax:variable("Node")]),
  -								erl_syntax:abstract(PNodesFix))])])])
  -			end])
  -     || {oneOf, Code, #diagram_node{http_request = no}, PNodes} <- OneOfs].
  +	[erl_syntax:clause(
  +	   [erl_syntax:variable(utils:underscore_if_ne("Size", PNodes)),
  +	    erl_syntax:variable(utils:underscore_if_ne("State", PNodes)),
  +	    erl_syntax:variable("_WhatToReturn"),
  +	    erl_syntax:abstract(Code)],
  +	   none,
  +	   [case PNodes of
  +		   [] -> erl_syntax:atom(error);
  +		   _ ->	erl_syntax:application(
  +			  erl_syntax:atom(utils), erl_syntax:atom(used_or),
  +			  [erl_syntax:application(
  +			     erl_syntax:atom(utils),
  +			     erl_syntax:atom(normalise_weights),
  +			     [erl_syntax:list_comp(
  +				erl_syntax:application(
  +				  erl_syntax:atom(utils),
  +				  erl_syntax:atom(add_weights),
  +				  [erl_syntax:variable("State"),
  +				   erl_syntax:variable("Node"),
  +				   erl_syntax:application(
  +				     erl_syntax:atom(used_args_for),
  +				     [erl_syntax:variable("NewSize"),
  +				      erl_syntax:variable("State"),
  +				      erl_syntax:variable("WhatToReturn"),
  +				      erl_syntax:variable("Node")])]),
  +				[erl_syntax:generator(
  +				   erl_syntax:tuple(
  +				     [erl_syntax:variable("NewSize"),
  +				      erl_syntax:variable("WhatToReturn"),
  +				      erl_syntax:variable("Node")]),
  +				   args_for_with_size(PNodes)
  +				  )])])])
  +	   end])
  +	 || {oneOf, Code, #diagram_node{http_request = no}, PNodes} <- OneOfs].
   
   check_sig({A, _}, {B, _}) when (is_list(A) andalso is_atom(B)) ->
       false;
  
positive.code: 	 end
  	 || {acall, Code, (#diagram_node{content = Callback} = Node), {This, Params}, {EThis, EParams}} <- Calls].
  
  this_call({CallType, List}) when is_list(List) -> calls_for({CallType, List});
  this_call(Else) -> erl_syntax:abstract(Else).
  
  calls_for_normal(List) ->
  	erl_syntax:list(lists:map(fun calls_for/1, List)).
  
  
  calls_for({CallType, Node}) -> erl_syntax:application(
  				 erl_syntax:atom(used_args_for),
  				 [erl_syntax:variable("Size"),
  				  erl_syntax:variable("State"),
  				  erl_syntax:abstract(CallType),
  				  erl_syntax:string(Node)]).
  
  map_abstract(List) when is_list(List) ->
      case io_lib:printable_list(List) of
  
negative.code: 							 [erl_syntax:match_expr(
  							    erl_syntax:variable("Params"),
  							    erl_syntax:tuple([this_call(This),
  									      gen_calls_for_with_size_normal(call, Params)])),
  							  erl_syntax:match_expr(
  							    erl_syntax:variable("CParams"),
  							    erl_syntax:application(
  