Howdy,

When I define
(1) -> a:Category := Ring
   Category is a category, not a domain, and declarations require
      domains.

But this works,
(1) -> a:Domain:=Ring
   (1)  Ring
                                                  Type: Category

Ring is not a domain, and the result also shows this.



What bring more confusion are:
(1) -> f:()->Category:=()+->Ring
   (1)  theMap(*0;anonymousFunction;8;frame3222;internal)
                                                  Type: (() -> Category)
(2) -> f()

   (2)  Ring
                                                  Type: Category
(1) -> f:()->Domain:=()+->Ring
   Internal Error
   Interpreter code generation failed for expression|Ring|

while
)abbrev domain FOO Foo
Foo(): Public == Private where
   Public ==>  with
     f1: () -> Domain
     f2: () -> Domain -- compilation failed if "Category" used here!!

   Private ==>  add
     f1 == Integer
     f2 == Ring

(2) -> f1()

   (2)  Integer
                                                   Type: Domain
(3) -> f2()

   (3)  Ring
                                                   Type: Domain


As a conclusion, there are at least five points confusing:
1. a:Domain:=Ring works
2. the result has type Category
3. ()->Category works in interpreter, but not compiler
4. ()->Domain works in compiler, but not interpreter.
5. f2 == Ring. the return type is Domain.(compare with 2)
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to