/compiler/Eta/Main/GhcPlugins.hs

https://github.com/typelead/eta · Haskell · 113 lines · 86 code · 9 blank · 18 comment · 0 complexity · 97fdfd18d4ca71ae526fbea0c546c786 MD5 · raw file

  1. {-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
  2. -- | This module is not used by GHC itself. Rather, it exports all of
  3. -- the functions and types you are likely to need when writing a
  4. -- plugin for GHC. So authors of plugins can probably get away simply
  5. -- with saying "import GhcPlugins".
  6. --
  7. -- Particularly interesting modules for plugin writers include
  8. -- "CoreSyn" and "CoreMonad".
  9. module Eta.Main.GhcPlugins(
  10. module Eta.Main.Plugins,
  11. module Eta.BasicTypes.RdrName,
  12. module Eta.BasicTypes.OccName,
  13. module Eta.BasicTypes.Name,
  14. module Eta.BasicTypes.Var,
  15. module Eta.BasicTypes.Id,
  16. module Eta.BasicTypes.IdInfo,
  17. module Eta.SimplCore.CoreMonad,
  18. module Eta.Core.CoreSyn,
  19. module Eta.BasicTypes.Literal,
  20. module Eta.BasicTypes.DataCon,
  21. module Eta.Core.CoreUtils,
  22. module Eta.Core.MkCore,
  23. module Eta.Core.CoreFVs,
  24. module Eta.Core.CoreSubst,
  25. module Eta.Specialise.Rules,
  26. module Eta.Main.Annotations,
  27. module Eta.Main.DynFlags,
  28. module Eta.Main.Packages,
  29. module Eta.BasicTypes.Module,
  30. module Eta.Types.Type,
  31. module Eta.Types.TyCon,
  32. module Eta.Types.Coercion,
  33. module Eta.Prelude.TysWiredIn,
  34. module Eta.Main.HscTypes,
  35. module Eta.BasicTypes.BasicTypes,
  36. module Eta.BasicTypes.VarSet,
  37. module Eta.BasicTypes.VarEnv,
  38. module Eta.BasicTypes.NameSet,
  39. module Eta.BasicTypes.NameEnv,
  40. module Eta.Utils.UniqSet,
  41. module Eta.Utils.UniqFM,
  42. module Eta.Utils.FiniteMap,
  43. module Eta.Utils.Util,
  44. module Eta.Serialized,
  45. module Eta.BasicTypes.SrcLoc,
  46. module Eta.Utils.Outputable,
  47. module Eta.BasicTypes.UniqSupply,
  48. module Eta.BasicTypes.Unique,
  49. module Eta.Utils.FastString,
  50. module Eta.Utils.FastTypes
  51. ) where
  52. -- Plugin stuff itself
  53. import Eta.Main.Plugins
  54. -- Variable naming
  55. import Eta.BasicTypes.RdrName
  56. import Eta.BasicTypes.OccName hiding ( varName {- conflicts with Var.varName -} )
  57. import Eta.BasicTypes.Name hiding ( varName {- reexport from OccName, conflicts with Var.varName -} )
  58. import Eta.BasicTypes.Var
  59. import Eta.BasicTypes.Id hiding ( lazySetIdInfo, setIdExported, setIdNotExported {- all three conflict with Var -} )
  60. import Eta.BasicTypes.IdInfo
  61. -- Core
  62. import Eta.SimplCore.CoreMonad
  63. import Eta.Core.CoreSyn
  64. import Eta.BasicTypes.Literal
  65. import Eta.BasicTypes.DataCon
  66. import Eta.Core.CoreUtils
  67. import Eta.Core.MkCore
  68. import Eta.Core.CoreFVs
  69. import Eta.Core.CoreSubst
  70. -- Core "extras"
  71. import Eta.Specialise.Rules
  72. import Eta.Main.Annotations
  73. -- Pipeline-related stuff
  74. import Eta.Main.DynFlags
  75. import Eta.Main.Packages
  76. -- Important GHC types
  77. import Eta.BasicTypes.Module
  78. import Eta.Types.Type hiding {- conflict with CoreSubst -}
  79. ( substTy, extendTvSubst, extendTvSubstList, isInScope )
  80. import Eta.Types.Coercion hiding {- conflict with CoreSubst -}
  81. ( substTy, extendTvSubst, substCo, substTyVarBndr, lookupTyVar )
  82. import Eta.Types.TyCon
  83. import Eta.Prelude.TysWiredIn
  84. import Eta.Main.HscTypes
  85. import Eta.BasicTypes.BasicTypes hiding ( Version {- conflicts with Packages.Version -} )
  86. -- Collections and maps
  87. import Eta.BasicTypes.VarSet
  88. import Eta.BasicTypes.VarEnv
  89. import Eta.BasicTypes.NameSet
  90. import Eta.BasicTypes.NameEnv
  91. import Eta.Utils.UniqSet
  92. import Eta.Utils.UniqFM
  93. -- Conflicts with UniqFM:
  94. --import LazyUniqFM
  95. import Eta.Utils.FiniteMap
  96. -- Common utilities
  97. import Eta.Utils.Util
  98. import Eta.Serialized
  99. import Eta.BasicTypes.SrcLoc
  100. import Eta.Utils.Outputable
  101. import Eta.BasicTypes.UniqSupply
  102. import Eta.BasicTypes.Unique ( Unique, Uniquable(..) )
  103. import Eta.Utils.FastString
  104. import Eta.Utils.FastTypes