
Good point, Antoine!
I think that does the trick.
On Thu, May 17, 2012 at 10:48 AM, Antoine Latter
On Thu, May 17, 2012 at 8:50 AM, Ryan Newton
wrote: Thanks David.
I'm glad to see it was discussed in the wiki. (Btw, my 2 cents is that I like the comment pragmas more than new keywords.)
The issue that I think doesn't make it into the wiki is of splitting, not modules, but type-classes. That's where I think it becomes a more serious issue.
Do you think a symbol-level Safe Haskell would be able to distinguish one method of a type class as unsafe, while the others are safe?
You can still do this at the module level, with the down-side of potentially not being able to implement a class with the safe version:
module Unsafe where
class MyClass a where safeOp :: a -> Int -> IO () unsafeOp :: a -> Int -> IO ()
instance MyClass A where ...
module Safe (MyClass(safeOp)) where
import Unsafe
I think this works.
Antoine