adapter.go
func AdapterOf(typ reflect.Type) (a Adapter, ok bool) {
	adapterMutex.RLock()
	a, ok = adapterStore[typ]
	adapterMutex.RUnlock()
	return
}
func AdapterOf(typ reflect.Type) (a Adapter, ok bool) {
	adapterMutex.RLock()
	a, ok = adapterStore[typ]
	adapterMutex.RUnlock()
	return
}
// AdapterOf returns the adapter for typ, setting ok to true if one was found,
// false otherwise.