{-# OPTIONS_GHC -fdefer-type-errors #-} {-# OPTIONS_GHC -Wno-deferred-type-errors #-} -- | Test that infinite types has no Arbitrary instance module NoTypecheckTest where import Auxiliary import GHC.Generics (Generic) import Test.QuickCheck import Test.QuickCheck.Arbitrary.Generic -- | Recursive infinite type which can not have valid Arbitrary instance data R = R R deriving (Eq, Show, Generic) -- | Instance which must not compile, but we are using deferred type errors instance Arbitrary R where arbitrary = genericArbitrary shrink = genericShrink unit_mustFail :: IO () unit_mustFail = failGeneration @R