interface X { function m(Y $z): X;
}
interface Y extends X { // Тут можно будет сужать тип function m(X $z): Y;
} interface Concatable class Collection implements Concatable { // А тут можно будет расширять тип function concat(iterable $input) {/* . . . */}
}