https://vladimir.varank.in/notes/2023/01/go-runtime-vs-cfs-quota/

for i := range slices {
		s := slices[len(slices)-1-i]
		......
}

Because no type outside of our package color can implement the unexported method color.Color.xxxProtected(), we limit the possible implementations of Color interface to only values, defined in the color package.

package color

type Color interface {
    xxxProtected()
}

type color string

func (c color) xxxProtected() {}

const (
	Red   color = "red"
	Green color = "green"
	Blue  color = "blue"
)

https://vladimir.varank.in/notes/2023/09/compile-time-safety-for-enumerations-in-go/