{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.GenValidity.UUID where import Data.GenValidity import Data.UUID import Data.Validity.UUID () instance GenValid UUID where genValid :: Gen UUID genValid = Word32 -> Word32 -> Word32 -> Word32 -> UUID fromWords forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => Gen a genValid forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> forall a. GenValid a => Gen a genValid forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> forall a. GenValid a => Gen a genValid forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> forall a. GenValid a => Gen a genValid shrinkValid :: UUID -> [UUID] shrinkValid UUID u = [ Word32 -> Word32 -> Word32 -> Word32 -> UUID fromWords Word32 w1 Word32 w2 Word32 w3 Word32 w4 | (Word32 w1, Word32 w2, Word32 w3, Word32 w4) <- forall a. GenValid a => a -> [a] shrinkValid forall a b. (a -> b) -> a -> b $ UUID -> (Word32, Word32, Word32, Word32) toWords UUID u ]