{-# LANGUAGE TypeOperators #-} -- | Testable representation of (higher-order) functions. -- -- See the README for an introduction. module Test.Fun ( -- * Testable functions (:->)() , applyFun , applyFun2 , applyFun3 -- * Shrink and show , shrinkFun , showsPrecFun , indent , ShowsPrec -- * Cogenerators , Co -- ** Main combinators , cogenEmbed , cogenIntegral , cogenIntegral' , cogenFun , Concrete(..) , FunName , TypeName -- ** Generic cogenerators , cogenGeneric , (:+)(..) -- ** Secondary combinators , cogenList , cogenConst , cogenApply -- ** @CoArbitrary@ , CoArbitrary(..) , coarbitraryGeneric -- ** Generic classes , GCoGen() , GCoArbitrary() , GSumCo ) where import Test.Fun.Internal.Types ((:->), applyFun, applyFun2, applyFun3, Concrete(..), ShowsPrec, FunName, TypeName) import Test.Fun.Internal.CoGen import Test.Fun.Internal.Generic import Test.Fun.Internal.Pretty (showsPrecFun, indent) import Test.Fun.Internal.Shrink (shrinkFun) import Test.Fun.Internal.Orphan ()