diff --git a/C/errors.c b/C/errors.c
index 948e1efc6..1bb6828a9 100644
--- a/C/errors.c
+++ b/C/errors.c
@@ -536,7 +536,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomConsistencyError, 1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorConsistencyError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -551,7 +551,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomArrayOverflow);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -566,7 +566,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomArrayType);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -581,7 +581,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomIOMode);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -596,7 +596,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomMutable);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -611,7 +611,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomNonEmptyList);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -626,7 +626,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomNotLessThanZero);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -641,7 +641,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomNotNewline);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -656,7 +656,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomNotZero);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -671,7 +671,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomOutOfRange);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -686,7 +686,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomOperatorPriority);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -701,7 +701,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomOperatorSpecifier);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -716,7 +716,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomRadix);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -731,7 +731,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomShiftCountOverflow);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -746,7 +746,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomSourceSink);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -761,7 +761,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomStream);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -776,7 +776,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomStreamOrAlias);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -791,7 +791,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomStreamPosition);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -806,7 +806,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomSyntaxErrorHandler);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -821,7 +821,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomTimeOutSpec);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomDomainError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorDomainError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -836,7 +836,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomSourceSink);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomExistenceError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorExistenceError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -851,7 +851,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomArray);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomExistenceError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorExistenceError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -866,7 +866,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomKey);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomExistenceError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorExistenceError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -881,7 +881,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomStream);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomExistenceError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorExistenceError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -895,7 +895,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomFloatOverflow);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomEvaluationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorEvaluationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -909,7 +909,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomIntOverflow);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomEvaluationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorEvaluationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -923,7 +923,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomUndefined);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomEvaluationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorEvaluationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -937,7 +937,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomFloatUnderflow);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomEvaluationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorEvaluationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -951,7 +951,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomUnderflow);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomEvaluationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorEvaluationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -965,7 +965,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomZeroDivisor);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomEvaluationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorEvaluationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1070,7 +1070,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomAccess);
       ti[1] = MkAtomTerm(AtomPrivateProcedure);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1086,7 +1086,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomCreate);
       ti[1] = MkAtomTerm(AtomArray);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1102,7 +1102,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomCreate);
       ti[1] = MkAtomTerm(AtomOperator);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1118,7 +1118,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomInput);
       ti[1] = MkAtomTerm(AtomBinaryStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1134,7 +1134,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomInput);
       ti[1] = MkAtomTerm(AtomPastEndOfStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1150,7 +1150,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomInput);
       ti[1] = MkAtomTerm(AtomStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1166,7 +1166,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomInput);
       ti[1] = MkAtomTerm(AtomTextStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1182,7 +1182,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomModify);
       ti[1] = MkAtomTerm(AtomStaticProcedure);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1198,7 +1198,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomNew);
       ti[1] = MkAtomTerm(AtomAlias);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1214,7 +1214,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomOpen);
       ti[1] = MkAtomTerm(AtomSourceSink);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1230,7 +1230,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomOutput);
       ti[1] = MkAtomTerm(AtomBinaryStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1246,7 +1246,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomOutput);
       ti[1] = MkAtomTerm(AtomStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1262,7 +1262,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomOutput);
       ti[1] = MkAtomTerm(AtomTextStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1278,7 +1278,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomReposition);
       ti[1] = MkAtomTerm(AtomStream);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1294,7 +1294,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       ti[0] = MkAtomTerm(AtomResize);
       ti[1] = MkAtomTerm(AtomArray);
       ti[2] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomPermissionError,3), 3, ti);
