[project @ 2002-02-05 14:39:24 by simonpj]
[ghc-hetmet.git] / ghc / compiler / typecheck / TcIfaceSig.lhs
index cc7d9b6..da180d8 100644 (file)
@@ -37,7 +37,7 @@ import Var            ( mkTyVar, tyVarKind )
 import Name            ( Name, nameIsLocalOrFrom )
 import ErrUtils                ( pprBagOfErrors )
 import Outputable      
-import Util            ( zipWithEqual )
+import Util            ( zipWithEqual, dropList, equalLength )
 import HscTypes                ( TyThing(..) )
 \end{code}
 
@@ -104,7 +104,7 @@ tcIdInfo unf_env in_scope_vars name ty info_ins
          returnTc info2
 
     tcPrag info (HsStrictness strict_info)
-       = returnTc (info `setNewStrictnessInfo` Just strict_info)
+       = returnTc (info `setAllStrictnessInfo` Just strict_info)
 
     tcPrag info (HsWorker nm arity)
        = tcWorkerInfo unf_env ty info nm arity
@@ -142,7 +142,7 @@ tcPragExpr unf_env name in_scope_vars expr
 
                -- Check for type consistency in the unfolding
        tcGetSrcLoc             `thenNF_Tc` \ src_loc -> 
-       getDOptsTc              `thenTc` \ dflags ->
+       getDOptsTc              `thenNF_Tc` \ dflags ->
        case lintUnfolding dflags src_loc in_scope_vars core_expr' of
          (Nothing,_)       -> returnTc (Just core_expr')  -- ignore warnings
          (Just fail_msg,_) -> failWithTc ((doc <+> text "failed Lint") $$ fail_msg)
@@ -337,10 +337,10 @@ tcCoreAlt scrut_ty alt@(con, names, rhs)
        ex_tyvars'          = [mkTyVar name (tyVarKind tv) | (name,tv) <- names `zip` ex_tyvars] 
        ex_tys'             = mkTyVarTys ex_tyvars'
        arg_tys             = dataConArgTys con (inst_tys ++ ex_tys')
-       id_names            = drop (length ex_tyvars) names
+       id_names            = dropList ex_tyvars names
        arg_ids
 #ifdef DEBUG
-               | length id_names /= length arg_tys
+               | not (equalLength id_names arg_tys)
                = pprPanic "tcCoreAlts" (ppr (con, names, rhs) $$
                                         (ppr main_tyvars <+> ppr ex_tyvars) $$
                                         ppr arg_tys)
@@ -348,7 +348,7 @@ tcCoreAlt scrut_ty alt@(con, names, rhs)
 #endif
                = zipWithEqual "tcCoreAlts" mkLocalId id_names arg_tys
     in
-    ASSERT( con `elem` tyConDataCons tycon && length inst_tys == length main_tyvars )
+    ASSERT( con `elem` tyConDataCons tycon && equalLength inst_tys main_tyvars )
     tcExtendTyVarEnv ex_tyvars'                        $
     tcExtendGlobalValEnv arg_ids               $
     tcCoreExpr rhs                                     `thenTc` \ rhs' ->