úÎDÇSafe9;<=kA class of types that have additional invariants defined upon them that aren't enforced by the type systemIf there is a  Validity a instance as well, then a  b should imply  isValid a for any b.If there is a  Validity b instance as well, then a  b should imply  isValid b for any a.Safe9;kA class of types that have additional invariants defined upon them that aren't enforced by the type systemcA Maybe thing is valid if the thing inside is valid or it's nothing It makes sense to assume that Z is valid. If Nothing wasn't valid, you wouldn't have used a Maybe in the datastructure.9A list of things is valid if all of the things are valid.¥This means that the empty list is considered valid. If the empty list should not be considered valid as part of your custom data type, make sure to write a custom Validity instanceCAny tuple of things is valid if all three of its elements are valid>Any tuple of things is valid if both of its elements are valid    'validity-0.3.0.0-8Eie4c5HmSgDHK6PwhUzATData.RelativeValidity Data.ValidityRelativeValidity isValidForValidityisValid$fValidityMaybe $fValidity[]$fValidity(,,) $fValidity(,)baseGHC.BaseNothing