[project @ 2005-08-09 16:58:39 by simonpj]
[ghc-hetmet.git] / ghc / compiler / rename / RnHsSyn.lhs
index bc2fa4d..22f75ae 100644 (file)
@@ -4,7 +4,17 @@
 \section[RnHsSyn]{Specialisations of the @HsSyn@ syntax for the renamer}
 
 \begin{code}
-module RnHsSyn where
+module RnHsSyn( 
+       -- Names
+       charTyCon_name, listTyCon_name, parrTyCon_name, tupleTyCon_name,
+       extractHsTyVars, extractHsTyNames, extractHsTyNames_s, 
+       extractFunDepNames, extractHsCtxtTyNames, extractHsPredTyNames,
+
+       -- Free variables
+       hsSigsFVs, hsSigFVs, conDeclFVs, bangTyFVs,
+       
+       maybeGenericMatch
+  ) where
 
 #include "HsVersions.h"
 
@@ -54,6 +64,7 @@ extractHsTyNames ty
     get (HsPredTy p)          = extractHsPredTyNames p
     get (HsOpTy ty1 op ty2)    = getl ty1 `unionNameSets` getl ty2 `unionNameSets` unitNameSet (unLoc op)
     get (HsParTy ty)           = getl ty
+    get (HsBangTy _ ty)        = getl ty
     get (HsNumTy n)            = emptyNameSet
     get (HsTyVar tv)          = unitNameSet tv
     get (HsSpliceTy _)         = emptyNameSet  -- Type splices mention no type variables
@@ -110,12 +121,15 @@ conDeclFVs (L _ (ConDecl _ tyvars context details))
   = delFVs (map hsLTyVarName tyvars) $
     extractHsCtxtTyNames context         `plusFV`
     conDetailsFVs details
+-- gaw 2004
+conDeclFVs (L _ (GadtDecl _ ty)) 
+  = extractHsTyNames ty
 
-conDetailsFVs (PrefixCon btys)    = plusFVs (map bangTyFVs btys)
+conDetailsFVs (PrefixCon btys)     = plusFVs (map bangTyFVs btys)
 conDetailsFVs (InfixCon bty1 bty2) = bangTyFVs bty1 `plusFV` bangTyFVs bty2
 conDetailsFVs (RecCon flds)       = plusFVs [bangTyFVs bty | (_, bty) <- flds]
 
-bangTyFVs bty = extractHsTyNames (getBangType (unLoc bty))
+bangTyFVs bty = extractHsTyNames (getBangType bty)
 \end{code}