# hspecVariant
Spec for testing properties for variant types
[](https://hackage.haskell.org/package/hspecVariant)
```haskell
{-# LANGUAGE TypeSynonymInstances #-}
import Test.QuickCheck.Variant
type Natural = Integer
instance Variant Natural where
invalid = do
n <- arbitrary
if (n<0) then return n else return ((-1)*(n+1))
valid = do
n <- arbitrary
if (n>=0) then return n else return ((-1)*n)
```
Test
```haskell
import Test.Hspec
import Test.Hspec.Variant
main::IO ()
main = hspec $
describe "Naturals" $
propValid "succ" $
\x -> succ (x::Natural) > 0
```
## More badges
[](http://sanjorgek.com/hspecVariant/)
[](http://sanjorgek.com/hspecVariant/)
[](http://sanjorgek.com/hspecVariant/)
[](http://sanjorgek.com/hspecVariant/)
[](http://sanjorgek.com/hspecVariant/)