code: func (e *edge) execIfPossible(f *pipeFactory) bool {
  	if len(e.cacheRecords) > 0 {
  		if e.keysDidChange {
  			e.postpone(f)
  			return true
  		}
  		e.execReq = f.NewFuncRequest(e.loadCache)
  		for req := range e.depRequests {
  			req.Cancel()
  		}
  		return true
  	} else if e.allDepsCompleted {
  		if e.keysDidChange {
  			e.postpone(f)
  			return true
  		}
  		e.execReq = f.NewFuncRequest(e.execOp)
  		return true
  	}
  	return false
  }
docs: // execIfPossible creates a request for getting the edge result if there is
  // enough state