anchor.diff:  %% ====================================================================
   %% API functions
   %% ====================================================================
  --export([run/1]). 
  --export([run/2,
  -         test/1]). 
  +-export([run/1, run/2,
  +         compile/1]). 
   
  -
  -test(Expression) ->
  -    {ok, Tokens, _} = erl_scan:string(Expression),    % scan the code into tokens
  -    {ok, Parsed} = erl_parse:parse_exprs(Tokens),     % parse the tokens into an abstract form
  -    {value, Result, _} = erl_eval:exprs(Parsed, []),  % evaluate the expression, return the value
  -    Result.
  -
  +compile(Filename) ->
  +   xqerl_code_server:compile(Filename).
   
   run(Mod) -> run(Mod, #{}).
   
  
positive.code:          ?dbg("run",E),
           ?dbg("run",S),
           {'EXIT',E1} = (catch xqerl_error:error('XPST0003')),
           E1
     end;
  run(#xqError{} = E, _Options) -> E;
  run(Str, Options) ->
     try
        Tokens = scan_tokens(Str),
        % init the parse
  
negative.code: %% -------------------------------------------------------------------
  %%
  %% xqerl - XQuery processor
  %%
  %% Copyright (c) 2017-2019 Zachary N. Dean  All Rights Reserved.
  %%
  %% This file is provided to you under the Apache License,
  %% Version 2.0 (the "License"); you may not use this file
  %% except in compliance with the License.  You may obtain
  %% a copy of the License at
  %%
  %%   http://www.apache.org/licenses/LICENSE-2.0
  %%
  %% Unless required by applicable law or agreed to in writing,
  %% software distributed under the License is distributed on an
  %% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  %% KIND, either express or implied.  See the License for the
  %% specific language governing permissions and limitations
  %% under the License.
  %%
  %% -------------------------------------------------------------------
  
  -module(xqerl).
  
  