[Aldor-l] [Axiom-developer] Unions in Spad

Ralf Hemmecke ralf at hemmecke.de
Mon Jul 9 12:26:43 EDT 2007


> So really in Aldor when writes
> 
>  Union(x:Integer, y:String)
> 
> one is using the same conventions. So as Waldek implied, the fact that
> Aldor currently does not allow
> 
>  Union(Integer, String)
> 
> is not really a syntactic issue but rather a semantic one.

Unfortunately, the Aldor mailing list is dead. --- No replies to my 
recent question.

http://www.aldor.org/pipermail/aldor-l/2007-July/000643.html

Anyway, I would not say that Aldor does not allow 
"Union(Integer,String)". No hint in the AUG, but look at the error 
message given in
http://lists.nongnu.org/archive/html/axiom-developer/2007-07/msg00181.html

If you rewrite this program to

     U == Union(machInt: MachineInteger, sStr: String);

(just change this line) and then look at the error message.

woodpecker:~/scratch>aldor -laldor -fx aaa.as
"aaa.as", line 13:         if u case MachineInteger then {
                    ..................^
[L13 C19] #1 (Error) Argument 2 of `case' did not match any possible 
parameter type.
     The rejected type is Join(
                 PrimitiveType with
                     ....
     Expected one of:
       -- Enumeration(machInt: Type)
       -- Enumeration(sStr: Type)

It looks as if one also could do

   if u case MachineInteger then ...

with the current Aldor compiler, I just don't know how to type 
"MachineInteger" since the compiler immediately takes the *type* 
MachineInteger and not the *tag* MachineInteger.

Anyway, that usage of MachineInteger is not specified in the AUG so 
maybe one better does not use it that way.

Ralf



More information about the Aldor-l mailing list