
Maciej Piechotka wrote:
I'm so sorry if I've done it wrong - it's my first contact with Haskell standardization and I base on http://hackage.haskell.org/trac/haskell-prime/wiki/Process . I hope it is not too late as well.
Do not worry about that, we have decided to have a yearly standardization process.
Any from GHC.Prim makes unsafeCoerce much useful and safe. Can it be included in Unsafe.Coerce module?
Pros: - unsafeCoerce is much more useful with Any (it's a safe placeholder for any value and therefore can be passed simply in/out FFI).
Yes it's a safe placeholder, but so is an existential, I believe... data ContainsAny = forall a. ContainsAny a to put in the container: "ContainsAny x" to remove from the container: "case ... of ContainsAny x -> unsafeCoerce x" Albeit, there might be a slight performance penalty for the extra box, which can't be removed in all haskell implementations. Also, what do you mean about "FFI"? I don't think you can pass the "Any" type to foreign functions through the FFI... Also, can/do all compilers that implement unsafeCoerce implement a safe Any? Hugs can do it with just "data Any = Ignored" I believe, not sure about nhc, yhc or jhc... -Isaac