Lennart wrote (snipped): > An "easy" way to > prove it is to provide an equivalent implementation that uses only > pure functions. As far as I remember Control.Monad.ST can be written > purely. And I think the same is true for Data.Dynamic.
I don't see how it can be, since you can use Data.Dynamic to provide an unsafe function cast : a -> b
newtype UnsafeCast a = UnsafeCast a
instance Typeable (UnsafeCast a) where typeOf _ = mkAppTy (mkTyCon "") []
cast :: a -> b cast a = let Just (UnsafeCast b) = fromDynamic (toDyn (UnsafeCast a)) in b _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell