func (s SliceBool) Choice(seed int64) (bool, error) {
	if len(s.Data) == 0 {
		var tmp bool
		return tmp, ErrEmpty
	}
	if seed == 0 {
		seed = time.Now().UnixNano()
	}
	rand.Seed(seed)
	i := rand.Intn(len(s.Data))
	return s.Data[i], nil
}
Choice chooses a random element from the slice.
If seed is zero, UNIX timestamp will be used.
package genesis
import (
	"context"
	"errors"
	"fmt"
	"math/rand"
	"sort"
	"strings"
	"sync"
	"time")
var ErrNotFound = errors.New("given element is not found")
var ErrNegativeValue = errors.New("negative value passed")
var ErrNonPositiveValue = errors.New("value must be positive")
var ErrOutOfRange = errors.New("index is bigger than container size")
var ErrEmpty = errors.New("container is empty")
type SliceBool struct {
	Data []bool
}
type ChannelBool struct {
	Data chan bool
}
type SequenceBool struct {
	ctx context.Context
}
type PairBool struct {
}
type AsyncSliceBool struct {
	Data    []bool
	Workers int
}
type SlicesBool struct {
	Data [][]bool
}
func (s SliceBool) Any(f func(el bool) bool) bool {
	for _, el := range s.Data {
		if f(el) {
			return true
		}
	}
	return false
}
func (s SliceBool) All(f func(el bool) bool) bool {
	for _, el := range s.Data {
		if !f(el) {
			return false
		}
	}
	return true
}