[Haskell-cafe] classes for data structures

Henning Thielemann lemming at henning-thielemann.de
Wed Feb 6 09:40:36 EST 2008


On Wed, 6 Feb 2008, Denis Bueno wrote:

> On Feb 6, 2008 9:00 AM, Henning Thielemann
> <lemming at henning-thielemann.de> wrote:
> > On Wed, 6 Feb 2008, Matthew Pocock wrote:
> > > class Buildable b where
> > >   empty :: b a --makes an empty b with elements of type a
> > >   insert :: a -> b a -> b a --inserts the new element into the buildable
> >
> > How can this interface be used both for lists and maps? [...]
>
> One solution is to change the class slightly:
>
> class Buildable t x where
>   empty :: t
>   insert :: x -> t -> t
>
> instance Buildable (Map k a) (k, a) where
>     empty = Map.empty
>     insert = uncurry Map.insert

ok, maybe with functional dependency t -> x


More information about the Haskell-Cafe mailing list