Hoogle Search
Within LTS Haskell 24.40 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
genValidStructurally :: (Validity a, Generic a, GGenValid (Rep a)) => Gen agenvalidity Data.GenValidity Generate a valid value by generating all the sub parts using the Generic instance, and trying that until a valid value has been generated
genValidStructurally = genValidStructurallyWithoutExtraChecking `suchThat` isValid
This is probably the function that you are looking for. If you do use this function to override genValid, you probably also want to use shrinkValidStructurally to override shrinkValid.genValidStructurallyWithoutExtraChecking :: (Generic a, GGenValid (Rep a)) => Gen agenvalidity Data.GenValidity Generate a valid value by generating all the sub parts using the Generic instance, This generator is _not_ guaranteed to generate a valid value. This is probably _not_ the function that you are looking for when overriding genValid _unless_ the type in question has no _extra_ validity constraints on top of the validity of its sub parts.
shrinkValid :: GenValid a => a -> [a]genvalidity Data.GenValidity Shrink a valid value. The default implementation is as follows:
shrinkValid = shrinkValidStructurally
It is important that this shrinking function only shrinks values to valid values. If shrinkValid ever shrinks a value to an invalid value, the test that is being shrunk for might fail for a different reason than for the reason that it originally failed. This would lead to very confusing error messages.-
genvalidity Data.GenValidity Shrink a term to any of its immediate valid subterms, and also recursively shrink all subterms, and then filtering out the results that are not valid.
shrinkValidStructurally = filter isValid . shrinkValidStructurallyWithoutExtraFiltering
This is probably the function that you are looking for. -
genvalidity Data.GenValidity Shrink a term to any of its immediate valid subterms, and also recursively shrink all subterms. This shrinking function is _not_ guaranteed to shrink to valid values. This is probably _not_ the function that you are looking for when overriding shrinkValid _unless_ the type in question has no _extra_ validity constraints on top of the validity of its sub parts.
structurallyValidSubterms :: (Generic a, GValidSubterms (Rep a) a) => a -> [a]genvalidity Data.GenValidity All immediate validSubterms of a term.
cc_ann_id :: ConfiguredComponent -> AnnotatedId ComponentIdCabal Distribution.Backpack.ConfiguredComponent Unique identifier of component, plus extra useful info.
cc_cid :: ConfiguredComponent -> ComponentIdCabal Distribution.Backpack.ConfiguredComponent Uniquely identifies a configured component.
cc_pkgid :: ConfiguredComponent -> PackageIdCabal Distribution.Backpack.ConfiguredComponent The package this component came from.
module Distribution.Backpack.
DescribeUnitId No documentation available.