Revert "Avoid partial functions Data.List.init and Data.List.last" #260
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This reverts commit 1962387 (introduced in #254)
I should have run benchmarks when working on the original commit: now
hasTrailingPathSeparatorregressed a lot, becausegetTrailingPathSeparatordoes not fuse well and we are left with a lot of overhead. And if we reverthasTrailingPathSeparatorback and plug-Wno-x-partialto accomodate future warnings onData.List.{init,last}, then there is no raison d'etre for other changes, because we will have-Wno-x-partialanyway.In general this performance issue could be worked out / worked around, but we have a very limited toolbox because of keeping both
FilePathandOsPathimplementations in the same place.So for now let's revert (and add {-# OPTIONS_GHC -Wno-x-partial #-} once
Data.List.{init,last}gain warnings).Additional context: haskell/core-libraries-committee#292