[m-dev.] for review: Aditi updates round 2 [2]

Simon Taylor stayl at cs.mu.OZ.AU
Fri Jul 2 15:16:48 AEST 1999


--- tests/invalid/aditi.m	1999/07/02 05:08:09	1.2
+++ tests/invalid/aditi.m	1999/07/02 05:08:22
@@ -1,3 +1,5 @@
+% Cut down version of extras/aditi/aditi.m containing
+% declarations used by other tests.
 :- module aditi.
 
 :- interface.
--- tests/invalid/aditi_update_errors.m	1999/07/02 02:17:52	1.2
+++ tests/invalid/aditi_update_errors.m	1999/07/02 02:06:16
@@ -7,6 +7,9 @@
 :- pred aditi_update_syntax(aditi__state::aditi_di,
 	aditi__state::aditi_uo) is det.
 
+:- pred aditi_update_derived_relation(aditi__state::aditi_di,
+	aditi__state::aditi_uo) is det.
+
 :- pred aditi_update_types(aditi__state::aditi_di,
 	aditi__state::aditi_uo) is det.
 
@@ -47,6 +50,9 @@
 :- func q(aditi__state::aditi_ui, int::out) = (int::out) is nondet.
 :- pragma base_relation(q/2).
 
+:- pred anc(aditi__state::aditi_ui, int::out, int::out) is nondet.
+:- pragma aditi(anc/3).
+
 aditi_update_syntax -->
 	X = p(_, 1, 2),
 	aditi_insert(X),
@@ -87,9 +93,9 @@
 	aditi_bulk_delete(q/2, InsertQ),
 	aditi_bulk_delete(func q/2, InsertQ, foo),
 
