public function inspect($nameFilter = null, $typeFilter = null)
    {
        $result = [];
        $name   = $nameFilter ? $this->normalizeName($nameFilter) : null;

        if (empty($typeFilter)) {
            $typeFilter = static::I_ALL;
        }

        $types = [
            static::I_BINDINGS  => 'classDefinitions',
            static::I_DELEGATES => 'delegates',
            static::I_PREPARES  => 'prepares',
            static::I_ALIASES   => 'aliases',
            static::I_SHARES    => 'shares',
        ];

        foreach ($types as $type => $source) {
            if ($typeFilter & $type) {
                $result[$type] = $this->filter($this->{$source}, $name);
            }
        }

        return $result;
    }