[Haskell-cafe] Dynamic types through unsafeCoerce
Alfonso Acosta
alfonso.acosta at gmail.com
Sat Dec 9 07:39:24 EST 2006
Hi,
I've been using Data.Dynamic but the Typeable requirement doesn't go
well with FFI declarations (which don't accept type contexts).
This is a little example of what I would like to do:
data MyDyn = MyDyn
myToDyn :: a -> MyDyn
myToDyn = unsafeCoerce
myFromDyn :: MyDyn -> a
myFromDyn = unsafeCoerce
-- this is a type I want to transform back and forth from dynamic
-- and store into lists etc etc ...
data MyType a b = MyType a b
-- This it's "abstract" Generic type (it's contructor should be hidden)
data MyGenType = MyGenType MyDyn
mt2mgt :: MyType a b -> MyGenType
mt2mgt = MyGenType.myToDyn
mgt2mt :: MyGentype -> MyType a b
mgt2mt (MyGenType dyn) = myfromDyn dyn
The question is, ¿if only mt2mgt and mgt2mt are used by the user,
would the use of unsafeCoerce be dangerous?
Thanks in advance,
Alfonso Acosta
More information about the Haskell-Cafe
mailing list