[Haskell-cafe] Dynamic types through unsafeCoerce
alfonso.acosta at gmail.com
Sat Dec 9 07:39:24 EST 2006
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,
More information about the Haskell-Cafe