DiagnosticsBySource is a Map (Maybe Text) (SortedList Diagnostic), however, when flushing by source of Nothing, the key that has no source (Nothing) in the DiagnosticsBySources is not removed. Instead, the store is returned unmodified. This causes two issues:
- the API doesn't allow for flushing diagnostics without source.
- the API is unintuitive because if the key is
Maybe Text, the fact that you're passing a Maybe Text should mean that you're also removing that key and not leaving the store unmodified in that case. passing your store through the id function can be done by the user in any case.