Proposal: Add a wrapped applicative type to Data.Monoid

Theodore Lief Gannon tanuki at gmail.com
Wed Mar 28 11:32:04 UTC 2018


So it's settled, we have an `Ed` type.

On Wed, Mar 28, 2018, 2:51 AM Edward Kmett <ekmett at gmail.com> wrote:

> +1 to add it.
>
> I don't care one way or the other about the name. =)
>
> -Edward
>
> On Tue, Mar 27, 2018 at 11:06 AM, Daniel Cartwright <chessai1996 at gmail.com
> > wrote:
>
>> One thing that I would like to respectfully point out - is that the
>> members' of this library mailing list end up derailing otherwise useful
>> conversations over the choice of a name, which is frankly a silly
>> bottleneck. I would much rather roll a die or flip a coin to choose a name,
>> and just get on to implementing the proposed thing, provided it is the case
>> that it is seen as generally useful.
>>
>> On Tue, Mar 27, 2018 at 10:59 AM, Daniel Cartwright <
>> chessai1996 at gmail.com> wrote:
>>
>>> I can definitely see "App" as being overloaded (Application).
>>> Good names that I see are "Ap" and "Apply".
>>>
>>> I think "Ap" is fine.
>>> On Tue, Mar 27, 2018, 10:28 AM David Feuer <david.feuer at gmail.com>
>>> wrote:
>>>
>>>> I proposed same thing some time ago. The main point of contention was
>>>> the name. I hope you have better luck!
>>>>
>>>> On Tue, Mar 27, 2018, 10:23 AM Daniel Cartwright <chessai1996 at gmail.com>
>>>> wrote:
>>>>
>>>>> I see this as being generally (as in, to the users of Haskell as a
>>>>> whole) useful:
>>>>>
>>>>> newtype Ap f a = Ap { getAp :: f a }
>>>>>   deriving (Applicative, Eq, Foldable, Functor, Generic, Generic1
>>>>>                 ,Monad, Ord, Read, Show, Traversable)
>>>>>
>>>>> Some hand-written instances:
>>>>> instance (Applicative f, Semigroup a) => Semigroup (Ap f a) where
>>>>>   (Ap x) <> (Ap y) = Ap $ liftA2 (<>) x y
>>>>>
>>>>> instance (Applicative f, Monoid a) => Monoid (Ap f a) where
>>>>>   mempty = Ap $ pure mempty
>>>>> _______________________________________________
>>>>> Libraries mailing list
>>>>> Libraries at haskell.org
>>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>>>
>>>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180328/3ead3a79/attachment.html>


More information about the Libraries mailing list