It's here: http://docs.python.org/2/library/userdict.html#module-UserList

You're right about the transitivity, though.  I think I could fix that by adding some extra conditions on self.offset/total/limit in the second case.