Make record selectors into ordinary functions
[ghc-hetmet.git] / compiler / coreSyn / CoreUtils.lhs
index eb9ea41..25224a6 100644 (file)
@@ -154,7 +154,8 @@ applyTypeToArgs e op_ty (Type ty : args)
     go rev_tys rest_args        = applyTypeToArgs e op_ty' rest_args
                                where
                                  op_ty' = applyTysD msg op_ty (reverse rev_tys)
-                                 msg = panic_msg e op_ty
+                                 msg = ptext (sLit "applyTypeToArgs") <+> 
+                                       panic_msg e op_ty
 
 applyTypeToArgs e op_ty (_ : args)
   = case (splitFunTy_maybe op_ty) of
@@ -497,10 +498,10 @@ exprIsCheap other_expr    -- Applications and variables
     go (Var _) [] = True       -- Just a type application of a variable
                                -- (f t1 t2 t3) counts as WHNF
     go (Var f) args
-       = case globalIdDetails f of
-               RecordSelId {} -> go_sel args
-               ClassOpId _    -> go_sel args
-               PrimOpId op    -> go_primop op args
+       = case idDetails f of
+               RecSelId {}  -> go_sel args
+               ClassOpId _  -> go_sel args
+               PrimOpId op  -> go_primop op args
 
                DataConWorkId _ -> go_pap args
                _ | length args < idArity f -> go_pap args
@@ -577,7 +578,7 @@ exprOkForSpeculation (Note _ e)  = exprOkForSpeculation e
 exprOkForSpeculation (Cast e _)  = exprOkForSpeculation e
 exprOkForSpeculation other_expr
   = case collectArgs other_expr of
-       (Var f, args) -> spec_ok (globalIdDetails f) args
+       (Var f, args) -> spec_ok (idDetails f) args
         _             -> False
  
   where
@@ -740,12 +741,12 @@ dataConInstPat :: (DataCon -> [Type])      -- function used to find arg tys
 --    ...
 --
 --  has representation type 
---   forall a. forall a1. forall b. (a :=: (a1,b)) => 
+--   forall a. forall a1. forall b. (a ~ (a1,b)) => 
 --     Int -> b -> T a
 --
 --  dataConInstPat fss us T1 (a1',b') will return
 --
---  ([a1'', b''], [c :: (a1', b'):=:(a1'', b'')], [x :: Int, y :: b''])
+--  ([a1'', b''], [c :: (a1', b')~(a1'', b'')], [x :: Int, y :: b''])
 --
 --  where the double-primed variables are created with the FastStrings and
 --  Uniques given as fss and us
@@ -801,7 +802,7 @@ exprIsConApp_maybe (Cast expr co)
 
        -- The transformation applies iff we have
        --      (C e1 ... en) `cast` co
-       -- where co :: (T t1 .. tn) :=: (T s1 ..sn)
+       -- where co :: (T t1 .. tn) ~ (T s1 ..sn)
        -- That is, with a T at the top of both sides
        -- The left-hand one must be a T, because exprIsConApp returned True
        -- but the right-hand one might not be.  (Though it usually will.)