func makeAnimals() -> <A: Animal> (A, A) { return (Cat(), Cat()) }
// opaque type alias opaque typealias A: Animal = Cat func makeAnimals() -> (A, A) { return (Cat(), Cat()) }