1 @interface Foo(RightSub) <P2>
2 @property id right_sub_prop;
3 @end
4 
Foo()5 @interface Foo() {
6 @public
7   int right_sub_ivar;
8 }
9 @end
10 
11 @protocol P4
12 - (void)p4_method;
13 @property (retain) id p4_prop;
14 @end
15 
16 @interface Foo(LeftP4) <P4>
17 @end
18 
19 // A hidden extension
20 @interface Foo ()
21 @property (assign) int hiddenPropertyFromExtension;
22 @end
23