An atomic Go boolean type with function interfaces like official sync/atomic.
package main
import (
"fmt"
"github.com/Andrew-M-C/go.atomicbool"
)
func main() {
f := fmt.Println
b := atomicbool.New(true)
f(b.Load())
b.Store(false)
f(b.Load())
swapped := b.CompareAndSwap(false, true)
f(swapped, b.Load())
}