Hi David, On Tue, 2011-10-25 at 15:17 -0700, David Terei wrote: > Repository : ssh://darcs.haskell.org//srv/darcs/packages/base > > On branch : master > > http://hackage.haskell.org/trac/ghc/changeset/447448aff4803fa4b26ac941d5297aedcbb2dddf
> commit 447448aff4803fa4b26ac941d5297aedcbb2dddf > Author: David Terei <[email protected]> > Date: Tue Oct 25 11:13:08 2011 -0700 > > Update base for new Safe Haskell design > Debug/Trace.hs | 1 + diff --git a/Debug/Trace.hs b/Debug/Trace.hs index ebacb6c..728b938 100644 --- a/Debug/Trace.hs +++ b/Debug/Trace.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE Unsafe #-} {-# LANGUAGE CPP, ForeignFunctionInterface #-} I don't understand this. Is it required that we mark Data.Trace as unsafe? Why is it not just left unmarked? My previous understanding was that Unsafe was for modules that don't break the language but rather break the encapsulation of abatract datatypes, ie for Blah.Internals modules. Data.Trace and indeed System.IO.Unsafe are not like this. They are simply not -XSafe because they use unsafePerformIO or ghc primitives. So according to my previous understanding, these modules do not need to be marked at all. Has that changed with the new design? If the Unsafe marking is not necessary here then I think they should *not* be marked. Rather than clarifying I think it adds confusion. It suggests that things have to be marked unsafe, rather than just things being unsafe by default (which is the usual security approach: default untrusted, mark what is audited to be safe). If the Unsafe marking is actually necessary then I'm even more confused. Duncan _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
