-- | -- Module : Test.LeanCheck.Function -- Copyright : (c) 2015-2017 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela -- -- This module is part of LeanCheck, -- a simple enumerative property-based testing library. -- -- This module exports 'Listable' and 'Show' function typeclass instances. -- These can be useful for testing higher-order properties --- properties that -- take functions as arguments. -- -- LeanCheck provides several alternative definitions of 'Listable' functions: -- -- * "Test.LeanCheck.Function.ListsOfPairs": -- considers functions as a finite list of exceptional input-output cases to -- a default value (list of pairs of arguments and results). -- This is the LeanCheck default, and is the one exported by this module. -- -- * "Test.LeanCheck.Function.CoListable": -- declares a 'CoListable' typeclass similar to SmallCheck's @CoSerial@. -- Currently a stub. -- -- * "Test.LeanCheck.Function.Periodic": -- similar to ListsOfPairs, but instead of having a default value, functions -- are periodic. -- -- Take care: all the above 'Listable' instances are __experimental__. Only -- one of the above can be imported at a time. -- -- Warning: this is only intended to be used in testing modules. Avoid -- importing this on modules that are used as libraries. module Test.LeanCheck.Function () where import Test.LeanCheck.Function.ListsOfPairs () import Test.LeanCheck.Function.Show ()