Dan Doel wrote:
> 
> Someone already mentioned using Dynamic as an alternate base (for
> instance, use a Map of dynamics for underlying storage). Of course,
> the implementation of Dynamic in GHC uses unsafeCoerce, just like ST,
> so you may not count that.   
> However, using GADTs, you can implement Dynamic safely for a closed
> universe of types. So you could create a polymorphic reference monad
> for whatever such universe you wished. Further, if you actually had
> open GADTs, you could actually add the relevant type-rep constructor
> for every type you declared. For instance, jhc's implementation of
> type classes internally uses such a GADT, so one could theoretically
> make a safe Dynamic, and thus a safe polymorphic reference monad.     

Apart from the other inconveniences, all of these solutions involve
runtime overhead, which is a shame.

Ganesh

==============================================================================
Please access the attached hyperlink for an important electronic communications 
disclaimer: 

http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==============================================================================

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to