Can we flip to `isObject`, then have this read `isObject && isWeak && !isBlock && !isProtocol`.