anchor.diff:  
   -module(es_load).
   
  --export([load/1, expand_and_parse/1]).
  +-export([ expand_and_parse/1
  +        , load/1
  +        ]).
   
  +-type datum() :: term().
  +-type sexpr() :: term().
  +
  +%% API -------------------------------------------------------------------------
  +
  +-spec load(datum()) -> true.
   load(Name) ->
     case es_datum:is_string(Name) of
       true -> % (load "Name.scm")
  
positive.code: 
  do_eval(Datum, _Acc) ->
    es_eval:dynamic_eval(Datum).
  
  expand_and_parse(FileName) ->
    lists:reverse(load(fun do_expand_and_parse/2, [], FileName)).
  
  do_expand_and_parse(Datum, Acc) ->
    Fun = es_gloenv:get_var('%expand-macros'),
  
negative.code:       true = es_datum:is_symbol(Name),
        load_module(Name)
    end.
  
  -spec expand_and_parse(string()) -> [sexpr()].
  expand_and_parse(FileName) ->
    lists:reverse(load(fun do_expand_and_parse/2, [], FileName)).
  
  %% Internals -------------------------------------------------------------------
  
  load_module(Name) ->
    case is_loaded(Name) of
  