There's the NCS 2.0 approach: Don't use narrowed types in interfaces. Ever. This works very well, actually.