-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | HUnit like assertions for QuickCheck
--   
--   Library with convenient assertions for QuickCheck properties like in
--   HUnit
@package quickcheck-assertions
@version 0.3.0


-- | Module provides convenient functions to do some assertions in
--   QuickCheck properties with pretty printed reasons. For example you can
--   do something like that:
--   
--   <pre>
--   module Main where
--   
--   import Test.Hspec
--   import Test.Hspec.QuickCheck
--   import Test.QuickCheck.Assertions
--   import Test.QuickCheck.Property
--   
--   someProp :: Int -&gt; Int -&gt; Result
--   someProp a b = (a ?&gt; b)
--   
--   someOtherProp :: Double -&gt; Double -&gt; Result
--   someOtherProp a b = (a ?== b)
--   
--   main = hspec $ describe "failing test" $ do
--     prop "must fail" $ someProp
--     prop "must fail again" $ someOtherProp
--   </pre>
--   
--   And receive pretty printed fail message when testing:
--   
--   <pre>
--   failing test
--     - must fail FAILED [1]
--     - must fail again FAILED [2]
--   
--   1) failing test must fail FAILED
--   *** Failed! (after 1 test):
--   &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the value
--   0
--   &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; should be greater than value
--   0
--   0
--   0
--   
--   
--   2) failing test must fail again FAILED
--   *** Failed! (after 2 tests and 4 shrinks):
--   &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; expected
--   0.0
--   &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; but got
--   1.0
--   0.0
--   1.0
--   </pre>
--   
--   Ok, not very well printed, but better than nothing.
module Test.QuickCheck.Assertions
binAsrt :: String -> Bool -> Result

-- | Left argument should be equal to right
(?==) :: (Eq a, Show a) => a -> a -> Result

-- | Right argument should be equal to left
(==?) :: (Eq a, Show a) => a -> a -> Result

-- | Right argument should not equal to left
(/=?) :: (Eq a, Show a) => a -> a -> Result

-- | Left argument should not equal to right
(?/=) :: (Eq a, Show a) => a -> a -> Result

-- | Right argument is less then left
(>?) :: (Show a, Ord a) => a -> a -> Result

-- | Right argument is greater than left
(<?) :: (Show a, Ord a) => a -> a -> Result

-- | Left argument is greater than right
(?>) :: (Show a, Ord a) => a -> a -> Result

-- | Left argument is less then right
(?<) :: (Show a, Ord a) => a -> a -> Result

-- | Right argument is less or equal to left
(>=?) :: (Show a, Ord a) => a -> a -> Result

-- | Right argument is greater or equal to left
(<=?) :: (Show a, Ord a) => a -> a -> Result

-- | Left argument is greater or equal to right
(?>=) :: (Show a, Ord a) => a -> a -> Result

-- | Left argument is less or equal to right
(?<=) :: (Show a, Ord a) => a -> a -> Result

-- | Right value is almost equal to left
(~==?) :: (AEq a, Show a) => a -> a -> Result

-- | Left value is almost equal to right
(?~==) :: (AEq a, Show a) => a -> a -> Result

-- | The result of a single test.
data Result :: *
