module Data.Comp.Derive
(
derive,
module Data.Comp.Derive.Show,
module Data.Comp.Derive.Equality,
module Data.Comp.Derive.Ordering,
Functor,
makeFunctor,
module Data.Comp.Derive.Foldable,
module Data.Comp.Derive.Traversable,
module Data.Comp.Derive.HaskellStrict,
module Data.Comp.Derive.Arbitrary,
NFData(..),
makeNFData,
module Data.Comp.Derive.DeepSeq,
module Data.Comp.Derive.SmartConstructors,
module Data.Comp.Derive.SmartAConstructors,
module Data.Comp.Derive.LiftSum
) where
import Control.DeepSeq (NFData(..))
import Data.Comp.Derive.Utils (derive)
import Data.Comp.Derive.HaskellStrict
import Data.Comp.Derive.Foldable
import Data.Comp.Derive.Traversable
import Data.Comp.Derive.DeepSeq
import Data.Comp.Derive.Show
import Data.Comp.Derive.Ordering
import Data.Comp.Derive.Equality
import Data.Comp.Derive.Arbitrary
import Data.Comp.Derive.SmartConstructors
import Data.Comp.Derive.SmartAConstructors
import Data.Comp.Derive.LiftSum
import Language.Haskell.TH
import qualified Data.DeriveTH as D
import qualified Data.Derive.All as A
makeFunctor :: Name -> Q [Dec]
makeFunctor = D.derive A.makeFunctor
makeNFData :: Name -> Q [Dec]
makeNFData = D.derive A.makeNFData