anchor.diff:  -spec type_error(_, _, _) -> no_return().
   -spec instantiation_error() -> no_return().
   -spec instantiation_error(_) -> no_return().
  +-spec permission_error(_, _, _) -> no_return().
   -spec permission_error(_, _, _, _) -> no_return().
   -spec erlog_error(_) -> no_return().
   -spec erlog_error(_, _) -> no_return().
   
  +type_error(Type, Value) -> erlog_error({type_error,Type,Value}).
   type_error(Type, Value, St) -> erlog_error({type_error,Type,Value}, St).
  -type_error(Type, Value) -> erlog_error({type_error,Type,Value}).
  -
  -instantiation_error(Db) -> erlog_error(instantiation_error, Db).
  +
   instantiation_error() -> erlog_error(instantiation_error).
  -
  -permission_error(Op, Type, Value, Db) ->
  -    erlog_error({permission_error,Op,Type,Value}, Db).
  -
  -erlog_error(E, Db) -> throw({erlog_error,E,Db}).
  +instantiation_error(St) -> erlog_error(instantiation_error, St).
  +
  +permission_error(Op, Type, Value) ->
  +    erlog_error({permission_error,Op,Type,Value}).
  +
  +permission_error(Op, Type, Value, St) ->
  +    erlog_error({permission_error,Op,Type,Value}, St).
  +
   erlog_error(E) -> throw({erlog_error,E}).
  +erlog_error(E, St) -> throw({erlog_error,E,St}).
   
   %% Database
   %% The database is a dict where the key is the functor pair {Name,Arity}.
  
positive.code:     case Dm:asserta_clause(Dr0, Functor, Head, Body) of
  	{ok,Dr1} -> Db#db{ref=Dr1};
  	error ->
  	    permission_error(modify, static_procedure, pred_ind(Functor), Db)
      end.
  
  assertz_clause({':-',H,B}, Db) -> assertz_clause(H, B, Db);
  
negative.code: 
  %% Error types.
  -export([erlog_error/1,erlog_error/2,type_error/2,type_error/3,
  	 instantiation_error/0,instantiation_error/1,
  	 permission_error/3,permission_error/4]).
  
  %%-compile(export_all).
  
  