anchor.diff:  
   translate_letrec(Bindings, Body) ->
     assemble_letrec([translate_letrec_binding(Binding) || Binding <- Bindings],
  -		  translate_expr(Body)).
  +                  translate_expr(Body)).
   
   translate_letrec_binding({Var, Formals, Body}) ->
     CerlFormals = translate_formals(Formals),
  
positive.code:   Var1 = cerl:c_var(1), % '_1'
    Var2 = cerl:c_var(2), % '_2'
    cerl:c_fun([Var1],
  	     cerl:c_case(cerl:c_case(Var1,
  				     [cerl:c_clause([cerl:c_tuple_skel([cerl:c_atom('$argv'), Var2])], Var2),
  				      cerl:c_clause([wildpat()], cerl:c_cons(Var1, cerl:c_nil()))]),
  			 [cerl:c_clause([ListPattern], Body),
  			  cerl:c_clause([wildpat()],
  					cerl:c_call(cerl:c_atom('erlang'), cerl:c_atom('error'), [cerl:c_atom('badarity')]))])).
  
  assemble_lambda_1(Var, Body) -> % an arity-1 lambda must reject a varargs parameter
    %% Synthesize:
    %% fun (Var) -> case Var of {'$argv', _} -> erlang:error(badarity); _ -> Body end
    cerl:c_fun([Var],
  	     cerl:c_case(Var,
  			 [cerl:c_clause([cerl:c_tuple_skel([cerl:c_atom('$argv'), wildpat()])],
  					cerl:c_call(cerl:c_atom('erlang'), cerl:c_atom('error'), [cerl:c_atom('badarity')])),
  			  cerl:c_clause([wildpat()], Body)])).
  
  assemble_lambda_N(Vars, Body) -> % any fixed arity except 1
    cerl:c_fun(Vars, Body).
  
negative.code: 
  -module(es_compile).
  
  -export([ file/1
          ]).
  
  -type datum() :: term().
  
  %% API -------------------------------------------------------------------------
  
  -spec file(datum()) -> ok.
  file(Arg) ->
    FileName = binary_to_list(es_datum:string_to_binary(Arg)),
    AST = es_load:module(FileName),
  