Possible type switch between array type and the iterable type

Code
<?php

// Return type iterable
interface IterableReturn
{
    public function 
foo() : iterable;
}

// Return type array despite iterable is expected by interface
class ArrayReturn implements IterableReturn
{
    public function 
foo() : array
    {
        return [];
    }
}

dump((new ArrayReturn())->foo());

// Type hint array
interface ArrayHint
{
    public function 
foo(array $a) : void;
}

// Type hint iterable despite array is expected by interface
class IterableHint implements ArrayHint
{
    public function 
foo(iterable $a) : void
    
{
        
dump($a);
    }
}

(new 
IterableHint())->foo(new EmptyIterator());
Result
^ []

^ EmptyIterator {#1395}
Used Versions
PHP 8.0, Laminas MVC 3.2, Symfony 5.2, Laravel 8.28, PHPUnit 9.5, Doctrine ORM 2.8