An object sequence hash map represents a mapping from sequences of objects to sequences of objects. The key may be anything that implements IList. The value is also a list. It is expected that very commonly only one value will be stored for a given key. The implementation is optimized for this by storing the object directly rather than a sequence holding the one object. Two objects are typically stored as an array, three or more as an ArrayList. (This means lists of lists don't work.)