Consider the following function from src/interp/clam.boot: numberOfEmptySlots cache== count:= (CAAR cache ='$failed => 1; 0) for x in tails rest cache while NE(x,cache) repeat if CAAR x='$failed then count:= count+1 count
The SBCL type checker does not like it because: * it is able to infer that cache is a list, * '=' (coming from NE, which mean not =) can be applied only to numbers. Consequently, we have conflicting assumptions for the same value. So, we have a bug. Now, looking back at the code, the expression NE(x,cache) cannot be right. Was it indended to be x /= cache instead? Note: a /= b is almost same like (not (equal a b)). What is the semantics of function numberOfEmptySlots? What is the structure of its parameter? -- Gaby _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer