> | Note: This code is currently the same in both FriCAS and OpenAxiom.
>
> OpenAxiom issues this warning:
>
> Warnings:
> [1] OpenAxiom suggests removing assignment to Rep
Very nice.
> | Since BinarySearchTree is a particular class of BinaryTree for
> | consistency in BinarySearchTree I would expect to see:
> |
> | Implementation == BinaryTree(S) add
> | Rep == List Tree S
> As I said, I would not. I would not expect any definition of Rep at
> all. The domain extension says BinaryTree(S) is the Rep of
> BinarySearchTree(S).
In fact, in add-inherited domains
D: C == A add
Rep == X
...
one should not even be allowed to ever write anything else for X than
just A. I think Open-Axiom is right to remove the necessity of the
(redundant line "Rep == A").
And why would one want that in Rep==X, X must be the same as A? Because
suppose that A is defined like
A: C2 == add
Rep == X
...
and for some reason you decide (as a maintainer for A) that it would be
better to change your internal (not exported) representation from X to Y
in an incompatible way (for example, Y=List(X)), then recompilation will
break at compiling D, since then A and X have different underlying
bit-layout.
Ralf
------------------------------------------------------------------------------
_______________________________________________
open-axiom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel