{-# LANGUAGE TemplateHaskell #-}
module Data.Comp.Derive
(
derive,
module Data.Comp.Derive.Show,
module Data.Comp.Derive.Equality,
module Data.Comp.Derive.Ordering,
module Data.Comp.Derive.Foldable,
module Data.Comp.Derive.Traversable,
module Data.Comp.Derive.HaskellStrict,
module Data.Comp.Derive.Arbitrary,
NFData(..),
module Data.Comp.Derive.DeepSeq,
module Data.Comp.Derive.SmartConstructors,
module Data.Comp.Derive.SmartAConstructors,
liftSum
) where
import Control.DeepSeq (NFData (..))
import Data.Comp.Derive.Arbitrary
import Data.Comp.Derive.DeepSeq
import Data.Comp.Derive.Equality
import Data.Comp.Derive.Foldable
import Data.Comp.Derive.HaskellStrict
import Data.Comp.Derive.Ordering
import Data.Comp.Derive.Show
import Data.Comp.Derive.SmartAConstructors
import Data.Comp.Derive.SmartConstructors
import Data.Comp.Derive.Traversable
import Data.Comp.Derive.Utils (derive, liftSumGen)
import Data.Comp.Ops ((:+:), caseF)
import Language.Haskell.TH
liftSum :: Name -> Q [Dec]
liftSum :: Name -> Q [Dec]
liftSum = Name -> Name -> Name -> Q [Dec]
liftSumGen 'caseF ''(:+:)