module Addition where import Test.Hspec import Test.QuickCheck sayHello :: IO () sayHello = putStrLn "hello!" genThreeple :: (Arbitrary a, Arbitrary b, Arbitrary c) => Gen (a,b,c) genThreeple = do a <- arbitrary b <- arbitrary c <- arbitrary return (a,b,c) genEither :: (Arbitrary a, Arbitrary b) => Gen (Either a b) genEither = do a <- arbitrary b <- arbitrary elements [Left a, Right b] genMaybe :: Arbitrary a => Gen (Maybe a) genMaybe = do a <- arbitrary elements [Nothing, Just a] genMaybe' :: Arbitrary a => Gen (Maybe a) genMaybe' = do a <- arbitrary elements [Nothing, Just a]