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