[Haskell] pattern matching accross instance declarations
S. Alexander Jacobson
alex at alexjacobson.com
Wed Dec 1 20:25:39 EST 2004
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
More information about the Haskell
mailing list