+      nt[0] = Yap_MkApplTerm(FunctorPermissionError, 3, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1308,7 +1308,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomCharacter);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomRepresentationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorRepresentationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1322,7 +1322,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomCharacterCode);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomRepresentationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorRepresentationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1336,7 +1336,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomMaxArity);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomRepresentationError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorRepresentationError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1350,7 +1350,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
 
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomThreads);
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomResourceError,1), 1, ti);
+      nt[0] = Yap_MkApplTerm(FunctorResourceError, 1, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1401,7 +1401,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomArray);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1416,7 +1416,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomAtom);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1431,7 +1431,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomAtomic);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1446,7 +1446,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomByte);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1461,7 +1461,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomCallable);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1476,7 +1476,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomChar);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1491,7 +1491,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomCharacter);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1506,7 +1506,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomCompound);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1521,7 +1521,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomDBReference);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1536,7 +1536,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomDBTerm);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1551,7 +1551,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomEvaluable);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1566,7 +1566,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomFloat);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1581,7 +1581,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomInteger);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1596,7 +1596,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomKey);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1611,7 +1611,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomList);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1626,7 +1626,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomNumber);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1641,7 +1641,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomPredicateIndicator);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1656,7 +1656,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomPointer);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1671,7 +1671,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomUnsignedByte);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1686,7 +1686,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomUnsignedChar);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
@@ -1701,7 +1701,7 @@ Yap_Error(yap_error_number type, Term where, char *format,...)
       i = strlen(tmpbuf);
       ti[0] = MkAtomTerm(AtomVariable);
       ti[1] = where;
-      nt[0] = Yap_MkApplTerm(Yap_MkFunctor(AtomTypeError,2), 2, ti);
+      nt[0] = Yap_MkApplTerm(FunctorTypeError, 2, ti);
       tp = tmpbuf+i;
       psize -= i;
       fun = FunctorError;
diff --git a/C/eval.c b/C/eval.c
index ef789634a..f03525c17 100644
--- a/C/eval.c
+++ b/C/eval.c
@@ -47,7 +47,7 @@ Eval(Term t)
       ti[0] = t;
       ti[1] = MkIntegerTerm(0);
       /* error */
-      terror = Yap_MkApplTerm(Yap_MkFunctor(AtomSlash,2), 2, ti);
+      terror = Yap_MkApplTerm(FunctorSlash, 2, ti);
       Yap_Error(TYPE_ERROR_EVALUABLE, terror,
 	    "atom %s for arithmetic expression",
 	    RepAtom(name)->StrOfAE);
diff --git a/C/init.c b/C/init.c
index ef2256710..4345923f4 100644
--- a/C/init.c
+++ b/C/init.c
@@ -1221,16 +1221,16 @@ InitCodes(void)
   Yap_heap_regs->env_for_yes_code.p =
     Yap_heap_regs->env_for_yes_code.p0 =
     RepPredProp(PredPropByAtom(AtomTrue,0));
-  Yap_heap_regs->pred_meta_call = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomMetaCall,4),PROLOG_MODULE));
-  Yap_heap_regs->pred_dollar_catch = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomCatch,3),PROLOG_MODULE));
-  Yap_heap_regs->pred_recorded_with_key = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomRecordedWithKey,3),PROLOG_MODULE));
-  Yap_heap_regs->pred_log_upd_clause = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomDoLogUpdClause,6),PROLOG_MODULE));
-  Yap_heap_regs->pred_log_upd_clause_erase = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomDoLogUpdClauseErase,6),PROLOG_MODULE));
-  Yap_heap_regs->pred_log_upd_clause0 = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomDoLogUpdClause0,6),PROLOG_MODULE));
-  Yap_heap_regs->pred_static_clause = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomDoStaticClause,5),PROLOG_MODULE));
+  Yap_heap_regs->pred_meta_call = RepPredProp(PredPropByFunc(FunctorMetaCall,PROLOG_MODULE));
+  Yap_heap_regs->pred_dollar_catch = RepPredProp(PredPropByFunc(FunctorCatch,PROLOG_MODULE));
+  Yap_heap_regs->pred_recorded_with_key = RepPredProp(PredPropByFunc(FunctorRecordedWithKey,PROLOG_MODULE));
+  Yap_heap_regs->pred_log_upd_clause = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE));
+  Yap_heap_regs->pred_log_upd_clause_erase = RepPredProp(PredPropByFunc(FunctorDoLogUpdClauseErase,PROLOG_MODULE));
+  Yap_heap_regs->pred_log_upd_clause0 = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE));
+  Yap_heap_regs->pred_static_clause = RepPredProp(PredPropByFunc(FunctorDoStaticClause,PROLOG_MODULE));
   Yap_heap_regs->pred_throw = RepPredProp(PredPropByFunc(FunctorThrow,PROLOG_MODULE));
