> This tells you that offending part is
>
> a < b
>
>> ****** level 3 ******
>> $x:= (< a b)
>> $m:= (Boolean)
>> $f:=
>> ((((|b| # #) (|a| # #) (|foo| #) (|$DomainsInScope| # # #) ...)))
>>
>> >> Apparent user error:
>> not known that (List (List (Integer))) has (AND (has (List (List
>> (Integer))) (finiteAggregate)) (has (List (Integer)) (OrderedSet)))
> ^^^^^^^^^^^
Yes, clearly a<b is the problem in
foo(): Boolean ==
a: List List Integer := empty()
b: List List Integer := empty()
a < b
So, finding the exact source position of the problem was not the issue.
But why is it a problem?
(4) -> Integer has OrderedSet
true
(5) -> List Integer has OrderedSet
true
(6) -> List List Integer has OrderedSet
true
Furthermore, I find the expression
>> not known that (List (List (Integer))) has (AND (has (List (List
>> (Integer))) (finiteAggregate)) (has (List (Integer)) (OrderedSet)))
a bit strange. There is an AND part that can either be true or false. As
I understand it, the compiler tells me that List(List Integer) is not
of the category true or false. Perhaps, I have to interpret the above
"... has (AND (has ...) (has ...))".
> This is compiler's way of saying that it does not have ordering
> predicate for List(List(Integer)).
As you see from the session above, OrderedSet shouldn't be a problem.
> Another thing is wording of error messages. If you have
> proposals for better wording I would like to hear them.
No the wording was not the problem. But I would have expected a category
in place X when it says: "not know that ... has X".
> And, BTW what you think about interpreter error messages?
Oh, sorry, but I haven't systematically investigated it. You can be sure
that I report back if something bothers me too much, but otherwise I
simply cannot say.
What I care more about currently, are compiler messages that throw a
lisp expression at me. It is managable if I see << ... >> and thus can
locate the error. But sometimes that marker is missing.
Well my dream would be Aldor error messages with the speed of the Spad
compiler. ;-)
Ralf