Martin Rubey <[EMAIL PROTECTED]> writes:

> Dear Gaby, Waldek,

Below a little more debugging information, that may be helpful.  (I deleted
inessential output)

For a reason I do not know, upDollar passes in the case of "::" coercion (note
that the definitions of co and coerce in Species are *identical*) a vector to
upDollarTuple. (well, I believe # introduces a vector, I'm not sure)

I also noticed, that it is not possible to call "co" within the code of Species
If I try to, I get:

   >> System error:
   Execution of a form compiled with errors.
Form:
  ((ELT $ 17) s)
Compile-time error:
  illegal function call


It would be *really* nice to have this fixed...

(8) -> S1 := 1$SPECIES INT
 1<enter upDollar : (#(|Dollar| NIL NIL NIL NIL) (SPECIES INT)
                            (#(|One| NIL NIL NIL NIL)))
 1>exit  upDollar : ((|Species| (|Integer|)))
   (8)  "CharacteristicSpecies(1)"
                                                       Type: Species(Integer)
(9) -> S2 := co S1

   (9)  CharacteristicSpecies(Integer,1)
                                               Type: SpeciesCategory(Integer)
(10) -> name()$S2
 1<enter upDollar : (#(|Dollar| NIL NIL NIL NIL) S2
                             (#(|name| NIL NIL NIL NIL)))
  1<enter upDollarTuple : #(|Dollar| NIL NIL NIL
                                               
NIL)\|name|\(|CharacteristicSpecies|
                                                              (|Integer|)
                                               1)\(#(|Dollar|
                                                                                
NIL
                                                                                
NIL
                                                                                
NIL
                                                                                
NIL)
                                                                              S2
                                                                              
(#(|name|
                                                                                
 NIL
                                                                                
 NIL
                                                                                
 NIL
                                                                                
 NIL)))\NIL\0
   1<enter isOpInDomain : |name|\(|CharacteristicSpecies| (|Integer|) 1)\1
   1>exit  isOpInDomain : NIL
  1>exit  upDollarTuple : NIL
  1<enter isOpInDomain : |name|\(|CharacteristicSpecies| (|Integer|) 1)\0
  1>exit  isOpInDomain : ((((|String|)) 15 T ELT))
   enter name
 1>exit  upDollar : ((|String|))

   (10)  "CharacteristicSpecies(1)"
                                                                 Type: String
(11) -> S3 := S1 :: SpeciesCategory INT

   (11)  CharacteristicSpecies(Integer,1)
                                               Type: SpeciesCategory(Integer)

(16) -> name()$S2
 1<enter upDollar : (#(|Dollar| NIL NIL NIL NIL) S2
                             (#(|name| NIL NIL NIL NIL)))
  1<enter upDollarTuple : #(|Dollar| NIL NIL NIL
                                                                 
NIL)\|name|\(|CharacteristicSpecies|
                                                              (|Integer|)
                                                                 1)\(#(|Dollar|
                                                                                
NIL
                                                                                
NIL
                                                                                
NIL
                                                                                
NIL)
                                                                              S2
                                                                              
(#(|name|
                                                                                
 NIL
                                                                                
 NIL
                                                                                
 NIL
                                                                                
 NIL)))\NIL\0
   1<enter isOpInDomain : |name|\(|CharacteristicSpecies| (|Integer|) 1)\1
   1>exit  isOpInDomain : NIL
  1>exit  upDollarTuple : NIL
  1<enter isOpInDomain : |name|\(|CharacteristicSpecies| (|Integer|) 1)\0
  1>exit  isOpInDomain : ((((|String|)) 15 T ELT))
   enter name
 1>exit  upDollar : ((|String|))

   (16)  "CharacteristicSpecies(1)"
                                                                 Type: String
(17) -> name()$S3
 1<enter upDollar : (#(|Dollar| NIL NIL NIL NIL) S3
                             (#(|name| NIL NIL NIL NIL)))
  1<enter upDollarTuple : #(|Dollar| NIL NIL NIL
                                                                 
NIL)\|name|\#((|CharacteristicSpecies|
                                                                (|Integer|) 1)
                                                               (#<FUNCTION
                                                                 
|lookupComplete|>
                                                                
#((|CharacteristicSpecies|
                                                                   (|Integer|)
                                                                   1)
                                                                  (#
                                                                   
#((|CharacteristicSpecies|
                                                                      
(|Integer|)
                                                                      1)
                                                                     (#
                                                                      
#((|CharacteristicSpecies|
                                                                         
(|Integer|)
                                                                         1)
                                                                        (#
                                                                         
#((|CharacteristicSpecies|
                                                                            
(|Integer|)
                                                                            1)
                                                                           (#
                                                                            
#((|CharacteristicSpecies|
                                                                               
(|Integer|)
                                                                               
1)
                                                                              (#
                                                                               
#((|CharacteristicSpecies|
                                                                                
  (|Integer|)
                                                                                
  1)
                                                                                
 (#
                                                                                
  #((|CharacteristicSpecies|
                                                                                
     (|Integer|)
     

(and so on...)


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to