Add COMPLETE pragmas for Data.Sequence
authorDavid Feuer <David.Feuer@gmail.com>
Wed, 1 Mar 2017 02:52:36 +0000 (21:52 -0500)
committerDavid Feuer <David.Feuer@gmail.com>
Wed, 1 Mar 2017 02:52:36 +0000 (21:52 -0500)
GHC 8.2 allows us to declare sets of pattern synonyms complete.
We happily do so!

Data/Sequence/Internal.hs
changelog.md

index 71279a8..9879321 100644 (file)
@@ -286,9 +286,10 @@ infixl 5 |>, :>
 infixr 5 :<|
 infixl 5 :|>
 
--- TODO: Once GHC implements some way to prevent non-exhaustive
--- pattern match warnings for pattern synonyms, we should be
--- sure to take advantage of that.
+#if __GLASGOW_HASKELL__ >= 801
+{-# COMPLETE (:<|), Empty #-}
+{-# COMPLETE (:|>), Empty #-}
+#endif
 
 -- | A pattern synonym matching an empty sequence.
 pattern Empty :: Seq a
index 8ee717e..418406a 100644 (file)
@@ -4,6 +4,9 @@
 
 * Planned for GHC 8.2.
 
+* Use `COMPLETE` pragmas to declare complete sets of pattern synonyms
+  for `Data.Sequence`. At last!
+
 * Make `Data.IntMap.Strict.traverseWithKey` force the values before
   installing them in the result. Previously, this function could be used to
   produce an `IntMap` containing undefined values.