-  Yap_heap_regs->pred_handle_throw = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomHandleThrow,3),PROLOG_MODULE));
-  Yap_heap_regs->pred_goal_expansion = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomGoalExpansion,3),USER_MODULE));
+  Yap_heap_regs->pred_handle_throw = RepPredProp(PredPropByFunc(FunctorHandleThrow,PROLOG_MODULE));
+  Yap_heap_regs->pred_goal_expansion = RepPredProp(PredPropByFunc(FunctorGoalExpansion,USER_MODULE));
   Yap_heap_regs->env_for_trustfail_code.p =
     Yap_heap_regs->env_for_trustfail_code.p0 =
     RepPredProp(PredPropByAtom(AtomFalse,PROLOG_MODULE));
diff --git a/H/iatoms.h b/H/iatoms.h
index 0909f3d0d..9103a86b9 100644
--- a/H/iatoms.h
+++ b/H/iatoms.h
@@ -288,20 +288,29 @@
   FunctorAttGoal = Yap_MkFunctor(AtomAttDo,2);
   FunctorBraces = Yap_MkFunctor(AtomBraces,1);
   FunctorCall = Yap_MkFunctor(AtomCall,1);
+  FunctorCatch = Yap_MkFunctor(AtomCatch,3);
   FunctorChangeModule = Yap_MkFunctor(AtomChangeModule,1);
   FunctorClist = Yap_MkFunctor(AtomWhen,4);
   FunctorComma = Yap_MkFunctor(AtomComma,2);
+  FunctorConsistencyError = Yap_MkFunctor(AtomConsistencyError,1);
   FunctorCreep = Yap_MkFunctor(AtomCreep,1);
   FunctorCsult = Yap_MkFunctor(AtomCsult,1);
   FunctorCurrentModule = Yap_MkFunctor(AtomCurrentModule,1);
   FunctorCutBy = Yap_MkFunctor(AtomCutBy,1);
   FunctorDiff = Yap_MkFunctor(AtomDiff,2);
+  FunctorDoLogUpdClause = Yap_MkFunctor(AtomDoLogUpdClause,6);
+  FunctorDoLogUpdClause0 = Yap_MkFunctor(AtomDoLogUpdClause0,6);
+  FunctorDoLogUpdClauseErase = Yap_MkFunctor(AtomDoLogUpdClauseErase,6);
+  FunctorDoStaticClause = Yap_MkFunctor(AtomDoStaticClause,5);
+  FunctorDomainError = Yap_MkFunctor(AtomDomainError,2);
   FunctorDot = Yap_MkFunctor(AtomDot,2);
   FunctorEq = Yap_MkFunctor(AtomEq,2);
   FunctorError = Yap_MkFunctor(AtomError,2);
+  FunctorEvaluationError = Yap_MkFunctor(AtomEvaluationError,1);
   FunctorExecute2InMod = Yap_MkFunctor(AtomExecuteWoMod,2);
   FunctorExecuteInMod = Yap_MkFunctor(AtomExecuteInMod,2);
   FunctorExecuteWithin = Yap_MkFunctor(AtomExecuteWithin,1);
+  FunctorExistenceError = Yap_MkFunctor(AtomExistenceError,2);
   FunctorFunctor = Yap_MkFunctor(AtomFunctor,3);
   FunctorGAtom = Yap_MkFunctor(AtomAtom,1);
   FunctorGAtomic = Yap_MkFunctor(AtomAtomic,1);
@@ -313,18 +322,25 @@
   FunctorGPrimitive = Yap_MkFunctor(AtomPrimitive,1);
   FunctorGVar = Yap_MkFunctor(AtomGVar,1);
   FunctorGeneratePredInfo = Yap_MkFunctor(AtomGeneratePredInfo,4);
