code: func (f *FSM) leaveStateCallbacks(e *Event) error {
  	if fn, ok := f.callbacks[cKey{f.current, callbackLeaveState}]; ok {
  		fn(e)
  		if e.canceled {
  			return CanceledError{e.Err}
  		} else if e.async {
  			return AsyncError{e.Err}
  		}
  	}
  	if fn, ok := f.callbacks[cKey{"", callbackLeaveState}]; ok {
  		fn(e)
  		if e.canceled {
  			return CanceledError{e.Err}
  		} else if e.async {
  			return AsyncError{e.Err}
  		}
  	}
  	return nil
  }
docs: // leaveStateCallbacks calls the leave_ callbacks, first the named then the
  // general version.