
This is precisely the situation I am referring to when I mention ad hoc casewise reasoning.
What laws say that 'foldMap point' does anything useful? Given just the type signature what reasoning can you do?
Without knowing the particular instances involved, you get nothing.
With Set you get a glued together Set, but Maybe is going to try to smash together the elements under the Maybe with some extra Semigr^H^H^H^H^H^HMonoid.
Pointed requires ad hoc reasoning for virtually every use case. The only law you can state for it is a free theorem for its type.
On the other hand with classes like Apply or Bind you get access to lots of useful semigroup-like structures you can still reason about in general, not in particular, including things that can't be made Applicative/Monadic. (e.g. IntMap).
On May 24, 2013, at 1:02 PM, Andreas Abel
I do not use Pointed a lot, but a situation where it comes natural is when I want to emit elements into a collection f. Then I need
Pointed f -- to emit a single element Monoid (f a) -- to join two collections
Using Applicative or Monad is overdoing it.
Maybe you have a better suggestion how to organize my task which I have not considered yet...
Cheers, Andreas
On 24.05.2013 17:28, Roman Cheplyaka wrote:
I completely agree with Edward here.
* Edward Kmett
[2013-05-24 11:20:51-0400] For the record I'm actually -1 on including Pointed.
My experience is that there are very few uses for the class that permit you to reason about your code without one-off ad hoc reasoning based on the particular instance you are given. Now, the Apply and Bind classes on the other hand... =) Though, to be fair, I couldn't seriously propose including either of those, either. Even I can't be bothered to instantiate them all the time!
-Edward
On Fri, May 24, 2013 at 11:13 AM, Andreas Abel
wrote: +1 AMP +1 MINIMAL +1 Pointed in base
-- Andreas Abel <>< Du bist der geliebte Mensch.
Theoretical Computer Science, University of Munich Oettingenstr. 67, D-80538 Munich, GERMANY
andreas.abel@ifi.lmu.de http://www2.tcs.ifi.lmu.de/~abel/