+  FunctorGoalExpansion = Yap_MkFunctor(AtomGoalExpansion,3);
+  FunctorHandleThrow = Yap_MkFunctor(AtomHandleThrow,3);
   FunctorId = Yap_MkFunctor(AtomId,1);
   FunctorLastExecuteWithin = Yap_MkFunctor(AtomLastExecuteWithin,1);
   FunctorList = Yap_MkFunctor(AtomDot,2);
   FunctorMegaClause = Yap_MkFunctor(AtomMegaClause,2);
+  FunctorMetaCall = Yap_MkFunctor(AtomMetaCall,4);
   FunctorModule = Yap_MkFunctor(AtomColomn,2);
   FunctorMultiFileClause = Yap_MkFunctor(AtomMfClause,5);
   FunctorMutable = Yap_MkFunctor(AtomMutableVariable,(sizeof(timed_var)/sizeof(CELL)));
   FunctorNBQueue = Yap_MkFunctor(AtomQueue,5);
   FunctorNot = Yap_MkFunctor(AtomNot,1);
   FunctorOr = Yap_MkFunctor(AtomSemic,2);
+  FunctorPermissionError = Yap_MkFunctor(AtomPermissionError,3);
   FunctorPortray = Yap_MkFunctor(AtomPortray,1);
   FunctorQuery = Yap_MkFunctor(AtomQuery,1);
+  FunctorRecordedWithKey = Yap_MkFunctor(AtomRecordedWithKey,6);
+  FunctorRepresentationError = Yap_MkFunctor(AtomRepresentationError,1);
+  FunctorResourceError = Yap_MkFunctor(AtomResourceError,1);
   FunctorRestoreRegs = Yap_MkFunctor(AtomRestoreRegs,2);
   FunctorRestoreRegs1 = Yap_MkFunctor(AtomRestoreRegs,1);
   FunctorSame = Yap_MkFunctor(AtomSame,2);
@@ -335,6 +351,7 @@
   FunctorStreamPos = Yap_MkFunctor(AtomStreamPos,5);
   FunctorThreadRun = Yap_MkFunctor(AtomTopThreadGoal,2);
   FunctorThrow = Yap_MkFunctor(AtomThrow,1);
+  FunctorTypeError = Yap_MkFunctor(AtomTypeError,2);
   FunctorUMinus = Yap_MkFunctor(AtomMinus,1);
   FunctorUPlus = Yap_MkFunctor(AtomPlus,1);
   FunctorVBar = Yap_MkFunctor(AtomVBar,2);
diff --git a/H/ratoms.h b/H/ratoms.h
index 01a96efa3..23806731b 100644
--- a/H/ratoms.h
+++ b/H/ratoms.h
@@ -291,20 +291,29 @@
   FunctorAttGoal = FuncAdjust(FunctorAttGoal);
   FunctorBraces = FuncAdjust(FunctorBraces);
   FunctorCall = FuncAdjust(FunctorCall);
+  FunctorCatch = FuncAdjust(FunctorCatch);
   FunctorChangeModule = FuncAdjust(FunctorChangeModule);
   FunctorClist = FuncAdjust(FunctorClist);
   FunctorComma = FuncAdjust(FunctorComma);
+  FunctorConsistencyError = FuncAdjust(FunctorConsistencyError);
   FunctorCreep = FuncAdjust(FunctorCreep);
   FunctorCsult = FuncAdjust(FunctorCsult);
   FunctorCurrentModule = FuncAdjust(FunctorCurrentModule);
   FunctorCutBy = FuncAdjust(FunctorCutBy);
   FunctorDiff = FuncAdjust(FunctorDiff);
+  FunctorDoLogUpdClause = FuncAdjust(FunctorDoLogUpdClause);
+  FunctorDoLogUpdClause0 = FuncAdjust(FunctorDoLogUpdClause0);
+  FunctorDoLogUpdClauseErase = FuncAdjust(FunctorDoLogUpdClauseErase);
+  FunctorDoStaticClause = FuncAdjust(FunctorDoStaticClause);
+  FunctorDomainError = FuncAdjust(FunctorDomainError);
   FunctorDot = FuncAdjust(FunctorDot);
   FunctorEq = FuncAdjust(FunctorEq);
   FunctorError = FuncAdjust(FunctorError);
