anchor.diff:    { TLeft, VL } = transform(Left, F, V, S),
     { TRight, VR } = transform(Right, F, V, S),
     Args = { cons, Line, TRight, {nil, Line} },
  -  { ?ELIXIR_WRAP_CALL(Line, elixir_dispatch, dispatch, [TLeft, {atom, Line, Op}, Args]), umerge3(V, VL, VR) };
  +  { ?ELIXIR_WRAP_CALL(Line, elixir_dispatch, dispatch, [TLeft, {atom, Line, Op}, Args]), umerge(VL, VR) };
   
   % Handle unary operations.
   %
  
positive.code:     false ->
        { TArgs, VA } = transform_tree(Args, F, V, S),
        { TVar, VV }  = transform(Var, F, V, S),
        { {call, Line, TVar, TArgs}, umerge3(V, VA, VV) }
    end;
  
  % Handle module/object declarations. The difference between
  
negative.code: % Variables defined inside these expressions needs to be added to the var list.
  transform({list, Line, Exprs, Tail }, F, V, S) ->
    Transformer = fun (X, Acc) -> transform(X, F, Acc, S) end,
    { TTail, VT }  = transform(Tail, F, V, S),
    { TExprs, VE } = build_list(Transformer, Exprs, Line, V, TTail),
    { TExprs, umerge(VE, VT) };
  
  % Handle dict declarations. It simply delegates to list to build a list
  % of args that is dispatched to dict:from_list/1.
  