>> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to