On 05/12/2007, at 13:55, Simon Marlow wrote:
Pepe Iborra wrote:
Tue Dec 4 02:55:11 PST 2007 Pepe Iborra <[EMAIL PROTECTED]>
* Teach :print to follow references (STRefs and IORefs)
Prelude Data.IORef> :p l
l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
Prelude Data.IORef> p <- newIORef l
Prelude Data.IORef> :p p
p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
(_t7::[Maybe Integer]))})
Prelude Data.IORef> :sp p
p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
I used braces to denote the contents of a reference.
Perhaps there is a more appropriate notation?
Why not just
GHC.Prim.MutVar# <value>
that seems to be the most obvious, if perhaps not the tidyest, way
to present it. Do we really need a special syntax and to hide the
real primitive object here?
Sure. I agree that it is a bad idea and introduction of a new notation
should be justified only if it significantly improves the end result.
Something more like
p = {(_t6::Maybe Integer) : (_t7::[Maybe Integer])})
would be what I originally had in mind, as opposed to
p = GHC.IOBase.IORef (GHC.STRef.STRef (GHC.Prim.MutVar# (_t6::Maybe
Integer) :
(_t7
::[Maybe Integer]))
which is rather longish. But on the other hand, it is more consistent
with the behaviour of :print in other areas.
I'll prepare a patch if there is no further discussion.
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc