code: func newObject(parentCtx context.Context, c *asticontext.Canceller, d *dispatcher, i *identifier, w *writer, id string) (o *object) {
  	o = &object{
  		c:  c,
  		d:  d,
  		i:  i,
  		id: id,
  		w:  w,
  	}
  	if parentCtx != nil {
  		o.ctx, o.cancel = context.WithCancel(parentCtx)
  	} else {
  		o.ctx, o.cancel = c.NewContext()
  	}
  	return
  }
docs: // newObject returns a new base object