{-# language
ScopedTypeVariables
#-}
module Main (main) where
import Test.QuickCheck.Classes
import Test.QuickCheck (Arbitrary(..))
import Data.Complex (Complex(..))
import GHC.Fingerprint (Fingerprint(..))
import GHC.Real (Ratio(..))
import Data.Proxy (Proxy(..))
import Data.Primitive.Instances ()
main :: IO ()
main = lawsCheckMany
[ ("Complex Double", [primLaws (Proxy :: Proxy (Complex Double))])
, ("Ratio Double", [primLaws (Proxy :: Proxy (Ratio Int))])
, ("Fingerprint", [primLaws (Proxy :: Proxy Fingerprint)])
]
instance Arbitrary Fingerprint where
arbitrary = Fingerprint <$> arbitrary <*> arbitrary