{-# LANGUAGE DeriveGeneric, ScopedTypeVariables, TemplateHaskell #-}

module Main where

import GHC.Generics (Generic)
import Test.QuickCheck

data Nat = Z | S Nat deriving (Eq, Show, Generic)


instance Arbitrary Nat where arbitrary = error "not implemented"

prop_shrink =
  genericShrink (S (S Z)) === [S Z] .&&.
  genericShrink [0::Int] === [[]]

return []

main :: IO ()
main = do True <- $quickCheckAll; return ()