+  FunctorEvaluationError = FuncAdjust(FunctorEvaluationError);
   FunctorExecute2InMod = FuncAdjust(FunctorExecute2InMod);
   FunctorExecuteInMod = FuncAdjust(FunctorExecuteInMod);
   FunctorExecuteWithin = FuncAdjust(FunctorExecuteWithin);
+  FunctorExistenceError = FuncAdjust(FunctorExistenceError);
   FunctorFunctor = FuncAdjust(FunctorFunctor);
   FunctorGAtom = FuncAdjust(FunctorGAtom);
   FunctorGAtomic = FuncAdjust(FunctorGAtomic);
@@ -316,18 +325,25 @@
   FunctorGPrimitive = FuncAdjust(FunctorGPrimitive);
   FunctorGVar = FuncAdjust(FunctorGVar);
   FunctorGeneratePredInfo = FuncAdjust(FunctorGeneratePredInfo);
+  FunctorGoalExpansion = FuncAdjust(FunctorGoalExpansion);
+  FunctorHandleThrow = FuncAdjust(FunctorHandleThrow);
   FunctorId = FuncAdjust(FunctorId);
   FunctorLastExecuteWithin = FuncAdjust(FunctorLastExecuteWithin);
   FunctorList = FuncAdjust(FunctorList);
   FunctorMegaClause = FuncAdjust(FunctorMegaClause);
+  FunctorMetaCall = FuncAdjust(FunctorMetaCall);
   FunctorModule = FuncAdjust(FunctorModule);
   FunctorMultiFileClause = FuncAdjust(FunctorMultiFileClause);
   FunctorMutable = FuncAdjust(FunctorMutable);
   FunctorNBQueue = FuncAdjust(FunctorNBQueue);
   FunctorNot = FuncAdjust(FunctorNot);
   FunctorOr = FuncAdjust(FunctorOr);
+  FunctorPermissionError = FuncAdjust(FunctorPermissionError);
   FunctorPortray = FuncAdjust(FunctorPortray);
   FunctorQuery = FuncAdjust(FunctorQuery);
+  FunctorRecordedWithKey = FuncAdjust(FunctorRecordedWithKey);
+  FunctorRepresentationError = FuncAdjust(FunctorRepresentationError);
+  FunctorResourceError = FuncAdjust(FunctorResourceError);
   FunctorRestoreRegs = FuncAdjust(FunctorRestoreRegs);
   FunctorRestoreRegs1 = FuncAdjust(FunctorRestoreRegs1);
   FunctorSame = FuncAdjust(FunctorSame);
@@ -338,6 +354,7 @@
   FunctorStreamPos = FuncAdjust(FunctorStreamPos);
   FunctorThreadRun = FuncAdjust(FunctorThreadRun);
   FunctorThrow = FuncAdjust(FunctorThrow);
+  FunctorTypeError = FuncAdjust(FunctorTypeError);
   FunctorUMinus = FuncAdjust(FunctorUMinus);
   FunctorUPlus = FuncAdjust(FunctorUPlus);
   FunctorVBar = FuncAdjust(FunctorVBar);
diff --git a/H/tatoms.h b/H/tatoms.h
index 05d995d48..5678073ff 100644
--- a/H/tatoms.h
+++ b/H/tatoms.h
@@ -584,12 +584,16 @@
 #define FunctorBraces Yap_heap_regs->FunctorBraces_
   Functor FunctorCall_;
 #define FunctorCall Yap_heap_regs->FunctorCall_
+  Functor FunctorCatch_;
+#define FunctorCatch Yap_heap_regs->FunctorCatch_
   Functor FunctorChangeModule_;
 #define FunctorChangeModule Yap_heap_regs->FunctorChangeModule_
   Functor FunctorClist_;
 #define FunctorClist Yap_heap_regs->FunctorClist_
   Functor FunctorComma_;
 #define FunctorComma Yap_heap_regs->FunctorComma_
