{-# OPTIONS_GHC -fdefer-type-errors #-}
{-# OPTIONS_GHC -Wno-deferred-type-errors #-}
module ParametersTest where
import Auxiliary
import Control.DeepSeq
import GHC.Generics (Generic)
import Test.QuickCheck
import Test.QuickCheck.Arbitrary.Generic
data A a = A a
deriving (Eq, Ord, Show)
deriving anyclass NFData
deriving (Generic)
instance (Arbitrary a) => Arbitrary (A a) where
arbitrary = genericArbitrary
shrink = genericShrink
data B a = B a
deriving (Eq, Ord, Show)
deriving anyclass NFData
deriving (Generic)
instance (Arg (B a) a, Arbitrary a) => Arbitrary (B a) where
arbitrary = genericArbitrary
shrink = genericShrink
unit_argumentConstraintFail :: IO ()
unit_argumentConstraintFail = failGeneration @(A Int)
prop_properArgumentConstraint :: B Int -> Property
prop_properArgumentConstraint = total