<html><head><style>p{margin-top:0px;margin-bottom:0px;}</style></head><body><div style="font-size:10pt; font-family:NanumGothic, 나눔고딕, sans-serif;"><p>I'm not refering that Maybe makes Monoid by adding the identity element. I'm refering that the Monoid (Maybe (First a)) have the same semantic as Alternative Maybe.</p><p> </p><p>So I'm suggesting that the same semantic should go to Monoid (ZipList (First a)) for Alternative ZipList. </p><p> </p><p> </p><p style="font-size:10pt;font-family:sans-serif;padding:0 0 0 10pt"><span>-----Original Message-----</span><br><b>From:</b> "Edward Kmett"<ekmett@gmail.com> <br><b>To:</b> "박신환"<ndospark320@naver.com>; <br><b>Cc:</b> "Haskell Libraries"<libraries@haskell.org>; <br><b>Sent:</b> 2018-05-05 (토) 07:04:05<br><b>Subject:</b> Re: Monoid for ZipList<br> </p><xmeta http-equiv="content-type" content="text/html; charset=utf-8"><!-- --><div>It is worth noting that Maybe a and [a] are rather special cases. The former is the monoid you get from adjoining a unit to a semigroup. The latter is the free monoid. Most other monoids for things wrapped in an applicative are either based on the Alternative instance which inherently provides a monoidal structure or based on lifting a monoid pointwise into the data type. </div><div> </div><div>Here we have at least 3-4 possible, quite reasonable, monoids at play, and no real reason to choose any one of them over the others. In that situation, our general practice thus far has been to resist choosing if a choice hasn't already been made, simply because there is no real manner other than memorization / code inspection for a user to know which instance we happened to pick.</div><div> </div><div>I'm -1 on adding the instance proposed here.<br><br>Sent from my iPhone</div></xmeta></div></body></html><table style='display:none'><tr><td><img src="https://mail.naver.com/readReceipt/notify/?img=Jd%2BCbHFTpz%2FYaqgZKrRZK6pvKz3CFzKwKou%2FKrtXpAUXKrEZMxkCKqpvKotrax%2BgMX%2B0MoUm74lR74lcWNFlbX30WLloWrdQarwGMNiCb400bdIcMBFOp6wn74eZpm%3D%3D.gif" border="0"/></td></tr></table>