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