I think there's a typo in the language guide and I'm not sure where the best place to report it is. The sentence "For example, here’s a version of flip(_:) that returns a value of protocol type instead of using an opaque return type" should I believe instead say "of a protocol type."
Also on the same page I think there's a typo in a sentence toward the end "You also can’t use it as constraint a generic return type because there isn’t enough information outside the function body to infer what the generic type needs to be."