Thanks Holger.
I think a solution could be to have 2 sets of arguments: template-local (by
default), and inheritable (defined so explicitly), or "tunneled".
Subclasses would not see the local arguments of superclasses, and it would
be an error to redefine tunneled arguments with a different
Hi Martynas,
as you have found out, this scenario is not supported by SPIN. Multiple
declarations of the same predicate lead to undefined behavior. I am not
particularly keen to touch this area of code, because it is so widely
used and I don't want to risk regression bugs or performance
Hey,
I have a somewhat artificial use case where both a class and its superclass
each have an spl:Argument with the same predicate, but different
spl:defaultValue, and possibly other properties:
:Template a spin:Template ;
spin:constraint [ a spl:Argument ;