[Haskell-cafe] classes for data structures
Jules Bean
jules at jellybean.co.uk
Wed Feb 6 10:12:48 EST 2008
Matthew Pocock wrote:
> Hi,
>
> I've been working a lot with maps, sets and lists. While the process of
> getting things out of them is abstracted by foldable, traversable and
> friends, the process of building one up is not. Would it be possible to have
> something like:
>
> 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
Another approach uses :
singleton :: a -> b a
and then just
mappend :: b a -> b a -> b a
i.e. make b a into a Monoid.
singleton = pure = return, if there happens to be a Monad/Applicative
instance around.
And indeed there *will* be a Monad, if there is a sensible way of
defining concat :: b (b a) -> b a, which there probably is.
Jules
More information about the Haskell-Cafe
mailing list