On Wed, 10 Sep 2003 10:26:04 +0100, Robert Ennals
<[EMAIL PROTECTED]> wrote:
>class Wibble a where
> wibble :: a -> Int
> wobble :: a -> String
> set_wibble :: Int -> a -> a
> set_wobble :: String -> a -> a
>
>
>data Foo = Foo {wibble :: Int, wobble :: String}
> deriving Wibble
>
>
>The Wibble class defines selector and updater functions for fields called
>wibble and wobble.
>
>When I define the datatype Foo, I give it fields called wibble and wobble,
>which will define the functions in Wibble. If I say "deriving Wibble" then the
>type system acknowledges that these functions are implementing the class
>Wibble. If I had not derived Wibble then there would have been a name clash.
What would you do if Wibble had more functions than just those 4? You'd need
somewhere to put the implementations of the other functions for Foo.
Ganesh
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell