[project @ 2004-12-03 12:19:51 by simonpj]
authorsimonpj <unknown>
Fri, 3 Dec 2004 12:19:51 +0000 (12:19 +0000)
committersimonpj <unknown>
Fri, 3 Dec 2004 12:19:51 +0000 (12:19 +0000)
Add nameModule; and PrimTyConI

libraries/template-haskell/Language/Haskell/TH.hs
libraries/template-haskell/Language/Haskell/TH/Syntax.hs

index ac85130..920bd4d 100644 (file)
@@ -14,6 +14,7 @@ module Language.Haskell.TH(
        mkName,         -- :: String -> Name
        newName,        -- :: String -> Q Name
        nameBase,       -- :: Name -> String
+       nameModule,     -- :: Name -> Maybe String
        tupleTypeName, tupleDataName,   -- Int -> Name
        
        -- The algebraic data types
index 6b69863..9b2f5b3 100644 (file)
@@ -22,7 +22,7 @@ module Language.Haskell.TH.Syntax(
        currentModule, runIO,
 
        -- Names
-       Name(..), mkName, newName, nameBase,
+       Name(..), mkName, newName, nameBase, nameModule,
 
        -- The algebraic data types
        Dec(..), Exp(..), Con(..), Type(..), Cxt, Match(..), 
@@ -297,6 +297,10 @@ type Uniq = Int
 nameBase :: Name -> String
 nameBase (Name occ _) = occString occ
 
+nameModule :: Name -> Maybe String
+nameModule (Name _ (NameG _ m)) = Just (modString m)
+nameModule other_name          = Nothing
+
 mkName :: String -> Name
 mkName s = Name (mkOccName s) NameS
 
@@ -375,6 +379,13 @@ data Info
        Fixity
 
   | TyConI Dec
+
+  | PrimTyConI         -- Ones that can't be expressed with a data type 
+               -- decl, such as (->), Int#
+       Name 
+       Int     -- Arity
+       Bool    -- False => lifted type; True => unlifted
+
   | DataConI 
        Name    -- The data con itself
        Type    -- Type of the constructor (fully polymorphic)