Advantages of this approach
We have to define only one abstract interface for each overall strategy for accessing sequences
We can define another derived class from InSeq for each kind of sequence we care about
Each derived class is potentially useful to many algorithms