{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} ----------------------------------------------------------------------------- -- | -- Module : Windll -- Copyright : (c) Tamar Christina 2009 - 2010 -- License : BSD3 -- -- Maintainer : tamar@zhox.com -- Stability : experimental -- Portability : portable -- -- Defines a generic producer which is able to generate values to feed to -- QuickCheck in order to feed the test values. -- ----------------------------------------------------------------------------- module Tests.Exec.Default ( Default(..) , geq , Wrap(..) , Data() , Typeable() , genDefault ) where import Data.Data import Data.Typeable import Data.Generics.Builders import Data.Generics.Twins class Default phi where nDefault :: phi -- | Avoid the need for Undecidable Instances newtype Wrap a = Wrap { unWrap :: a } instance Data a => Default (Wrap a) where nDefault = Wrap empty genDefault :: (Data a, Default (Wrap a)) => a genDefault = unWrap nDefault