The QuickCheck library swapped the order of the arguments of the 'cover' function in version 2.12. Version 0.3.4 of the Diff library still uses the old argument order. Swapping the argument order makes Diff work with newer versions of QuickCheck. See for the upstream bug report. diff -ruN a/test/Test.hs b/test/Test.hs --- a/test/Test.hs 2016-04-23 01:21:45.000000000 -0400 +++ b/test/Test.hs 2019-11-01 19:13:04.590770903 -0400 @@ -134,7 +134,7 @@ prop_ppDiffR (DiffInput le ri) = let haskDiff=ppDiff $ getGroupedDiff le ri utilDiff= unsafePerformIO (runDiff (unlines le) (unlines ri)) - in cover (haskDiff == utilDiff) 90 "exact match" $ + in cover 90 (haskDiff == utilDiff) "exact match" $ classify (haskDiff == utilDiff) "exact match" (div ((length haskDiff)*100) (length utilDiff) < 110) -- less than 10% bigger where