code: func (t *Collection) UnmarshalJSON(d []byte) error {
  	p := ploc{}
  	if err := json.Unmarshal(d, &p); err != nil {
  		return err
  	}
  	if t.rootLock == nil {
  		t.rootLock = &sync.Mutex{}
  	}
  	nloc := t.mkNodeLoc(nil)
  	nloc.loc = unsafe.Pointer(&p)
  	if !t.rootCAS(nil, t.mkRootNodeLoc(nloc)) {
  		return errors.New("concurrent mutation during UnmarshalJSON().")
  	}
  	return nil
  }
docs: // Unmarshals JSON representation of root node file location.