anchor.diff:  vann_list_comp_body_join(Ms, VI, Pid) ->
       fun (T, {Env, Bound, Free}) ->
   	    {T1, Bound1, Free1} = case wrangler_syntax:type(T) of
  -				    generator -> vann_generator(T, Env, Ms, VI, Pid);
  +                                    binary_generator ->
  +                                         vann_binary_generator(T, Env, Ms, VI, Pid);
  +				    generator -> 
  +                                          vann_generator(T, Env, Ms, VI, Pid);
   				    _ ->
   					{T2, _, Free2} = vann(T, Env, Ms, VI, Pid),
   					{T2, [], Free2}
  
positive.code: 					     {Env, [], []}, Ts),
      {Ts1, {Bound, Free}}.
  
  %% In list comprehension generators, the pattern variables are always
  %% viewed as new occurrences, shadowing whatever is in the input
  %% environment (thus, the pattern contains no variable uses, only
  
negative.code: 	rule -> vann_rule(Tree, Env, Ms, VI, Pid);
  	fun_expr -> vann_fun_expr(Tree, Env, Ms, VI, Pid);
  	list_comp -> vann_list_comp(Tree, Env, Ms, VI, Pid);
          binary_comp ->vann_binary_comp(Tree, Env, Ms, VI, Pid);
  	generator -> vann_generator(Tree, Env, Ms, VI, Pid);
          binary_generator ->vann_binary_generator(Tree, Env, Ms, VI, Pid);
  	block_expr -> vann_block_expr(Tree, Env, Ms, VI, Pid);
  	macro -> vann_macro(Tree, Env, Ms, VI, Pid);
  	%% Added by HL, begin.
  