code: func (o *lazyObject) init() error {
  	o.lock.Lock()
  	defer o.lock.Unlock()
  	if o.loaded {
  		return o.err
  	}
  	o.mapper, o.err = o.loader()
  	o.loaded = true
  	return o.err
  }
docs: // init lazily loads the mapper and typer, returning an error if initialization has failed.