+  Functor FunctorConsistencyError_;
+#define FunctorConsistencyError Yap_heap_regs->FunctorConsistencyError_
   Functor FunctorCreep_;
 #define FunctorCreep Yap_heap_regs->FunctorCreep_
   Functor FunctorCsult_;
@@ -600,18 +604,32 @@
 #define FunctorCutBy Yap_heap_regs->FunctorCutBy_
   Functor FunctorDiff_;
 #define FunctorDiff Yap_heap_regs->FunctorDiff_
+  Functor FunctorDoLogUpdClause_;
+#define FunctorDoLogUpdClause Yap_heap_regs->FunctorDoLogUpdClause_
+  Functor FunctorDoLogUpdClause0_;
+#define FunctorDoLogUpdClause0 Yap_heap_regs->FunctorDoLogUpdClause0_
+  Functor FunctorDoLogUpdClauseErase_;
+#define FunctorDoLogUpdClauseErase Yap_heap_regs->FunctorDoLogUpdClauseErase_
+  Functor FunctorDoStaticClause_;
+#define FunctorDoStaticClause Yap_heap_regs->FunctorDoStaticClause_
+  Functor FunctorDomainError_;
+#define FunctorDomainError Yap_heap_regs->FunctorDomainError_
   Functor FunctorDot_;
 #define FunctorDot Yap_heap_regs->FunctorDot_
   Functor FunctorEq_;
 #define FunctorEq Yap_heap_regs->FunctorEq_
   Functor FunctorError_;
 #define FunctorError Yap_heap_regs->FunctorError_
+  Functor FunctorEvaluationError_;
+#define FunctorEvaluationError Yap_heap_regs->FunctorEvaluationError_
   Functor FunctorExecute2InMod_;
 #define FunctorExecute2InMod Yap_heap_regs->FunctorExecute2InMod_
   Functor FunctorExecuteInMod_;
 #define FunctorExecuteInMod Yap_heap_regs->FunctorExecuteInMod_
   Functor FunctorExecuteWithin_;
 #define FunctorExecuteWithin Yap_heap_regs->FunctorExecuteWithin_
+  Functor FunctorExistenceError_;
+#define FunctorExistenceError Yap_heap_regs->FunctorExistenceError_
   Functor FunctorFunctor_;
 #define FunctorFunctor Yap_heap_regs->FunctorFunctor_
   Functor FunctorGAtom_;
@@ -634,6 +652,10 @@
 #define FunctorGVar Yap_heap_regs->FunctorGVar_
   Functor FunctorGeneratePredInfo_;
 #define FunctorGeneratePredInfo Yap_heap_regs->FunctorGeneratePredInfo_
+  Functor FunctorGoalExpansion_;
+#define FunctorGoalExpansion Yap_heap_regs->FunctorGoalExpansion_
+  Functor FunctorHandleThrow_;
+#define FunctorHandleThrow Yap_heap_regs->FunctorHandleThrow_
   Functor FunctorId_;
 #define FunctorId Yap_heap_regs->FunctorId_
   Functor FunctorLastExecuteWithin_;
@@ -642,6 +664,8 @@
 #define FunctorList Yap_heap_regs->FunctorList_
   Functor FunctorMegaClause_;
 #define FunctorMegaClause Yap_heap_regs->FunctorMegaClause_
+  Functor FunctorMetaCall_;
+#define FunctorMetaCall Yap_heap_regs->FunctorMetaCall_
   Functor FunctorModule_;
 #define FunctorModule Yap_heap_regs->FunctorModule_
   Functor FunctorMultiFileClause_;
@@ -654,10 +678,18 @@
 #define FunctorNot Yap_heap_regs->FunctorNot_
   Functor FunctorOr_;
 #define FunctorOr Yap_heap_regs->FunctorOr_
+  Functor FunctorPermissionError_;
+#define FunctorPermissionError Yap_heap_regs->FunctorPermissionError_
   Functor FunctorPortray_;
 #define FunctorPortray Yap_heap_regs->FunctorPortray_
   Functor FunctorQuery_;
 #define FunctorQuery Yap_heap_regs->FunctorQuery_
