anchor.diff:    case AST of
       {'ES:CALL', Fun, Actuals} ->
         interpret_call(Fun, Actuals, Env);
  +    {'ES:COLON', M, F, A} ->
  +      interpret_colon(M, F, A, Env);
       {'ES:DEFINE', Var, Expr} ->
         interpret_define(Var, Expr, Env);
       {'ES:GLOVAR', Var} ->
  
positive.code: 
  do_apply(FVal, Actuals) ->
    es_apply:applyN(FVal, Actuals).
  
  interpret_define(Var, Expr, Env) ->
    %% This is restricted, by macro-expansion and parsing, to the top-level.
  
negative.code: %%%   first parsed and converted to an abstract syntax tree (AST),
  %%%   which is then interpreted.  Function closures record their
  %%%   bodies as ASTs, not as S-expressions.
  %%%
  %%% Extensions:
  %%% - (: M F A) is equivalent to Erlang's fun M:F/A
  
  -module(es_eval).
  
  