code: func OnSessionBind(f func(ctx context.Context, s *Session) error) {
  	// Prevents the same function to be added twice in onSessionBind
  	sf1 := reflect.ValueOf(f)
  	for _, fun := range sessionBindCallbacks {
  		sf2 := reflect.ValueOf(fun)
  		if sf1.Pointer() == sf2.Pointer() {
  			return
  		}
  	}
  	sessionBindCallbacks = append(sessionBindCallbacks, f)
  }
docs: // OnSessionBind adds a method to be called when a session is bound
  // same function cannot be added twice!