GHC.Conc.Windows has a surprising queue
`GHC.Conc.Windows` seems to use `[DelayReq]` as a priority queue, and uses `foldr` to insert multiple elements into it. Unless these lists are always very short (are they?) that seems like a bad idea.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------- |
| Version | 8.4.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Core Libraries |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown/Multiple |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"GHC.Conc.Windows has a surprising queue","status":"New","operating_system":"Unknown/Multiple","component":"Core Libraries","related":[],"milestone":"8.8.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"`GHC.Conc.Windows` seems to use `[DelayReq]` as a priority queue, and uses `foldr` to insert multiple elements into it. Unless these lists are always very short (are they?) that seems like a bad idea.","type_of_failure":"OtherFailure","blocking":[]} -->
issue