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

Reply via email to