code: func (c *Closer) Close() {
  	// Lock the mutex
  	c.mutex.Lock()
  	defer c.mutex.Unlock()
  
  	// Just return if already closed.
  	if c.IsClosed() {
  		return
  	}
  
  	// Close the channel.
  	close(c.IsClosedChan)
  
  	// Emit the function.
  	c.f()
  }
docs: // Close calls the function and sets the IsClosed boolean.