@@ -16,7 +16,7 @@ import "unordered-containers" Data.HashSet (HashSet)
16import qualified "unordered-containers" Data.HashSet as HashSet
16import qualified "unordered-containers" Data.HashSet as HashSet
17import Data.HashMap.Strict (HashMap)
17import Data.HashMap.Strict (HashMap)
18import qualified Data.HashMap.Strict as HashMap
18import qualified Data.HashMap.Strict as HashMap
19−import Data.List.NonEmpty (NonEmpty)
19+import Data.List.NonEmpty (NonEmpty(..), nonEmpty)
20import Data.Map (Map)
20import Data.Map (Map)
21import Data.Monoid (mempty)
21import Data.Monoid (mempty)
22import Data.Proxy
22import Data.Proxy
@@ -262,3 +262,13 @@ instance Arbitrary ZonedTime where
263instance Arbitrary UTCTime where
263instance Arbitrary UTCTime where
264 arbitrary = UTCTime <$> arbitrary <*> fmap fromInteger (choose (0, 86400))
264 arbitrary = UTCTime <$> arbitrary <*> fmap fromInteger (choose (0, 86400))
266+#if MIN_VERSION_QuickCheck(2,10,0)
267+-- This instance was removed in QuickCheck 2.10 because of dependencies.
268+-- The instance is available in `quickcheck-instances` package, but that
269+-- introduces a ton of conflicts with the other instances here.
271+instance Arbitrary a => Arbitrary (NonEmpty a) where
272+ arbitrary = liftA2 (:|) arbitrary arbitrary
273+ shrink (x :| xs) = mapMaybe nonEmpty (shrink (x:xs))