func (i *Int64) CAS(old, new int64) (swapped bool) {
	return atomic.CompareAndSwapInt64(&i.v, old, new)
}
CAS is an atomic compare-and-swap.
package atomic
import (
	"encoding/json"
	"strconv"
	"sync/atomic"
)
type Int64 struct {
	_ nocmp  
	v int64
}
func NewInt64(val int64) *Int64 {
	return &Int64{v: val}
}
func (i *Int64) Load() int64 {
	return atomic.LoadInt64(&i.v)
}
func (i *Int64) Add(delta int64) int64 {
	return atomic.AddInt64(&i.v, delta)
}
func (i *Int64) Sub(delta int64) int64 {
	return atomic.AddInt64(&i.v, -delta)
}
func (i *Int64) Inc() int64 {
	return i.Add(1)
}
func (i *Int64) Dec() int64 {
	return i.Sub(1)
}