code: def derive(self, modifier):
          
          def forward(value):
              changed_value = modifier(value)
              derived.fire(changed_value)
          
          derived = Event()
          self.add_callback(forward)
          return derived
docs: Returns a new :class:`Event` instance that will fire
          when this event fires. The value passed to the callbacks
          to the new event is the return value of the given
          `modifier` function which is passed the original value.