type-specialization

Available in: KerML, SysML

This checks that types directly or indirectly specialize Base::Anything.

This is only possible in KerML which allows conjugating other types. Due to rules around implicit specializations and conjugations, conjugation cycles lead broken type elements.

Specification

A Type must directly or indirectly specialize Base::Anything from the Kernel Semantic Library.

Example

class A ~ B; // error
class B ~ A; // error

Remove conjugation cycles:

class A;     // ok
class B ~ A; // ok