Change the format used by :print to show the content of references
authorPepe Iborra <mnislaih@gmail.com>
Sat, 8 Dec 2007 19:30:13 +0000 (19:30 +0000)
committerPepe Iborra <mnislaih@gmail.com>
Sat, 8 Dec 2007 19:30:13 +0000 (19:30 +0000)
    This comes as result of the short discussion linked below.

    http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html

compiler/ghci/RtClosureInspect.hs

index 1abee57..585ca1c 100644 (file)
@@ -369,7 +369,14 @@ ppr_termM y p Term{dc=Right dc, subTerms=tt}
          return$ cparen (p >= app_prec) (ppr dc <+> pprDeeperList fsep tt_docs)
 
 ppr_termM y p t@NewtypeWrap{} = pprNewtypeWrap y p t
          return$ cparen (p >= app_prec) (ppr dc <+> pprDeeperList fsep tt_docs)
 
 ppr_termM y p t@NewtypeWrap{} = pprNewtypeWrap y p t
-ppr_termM y p RefWrap{wrapped_term=t}  = braces `liftM` y p t
+ppr_termM y p RefWrap{wrapped_term=t, ty=ty}  = do
+  contents <- y app_prec t
+  return$ cparen (p >= app_prec) (text "GHC.Prim.MutVar#" <+> contents)
+  -- The constructor name is wired in here ^^^ for the sake of simplicity.
+  -- I don't think mutvars are going to change in a near future.
+  -- In any case this is solely a presentation matter: MutVar# is
+  -- a datatype with no constructors, implemented by the RTS
+  -- (hence there is no way to obtain a datacon and print it).
 ppr_termM _ _ t = ppr_termM1 t
 
 
 ppr_termM _ _ t = ppr_termM1 t