ABSTRACT <A>          /sA..........$/
                  AND
                      { <p> [0 1 2 3 4 5 6 7 8 9]+ }
ABSTRACT <B> @<A> AND /s.B.........$/
                  AND
                      { <p> [0 1   3 4 5 6 7 8 9]+ }
         <C>          /s..C........$/
                  AND
                      { <p> [0 1 2   4 5 6 7 8 9]+ }
ABSTRACT <D> @<B> AND
             @<C> AND /s...D.......$/
                  AND
                      { <p> [0 1 2 3   5 6 7 8 9]+ }
ABSTRACT <E>          /s....E......$/
                  AND EXTENDS @<D>
                      { <p> [    2              ] }
         <F>          /s.....F.....$/
                  AND
                      { <p> [      3            ] }
         <G>          /s......G....$/
                  AND EXTENDS @<E> EXTENDS @<F>
                      { <p> [        4          ] }

# A: 0 1 2 3 4 5 6 7 8 9+                         
# B: 0 1   3 4 5 6 7 8 9+                         
# C:       -            +                         
# D: 0 1       5 6 7 8 9+                         
# E: 0 1 +     5 6 7 8 9+, p:2                    
# F:       +               p:3                    
# G: 0 1     + 5 6 7 8 9+, p:2, p:3, p:4          
