instance Monoid Integer where
mappend = (+)
mempty = 0
instance Monoid Integer where
mappend = (*)
mempty = 1
which is not legal and the workaround
Num a => Monoid (Sum a)
Num a => Monoid (Product a)
wich is cumbersome
A mathematician would say something like:
instance Monoid Integer with operation + where
mappend = (+)
mempty = 0
and
instance Monoid Integer with operation * where
mappend = (*)
mempty = 1
2009/1/19 Luke Palmer <lrpalmer@gmail.com>:
The recent, and great, blog post about moniods [1] discusses the fact> On Mon, Jan 19, 2009 at 3:58 AM, Patai Gergely <patai_gergely@fastmail.fm>
> wrote:
>>
>> However, there are other type classes that are too general to assign
>> such concrete uses to. For instance, if a data structure can have more
>> than one meaningful (and useful) Functor or Monoid instance,
>
> As a side curiosity, I would love to see an example of any data structure
> which has more than one Functor instance. Especially those which have more
> than one useful functor instance.
> Luke
that (Num a) could be one of several different monoids and how that
was handled.
[1] http://sigfpe.blogspot.com/2009/01/haskell-monoids-and-their-uses.html
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe