[Haskell-cafe] classes for data structures

Denis Bueno dbueno at gmail.com
Wed Feb 6 09:11:55 EST 2008


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

--
                              Denis


More information about the Haskell-Cafe mailing list