-	aditi_modify(p(_, X0, Y0) = p(_, X0 + 1, Y0 + 1)),
-	aditi_modify((q(_, X0) = Y0) = (q(_, X0 + 1) = (Y0 + 1))),
-	aditi_modify(q(_, _X0) = _Y0),
+	aditi_modify(p(_, X0, Y0) ==> p(_, X0 + 1, Y0 + 1)),
+	aditi_modify((q(_, X0) = Y0) ==> (q(_, X0 + 1) = (Y0 + 1))),
+	aditi_modify(q(_, _X0) ==> _Y0),
 
 	{ ModifyP =
 	    (aditi_top_down pred(_::unused, X0::in, Y0::in,
@@ -111,6 +117,9 @@
 	aditi_modify(q/2, ModifyQ),
 	aditi_modify(func q/2, ModifyQ, foo).
 
+aditi_update_derived_relation -->
+	aditi_insert(anc(_, 1, 2)).	
+
 aditi_update_types -->
 	aditi_insert(p(_, 1)),
 	aditi_insert(q(_, 1)),
@@ -170,9 +179,9 @@
 	aditi_bulk_insert(pred q/2, InsertQ),
 	aditi_bulk_delete(func q/2, InsertQ),
 
-	aditi_modify(p(X0, Y0, _) = p(X0 + 1, Y0 + 1, _)),
-	aditi_modify((q(_) = Y0) = (q(_) = (Y0 + 1))),
-	aditi_modify(q(_, X0, Y0) = q(_, X0 + 1, Y0 + 1)),
+	aditi_modify(p(X0, Y0, _) ==> p(X0 + 1, Y0 + 1, _)),
+	aditi_modify((q(_) = Y0) ==> (q(_) = (Y0 + 1))),
+	aditi_modify(q(_, X0, Y0) ==> q(_, X0 + 1, Y0 + 1)),
 
 	{ ModifyP =
 	    (aditi_top_down pred(_::unused, X0::in, Y0::in,
@@ -243,10 +252,10 @@
 	aditi_bulk_delete(func q/2, InsertQ).
 
 aditi_update_modes10 -->
-	aditi_modify(p(_, _X0, Y0) = p(_, X0 + 1, Y0 + 1)).
+	aditi_modify(p(_, _X0, Y0) ==> p(_, X0 + 1, Y0 + 1)).
 
 aditi_update_modes11 -->
-	aditi_modify((q(_, _X0) = Y0) = (q(_, X0 + 1) = (Y0 + 1))).
+	aditi_modify((q(_, _X0) = Y0) ==> (q(_, X0 + 1) = (Y0 + 1))).
 
 aditi_update_modes12 -->
 	{ ModifyP =
--- tests/invalid/ho_type_mode_bug.err_exp	1999/07/02 01:40:42	1.2
+++ tests/invalid/ho_type_mode_bug.err_exp	1999/07/02 01:45:45
@@ -1,9 +1,9 @@
 ho_type_mode_bug.m:025: In clause for `my_foldl2((pred(in, in, out) is det), in, in, out, in, out)':
-ho_type_mode_bug.m:025:   in argument 1 (i.e. the predicate term) of call to predicate `call/6':
+ho_type_mode_bug.m:025:   in argument 1 (i.e. the predicate term) of higher-order predicate call:
 ho_type_mode_bug.m:025:   mode error: variable `P' has instantiatedness `(pred(in, in, out) is det)',
 ho_type_mode_bug.m:025:   expecting higher-order pred inst (of arity 5).
 ho_type_mode_bug.m:025: In clause for `my_foldl2((pred(in, in, out) is det), in, in, out, di, uo)':
-ho_type_mode_bug.m:025:   in argument 1 (i.e. the predicate term) of call to predicate `call/6':
+ho_type_mode_bug.m:025:   in argument 1 (i.e. the predicate term) of higher-order predicate call:
 ho_type_mode_bug.m:025:   mode error: variable `P' has instantiatedness `(pred(in, in, out) is det)',
 ho_type_mode_bug.m:025:   expecting higher-order pred inst (of arity 5).
 For more information, try recompiling with `-E'.

tests/invalid/aditi_update_errors.err_exp:
==========================================
aditi_update_errors.m:118: Error: wrong number of arguments (5; should be 3 or 4)
aditi_update_errors.m:118:   in call to `aditi_modify'.
aditi_update_errors.m:117: Error: expected
aditi_update_errors.m:117:   `aditi_modify(
aditi_update_errors.m:117:     (p(<Args0>) ==> p(<Args>) :- <Goal>),
aditi_update_errors.m:117:     DB0, DB)'
aditi_update_errors.m:117:   or `aditi_modify(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:108: Error: wrong number of arguments (5; should be 3 or 4)
aditi_update_errors.m:108:   in call to `aditi_modify'.
aditi_update_errors.m:107: Error: expected
aditi_update_errors.m:107:   `aditi_modify(
aditi_update_errors.m:107:     (p(<Args0>) ==> p(<Args>) :- <Goal>),
aditi_update_errors.m:107:     DB0, DB)'
aditi_update_errors.m:107:   or `aditi_modify(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:098: Error: expected
aditi_update_errors.m:098:   `aditi_modify(
aditi_update_errors.m:098:     (p(<Args0>) ==> p(<Args>) :- <Goal>),
aditi_update_errors.m:098:     DB0, DB)'
aditi_update_errors.m:098:   or `aditi_modify(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:094: Error: wrong number of arguments (5; should be 4)
aditi_update_errors.m:094:   in call to `aditi_bulk_delete'.
aditi_update_errors.m:093: Error: expected `PredOrFunc Name/Arity' in call to `aditi_bulk_delete'.
aditi_update_errors.m:084: Error: wrong number of arguments (5; should be 4)
aditi_update_errors.m:084:   in call to `aditi_bulk_delete'.
aditi_update_errors.m:083: Error: expected `PredOrFunc Name/Arity' in call to `aditi_bulk_insert'.
aditi_update_errors.m:075: Error: expected `aditi_delete((p(<Args>) :- <Goal>), DB0, DB)'
aditi_update_errors.m:075:   or `aditi_delete(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:070: Error: expected `aditi_delete((p(<Args>) :- <Goal>), DB0, DB)'
aditi_update_errors.m:070:   or `aditi_delete(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:064: Error: expected `aditi_delete((p(<Args>) :- <Goal>), DB0, DB)'
aditi_update_errors.m:064:   or `aditi_delete(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:063: Error: expected `aditi_delete((p(<Args>) :- <Goal>), DB0, DB)'
aditi_update_errors.m:063:   or `aditi_delete(PredOrFunc p/N, Closure, DB0, DB)'.
aditi_update_errors.m:061: Error: wrong number of arguments (4; should be 3)
aditi_update_errors.m:061:   in call to `aditi_insert'.
aditi_update_errors.m:060: Error: wrong number of arguments (4; should be 3)
aditi_update_errors.m:060:   in call to `aditi_insert'.
aditi_update_errors.m:058: Error: expected tuple to insert in call to `aditi_insert'
aditi_update_errors.m:100: In clause for predicate `aditi_update_errors:aditi_update_syntax/2':
aditi_update_errors.m:100:   warning: variable `X' has overlapping scopes.
aditi_update_errors.m:110: In clause for predicate `aditi_update_errors:aditi_update_syntax/2':
aditi_update_errors.m:110:   warning: variable `X' has overlapping scopes.
aditi_update_errors.m:215: In clause for predicate `aditi_update_errors:aditi_update_modes4/2':
aditi_update_errors.m:215:   warning: variable `X' occurs only once in this scope.
aditi_update_errors.m:218: In clause for predicate `aditi_update_errors:aditi_update_modes5/2':
aditi_update_errors.m:218:   warning: variable `X' occurs only once in this scope.
aditi_update_errors.m:255: In clause for predicate `aditi_update_errors:aditi_update_modes10/2':
aditi_update_errors.m:255:   warning: variable `X0' occurs only once in this scope.
aditi_update_errors.m:258: In clause for predicate `aditi_update_errors:aditi_update_modes11/2':
aditi_update_errors.m:258:   warning: variable `X0' occurs only once in this scope.
aditi_update_errors.m:007: Error: no clauses for predicate `aditi_update_errors:aditi_update_syntax/2'
aditi_update_errors.m:124: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:124:   error: wrong number of arguments (2; should be 3)
aditi_update_errors.m:124:   in call to predicate `p'.
aditi_update_errors.m:125: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:125:   error: undefined predicate `q/2'.
aditi_update_errors.m:125:   (There is a *function* with that name, however.
aditi_update_errors.m:125:   Perhaps you forgot to add ` = ...'?)
aditi_update_errors.m:126: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:126:   error: wrong number of arguments (3; should be 4)
aditi_update_errors.m:126:   in call to function `q'.
aditi_update_errors.m:127: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:127:   in argument 2 of call to `aditi_insert' of predicate `p/3':
aditi_update_errors.m:127:   type error: argument has type `int',
aditi_update_errors.m:127:   expected type was `(aditi:state)'.
aditi_update_errors.m:129: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:129:   in argument 2 of call to predicate `</2':
aditi_update_errors.m:129:   type error: argument has type `float',
aditi_update_errors.m:129:   expected type was `int'.
aditi_update_errors.m:130: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:130:   in argument 2 of call to predicate `</2':
aditi_update_errors.m:130:   type error: argument has type `float',
aditi_update_errors.m:130:   expected type was `int'.
aditi_update_errors.m:132: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:132:   in argument 2 of call to predicate `</2':
aditi_update_errors.m:132:   type error: argument has type `float',
aditi_update_errors.m:132:   expected type was `int'.
aditi_update_errors.m:132: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:132:   error: wrong number of arguments (2; should be 3)
aditi_update_errors.m:132:   in call to predicate `p'.
aditi_update_errors.m:133: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:133:   error: wrong number of arguments (3; should be 4)
aditi_update_errors.m:133:   in call to function `q'.
aditi_update_errors.m:139: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:139:   in argument 2 of call to `aditi_delete' of predicate `p/3':
aditi_update_errors.m:139:   type error: variable `DeleteP' has type `(aditi_top_down pred(V_10, int))',
aditi_update_errors.m:139:   expected type was `(aditi_top_down pred((aditi:state), int, int))'.
aditi_update_errors.m:140: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:140:   error: undefined predicate `q/2'.
aditi_update_errors.m:140:   (There is a *function* with that name, however.
aditi_update_errors.m:140:   Perhaps you forgot to add ` = ...'?)
aditi_update_errors.m:145: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:145:   in argument 2 of call to `aditi_delete' of function `q/2':
aditi_update_errors.m:145:   type error: variable `DeleteQ' has type `((aditi_top_down (func V_12)) = int)',
aditi_update_errors.m:145:   expected type was `((aditi_top_down func((aditi:state), int)) = int)'.
aditi_update_errors.m:146: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:146:   error: undefined function `p/3'.
aditi_update_errors.m:146:   (There is a *predicate* with that name, however.)
aditi_update_errors.m:151: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:151:   in argument 2 of call to `aditi_delete' of function `q/2':
aditi_update_errors.m:151:   type error: variable `DeleteQ2' has type `((func V_14) = int)',
aditi_update_errors.m:151:   expected type was `((aditi_top_down func((aditi:state), int)) = int)'.
aditi_update_errors.m:159: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:159:   error: wrong number of arguments (4; should be 3)
aditi_update_errors.m:159:   in call to predicate `p'.
aditi_update_errors.m:160: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:160:   in argument 2 of call to `aditi_bulk_insert' of predicate `p/3':
aditi_update_errors.m:160:   type error: variable `InsertP' has type `(aditi_bottom_up pred(V_16, int, float))',
aditi_update_errors.m:160:   expected type was `(aditi_bottom_up pred((aditi:state), int, int))'.
aditi_update_errors.m:161: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:161:   error: undefined predicate `q/2'.
aditi_update_errors.m:161:   (There is a *function* with that name, however.
aditi_update_errors.m:161:   Perhaps you forgot to add ` = ...'?)
aditi_update_errors.m:169: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:169:   in argument 2 of call to `aditi_bulk_insert' of predicate `p/3':
aditi_update_errors.m:169:   type error: variable `InsertP2' has type `pred(V_19, int, float)',
aditi_update_errors.m:169:   expected type was `(aditi_bottom_up pred((aditi:state), int, int))'.
aditi_update_errors.m:179: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:179:   error: undefined predicate `q/2'.
aditi_update_errors.m:179:   (There is a *function* with that name, however.
aditi_update_errors.m:179:   Perhaps you forgot to add ` = ...'?)
aditi_update_errors.m:182: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:182:   in argument 1 of call to `aditi_modify' of predicate `p/3':
aditi_update_errors.m:182:   type error: argument has type `(aditi_top_down pred(int, int, V_27, int, int, V_30))',
aditi_update_errors.m:182:   expected type was `(aditi_top_down pred((aditi:state), int, int, (aditi:state), int, int))'.
aditi_update_errors.m:183: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:183:   error: wrong number of arguments (3; should be 4)
aditi_update_errors.m:183:   in call to function `q'.
aditi_update_errors.m:184: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:184:   error: undefined predicate `q/3'.
aditi_update_errors.m:184:   (There is a *function* with that name, however.
aditi_update_errors.m:184:   Perhaps you forgot to add ` = ...'?)
aditi_update_errors.m:190: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:190:   in unification of variable `X'
aditi_update_errors.m:190:   and term `(X0 + Y0)':
aditi_update_errors.m:190:   type error in argument(s) of functor `+/2'.
aditi_update_errors.m:190:   Argument 1 (X0) has type `float',
aditi_update_errors.m:190:   expected type was `int';
aditi_update_errors.m:190:   argument 2 (Y0) has type `V_43',
aditi_update_errors.m:190:   expected type was `int'.
aditi_update_errors.m:191: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:191:   in unification of variable `Y'
aditi_update_errors.m:191:   and term `(X0 - Y0)':
aditi_update_errors.m:191:   type error in argument(s) of functor `-/2'.
aditi_update_errors.m:191:   Argument 1 (X0) has type `float',
aditi_update_errors.m:191:   expected type was `int';
aditi_update_errors.m:191:   argument 2 (Y0) has type `V_43',
aditi_update_errors.m:191:   expected type was `int'.
aditi_update_errors.m:193: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:193:   in argument 2 of call to `aditi_modify' of predicate `p/3':
aditi_update_errors.m:193:   type error: variable `ModifyP' has type `(aditi_top_down pred(V_41, float, V_43, V_44, V_45, V_46))',
aditi_update_errors.m:193:   expected type was `(aditi_top_down pred((aditi:state), int, int, (aditi:state), int, int))'.
aditi_update_errors.m:202: In clause for predicate `aditi_update_errors:aditi_update_types/2':
aditi_update_errors.m:202:   in argument 2 of call to `aditi_modify' of function `q/2':
aditi_update_errors.m:202:   type error: variable `ModifyQ' has type `((aditi_top_down func(V_47, int, int, V_50, int)) = int)',
aditi_update_errors.m:202:   expected type was `(aditi_top_down pred((aditi:state), int, int, (aditi:state), int, int))'.
aditi_update_errors.m:053: Error: no clauses for predicate `aditi_update_errors:anc/3'
aditi_update_errors.m:121: In call to `aditi_insert' of predicate `anc/3':
aditi_update_errors.m:121:   the modified predicate is not a base relation.
aditi_update_errors.m:206: In clause for `aditi_update_modes1((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:206:   in argument 2 of the inserted tuple of call to `aditi_insert' of predicate `p/3':
aditi_update_errors.m:206:   mode error: variable `V_4' has instantiatedness `free',
aditi_update_errors.m:206:   expected instantiatedness was `ground'.
aditi_update_errors.m:209: In clause for `aditi_update_modes2((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:209:   in argument 2 of the inserted tuple of call to `aditi_insert' of function `q/2':
aditi_update_errors.m:209:   mode error: variable `V_4' has instantiatedness `free',
aditi_update_errors.m:209:   expected instantiatedness was `ground'.
aditi_update_errors.m:212: In clause for `aditi_update_modes3((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:212:   in argument 2 of call to `aditi_insert' of predicate `p/3':
aditi_update_errors.m:212:   mode error: variable `V_4' has instantiatedness `free',
aditi_update_errors.m:212:   expected instantiatedness was `ground'.
aditi_update_errors.m:215: In clause for `aditi_update_modes4((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:215:   in argument 1 of call to predicate `int:</2':
aditi_update_errors.m:215:   mode error: variable `X' has instantiatedness `free',
aditi_update_errors.m:215:   expected instantiatedness was `ground'.
aditi_update_errors.m:218: In clause for `aditi_update_modes5((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:218:   in argument 1 of call to predicate `int:</2':
aditi_update_errors.m:218:   mode error: variable `X' has instantiatedness `free',
aditi_update_errors.m:218:   expected instantiatedness was `ground'.
aditi_update_errors.m:225: In clause for `aditi_update_modes6((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:225:   in argument 2 of call to `aditi_delete' of predicate `p/3':
aditi_update_errors.m:225:   mode error: variable `DeleteP' has instantiatedness `/* unique */(pred((free -> free), (free -> ground), (ground -> ground)) is semidet)',
aditi_update_errors.m:225:   expected instantiatedness was `(pred(unused, in, in) is semidet)'.
aditi_update_errors.m:231: In clause for `aditi_update_modes7((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:231:   in argument 2 of call to `aditi_delete' of function `q/2':
aditi_update_errors.m:231:   mode error: variable `DeleteQ' has instantiatedness `/* unique */(func((free -> free), (free -> ground)) = (ground -> ground) is semidet)',
aditi_update_errors.m:231:   expected instantiatedness was `(func(unused, in) = in is semidet)'.
aditi_update_errors.m:240: In clause for `aditi_update_modes8((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:240:   in argument 2 of call to `aditi_bulk_insert' of predicate `p/3':
aditi_update_errors.m:240:   mode error: variable `InsertP' has instantiatedness `/* unique */(pred((ground -> ground), (ground -> ground), (free -> ground)) is nondet)',
aditi_update_errors.m:240:   expected instantiatedness was `(pred(in, out, out) is nondet)'.
aditi_update_errors.m:251: In clause for `aditi_update_modes9((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:251:   in argument 2 of call to `aditi_bulk_insert' of function `q/2':
aditi_update_errors.m:251:   mode error: variable `InsertQ' has instantiatedness `/* unique */(func((ground -> ground), (ground -> ground)) = (free -> ground) is nondet)',
aditi_update_errors.m:251:   expected instantiatedness was `(func(in, out) = out is nondet)'.
aditi_update_errors.m:255: In clause for `aditi_update_modes10((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:255:   in call to function `int:+/2':
aditi_update_errors.m:255:   mode error: arguments `X0, V_12, V_10'
aditi_update_errors.m:255:   have insts `free, unique(1), free',
aditi_update_errors.m:255:   which does not match any of the modes for function `int:+/2'.
aditi_update_errors.m:258: In clause for `aditi_update_modes11((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:258:   in call to function `int:+/2':
aditi_update_errors.m:258:   mode error: arguments `X0, V_12, V_10'
aditi_update_errors.m:258:   have insts `free, unique(1), free',
aditi_update_errors.m:258:   which does not match any of the modes for function `int:+/2'.
aditi_update_errors.m:268: In clause for `aditi_update_modes12((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:268:   in argument 2 of call to `aditi_delete' of predicate `p/3':
aditi_update_errors.m:268:   mode error: variable `ModifyP' has instantiatedness `/* unique */(pred((free -> free), (free -> ground), (free -> ground), (free -> free), (ground -> ground), (ground -> ground)) is semidet)',
aditi_update_errors.m:268:   expected instantiatedness was `(pred(unused, in, in, unused, out, out) is semidet)'.
aditi_update_errors.m:278: In clause for `aditi_update_modes13((aditi:aditi_di), (aditi:aditi_uo))':
aditi_update_errors.m:278:   in argument 2 of call to `aditi_delete' of function `q/2':
aditi_update_errors.m:278:   mode error: variable `ModifyQ' has instantiatedness `/* unique */(pred((free -> free), (ground -> ground), (ground -> ground), (free -> free), (ground -> ground), (ground -> ground)) is semidet)',
aditi_update_errors.m:278:   expected instantiatedness was `(pred(unused, in, in, unused, out, out) is semidet)'.
For more information, try recompiling with `-E'.



--- tests/valid/aditi.m	1999/07/02 05:08:52	1.2
+++ tests/valid/aditi.m	1999/07/02 05:08:59
@@ -1,3 +1,5 @@
+% Cut down version of extras/aditi/aditi.m containing
+% declarations used by other tests.
 :- module aditi.
 
 :- interface.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list