anchor.diff:  %% names like '$1' (yuch!), and we need LOTS of variables.
   
   -module(erlog).
  +
  +-include("erlog_int.hrl").
   
   %% Basic evaluator interface.
   -export([new/0]).
  
positive.code: top_cmd(next_solution, Db) ->
      {fail,fun (Cmd) -> top_cmd(Cmd, Db) end};
  top_cmd({consult,File}, Db0) ->
      case consult_file(File, Db0) of
  	{ok,Db1} -> {ok,fun (Cmd) -> top_cmd(Cmd, Db1) end};
  	{erlog_error,Error} ->
  	    {{error,Error},fun (Cmd) -> top_cmd(Cmd, Db0) end};
  
negative.code: vars_in_struct(Str, I, S, Vs) ->
      vars_in_struct(Str, I+1, S, vars_in(element(I, Str), Vs)).
  
  %% is_legal_term(Goal) -> true | false.
  %% Test if a goal is a legal Erlog term. Basically just check if
  %% tuples are used correctly as structures and variables.
  