is_a() for checking subtyping relationships, parent() for getting the
parent type if any, children() for getting all child types, interfaces()
for getting all interfaces implemented by the type and finally
interface_prerequisites() for getting all prerequisites of an interface
…) returns a value of the wrong type
Or no value at all if a return value is needed, or a value if no return
value is needed.
By previously silently ignoring type errors here, hard to debug problems
appeared when code didn't get any meaningful return values.