hunk.code_window:   collection: { [key: string]: T },
     iteratee: (item: T, key: string, collection: { [key: string]: T }) => P,
     predicate: (item: T) => boolean
   ): { [key: string]: P } {
     const result = {};
     for (const key of keys(collection)) {
       const item = collection[key];
       if (!predicate(item)) {
  
hunk.labels: keep keep keep keep replace keep keep keep keep keep
hunk.after_edit:   const result: { [key: string]: P } = {};
  
hunk.file_path: src/utils.ts
hunk.type: replace
file: ## Bug or feature request?
  
  ## Description:
  
  ## (Bug) Expected result:
  
  ## (Bug) Actual result:
  
  ## (Bug) Potential fix:
  
  **Required!** If you found a bug and can consistently reproduce it, please take a minute to think about what the potential fix might be.
  Even if the fix is incorrect, this can help diagnose and find the solution to the issue as quickly as possible.
  
  I also strongly encourage you to [create a pull request](https://github.com/davidkpiano/xstate/pulls) if you are confident in the potential fix.
  
  ## (Feature) Potential implementation:
  
  **Required!** If you would like to see a feature or enhancement make its way to xstate, please describe:
  - What the API would look like
  - If this is a breaking change
  - If this is part of the existing [SCXML specification](https://www.w3.org/TR/scxml/)
  
  ## Link to reproduction or proof-of-concept:
  
  You can use [CodePen](codepen.io) or [Code Sandbox](codesandbox.io) to create a reproduction/POC.
  