anchor.diff:      parseFunctionBody(ReturnAtom,Params,{c_case, a, {c_values,a,[{c_var,a,Var}]}, Clauses});
   
   parseFunctionBody(ReturnAtom,Params,{c_case, _, {c_values,_,Vars}, Clauses})->
  -    parseCaseClauses(ReturnAtom,Params, Vars, Clauses);
  +    {UnboundVars,CaseClauses} = parseCaseClauses(ReturnAtom,Params, Vars, Clauses),
  +    case UnboundVars of
  +        [] -> CaseClauses;
  +        _  -> assembleSequence(esast:variableDeclaration(UnboundVars,<<"let">>),CaseClauses)
  +    end;
   
   
   parseFunctionBody(_,Params,T)->
  
positive.code: 
  
  parseCaseClauses(ReturnAtom,Params, Vars, [])->
      null;
  parseCaseClauses(ReturnAtom,Params, Vars, [{c_clause,_,Match,Evaluate,Consequent}|Clauses])->
      esast:ifStatement(
          assembleCaseCondition(Params,Vars,Match,Evaluate),%test
          esast:blockStatement(%consequent
              encapsulateExpressions(
  
negative.code:     [Val | tupleList_getVars_3(Body)];
  tupleList_getVars_3([{_, _, Val, _} | Body])->
      [Val | tupleList_getVars_3(Body)].
  
  
  declaratorsFromList(List)->
      lists:filtermap(fun(Elem)->
          case Elem of
              {c_var,_,Name} -> {true,esast:variableDeclarator(esast:identifier(atom_to_binary(Name,utf8)),esast:identifier(<<"undefined">>))};
              _              -> false
          end
      end,List).
  
  
  %rAtomToList([A|Rest])->
  %    [rAtomToList(A)|rAtomToList(Rest)];
  