anchor.diff:  parse_lambda(Tl, Env) ->
     case Tl of
       [M, ':', F, '/', A] ->
  -      {'ES:PRIMOP', 'ES:COLON', [quote_if_glovar(parse(M, Env)), quote_if_glovar(parse(F, Env)), parse(A, Env)]};
  +      {'ES:PRIMOP', 'ES:COLON', [quote_if_glovar(M, Env), quote_if_glovar(F, Env), parse(A, Env)]};
       [Formals, Body] ->
         parse_plain_lambda(Formals, Body, Env);
       _ ->
  
positive.code:       erlang:throw({bad_begin, Tl})
    end.
  
  parse_call(Hd0, Tl, Env) ->
    Hd = parse(Hd0, Env),
    {Fun, Args1} =
      case Tl of
        [':', F0 | Args0] ->
          M = quote_if_glovar(Hd),
          F = quote_if_glovar(parse(F0, Env)),
          A = {'ES:QUOTE', length(Args0)},
          {{'ES:PRIMOP', 'ES:COLON', [M, F, A]}, Args0};
        _ ->
          {Hd, Tl}
      end,
    Args = [parse(Arg, Env) || Arg <- Args1],
    %% Recognize calls to special built-ins:
  
negative.code:   ScopeEnv = parse_formals(Formals, es_env:empty()),
    {'ES:LAMBDA', Formals, parse(Body, es_env:overlay(Env, ScopeEnv))}.
  
  quote_if_glovar(Sexpr, Env) ->
    AST = parse(Sexpr, Env),
    case AST of
      {'ES:GLOVAR', Atom} -> {'ES:QUOTE', Atom};
      _ -> AST
  