diff --git a/dependent-sum-template/src/Data/Dependent/Sum/TH/Internal.hs b/dependent-sum-template/src/Data/Dependent/Sum/TH/Internal.hs index dac9632..c3ca9b9 100644 --- a/dependent-sum-template/src/Data/Dependent/Sum/TH/Internal.hs +++ b/dependent-sum-template/src/Data/Dependent/Sum/TH/Internal.hs @@ -10,18 +10,18 @@ -- | Shared functions for dependent-sum-template module Data.Dependent.Sum.TH.Internal where +import Control.Monad +import Control.Monad.Writer +import Data.List (foldl', drop) +import Data.Maybe import Data.Map (Map) import qualified Data.Map as Map import qualified Data.Map.Merge.Lazy as Map -import Language.Haskell.TH.Datatype - -import Data.Maybe -import Control.Monad -import Control.Monad.Writer -import Language.Haskell.TH -import Language.Haskell.TH.Datatype.TyVarBndr import Data.Set (Set) import qualified Data.Set as Set +import Language.Haskell.TH +import Language.Haskell.TH.Datatype +import Language.Haskell.TH.Datatype.TyVarBndr classHeadToParams :: Type -> (Name, [Type]) classHeadToParams t = (h, reverse reversedParams) diff --git a/dependent-sum-template/test/test.hs b/dependent-sum-template/test/test.hs index c0af2f8..d88d9b0 100644 --- a/dependent-sum-template/test/test.hs +++ b/dependent-sum-template/test/test.hs @@ -209,3 +209,17 @@ do ] instance Show (Fnord a) where showsPrec = gshowsPrec + + +data MyTest a :: * -> * where + MyTest_1 :: MyTest a () + MyTest_2 :: MyTest a Int + +deriving instance Eq (MyTest a b) +deriving instance Ord (MyTest a b) +deriving instance Show (MyTest a b) + +deriveGShow ''MyTest +deriveGEq ''MyTest +deriveGCompare ''MyTest +deriveArgDict ''MyTest