module Main (main, spec) where import Test.Hspec.Monadic import Test.Hspec.HUnit () import Test.Hspec.QuickCheck import Test.HUnit shouldBe :: (Show a, Eq a) => a -> a -> Assertion actual `shouldBe` expected = actual @?= expected main :: IO () main = hspec spec spec :: Spec spec = do describe "reverse" $ do it "reverses a list" $ do reverse [1 :: Int, 2, 3] `shouldBe` [3, 2, 1] it "gives the original list, if applied twice" $ property $ \xs -> reverse (reverse xs) == (xs :: [Int])