[project @ 1996-03-19 08:58:34 by partain]
[ghc-hetmet.git] / ghc / compiler / rename / RnHsSyn.lhs
1 %
2 % (c) The AQUA Project, Glasgow University, 1996
3 %
4 \section[RnHsSyn]{Specialisations of the @HsSyn@ syntax for the renamer}
5
6 \begin{code}
7 #include "HsVersions.h"
8
9 module RnHsSyn where
10
11 import Ubiq{-uitous-}
12
13 import HsSyn
14 \end{code}
15
16 \begin{code}
17 type RenamedArithSeqInfo        = ArithSeqInfo          Fake Fake Name RenamedPat
18 type RenamedBind                = Bind                  Fake Fake Name RenamedPat
19 type RenamedClassDecl           = ClassDecl             Fake Fake Name RenamedPat
20 type RenamedClassOpPragmas      = ClassOpPragmas        Name
21 type RenamedClassOpSig          = Sig                   Name
22 type RenamedClassPragmas        = ClassPragmas          Name
23 type RenamedConDecl             = ConDecl               Name
24 type RenamedContext             = Context               Name
25 type RenamedDataPragmas         = DataPragmas           Name
26 type RenamedSpecDataSig         = SpecDataSig           Name
27 type RenamedDefaultDecl         = DefaultDecl           Name
28 type RenamedFixityDecl          = FixityDecl            Name
29 type RenamedGRHS                = GRHS                  Fake Fake Name RenamedPat
30 type RenamedGRHSsAndBinds       = GRHSsAndBinds         Fake Fake Name RenamedPat
31 type RenamedGenPragmas          = GenPragmas            Name
32 type RenamedHsBinds             = HsBinds               Fake Fake Name RenamedPat
33 type RenamedHsExpr              = HsExpr                Fake Fake Name RenamedPat
34 type RenamedHsModule            = HsModule              Fake Fake Name RenamedPat
35 type RenamedImportedInterface   = ImportedInterface     Fake Fake Name RenamedPat
36 type RenamedInstDecl            = InstDecl              Fake Fake Name RenamedPat
37 type RenamedInstancePragmas     = InstancePragmas       Name
38 type RenamedInterface           = Interface             Fake Fake Name RenamedPat
39 type RenamedMatch               = Match                 Fake Fake Name RenamedPat
40 type RenamedMonoBinds           = MonoBinds             Fake Fake Name RenamedPat
41 type RenamedMonoType            = MonoType              Name
42 type RenamedPat                 = InPat                 Name
43 type RenamedPolyType            = PolyType              Name
44 type RenamedQual                = Qual                  Fake Fake Name RenamedPat
45 type RenamedSig                 = Sig                   Name
46 type RenamedSpecInstSig         = SpecInstSig           Name
47 type RenamedStmt                = Stmt                  Fake Fake Name RenamedPat
48 type RenamedTyDecl              = TyDecl                Name
49 \end{code}
50
51 \begin{code}
52 collectQualBinders :: [RenamedQual] -> [Name]
53
54 collectQualBinders quals
55   = concat (map collect quals)
56   where
57     collect (GeneratorQual pat _) = collectPatBinders pat
58     collect (FilterQual expr)     = []
59     collect (LetQual    binds)    = collectTopLevelBinders binds
60 \end{code}