anchor.diff:  'memq'(X, [_ | L]) -> 'memq'(X, L);
   'memq'(_, []) -> false.
   
  -'symbol?'(Arg) ->
  -  X = get_onearg(Arg),
  +'symbol?'(X) ->
     es_datum:is_symbol(X).
   
  -'zero?'(Arg) ->
  -  X = get_onearg(Arg),
  +'zero?'(X) ->
     X == 0.
   
  -'null?'(Arg) ->
  -  X = get_onearg(Arg),
  +'null?'(X) ->
     case X of [] -> true; _ -> false end.
   
  -'pair?'(Arg) ->
  -  X = get_onearg(Arg),
  +'pair?'(X) ->
     case X of [_ | _] -> true; _ -> false end.
   
  -'list?'(Arg) ->
  -  X = get_onearg(Arg),
  +'list?'(X) ->
     listp(X). % is_list/1 is taken :-(
   
   %% Erlang has no circular lists, so we don't need the Hare-and-Tortoise algorithm.
  
positive.code: 
  'append'(X, Y) -> X ++ Y.
  
  'reverse'(Arg) ->
    X = get_onearg(Arg),
    lists:reverse(X).
  
  'car'(Arg) ->
    [X | _] = get_onearg(Arg),
    X.
  
  'cdr'(Arg) ->
    [_ | Y] = get_onearg(Arg),
    Y.
  
  'caar'(Arg) ->
    [[X | _] | _] = get_onearg(Arg),
    X.
  
  'cadr'(Arg) ->
    [_, X | _] = get_onearg(Arg),
    X.
  
  'cddr'(Arg) ->
    [_, _ | Y] = get_onearg(Arg),
    Y.
  
  'caddr'(Arg) ->
    [_, _, X | _] = get_onearg(Arg),
    X.
  
  'cdddr'(Arg) ->
    [_, _, _ | Y] = get_onearg(Arg),
    Y.
  
  'vector?'(Arg) ->
    X = get_onearg(Arg),
    es_datum:is_vector(X).
  
  'eval'(Arg) ->
    X = get_onearg(Arg),
    es_eval:primitive_eval(X).
  
  'getprop'(Name, Tag) ->
  
negative.code: 'putprop'(Name, Tag, Val) ->
    es_gloenv:insert(Name, Tag, Val).
  
  'load'(X) ->
    es_load:load(X).
  
  'compile'(X) ->
    es_compile:file(X).
  