func ConnectWithDefaults(connectFunc func() error) error {
	return Connect(defaultRetryCount, defaultBaseRetryDelay, connectFunc)
}
ConnectWithDefaults is like Connect, with default values for retryCount and retryDelay.
package compose
import "time"
const (
	defaultRetryCount     = 10
	defaultBaseRetryDelay = 100 * time.Millisecond
)
func Connect(retryCount int, baseRetryDelay time.Duration, connectFunc func() error) error {
	var err error
	for i := 0; i < retryCount; i++ {
		err = connectFunc()
		if err == nil {
			return nil
		}
		time.Sleep(baseRetryDelay)
		baseRetryDelay *= 2
	}
	return err
}
func MustConnect(retryCount int, baseRetryDelay time.Duration, connectFunc func() error) {
	if err := Connect(retryCount, baseRetryDelay, connectFunc); err != nil {
		panic(err)
	}
}