anchor.diff:  top_cmd(next_solution, Db) ->
       {fail,fun (Cmd) -> top_cmd(Cmd, Db) end};
   top_cmd({consult,File}, Db0) ->
  -    case consult_file(File, Db0) of
  +    case erlog_consult:consult(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};
  
positive.code: %% names like '$1' (yuch!), and we need LOTS of variables.
  
  -module(erlog).
  
  %% Basic evaluator interface.
  -export([new/0]).
  
negative.code: is_legal_term([H|T]) ->
      is_legal_term(H) andalso is_legal_term(T);
  is_legal_term(T) when is_tuple(T) ->
      if  tuple_size(T) >= 2, is_atom(element(1, T)) ->
  	    are_legal_args(T, 2, size(T));	%The right tuples.
  	true -> false
      end;
  is_legal_term(T) when ?IS_ATOMIC(T) -> true;	%All constants, including []
  is_legal_term(_T) -> false.
  
  are_legal_args(_T, I, S) when I > S -> true;
  