whole_func_string: function expensiveOperation (input) {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        const output = 'result'
        cache.write(input, output)
        resolve(output)
      }, 3000)
    })
  }
func_code_string: function expensiveOperation (input) {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        const output = 'result'
        cache.write(input, output)
        resolve(output)
      }, 3000)
    })
  }
func_documentation_string: The expensive operation we're aiming to avoid, (3 second cost per invocation)