On Thu, 2009-02-12 at 19:04 +0100, Lennart Augustsson wrote:
> They are not unsafe in the way unsafePerformIO is,
I beg permission to demur:
newtype Unsafe alpha = Unsafe { unUnsafe :: alpha }
instance Typeable (Unsafe alpha) where
typeOf _ = typeOf ()
pseudoSafeCoerce :: alpha -> Maybe beta
pseudoSafeCoerce = fmap unUnsafe . cast . Unsafe
Note that
pseudoSafeCoerce = Just . unsafeCoerce
> but I regard them
> as a last resort in certain situations.
> Still, in those situations they are very useful.
But I would agree with both of these. As long as you *derive* Typeable.
jcc
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe