public function nonEmpty($subject) : bool
    {
        if (
            $subject instanceof \ArrayAccess
            && !($subject instanceof \Countable) && !($subject instanceof \Traversable)
        ) {
            return false;
        }
        return !$this->empty($subject);
    }