úÎd³      Varaint class((c) Jorge Santiago Alvarez Cuadros, 2015GPL-3sanjorgek@ciencias.unam.mx experimentalportableSafe CThe class of things wich can be tested with invalid or valid input.Property for valid inputProperty for invalid input You can defineNinstance (Varaint a) => Arbitrary a where {arbitrary = oneof [valid, invalid]})Get a generator of valid random data type+Get a generator of invalid random data type5Instead of variant we use valid or invalid generatorsSame as TesteableVaraint 3-tupleOInvalid 3-tuple may had some valid data with invalid data or only invalid data."Valid 3-tuple had only valid data.  Varaint tupleMInvalid tuple may had some valid data with invalid data or only invalid data. Valid tuple had only valid data. Varaint Either.  Variant Maybe7Only Just data can be invalid, nothing always is valid. Variant of a list.!A valid list only had valid data.JA invalid list had only invalid data or some valid data with invalid data.           0QuickCheckVariant-0.1.1.0-5k73tSvzIjrFFoUwZrgct8Test.QuickCheck.Variant VarTesteable propertyValidpropertyInvalidVariantvalidinvalid$fVarTesteable(->)$fVarTesteableBool $fVariant(,,) $fVariant(,)$fVariantEither$fVariantMaybe $fVariant[]