+  Functor FunctorRecordedWithKey_;
+#define FunctorRecordedWithKey Yap_heap_regs->FunctorRecordedWithKey_
+  Functor FunctorRepresentationError_;
+#define FunctorRepresentationError Yap_heap_regs->FunctorRepresentationError_
+  Functor FunctorResourceError_;
+#define FunctorResourceError Yap_heap_regs->FunctorResourceError_
   Functor FunctorRestoreRegs_;
 #define FunctorRestoreRegs Yap_heap_regs->FunctorRestoreRegs_
   Functor FunctorRestoreRegs1_;
@@ -678,6 +710,8 @@
 #define FunctorThreadRun Yap_heap_regs->FunctorThreadRun_
   Functor FunctorThrow_;
 #define FunctorThrow Yap_heap_regs->FunctorThrow_
+  Functor FunctorTypeError_;
+#define FunctorTypeError Yap_heap_regs->FunctorTypeError_
   Functor FunctorUMinus_;
 #define FunctorUMinus Yap_heap_regs->FunctorUMinus_
   Functor FunctorUPlus_;
diff --git a/misc/ATOMS b/misc/ATOMS
index dab7e0845..3c368c974 100644
--- a/misc/ATOMS
+++ b/misc/ATOMS
@@ -298,20 +298,29 @@ F Atom			Atom		1
 F AttGoal		AttDo		2
 F Braces		Braces		1
 F Call			Call		1
+F Catch			Catch		3
 F ChangeModule		ChangeModule	1
 F Clist			When		4
 F Comma			Comma		2
+F ConsistencyError	ConsistencyError	1
 F Creep			Creep		1
 F Csult			Csult		1
 F CurrentModule		CurrentModule	1
 F CutBy			CutBy		1
 F Diff			Diff		2
+F DoLogUpdClause	DoLogUpdClause	6
+F DoLogUpdClause0	DoLogUpdClause0	6
+F DoLogUpdClauseErase	DoLogUpdClauseErase	6
+F DoStaticClause	DoStaticClause	5
+F DomainError		DomainError	2
 F Dot			Dot		2
 F Eq			Eq		2
 F Error			Error		2
+F EvaluationError	EvaluationError	1
 F Execute2InMod		ExecuteWoMod	2
 F ExecuteInMod		ExecuteInMod	2
 F ExecuteWithin		ExecuteWithin	1
+F ExistenceError	ExistenceError	2
 F Functor		Functor		3
 F GAtom			Atom		1
 F GAtomic		Atomic		1
@@ -323,18 +332,25 @@ F GNumber		Number		1
 F GPrimitive		Primitive	1
 F GVar			GVar		1
 F GeneratePredInfo	GeneratePredInfo 4
+F GoalExpansion		GoalExpansion	3
+F HandleThrow		HandleThrow	3
 F Id			Id		1
 F LastExecuteWithin	LastExecuteWithin	1
 F List			Dot		2
 F MegaClause		MegaClause	2
+F MetaCall		MetaCall	4
 F Module		Colomn		2
 F MultiFileClause	MfClause	5
 F Mutable		MutableVariable	(sizeof(timed_var)/sizeof(CELL))
 F NBQueue		Queue		5
 F Not			Not		1
 F Or			Semic		2
+F PermissionError	PermissionError	3
 F Portray		Portray		1
 F Query			Query		1
+F RecordedWithKey	RecordedWithKey	6
+F RepresentationError	RepresentationError	1
+F ResourceError		ResourceError	1
 F RestoreRegs		RestoreRegs	2
 F RestoreRegs1		RestoreRegs	1
 F Same			Same		2
@@ -345,6 +361,7 @@ F StreamEOS		EndOfStream	1
 F StreamPos		StreamPos	5
 F ThreadRun		TopThreadGoal	2
 F Throw			Throw		1
+F TypeError		TypeError	2
 F UMinus		Minus		1
 F UPlus			Plus		1
 F VBar			VBar		2