(F)SLIT -> (f)sLit in IfaceType
[ghc-hetmet.git] / compiler / iface / IfaceType.lhs
index 8af258a..9cce438 100644 (file)
@@ -6,6 +6,13 @@
 This module defines interface types and binders
 
 \begin{code}
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+--     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
 module IfaceType (
        IfaceType(..), IfaceKind, IfacePredType(..), IfaceTyCon(..),
        IfaceContext, IfaceBndr(..), IfaceTvBndr, IfaceIdBndr, IfaceCoercion,
@@ -23,15 +30,11 @@ module IfaceType (
 
     ) where
 
-#include "HsVersions.h"
-
 import TypeRep
 import TyCon
 import Var
 import TysWiredIn
-import OccName
 import Name
-import Module
 import BasicTypes
 import Outputable
 import FastString
@@ -52,8 +55,7 @@ type IfaceIdBndr  = (FastString, IfaceType)
 type IfaceTvBndr  = (FastString, IfaceKind)
 
 -------------------------------
-type IfaceKind = IfaceType                     -- Re-use the Kind type, but no KindVars in it
-
+type IfaceKind     = IfaceType
 type IfaceCoercion = IfaceType
 
 data IfaceType
@@ -81,6 +83,7 @@ data IfaceTyCon       -- Abbreviations for common tycons with known names
   | IfaceTupTc Boxity Arity 
   | IfaceLiftedTypeKindTc | IfaceOpenTypeKindTc | IfaceUnliftedTypeKindTc
   | IfaceUbxTupleKindTc | IfaceArgTypeKindTc 
+  deriving( Eq )
 
 ifaceTyConName :: IfaceTyCon -> Name
 ifaceTyConName IfaceIntTc        = intTyConName
@@ -178,14 +181,7 @@ pprIfaceTvBndrs tyvars = hsep (map pprIfaceTvBndr tyvars)
 \begin{code}
 ---------------------------------
 instance Outputable IfaceType where
-  ppr ty = pprIfaceTypeForUser ty
-
-pprIfaceTypeForUser ::IfaceType -> SDoc
--- Drop top-level for-alls; if that's not what you want, use pprIfaceType dire
-pprIfaceTypeForUser ty
-  = pprIfaceForAllPart [] theta (pprIfaceType tau)
- where         
-    (_tvs, theta, tau) = splitIfaceSigmaTy ty
+  ppr ty = pprIfaceType ty
 
 pprIfaceType, pprParendIfaceType ::IfaceType -> SDoc
 pprIfaceType       = ppr_ty tOP_PREC
@@ -223,7 +219,7 @@ pprIfaceForAllPart tvs ctxt doc
   = sep [ppr_tvs, pprIfaceContext ctxt, doc]
   where
     ppr_tvs | null tvs  = empty
-           | otherwise = ptext SLIT("forall") <+> pprIfaceTvBndrs tvs <> dot
+           | otherwise = ptext (sLit "forall") <+> pprIfaceTvBndrs tvs <> dot
 
 -------------------
 ppr_tc_app ctxt_prec tc         []   = ppr_tc tc
@@ -244,7 +240,7 @@ ppr_tc tc              = ppr tc
 -------------------
 instance Outputable IfacePredType where
        -- Print without parens
-  ppr (IfaceEqPred ty1 ty2)= hsep [ppr ty1, ptext SLIT(":=:"), ppr ty2]
+  ppr (IfaceEqPred ty1 ty2)= hsep [ppr ty1, ptext (sLit ":=:"), ppr ty2]
   ppr (IfaceIParam ip ty)  = hsep [ppr ip, dcolon, ppr ty]
   ppr (IfaceClassP cls ts) = parenSymOcc (getOccName cls) (ppr cls)
                             <+> sep (map pprParendIfaceType ts)
@@ -257,13 +253,13 @@ instance Outputable IfaceTyCon where
 pprIfaceContext :: IfaceContext -> SDoc
 -- Prints "(C a, D b) =>", including the arrow
 pprIfaceContext []     = empty
-pprIfaceContext theta = ppr_preds theta <+> ptext SLIT("=>")
+pprIfaceContext theta = ppr_preds theta <+> ptext (sLit "=>")
 
 ppr_preds [pred] = ppr pred    -- No parens
 ppr_preds preds  = parens (sep (punctuate comma (map ppr preds))) 
                         
 -------------------
-pabrackets p = ptext SLIT("[:") <> p <> ptext SLIT(":]")
+pabrackets p = ptext (sLit "[:") <> p <> ptext (sLit ":]")
 \end{code}
 
 %************************************************************************
@@ -299,8 +295,6 @@ toIfaceType (ForAllTy tv t) =
   IfaceForAllTy (toIfaceTvBndr tv) (toIfaceType t)
 toIfaceType (PredTy st) =
   IfacePredTy (toIfacePred st)
-toIfaceType (NoteTy other_note ty) =
-  toIfaceType ty
 
 ----------------
 -- A little bit of (perhaps optional) trickiness here.  When