The signature operator creates a property which determines whether, in terms of classes, a specified property can have a non-
NULL value for the arguments passed or not. In fact, this operator deduces possible classes of a given property from its semantics, after which it uses logical operators and the classification operator to create the required property.
To implement this operator, use the
a = ABSTRACT CASE STRING (A);
CLASS B : A;
b = DATA STRING (B);
a(B b) += WHEN CLASS(b(b)) THEN b(b); // is equivalent to WHEN b IS B THEN b(b)