Fold ghc-prim.git into ghc.git (re #8545)
[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 CoreMonad,
12 module RdrName, module OccName, module Name, module Var, module Id, module IdInfo,
13 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 Serialized, module SrcLoc, module Outputable,
22 module UniqSupply, module Unique, module FastString, module FastTypes
23 ) where
24
25 -- Plugin stuff itself
26 import CoreMonad
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 CoreSyn
38 import Literal
39 import DataCon
40 import CoreUtils
41 import MkCore
42 import CoreFVs
43 import CoreSubst
44
45 -- Core "extras"
46 import Rules
47 import Annotations
48
49 -- Pipeline-related stuff
50 import DynFlags
51 import Packages
52
53 -- Important GHC types
54 import Module
55 import Type hiding {- conflict with CoreSubst -}
56 ( substTy, extendTvSubst, extendTvSubstList, isInScope )
57 import Coercion hiding {- conflict with CoreSubst -}
58 ( substTy, extendTvSubst, substCo, substTyVarBndr, lookupTyVar )
59 import TyCon
60 import TysWiredIn
61 import HscTypes
62 import BasicTypes hiding ( Version {- conflicts with Packages.Version -} )
63
64 -- Collections and maps
65 import VarSet
66 import VarEnv
67 import NameSet
68 import NameEnv
69 import UniqSet
70 import UniqFM
71 -- Conflicts with UniqFM:
72 --import LazyUniqFM
73 import FiniteMap
74
75 -- Common utilities
76 import Util
77 import Serialized
78 import SrcLoc
79 import Outputable
80 import UniqSupply
81 import Unique ( Unique, Uniquable(..) )
82 import FastString
83 import FastTypes