G'day all. On Wed, Jan 08, 2003 at 08:42:20AM +1100, Thomas Conway wrote:
I'm fairly new to Haskell, but worked on Mercury until recently. Mercury has a type "univ" which might be declared something like:
data Univ = Univ a
The equivalent would be: data Univ = forall a. Univ a
I believe (nth hand) that something similar has been done in haskell, but my understanding is that it isn't in the standard library.
That would be Data.Dynamic: data Dynamic -- abstract toDyn :: (Typeable a) => a -> Dynamic fromDynamic :: (Typeable a) => Dynamic -> Maybe a (There is a certain kind of logic behind the inconsistent naming, incidentally.) The Typeable class basically implements RTTI explicitly: class Typeable a where typeOf :: a -> TypeRep Unfortunately, Typeable can't be derived automatically. Maybe in Haskell 2. For further details, see: http://haskell.org/ghc/docs/latest/html/base/Data.Dynamic.html Cheers, Andrew Bromage