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
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime