def set(self, i, value):
        """Set value at position i and return a Future.

        :rtype: tornado.concurrent.Future
        """
        value_encoded = encode(value, self.get_change_trigger(i))

        if i in self.data and self.data[i] == value_encoded:
            return self

        self.data[i] = value_encoded
        return self.trigger_changed(i)
Set value at position i and return a Future.

        :rtype: tornado.concurrent.Future