My point is that I want to be able to add new toMyType definitions without having to modify some central library file and I want the compiler to warn me when I haven't defined one for each instance.
-Alex- On Thu, 2 Dec 2004, Ben Rudiak-Gould wrote: > S. Alexander Jacobson wrote: > > > data MyExistantialType=forall v.(Show v)=>EType v > > > > class MyExistentialTypeable a where > > toMyType::String->MyExistantialType > > > > instance MyExistentialTypeable String where > > toMyType "String" = EType "foo" > > > > instance MyExistentialTypeable Int where > > toMyType "Int" = EType "bar" > > > > tVal (EType v)=show v > > main = print $ tVal $ toMyType "String" > > The type class isn't necessary here, since toMyType has the same type in > every instance anyway (namely String->MyExistentialType). You can simply > write > > data MyExistantialType=forall v.(Show v)=>EType v > > toMyType "String" = EType "foo" > toMyType "Int" = EType "bar" > > tVal (EType v)=show v > main = print $ tVal $ toMyType "String" > > -- Ben > ______________________________________________________________ S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell