%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CgCase.lhs,v 1.40 2000/03/27 16:22:09 simonpj Exp $
+% $Id: CgCase.lhs,v 1.41 2000/04/13 20:41:30 panne Exp $
%
%********************************************************
%* *
tyConDataCons, tyConFamilySize )
import Type ( Type, typePrimRep, splitAlgTyConApp,
splitTyConApp_maybe, repType )
+import PprType ( {- instance Outputable Type -} )
import Unique ( Unique, Uniquable(..), mkPseudoUnique1 )
import Maybes ( maybeToBool )
import Util
%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CgExpr.lhs,v 1.33 2000/03/27 16:22:09 simonpj Exp $
+% $Id: CgExpr.lhs,v 1.34 2000/04/13 20:41:30 panne Exp $
%
%********************************************************
%* *
import TyCon ( maybeTyConSingleCon,
isUnboxedTupleTyCon, isEnumerationTyCon )
import Type ( Type, typePrimRep, splitTyConApp_maybe, repType )
+import PprType ( {- instance Outputable Type -} )
import Maybes ( assocMaybe, maybeToBool )
import Unique ( mkBuiltinUnique )
import BasicTypes ( TopLevelFlag(..), RecFlag(..) )
isUnboxedTupleType,
hasMoreBoxityInfo
)
+import PprType ( {- instance Outputable Type -} )
import TyCon ( TyCon, isPrimTyCon, tyConDataCons )
import BasicTypes ( RecFlag(..), isNonRec )
import Outputable
isNewType, repType, isUnLiftedType, mkFunTy,
Type
)
+import PprType ( {- instance Outputable Type -} )
import TysPrim ( byteArrayPrimTy, realWorldStatePrimTy,
byteArrayPrimTyCon, mutableByteArrayPrimTyCon, intPrimTy
)
TypecheckedStmt
)
import CoreSyn
+import PprCore ( {- instance Outputable Expr -} )
import CoreUtils ( exprType, mkIfThenElse, bindNonRec )
import DsMonad
Type, mkFunTys, mkForAllTys, mkTyConApp,
mkTyVarTy, mkFunTy, splitAppTy, applyTy, funResultTy
)
+import PprType ( {- instance Outputable Type -} )
import PrimOp ( PrimOp(..), CCall(..), CCallTarget(..) )
import Var ( TyVar )
import TysPrim ( realWorldStatePrimTy, addrPrimTy )
import Literal ( Literal )
import PrimOp ( CCall, pprCCallOp )
import Type ( Kind )
+import PprType ( {- instance Outputable Type -} )
import CostCentre
import SrcLoc ( SrcLoc )
import Outputable
import BinderInfo
import CmdLineOpts ( opt_SimplDoLambdaEtaExpansion, opt_SimplCaseMerge )
import CoreSyn
+import PprCore ( {- instance Outputable Expr -} )
import CoreUnfold ( isValueUnfolding )
import CoreFVs ( exprFreeVars )
import CoreUtils ( exprIsTrivial, cheapEqExpr, exprType, exprIsCheap, exprEtaExpandArity, bindNonRec )
import Type ( Type, tyVarsOfType, tyVarsOfTypes, mkForAllTys, seqType, repType,
splitTyConApp_maybe, splitAlgTyConApp_maybe, mkTyVarTys, applyTys, splitFunTys, mkFunTys
)
+import PprType ( {- instance Outputable Type -} )
import DataCon ( dataConRepArity )
import TysPrim ( statePrimTyCon )
import Var ( setVarUnique )
tyVarsOfType, tyVarsOfTypes, tyVarsOfTheta, applyTys,
mkForAllTys, boxedTypeKind
)
+import PprType ( {- instance Outputable Type -} )
import Subst ( Subst, mkSubst, substTy, emptySubst, substBndrs, extendSubstList,
substId, substAndCloneId, substAndCloneIds, lookupIdSubst
)
import CoreSyn -- input
import StgSyn -- output
+import PprCore ( {- instance Outputable Bind/Expr -} )
import CoreUtils ( exprType )
import SimplUtils ( findDefault )
import CostCentre ( noCCS )
import Type ( mkFunTys, splitFunTys, splitAlgTyConApp_maybe,
isUnLiftedType, isTyVarTy, splitForAllTys, Type
)
+import PprType ( {- instance Outputable Type -} )
import TyCon ( TyCon, isDataTyCon )
import Util ( zipEqual )
import Outputable
import PrimRep ( PrimRep(..) )
import Outputable
import Type ( Type )
+import PprType ( {- instance Outputable Type -} )
import UniqSet ( isEmptyUniqSet, uniqSetToList, UniqSet )
\end{code}
mkSigmaTy, mkDictTy, isUnboxedType,
splitAlgTyConApp, classesToPreds
)
+import PprType ( {- instance Outputable Type -} )
import TysWiredIn ( voidTy )
import Var ( TyVar )
import Unique -- Keys stuff
, isForAllTy
, mkForAllTys
)
-
+import PprType ( {- instance Outputable Type -} )
import TysWiredIn ( isFFIArgumentTy, isFFIResultTy,
isFFIExternalTy, isAddrTy
)
import RnHsSyn ( RenamedPat, RenamedArithSeqInfo, RenamedHsExpr )
import Type ( Type, Kind, PredType, ThetaType, RhoType, TauType,
)
+import PprType ( {- instance Outputable Type -} )
import ErrUtils ( addShortErrLocLine, addShortWarnLocLine, pprBagOfErrors, ErrMsg, Message, WarnMsg )
import CmdLineOpts ( opt_PprStyle_Debug )
)
import Id ( Id, idType, isDataConWrapId_maybe )
import Type ( Type, isTauTy, mkTyConApp, mkClassPred, boxedTypeKind )
+import PprType ( {- instance Outputable Type -} )
import Subst ( substTy, substClasses )
import TysPrim ( charPrimTy, intPrimTy, floatPrimTy,
doublePrimTy, addrPrimTy
mkUsgTy, splitUsgTy, isUsgTy, isNotUsgTy, unUsgTy, tyUsg,
splitUsForAllTys, substUsTy,
mkFunTy, mkForAllTy )
+import PprType ( {- instance Outputable Type -} )
import TyCon ( tyConArgVrcs_maybe, isFunTyCon )
import Literal ( Literal(..), literalType )
import Var ( Var, UVar, varType, setVarType, mkUVar, modifyIdInfo )
import CoreSyn
import TypeRep ( Type(..), TyNote(..) ) -- friend
import Type ( UsageAnn(..), isUsgTy, tyUsg )
+import PprType ( {- instance Outputable Type -} )
import TyCon ( isAlgTyCon, isPrimTyCon, isSynTyCon, isFunTyCon )
import Var ( Var, varType )
import Id ( idLBVarInfo )
import Name ( isLocallyDefined )
import TypeRep ( Type(..), TyNote(..) ) -- friend
import Type ( UsageAnn(..), isUsgTy, splitFunTys )
+import PprType ( {- instance Outputable Type -} )
import Subst ( substTy, mkTyVarSubst )
import TyCon ( isAlgTyCon, isPrimTyCon, isSynTyCon, isFunTyCon )
import VarEnv