-- | LeanCheck is 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.
module Test.LeanCheck.Function () where
import Test.LeanCheck.Function.ListsOfPairs ()
import Test.LeanCheck.Function.Show ()