anchor.diff:  %%%   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).
   
  
positive.code: %%% -*- erlang-indent-level: 2 -*-
  %%%
  %%%   Copyright 2014-2017 Mikael Pettersson
  %%%
  %%%   Licensed under the Apache License, Version 2.0 (the "License");
  %%%   you may not use this file except in compliance with the License.
  
negative.code:   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} ->
  