class RSequence:
    def __init__(self, object):
        self.proxy = object
    def __getattr__(self, name):
        return getattr(self.proxy, name)   # route to real object 
    def __getitem__(self, index):
        return self.proxy[index]           # intercept operators too
    def reverse(self):
        res = self.proxy[:0]
        for i in range(len(self.proxy)):   # slice and concat object
            res = self.proxy[i:i+1] + res
        return RSequence(res)
