anchor.diff:  %%% that returns the corresponding handle (Pid).  The function closures
   %%% need to come from a reserved module to enable checking their type.
   %%%
  -%%% procedure		Fun/N
  +%%% procedure           Fun/N
   %%%
   %%% An Scheme procedure becomes an Erlang function of the same arity.
   %%% Variable-arity procedures are not supported.
   %%%
  -%%% tid			pid
  +%%% tid                 pid
   %%%
   %%% RnRS Scheme does not have threads, but ErlScheme adds threads
   %%% and maps them to Erlang processes.
  
positive.code: %%% as unadorned binaries, and accept that mutation is unavailable.
  %%% R5RS did not have bytevectors, they were added in R6RS and R7RS.
  %%%
  %%% port		<an arity-0 closure from module es_port_wrapper>
  %%%
  %%% [NYI]
  %%% Scheme requires ports to be a distinct type.  We relax that
  
negative.code:       false
    end.
  
  %% This has to return an exported fun to make fun_info(_, name) well-defined.
  mk_eof_object() -> fun ?MODULE:?the_eof_object/0.
  
  ?the_eof_object() -> [].
  
  %% Strings
  
  is_string(X) -> is_binary(X).
  
  binary_to_string(B) -> B.
  
  string_to_binary(S) -> S.
  
  %% Symbols
  
  is_symbol(X) -> is_atom(X) andalso not erlang:is_boolean(X).
  
  %% Vectors
  
  is_vector(X) -> is_tuple(X).
  
  list_to_vector(L) -> erlang:list_to_tuple(L).
  