module Data.Record.Anon.Internal.Plugin.Source.Names (
LargeAnonNames(..)
, largeAnonNames
, typelet_castEqual
) where
import Data.Record.Anon.Internal.Plugin.Source.GhcShim
import Data.Record.Anon.Internal.Plugin.Source.Options (Mode(..))
data LargeAnonNames = LargeAnonNames {
LargeAnonNames -> RdrName
largeAnon_empty :: RdrName
, LargeAnonNames -> RdrName
largeAnon_insert :: RdrName
, LargeAnonNames -> RdrName
largeAnon_applyPending :: RdrName
, LargeAnonNames -> RdrName
largeAnon_letRecordT :: RdrName
, LargeAnonNames -> RdrName
largeAnon_letInsertAs :: RdrName
}
largeAnonNames :: Mode -> LargeAnonNames
largeAnonNames :: Mode -> LargeAnonNames
largeAnonNames Mode
mode = LargeAnonNames :: RdrName
-> RdrName -> RdrName -> RdrName -> RdrName -> LargeAnonNames
LargeAnonNames {
largeAnon_empty :: RdrName
largeAnon_empty = ModuleName -> OccName -> RdrName
mkRdrQual ModuleName
modl (OccName -> RdrName) -> OccName -> RdrName
forall a b. (a -> b) -> a -> b
$ String -> OccName
mkVarOcc String
"empty"
, largeAnon_insert :: RdrName
largeAnon_insert = ModuleName -> OccName -> RdrName
mkRdrQual ModuleName
modl (OccName -> RdrName) -> OccName -> RdrName
forall a b. (a -> b) -> a -> b
$ String -> OccName
mkVarOcc String
"insert"
, largeAnon_applyPending :: RdrName
largeAnon_applyPending = ModuleName -> OccName -> RdrName
mkRdrQual ModuleName
modl (OccName -> RdrName) -> OccName -> RdrName
forall a b. (a -> b) -> a -> b
$ String -> OccName
mkVarOcc String
"applyPending"
, largeAnon_letRecordT :: RdrName
largeAnon_letRecordT = ModuleName -> OccName -> RdrName
mkRdrQual ModuleName
modl (OccName -> RdrName) -> OccName -> RdrName
forall a b. (a -> b) -> a -> b
$ String -> OccName
mkVarOcc String
"letRecordT"
, largeAnon_letInsertAs :: RdrName
largeAnon_letInsertAs = ModuleName -> OccName -> RdrName
mkRdrQual ModuleName
modl (OccName -> RdrName) -> OccName -> RdrName
forall a b. (a -> b) -> a -> b
$ String -> OccName
mkVarOcc String
"letInsertAs"
}
where
modl :: ModuleName
modl :: ModuleName
modl = case Mode
mode of
Mode
Simple -> String -> ModuleName
mkModuleName String
"Data.Record.Anon.Simple"
Mode
Advanced -> String -> ModuleName
mkModuleName String
"Data.Record.Anon.Advanced"
typelet :: ModuleName
typelet :: ModuleName
typelet = String -> ModuleName
mkModuleName String
"TypeLet"
typelet_castEqual :: RdrName
typelet_castEqual :: RdrName
typelet_castEqual = ModuleName -> OccName -> RdrName
mkRdrQual ModuleName
typelet (OccName -> RdrName) -> OccName -> RdrName
forall a b. (a -> b) -> a -> b
$ String -> OccName
mkVarOcc String
"castEqual"