anchor.diff:  %
   % Each expression in the list can contain a match expression.
   % Variables defined inside these expressions needs to be added to the var list.
  -transform({list, Line, Exprs, Tail }, V, S) ->
  -  Transformer = fun (X, Acc) -> transform(X, Acc, S) end,
  -  { TTail, TV }  = transform(Tail, V, S),
  +transform({list, Line, Exprs, Tail }, F, V, S) ->
  +  Transformer = fun (X, Acc) -> transform(X, F, Acc, S) end,
  +  { TTail, TV }  = transform(Tail, F, V, S),
     { TExprs, VE } = build_list(Transformer, Exprs, Line, TV, TTail),
     { TExprs, VE };
   
  
positive.code: % = Variables
  %
  % See list.
  transform({interpolated_string, Line, String }, V, S) ->
    Interpolations = elixir_string_methods:extract_interpolations(String),
    Transformer = fun(X, Acc) -> handle_string_extractions(X, Line, Acc, S) end,
    { List, VE } = build_list(Transformer, Interpolations, Line, V),
    Flattened = ?ELIXIR_WRAP_CALL(Line, lists, flatten, [List]),
    { build_object(Line, 'String', list, Flattened), VE };
  
  transform({string, Line, String } = Expr, V, S) ->
    { build_object(Line, 'String', list, Expr), V };
  
  % Handle binary operations.
  
negative.code: %   a = (b = 1)
  %
  % So we need to take both into account.
  transform({match, Line, Left, Right}, F, V, S) ->
    { Var, Def, Mod } = S,
    { TLeft, VL } = transform(Left, F, V, { true, Def, Mod }),
    { TRight, VR } = transform(Right, F, V, S),
    { {match, Line, TLeft, TRight }, umerge3(V, VL, VR) };
  
  % Handle tuple declarations.
  