{-# Language CPP #-} {-# Language DeriveDataTypeable, StandaloneDeriving #-} -- for GHC < 7.10 import Test.Speculate hiding ((\/)) import Set hiding (set) import qualified Set as S #if __GLASGOW_HASKELL__ < 708 deriving instance Typeable1 S.Set #else deriving instance Typeable S.Set -- for GHC < 7.10 #endif instance (Ord a, Listable a) => Listable (S.Set a) where tiers = setCons S.set instance Name (S.Set a) where name _ = "s" set :: a -> S.Set a set = undefined main :: IO () main = speculate args { instances = [reifyInstances (set int)] , constants = [ constant "emptyS" $ emptyS -: set int , constant "singleS" $ singleS -:> int --, constant "pairS" $ pairS -:> int , constant "insertS" $ insertS -:> int , constant "deleteS" $ deleteS -:> int , constant "sizeS" $ sizeS -:> set int , constant "<~" $ (<~) -:> int , constant "\\/" $ (\/) -:> set int , constant "/\\" $ (/\) -:> set int --, constant "\\\\" $ (\\) -:> set int --, constant "<~" $ (<~) -:> set int --, constant "subS" $ subS -:> set int --, constant "powerS" $ powerS -:> set int --, constant "partitionsS" $ partitionsS -:> set int , background , showConstant False , showConstant True ] }