>> Somewhere in your library a domain D is defined. You define >> >> NewD: Cat(D) with >> foo: %->% >> == D add >> foo(x: %): % == x >> >> bar(X: MyCat): () == ... >> >> How do you know that you can write bar(D)? > > That is nothing new. I can write 'bar(D)' if 'D has MyCat' is true.
Yep. >> How do you know that you can write bar(NewD)? > Because by definition 'Cat(D)' will be evaluated to *exactly* the > singleton category to which D belongs then I know that: > 'NewD has MyCat' will be true if and only if 'D has MyCat' is true. So in your code you either have to write if D has MyCat then ... or if NewD has MyCat then ... There seems to be little gain with the knowledge that NewD exports at least Cat(D). Or do I still not understand what advantage you see in "Cat"? >> I don't currently see a case where I would want such a NewD. >> Do you have a real example? > Pick any reason for which you might want to use extend in Spad. I appreciate "extend", but I cannot see how you can simulate "extend" by this "Cat" operation. You would have "NewD" and not just "D". Ralf --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/fricas-devel?hl=en -~----------~----~----~----~------~----~------~--~---
