module Data.Derive.TopDown (
module Data.Derive.TopDown.Standalone
, module Data.Derive.TopDown.Instance
, module Data.Derive.TopDown.TH
, module Data.Derive.TopDown.CxtGen
, char, int, int8, int16, int32, int64, word, word8, word16, word32, word64
, primitives, state, realWorld
#if __GLASGOW_HASKELL__ >= 802
, stock, anyclass, newtype_
, DerivStrategy(StockStrategy, AnyclassStrategy, NewtypeStrategy)
#endif
)
where
#if __GLASGOW_HASKELL__ >= 802
import Language.Haskell.TH.Syntax
#endif
import Data.Derive.TopDown.Standalone
import Data.Derive.TopDown.Instance
import Data.Derive.TopDown.TH
import Data.Derive.TopDown.CxtGen
#if __GLASGOW_HASKELL__ >= 802
stock, anyclass, newtype_ :: DerivStrategy
stock :: DerivStrategy
stock = DerivStrategy
StockStrategy
anyclass :: DerivStrategy
anyclass = DerivStrategy
AnyclassStrategy
newtype_ :: DerivStrategy
newtype_ = DerivStrategy
NewtypeStrategy
#endif
char :: Name
char :: Name
char = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Char#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
int :: Name
int :: Name
int = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Int#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
int8 :: Name
int8 :: Name
int8 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Int8#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
int16 :: Name
int16 :: Name
int16 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Int16#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
int32 :: Name
int32 :: Name
int32 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Int32#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
int64 :: Name
int64 :: Name
int64 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Int64#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
word :: Name
word :: Name
word = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Word#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
word8 :: Name
word8 :: Name
word8 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Word8#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
word16 :: Name
word16 :: Name
word16 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Word16#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
word32 :: Name
word32 :: Name
word32 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Word32#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
word64 :: Name
word64 :: Name
word64 = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"Word64#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
primitives :: [Name]
primitives :: [Name]
primitives = [Name
char, Name
int, Name
int8, Name
int16, Name
int32, Name
int64, Name
word, Name
word8, Name
word16, Name
word32, Name
word64]
state :: Name
state :: Name
state = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"State#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))
realWorld :: Name
realWorld :: Name
realWorld = OccName -> NameFlavour -> Name
Name (String -> OccName
mkOccName String
"RealWorld#") (NameSpace -> PkgName -> ModName -> NameFlavour
NameG NameSpace
TcClsName (String -> PkgName
mkPkgName String
"ghc-prim") (String -> ModName
mkModName String
"GHC.Prim"))