`PhutilTypeSpec` claims to support "AnyClassOrInterfaceName", however the followiing code raises an exception:
```
PhutilTypeSpec::newFromString('stdClass')->check(new stdClass());
```
The exception message is `EXCEPTION (PhutilTypeCheckException): Parameter has invalid type. Expected type 'stdClass', got type 'stdClass'.`. It seems to me that this is not the correct behaviour.
Furthermore, it would be great if `PhutilTypeSpec` supported subclasses so that, for example, `list<Exception>` could be used to match `array(new Exception(), new RuntimeException(), new LogicException()`.'
I'm happy to fix this bug and add in subclass support (seems fairly easy), but first wanted to clarify whether this is the intended behaviour (in which case the documentation is incorrect).