でしかアクセスできないように Psalm のジェネリクスでデリファレンス後は中身の型に /** * @template T of \PhpProfiler\Lib\Process\Pointer\Dereferen */ class Pointer { /** @param class-string<T> $type */ public function __construct( public string $type, public int $address, public int $size, ) { } interface Dereferencer { /** * @template T of Dereferencable * @param Pointer<T> $pointer * @return T */ public function deref(Pointer $pointer): mixed;