code: func (e *encoder) BeginOperation(op string, info string) DebugOperationEnd {
  	if e == nil {
  		return func(string) {}
  	}
  
  	e.Encode(marshalOperation{
  		Type:  typeOperation,
  		Begin: op,
  		Info:  info,
  	})
  
  	return func(info string) {
  		e.Encode(marshalOperation{
  			Type: typeOperation,
  			End:  op,
  			Info: info,
  		})
  	}
  }
docs: // BeginOperation marks the start of set of graph transformations, and returns
  // an EndDebugOperation func to be called once the opration is complete.