module Test.QuickCheck.Instances.Eq (notEqualTo, notOneof) where import Test.QuickCheck import Test.QuickCheck.Checkers import Control.Monad.Extensions notEqualTo :: (Eq a) => a -> Gen a -> Gen a notEqualTo :: a -> Gen a -> Gen a notEqualTo a v = (a -> Bool) -> Gen a -> Gen a forall (m :: * -> *) a. Monad m => (a -> Bool) -> m a -> m a satisfiesM (a -> a -> Bool forall a. Eq a => a -> a -> Bool /= a v) notOneof :: (Eq a,Arbitrary a) => [a] -> Gen a notOneof :: [a] -> Gen a notOneof [a] es = (a -> Bool) -> Gen a forall a. Arbitrary a => (a -> Bool) -> Gen a arbitrarySatisfying (Bool -> Bool not (Bool -> Bool) -> (a -> Bool) -> a -> Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . (a -> [a] -> Bool forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool `elem` [a] es))