2023/07/13

2023-07-13 00:00:12 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-13 00:00:33 +0200Pickchea(~private@user/pickchea)
2023-07-13 00:02:04 +0200johnw(~johnw@69.62.242.138)
2023-07-13 00:04:20 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-13 00:05:25 +0200acidjnk(~acidjnk@p200300d6e7072f9090d33f2b4a36e93a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-13 00:07:40 +0200falafel(~falafel@2603-7000-a700-8710-9520-756f-3405-563b.res6.spectrum.com)
2023-07-13 00:18:04 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-13 00:21:00 +0200passiva(~passiva@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
2023-07-13 00:21:42 +0200passiva(~passiva@bcdcac82.skybroadband.com)
2023-07-13 00:24:15 +0200janus(janus@anubis.0x90.dk) ()
2023-07-13 00:24:17 +0200Guest2723(~finn@176-151-21-224.abo.bbox.fr) (Remote host closed the connection)
2023-07-13 00:24:24 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-07-13 00:26:20 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-07-13 00:28:05 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-07-13 00:29:08 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-13 00:32:37 +0200michalz(~michalz@185.246.207.200) (Remote host closed the connection)
2023-07-13 00:33:35 +0200wroathe(~wroathe@user/wroathe)
2023-07-13 00:34:38 +0200nick4(~nick@2600:8807:9084:7800:8939:f628:ed3d:955) (Ping timeout: 260 seconds)
2023-07-13 00:36:54 +0200kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-13 00:42:23 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-13 00:42:34 +0200bontaq(~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 260 seconds)
2023-07-13 00:42:38 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2023-07-13 00:43:47 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-07-13 00:44:48 +0200mei(~mei@user/mei)
2023-07-13 00:45:56 +0200nick4(~nick@2600:8807:9084:7800:8939:f628:ed3d:955)
2023-07-13 00:46:47 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-07-13 00:46:50 +0200nyc(~nyc@user/nyc)
2023-07-13 00:47:42 +0200gurkenglas(~gurkengla@dynamic-002-247-242-043.2.247.pool.telefonica.de) (Ping timeout: 260 seconds)
2023-07-13 00:49:25 +0200mechap(~mechap@user/mechap) (Ping timeout: 240 seconds)
2023-07-13 00:49:53 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-07-13 00:50:44 +0200mechap(~mechap@user/mechap)
2023-07-13 00:51:54 +0200nick4(~nick@2600:8807:9084:7800:8939:f628:ed3d:955) (Ping timeout: 260 seconds)
2023-07-13 00:52:10 +0200picklejuice(~root@172.56.218.182)
2023-07-13 00:53:37 +0200nick4(~nick@2600:8807:9084:7800:8939:f628:ed3d:955)
2023-07-13 00:54:42 +0200ardavast(~ardavast@62-73-72-214.ip.btc-net.bg)
2023-07-13 00:54:55 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2023-07-13 01:00:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-07-13 01:00:39 +0200bcmiller(~bm3719@66.42.95.185) (Ping timeout: 258 seconds)
2023-07-13 01:01:38 +0200byorgey(~byorgey@155.138.238.211) (Ping timeout: 250 seconds)
2023-07-13 01:02:23 +0200wroathe(~wroathe@user/wroathe) (Read error: Connection reset by peer)
2023-07-13 01:02:33 +0200wroathe(~wroathe@user/wroathe)
2023-07-13 01:04:53 +0200falafel(~falafel@2603-7000-a700-8710-9520-756f-3405-563b.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-07-13 01:07:12 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 01:12:22 +0200bcmiller(~bm3719@66.42.95.185)
2023-07-13 01:12:31 +0200ardavast(~ardavast@62-73-72-214.ip.btc-net.bg) (Ping timeout: 245 seconds)
2023-07-13 01:13:58 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-13 01:17:07 +0200zeenk(~zeenk@2a02:2f04:a00b:1800::7fe) (Quit: Konversation terminated!)
2023-07-13 01:17:09 +0200Midjak(~Midjak@82.66.147.146)
2023-07-13 01:20:11 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-13 01:22:14 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-13 01:22:29 +0200Wstfgl0(~me-me@2602:ff16:3:0:1:dc:beef:d00d)
2023-07-13 01:23:42 +0200mxs_(~mxs@user/mxs)
2023-07-13 01:24:06 +0200NemesisD_(sid24071@id-24071.lymington.irccloud.com)
2023-07-13 01:24:10 +0200geekosaur[c]_(sid609282@xmonad/geekosaur)
2023-07-13 01:24:11 +0200picklejuice(~root@172.56.218.182) (Ping timeout: 245 seconds)
2023-07-13 01:24:12 +0200ardavast(~ardavast@62-73-72-214.ip.btc-net.bg)
2023-07-13 01:25:22 +0200Logio_(em@kapsi.fi)
2023-07-13 01:25:28 +0200Katarushisu3(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2023-07-13 01:25:35 +0200HerlockSholmes2(~herlock@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-07-13 01:25:53 +0200fr33domlover9(~fr33domlo@towards.vision)
2023-07-13 01:25:57 +0200finnekit6(~finnekit@fsf/member/finnekit)
2023-07-13 01:25:58 +0200TimWolla_(~timwolla@2a01:4f8:150:6153:beef::6667)
2023-07-13 01:26:05 +0200SoF3(~skius@user/skius)
2023-07-13 01:26:23 +0200tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-07-13 01:26:27 +0200glider_(~glider@user/glider)
2023-07-13 01:26:54 +0200hexology-(~hexology@user/hexology)
2023-07-13 01:26:55 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-07-13 01:27:06 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-07-13 01:27:07 +0200mewra(~aranea@wireguard/contributorcat/mira)
2023-07-13 01:27:09 +0200ringo___(~ringo@157.230.117.128)
2023-07-13 01:27:28 +0200abrar(~abrar@pool-72-78-199-186.phlapa.fios.verizon.net)
2023-07-13 01:27:29 +0200sviermsung(spxLkMy9HV@user/s4msung)
2023-07-13 01:27:30 +0200bah_(~bah@l1.tel)
2023-07-13 01:27:36 +0200krjt(~krjst@2604:a880:800:c1::16b:8001)
2023-07-13 01:27:38 +0200anderson_(~anderson@user/anderson)
2023-07-13 01:27:54 +0200yaroot_(~yaroot@p3274042-ipngn2701souka.saitama.ocn.ne.jp)
2023-07-13 01:28:15 +0200bramhaag8(~bramhaag@134.195.121.39)
2023-07-13 01:28:27 +0200swistak-(~swistak@185.21.216.141)
2023-07-13 01:28:33 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2023-07-13 01:29:12 +0200adamCS_(~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
2023-07-13 01:29:19 +0200piele_(~piele@tbonesteak.creativeserver.net)
2023-07-13 01:29:22 +0200ames2(~amelia@offtopia/offtopian/amelia)
2023-07-13 01:29:26 +0200carbolymer_(~carbolyme@dropacid.net)
2023-07-13 01:29:37 +0200MonsoonSecrecy_(f78c86e960@2604:bf00:561:2000::f99)
2023-07-13 01:29:59 +0200chessai_(sid225296@id-225296.lymington.irccloud.com)
2023-07-13 01:30:26 +0200meooow_(~meooow@165.232.184.169)
2023-07-13 01:30:28 +0200jackdk_(sid373013@cssa/jackdk)
2023-07-13 01:30:29 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-07-13 01:30:53 +0200kraftwerk28_(~kraftwerk@178.62.210.83)
2023-07-13 01:31:03 +0200tired-(~tired@user/tired)
2023-07-13 01:31:33 +0200kitzman_(~kitzman@user/dekenevs)
2023-07-13 01:32:29 +0200HerlockSholmes(~herlock@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (*.net *.split)
2023-07-13 01:32:29 +0200jackdk(sid373013@cssa/jackdk) (*.net *.split)
2023-07-13 01:32:29 +0200geekosaur[c](sid609282@xmonad/geekosaur) (*.net *.split)
2023-07-13 01:32:29 +0200caubert(~caubert@user/caubert) (*.net *.split)
2023-07-13 01:32:29 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (*.net *.split)
2023-07-13 01:32:29 +0200chessai(sid225296@id-225296.lymington.irccloud.com) (*.net *.split)
2023-07-13 01:32:29 +0200bastelfreak(bastelfrea@libera/staff/VoxPupuli.bastelfreak) (*.net *.split)
2023-07-13 01:32:29 +0200hook54321(sid149355@user/hook54321) (*.net *.split)
2023-07-13 01:32:29 +0200MonsoonSecrecy(f78c86e960@2604:bf00:561:2000::f99) (*.net *.split)
2023-07-13 01:32:29 +0200swistak(~swistak@185.21.216.141) (*.net *.split)
2023-07-13 01:32:29 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
2023-07-13 01:32:29 +0200yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (*.net *.split)
2023-07-13 01:32:29 +0200mxs(~mxs@user/mxs) (*.net *.split)
2023-07-13 01:32:29 +0200yaroot(~yaroot@p3274042-ipngn2701souka.saitama.ocn.ne.jp) (*.net *.split)
2023-07-13 01:32:29 +0200meooow(~meooow@2400:6180:100:d0::ad9:e001) (*.net *.split)
2023-07-13 01:32:29 +0200NemesisD(sid24071@id-24071.lymington.irccloud.com) (*.net *.split)
2023-07-13 01:32:29 +0200SoF(~skius@user/skius) (*.net *.split)
2023-07-13 01:32:29 +0200kitzman(~kitzman@user/dekenevs) (*.net *.split)
2023-07-13 01:32:29 +0200fr33domlover(~fr33domlo@towards.vision) (*.net *.split)
2023-07-13 01:32:29 +0200Me-me(~me-me@2602:ff16:3:0:1:dc:beef:d00d) (*.net *.split)
2023-07-13 01:32:29 +0200s4msung(4RqcWUWWqt@user/s4msung) (*.net *.split)
2023-07-13 01:32:29 +0200eL_Bart0(eL_Bart0@dietunichtguten.org) (*.net *.split)
2023-07-13 01:32:29 +0200finnekit(~finnekit@fsf/member/finnekit) (*.net *.split)
2023-07-13 01:32:29 +0200bah(~bah@l1.tel) (*.net *.split)
2023-07-13 01:32:29 +0200abrar_(~abrar@pool-72-78-199-186.phlapa.fios.verizon.net) (*.net *.split)
2023-07-13 01:32:29 +0200mira(~aranea@wireguard/contributorcat/mira) (*.net *.split)
2023-07-13 01:32:30 +0200tired(~tired@user/tired) (*.net *.split)
2023-07-13 01:32:30 +0200Logio(em@kapsi.fi) (*.net *.split)
2023-07-13 01:32:30 +0200ringo__(~ringo@157.230.117.128) (*.net *.split)
2023-07-13 01:32:30 +0200krjst(~krjst@2604:a880:800:c1::16b:8001) (*.net *.split)
2023-07-13 01:32:30 +0200carbolymer(~carbolyme@dropacid.net) (*.net *.split)
2023-07-13 01:32:30 +0200hexology(~hexology@user/hexology) (*.net *.split)
2023-07-13 01:32:30 +0200kraftwerk28(~kraftwerk@178.62.210.83) (*.net *.split)
2023-07-13 01:32:30 +0200bgamari(~bgamari@64.223.233.113) (*.net *.split)
2023-07-13 01:32:30 +0200ames(~amelia@offtopia/offtopian/amelia) (*.net *.split)
2023-07-13 01:32:30 +0200heath2(~heath@user/heath) (*.net *.split)
2023-07-13 01:32:30 +0200anderson(~anderson@user/anderson) (*.net *.split)
2023-07-13 01:32:30 +0200glider(~glider@user/glider) (*.net *.split)
2023-07-13 01:32:30 +0200adamCS(~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split)
2023-07-13 01:32:30 +0200piele(~piele@tbonesteak.creativeserver.net) (*.net *.split)
2023-07-13 01:32:30 +0200bramhaag(~bramhaag@134.195.121.39) (*.net *.split)
2023-07-13 01:32:30 +0200niko(niko@libera/staff/niko) (*.net *.split)
2023-07-13 01:32:30 +0200fr33domlover9fr33domlover
2023-07-13 01:32:30 +0200HerlockSholmes2HerlockSholmes
2023-07-13 01:32:30 +0200adamCS_adamCS
2023-07-13 01:32:30 +0200finnekit6finnekit
2023-07-13 01:32:30 +0200NemesisD_NemesisD
2023-07-13 01:32:30 +0200Katarushisu3Katarushisu
2023-07-13 01:32:30 +0200jackdk_jackdk
2023-07-13 01:32:30 +0200SoF3SoF
2023-07-13 01:32:30 +0200MonsoonSecrecy_MonsoonSecrecy
2023-07-13 01:32:30 +0200geekosaur[c]_geekosaur[c]
2023-07-13 01:32:30 +0200chessai_chessai
2023-07-13 01:32:30 +0200TimWolla_TimWolla
2023-07-13 01:32:30 +0200yaroot_yaroot
2023-07-13 01:32:30 +0200anderson_anderson
2023-07-13 01:32:30 +0200ames2ames
2023-07-13 01:32:30 +0200bramhaag8bramhaag
2023-07-13 01:32:31 +0200mxs_mxs
2023-07-13 01:32:57 +0200bastelfreak(bastelfrea@libera/staff/VoxPupuli.bastelfreak)
2023-07-13 01:33:20 +0200yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2023-07-13 01:37:22 +0200byorgey(~byorgey@155.138.238.211)
2023-07-13 01:37:28 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 01:39:38 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
2023-07-13 01:41:22 +0200hook54321(sid149355@user/hook54321)
2023-07-13 01:41:25 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-13 01:45:21 +0200picklejuice(~root@172.58.203.205)
2023-07-13 01:45:29 +0200mauke_(~mauke@user/mauke)
2023-07-13 01:46:52 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2023-07-13 01:46:55 +0200mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-07-13 01:46:55 +0200mauke_mauke
2023-07-13 01:47:13 +0200niko(niko@libera/staff/niko)
2023-07-13 01:49:54 +0200picklejuice(~root@172.58.203.205) (Ping timeout: 252 seconds)
2023-07-13 01:50:21 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-13 01:51:08 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 01:51:41 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 245 seconds)
2023-07-13 01:53:58 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-07-13 01:54:47 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
2023-07-13 01:55:27 +0200picklejuice(~root@172.58.204.173)
2023-07-13 01:55:32 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2023-07-13 01:55:41 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-13 02:04:24 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 02:04:24 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 02:04:24 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 02:04:30 +0200motherfsck(~motherfsc@user/motherfsck)
2023-07-13 02:10:22 +0200bilegeek(~bilegeek@2600:1008:b023:ebcc:e781:815d:405f:74ed)
2023-07-13 02:12:31 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-13 02:12:56 +0200picklejuice(~root@172.58.204.173) (Ping timeout: 245 seconds)
2023-07-13 02:18:10 +0200picklejuice(~root@172.56.216.194)
2023-07-13 02:19:41 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2023-07-13 02:20:22 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 02:20:23 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 02:20:23 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 02:20:48 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-13 02:24:45 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680)
2023-07-13 02:26:51 +0200eL_Bart0(eL_Bart0@dietunichtguten.org)
2023-07-13 02:26:58 +0200heath2(~heath@user/heath)
2023-07-13 02:26:58 +0200caubert(~caubert@user/caubert)
2023-07-13 02:26:59 +0200bgamari(~bgamari@64.223.233.113)
2023-07-13 02:31:00 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680) (Remote host closed the connection)
2023-07-13 02:31:21 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680)
2023-07-13 02:36:35 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 258 seconds)
2023-07-13 02:48:10 +0200picklejuice(~root@172.56.216.194) (Ping timeout: 250 seconds)
2023-07-13 02:48:13 +0200picklejuice(~root@172.56.222.50)
2023-07-13 02:50:42 +0200d34df00d(~d34df00d@2600:1702:4f1b:7c10::e)
2023-07-13 02:50:51 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 245 seconds)
2023-07-13 02:50:56 +0200 <d34df00d> Hi!
2023-07-13 02:51:26 +0200 <d34df00d> Let's say I have two megaparsec parsers, p and q. q accepts all that is accepted by p, and then some extra strings.
2023-07-13 02:51:37 +0200 <d34df00d> I need to parse a list of p's followed by a single q. How do I do that?
2023-07-13 02:52:10 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-13 02:52:18 +0200 <d34df00d> `some p >> q` won't work since that `p` _might_ consume what needs to be consumed by `q`
2023-07-13 02:54:02 +0200picklejuice(~root@172.56.222.50) (Ping timeout: 246 seconds)
2023-07-13 02:55:28 +0200 <d34df00d> And there's no easy conversion between the types produces by p and q, so I cannot just make q optional and convert the `last` of `some p` into q's type if `optional q` fails.
2023-07-13 02:56:03 +0200 <probie> Are the parsers supplied by someone else?
2023-07-13 02:58:23 +0200 <d34df00d> probie: nope, but they are non-trivial enough that changing them is a sort of last resort thing (and then I'm not even sure it's possible).
2023-07-13 02:58:23 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 03:02:58 +0200 <probie> I don't suppose you can get away with `p >> some ((Right <$> try (q >> eof)) <|> (Left <$> p))` (assuming at least one p and at least one q, and q is the end of input)
2023-07-13 03:02:59 +0200 <d34df00d> Unfortunately it might not be the end of input.
2023-07-13 03:02:59 +0200jargon(~jargon@184.101.73.95)
2023-07-13 03:02:59 +0200 <d34df00d> As a model example, think of a comma-separated list of sublists, where each sublist is some integers followed by a double (which might be written as, well, an integer, without any dots).
2023-07-13 03:05:36 +0200 <d34df00d> So like "1 2 3 4.2, 10 20 30, 40 50.0"
2023-07-13 03:05:36 +0200 <d34df00d> And let's pretend there is no Integer → Double function.
2023-07-13 03:09:16 +0200jargon(~jargon@184.101.73.95) (Remote host closed the connection)
2023-07-13 03:09:42 +0200 <probie> `(:) <$> fmap Left p <*> some ((Right <$> try (q <* notFollowedBy p)) <|> (Left <$> p))`?
2023-07-13 03:10:02 +0200hexology-hexology
2023-07-13 03:10:11 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-13 03:10:11 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-13 03:10:11 +0200wroathe(~wroathe@user/wroathe)
2023-07-13 03:10:26 +0200razetime(~quassel@117.193.5.76)
2023-07-13 03:10:47 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-07-13 03:11:41 +0200 <d34df00d> Oh, nice!
2023-07-13 03:11:56 +0200 <d34df00d> I was just looking at notFollowedBy and lookahead and trying to come up with something, but it looks like it does the job!
2023-07-13 03:16:50 +0200arahael_(~arahael@1.145.56.143)
2023-07-13 03:16:51 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-13 03:16:56 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-07-13 03:21:46 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-13 03:25:43 +0200falafel(~falafel@2603-7000-a700-8710-ff20-0c7b-3a36-fc77.res6.spectrum.com)
2023-07-13 03:27:25 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-13 03:32:08 +0200 <Clinton[m]> I'm trying to understand if the structure I have here already exists.... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/d1ef1e294a91154b0aa072dd9a14ae27b214…>)
2023-07-13 03:32:42 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-13 03:38:00 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
2023-07-13 03:38:40 +0200m21it(~m21it@2800:ac:8014:1816:9812:736a:f822:ce6f)
2023-07-13 03:41:12 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-07-13 03:42:52 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 03:44:42 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-07-13 03:45:01 +0200Hooloovoo(~Hooloovoo@hax0rbana.org)
2023-07-13 03:47:40 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-13 03:47:40 +0200 <m21it> Is there somehow reasonable way to derive `Data.Data.Data` instance of the type `T a b` without the constructors of `T a b` being in scope? The package does expose only the type `T a b` and smart constructors. I'm ok with using any means to derive it or write by hand - `TH` or `GHC.Generics`, I just don't know how.
2023-07-13 03:47:40 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Client Quit)
2023-07-13 03:52:26 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
2023-07-13 03:59:03 +0200statusbot10(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2023-07-13 03:59:04 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-07-13 03:59:05 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-07-13 03:59:05 +0200picklejuice(~root@172.56.222.50)
2023-07-13 03:59:05 +0200statusbot10(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
2023-07-13 03:59:05 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2023-07-13 03:59:05 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 245 seconds)
2023-07-13 03:59:05 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
2023-07-13 03:59:05 +0200curby(~curby@cpe-76-183-125-175.tx.res.rr.com)
2023-07-13 03:59:05 +0200 <ski> @hackage ffunctor
2023-07-13 03:59:06 +0200 <lambdabot> https://hackage.haskell.org/package/ffunctor
2023-07-13 03:59:13 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-07-13 03:59:23 +0200 <ski> @help mmorph
2023-07-13 03:59:24 +0200 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2023-07-13 03:59:29 +0200 <ski> @hackage mmorph
2023-07-13 03:59:29 +0200 <lambdabot> https://hackage.haskell.org/package/mmorph
2023-07-13 03:59:50 +0200 <ski> Clinton[m] : those seem relevant ?
2023-07-13 04:00:10 +0200 <ski> (you could also search for `HFunctor' which seems to be another related version)
2023-07-13 04:00:47 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 04:00:48 +0200puke(~puke@user/puke) (Ping timeout: 252 seconds)
2023-07-13 04:00:51 +0200Sciencentistguy7(~sciencent@hacksoc/ordinary-member)
2023-07-13 04:02:12 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 246 seconds)
2023-07-13 04:02:12 +0200Sciencentistguy7Sciencentistguy
2023-07-13 04:02:17 +0200 <ski> although, with `FFunctor t' you have `t :: (* -> *) -> *', but for your example, you'd want `t' to be polymorphic (so `FFunctor' would be a rank-2 type class, then), namely `t :: (k -> *) -> *' for every `k'
2023-07-13 04:05:21 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
2023-07-13 04:07:34 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
2023-07-13 04:11:04 +0200td_(~td@i53870932.versanet.de) (Ping timeout: 252 seconds)
2023-07-13 04:12:18 +0200xff0x_(~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 250 seconds)
2023-07-13 04:12:54 +0200td_(~td@i5387091F.versanet.de)
2023-07-13 04:13:24 +0200Yurtdejure(~Yurtdejur@128.153.220.246)
2023-07-13 04:13:45 +0200arahael_(~arahael@1.145.56.143) (Ping timeout: 246 seconds)
2023-07-13 04:14:32 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-13 04:15:26 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-13 04:15:48 +0200Yurtdejure(~Yurtdejur@128.153.220.246) (Quit: Leaving.)
2023-07-13 04:21:18 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-13 04:21:19 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-13 04:21:19 +0200wroathe(~wroathe@user/wroathe)
2023-07-13 04:22:19 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-13 04:24:44 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2023-07-13 04:24:56 +0200[_][itchyjunk]
2023-07-13 04:25:34 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 04:30:22 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-13 04:30:26 +0200razetime(~quassel@117.193.5.76) (Ping timeout: 245 seconds)
2023-07-13 04:30:26 +0200picklejuice(~root@172.56.222.50) (Read error: Connection reset by peer)
2023-07-13 04:30:37 +0200JimL(~quassel@89.162.16.26) (Ping timeout: 245 seconds)
2023-07-13 04:31:37 +0200razetime(~quassel@117.193.6.5)
2023-07-13 04:33:53 +0200JimL(~quassel@89.162.16.26)
2023-07-13 04:37:48 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 04:39:32 +0200JimL(~quassel@89.162.16.26) (Ping timeout: 245 seconds)
2023-07-13 04:39:45 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-07-13 04:40:52 +0200puke(~puke@user/puke)
2023-07-13 04:41:59 +0200puke(~puke@user/puke) (Max SendQ exceeded)
2023-07-13 04:42:28 +0200puke(~puke@user/puke)
2023-07-13 04:44:43 +0200m21it(~m21it@2800:ac:8014:1816:9812:736a:f822:ce6f) (Remote host closed the connection)
2023-07-13 04:44:57 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-13 04:46:01 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 04:50:51 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-13 04:58:23 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-07-13 05:00:34 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-07-13 05:00:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-07-13 05:00:34 +0200finn_elijaFinnElija
2023-07-13 05:00:35 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-13 05:00:37 +0200mewramira
2023-07-13 05:03:53 +0200tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2023-07-13 05:04:39 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 05:09:22 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
2023-07-13 05:18:54 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-07-13 05:20:17 +0200arahael_(~arahael@1.145.2.91)
2023-07-13 05:21:00 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2023-07-13 05:27:04 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-07-13 05:29:00 +0200notzmv(~zmv@user/notzmv)
2023-07-13 05:29:32 +0200arahael_(~arahael@1.145.2.91) (Ping timeout: 245 seconds)
2023-07-13 05:32:59 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-07-13 05:38:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
2023-07-13 05:38:47 +0200aforemny_(~aforemny@2001:9e8:6cee:2b00:575d:a630:13ac:5fc5)
2023-07-13 05:38:59 +0200aforemny(~aforemny@2001:9e8:6cc8:7800:6851:c622:94fb:817b) (Ping timeout: 264 seconds)
2023-07-13 05:54:34 +0200bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-07-13 06:01:46 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-07-13 06:07:08 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 06:08:07 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-13 06:11:11 +0200cassiopea(~cassiopea@user/cassiopea)
2023-07-13 06:11:42 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
2023-07-13 06:16:37 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 06:20:25 +0200XliminalX(~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Remote host closed the connection)
2023-07-13 06:21:41 +0200XliminalX(~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-07-13 06:25:16 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2023-07-13 06:30:21 +0200biberu(~biberu@user/biberu)
2023-07-13 06:30:36 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-07-13 06:39:14 +0200 <sm> hey all. What function picks the first result of applying a monadic action to a sequence, like Monad m => (a -> m b) -> [a] -> b ? And why doesn't hoogle find anything for that type signature ?
2023-07-13 06:41:46 +0200 <sm> aha, should be (a -> m b) -> [a] -> m b
2023-07-13 06:44:36 +0200 <[Leary]> sm: Maybe you want `asum . fmap`?
2023-07-13 06:44:55 +0200 <sm> thanks.. no I really just want the first
2023-07-13 06:47:08 +0200 <[Leary]> Err. `foldr1 (<*) . fmap` then? I doubt you'd find that exposed by a library.
2023-07-13 06:49:27 +0200 <Axman6> that's not quite the same right? that will execute the function on all inputs, I assume youy want shortcutting
2023-07-13 06:53:16 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-13 06:53:17 +0200hgolden_(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Quit: Leaving)
2023-07-13 07:01:20 +0200 <sm> right, I went with:
2023-07-13 07:01:20 +0200 <sm> case mapM (findError ...) as of
2023-07-13 07:01:20 +0200 <sm> Just (err:_) -> Left err
2023-07-13 07:01:20 +0200 <sm> _ -> Right ()
2023-07-13 07:06:08 +0200 <ski> sm : do you only want `Left', in case `findError ...' gives a `Just' for *every* element of `as' ?
2023-07-13 07:06:46 +0200 <sm> I only want to find the first Just, and transform it to a Left
2023-07-13 07:07:06 +0200 <sm> to report just the first error
2023-07-13 07:07:31 +0200 <ski> what if `map (findError ...) as = [Just err,Nothing,...]', do you still want `Left err' ?
2023-07-13 07:08:35 +0200 <ski> (because that's not what your snippet just above does. it'll only give `Left' if *every* `findError ...' call gives a `Just')
2023-07-13 07:10:28 +0200 <monochrom> asum
2023-07-13 07:10:29 +0200 <ski> if you want to abort on first found error (if any), then use `Either Err' (and have `findError ...' give `Left err', not `Just err' .. or convert, using `maybe (Right ()) Left :: Maybe Err -> Either Err ()')
2023-07-13 07:11:36 +0200 <sm> ski: argh, thanks! I meant to write (Just err : _) -> ...
2023-07-13 07:11:41 +0200 <jade[m]> <sm> "hey all. What function picks the..." <- just based off of the description it sounds like you want `foo f = f . head` which seems way too trivial?
2023-07-13 07:11:53 +0200 <jade[m]> im sure im just not reading it right
2023-07-13 07:12:18 +0200 <ski> yea, i guess `asum' would also work
2023-07-13 07:12:31 +0200 <Axman6> m definitely need to be more constrained, or the function needs to return more than just b
2023-07-13 07:12:37 +0200smtried to write the stupid version, and still hasn't grokked the types
2023-07-13 07:13:15 +0200trev(~trev@user/trev)
2023-07-13 07:13:21 +0200 <ski> sm : well, in that case, did you also mean to write `map' rather than `mapM' ?
2023-07-13 07:13:45 +0200 <ski> (also, btw, the brackets in `(Just err : _) -> ...' are redundant)
2023-07-13 07:14:21 +0200 <sm> hmm.. didn't I get it right ? (It's working so far)
2023-07-13 07:15:00 +0200 <sm> HLS infers that mapM's type as ([Posting] -> Maybe String) -> [[Posting]] -> Maybe [String]
2023-07-13 07:15:16 +0200 <ski> just saying that if you change the type of your pattern, perhaps you meant to adapt the expression being scrutinized, as well (unless you intend for that `mapM' to run in the list monad, rather than `Maybe' monad ?)
2023-07-13 07:15:48 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-13 07:16:00 +0200 <sm> here's the full function:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/614ab24356285cbeebce3e92d06d954ad91e…>)
2023-07-13 07:16:58 +0200 <ski> (in which case, i guess, `as' is not a list, but a `Maybe')
2023-07-13 07:17:08 +0200 <ski> @type \f as -> mapM f as :: [Maybe String]
2023-07-13 07:17:09 +0200 <lambdabot> (a -> [String]) -> Maybe a -> [Maybe String]
2023-07-13 07:17:20 +0200 <ski> @type \f as -> mapM f (as :: Maybe String) :: [Maybe String]
2023-07-13 07:17:21 +0200 <lambdabot> (String -> [String]) -> Maybe String -> [Maybe String]
2023-07-13 07:17:59 +0200 <sm> (and: findRecentAssertionError :: Day -> [Posting] -> Maybe String)
2023-07-13 07:18:34 +0200 <sm> I think it's ok
2023-07-13 07:19:04 +0200 <jade[m]> sm: > <@simonmic:matrix.org> here's the full function:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/089823d8766ee567fc1c985261ab426b623f…>)
2023-07-13 07:19:17 +0200 <sm> gah: "ERROR: please avoid regexps larger than 300 characters, they trigger a memory leak in regex-tdfa"
2023-07-13 07:19:55 +0200 <sm> I added this message long ago, I wonder if it's still true
2023-07-13 07:19:57 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-07-13 07:19:58 +0200 <ski> sm : that will *only* give `Left err', if *all* elements of `acctps' (which should contain at least one element) give a `Just'
2023-07-13 07:19:59 +0200 <chreekat> Lol
2023-07-13 07:20:39 +0200 <ski> sm : if you intended to get a `Left err', if at *least* one of the `acctps' gives a `Just', then you need to rethink
2023-07-13 07:21:09 +0200 <jade[m]> oh
2023-07-13 07:21:26 +0200 <sm> ski: hmm, as you were saying. Ok, it's subtle and I guess I have missed it (twice). Thank you. I'll rethink
2023-07-13 07:21:51 +0200 <sm> it's working, but I suppose accidentally
2023-07-13 07:22:47 +0200 <ski> sm : fixes : use `Either String ()' as result of `findRecentAssertionError' (or convert the result to that, using `maybe'). or use `asum' as also suggested
2023-07-13 07:23:45 +0200catch22(~catch22@204.40.96.58.static.exetel.com.au)
2023-07-13 07:24:09 +0200 <sm> won't asum "sum" (concatenate) the strings ?
2023-07-13 07:24:42 +0200 <ski> > asum [Nothing,Just "foo",Nothing,Just "bar"]
2023-07-13 07:24:43 +0200 <lambdabot> Just "foo"
2023-07-13 07:25:11 +0200 <sm> aha! Well thanks to the asum suggesters!
2023-07-13 07:25:31 +0200 <ski> `asum' is probably the simplest, for your (existing) situation
2023-07-13 07:25:35 +0200 <jade[m]> sm: same meaning of "sum" as in sum-type I believe
2023-07-13 07:26:07 +0200 <ski> @type asum -- no contraint on element type `a' itself
2023-07-13 07:26:08 +0200 <lambdabot> (Foldable t, Alternative f) => t (f a) -> f a
2023-07-13 07:26:09 +0200 <sm> asum: "The sum of a collection of actions using (<|>), generalizing concat."
2023-07-13 07:26:36 +0200 <ski> @type msum
2023-07-13 07:26:37 +0200 <lambdabot> (Foldable t, MonadPlus m) => t (m a) -> m a
2023-07-13 07:28:00 +0200 <sm> I find it rather hard to connect this abstract doc with "what will it do to a list of Maybes ?"
2023-07-13 07:28:02 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 07:29:00 +0200 <sm> "concat" would seem to imply keeping all the values
2023-07-13 07:29:31 +0200 <sm> "sum" seems to imply aggregate all the values
2023-07-13 07:30:12 +0200 <sm> never mind, onward
2023-07-13 07:30:14 +0200 <ski> i believe it's "sum", because of the names "mzero","mplus"
2023-07-13 07:32:26 +0200 <Axman6> Is it bad that I'm finding myself wanting dependant types in python? I really want to represent the size of something in its type
2023-07-13 07:32:30 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
2023-07-13 07:32:31 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 245 seconds)
2023-07-13 07:33:11 +0200falafel(~falafel@2603-7000-a700-8710-ff20-0c7b-3a36-fc77.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-07-13 07:33:32 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net)
2023-07-13 07:35:35 +0200acidjnk(~acidjnk@p200300d6e7072f1890d33f2b4a36e93a.dip0.t-ipconnect.de)
2023-07-13 07:36:24 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-13 07:38:08 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 250 seconds)
2023-07-13 07:38:33 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net)
2023-07-13 07:38:56 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-13 07:43:22 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2023-07-13 07:43:26 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-07-13 07:46:00 +0200takuan_dozo(~takuan@178-116-218-225.access.telenet.be)
2023-07-13 07:46:01 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer)
2023-07-13 07:52:00 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 250 seconds)
2023-07-13 07:53:02 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net)
2023-07-13 07:57:57 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-13 07:59:38 +0200 <dminuoso> sm | [05:28:00] I find it rather hard to connect this abstract doc with "what will it do to a list of Maybes ?"
2023-07-13 07:59:58 +0200 <dminuoso> This applies to pretty much any typeclass that doesnt capture a specific behavior, but just loosely collects things that all follow similar laws.
2023-07-13 08:00:41 +0200mncheck(~mncheck@193.224.205.254)
2023-07-13 08:00:42 +0200 <dminuoso> It's largely why Monad is so difficult to absord. You cant figure out what instances do just from staring at the laws.
2023-07-13 08:01:16 +0200mauke(~mauke@user/mauke) (Ping timeout: 245 seconds)
2023-07-13 08:01:50 +0200 <Clinton[m]> ski: yep they were actually thank you. I was already using `barbies` elsewhere, I realised I could just add a `bmap` instance.... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/2c5f78e51c18cdf5c7a37ae85b46d33c0fa6…>)
2023-07-13 08:03:31 +0200 <sm> dminuoso: usually in this situation I would click on the relevant typeclass, and from there to the concrete type's implementation to see what it does. I wasn't able to do that this time
2023-07-13 08:03:32 +0200 <sm> bit of a documentation and dev experience challenge
2023-07-13 08:04:40 +0200 <dminuoso> I think it leads to frustrating and bad UX if looking up the implementation is whats required to understand an interface.
2023-07-13 08:05:14 +0200 <sm> indeed, not having to do that would be even better. In good cases, the concrete type has a haddock saying what it does
2023-07-13 08:05:38 +0200 <dminuoso> While in haddock you could in principle attach some text to the instance, it would be more useful if you could just select an instance and it would display haddock strings attached to the methods instead.
2023-07-13 08:05:51 +0200 <dminuoso> And a universe in which methods were thoroughly documented.
2023-07-13 08:06:02 +0200 <sm> YES
2023-07-13 08:06:45 +0200 <sm> (For the record, I settled on this, finding it clearer than asum):
2023-07-13 08:06:45 +0200 <sm> in case mapMaybe (findRecentAssertionError today) acctps of
2023-07-13 08:06:45 +0200 <sm> [] -> Right ()
2023-07-13 08:06:45 +0200 <sm> firsterr:_ -> Left firsterr
2023-07-13 08:08:01 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 08:08:53 +0200 <dminuoso> sm: You could also traverse over the thing.
2023-07-13 08:09:03 +0200 <dminuoso> I feel like that might capture the behavior better
2023-07-13 08:09:42 +0200 <sm> oh, eg ?
2023-07-13 08:11:17 +0200 <sm> just s/mapMaybe/traverse/ ?
2023-07-13 08:11:22 +0200 <dminuoso> sm: So turn findRecentAssertionError into producing `Either Err ()`, then the whole thing becomes just a `traverse (findRecentAssertionError today) acctps`
2023-07-13 08:11:44 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-13 08:12:19 +0200 <dminuoso> Because `Either T` under Monad behaves an exception effect, aborting on the first T
2023-07-13 08:13:01 +0200 <ski> Clinton[m] : hm, surprised that seems to work with `NoTypeInType'
2023-07-13 08:13:09 +0200 <sm> I see. Still, ilke asum, I find it a little non-obvious to the average reader/would-be-contributor that traverse will pick the first Just here. mapMaybe at least has a clear doc and the firsterr name also helps
2023-07-13 08:13:35 +0200 <ski> (i dunno about a way to generate the boilerplate. `Generic' might work, i suppose, or else TH)
2023-07-13 08:13:39 +0200 <sm> s/Just/error/
2023-07-13 08:13:50 +0200 <dminuoso> sm: well, rename findRecentAssertoin error into `assertNoError`
2023-07-13 08:13:56 +0200 <dminuoso> Or some such
2023-07-13 08:14:26 +0200 <dminuoso> `traverse (assertNoError today) acctps` reads fine to me.
2023-07-13 08:14:42 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-13 08:14:50 +0200 <dminuoso> or `for_ acctps (assertNoErr today)`
2023-07-13 08:14:57 +0200 <sm> you would read that and think "this will evaluate to the first error" ?
2023-07-13 08:15:19 +0200 <dminuoso> sm: To me it reads like something that goes over all acctps and checks that there are no errors. Thats the intent.
2023-07-13 08:15:28 +0200 <dminuoso> What this does internally is something I can discover easily if I cared enough.
2023-07-13 08:15:36 +0200 <Clinton[m]> ski: yeah, just needs `DataKinds`. I think the `singletons` library does the job. It's just a bit more generalised than my use case, so it took me a while to work out how to apply it. I'll apparently need to quasi-quote the data type definition to general the singleton template Haskell but that's fine in my use case.
2023-07-13 08:15:37 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 245 seconds)
2023-07-13 08:15:41 +0200 <ski> dminuoso : yea, i suggested `Either Err ()' (with `mapM', which sm was initially using), and others suggested `asum' (on `Maybe Err')
2023-07-13 08:16:18 +0200 <ski> sm : `mapMaybe' looks fine, to me
2023-07-13 08:16:49 +0200 <dminuoso> I guess it depends on established code styles. I relatively heavy use of `traverse`.
2023-07-13 08:17:21 +0200 <ski> mhm, Clinton[m]
2023-07-13 08:17:25 +0200 <sm> yup. I want this to be readable to non-expert haskellers (and myself next year)
2023-07-13 08:17:26 +0200 <dminuoso> But I do have plenty of `wither` (generalized form of mapMaybe) as well. :)
2023-07-13 08:17:39 +0200 <sm> well thanks for the input all. This might get refactored later, but not today, I spent too much time on it.
2023-07-13 08:17:59 +0200 <dminuoso> Happy to bikeshed. :)
2023-07-13 08:18:08 +0200 <sm> I had tests passing and was ready to push this bug, and it would have been a pain to track down much later. ski and #haskell FTW!!
2023-07-13 08:18:45 +0200nick4(~nick@2600:8807:9084:7800:8939:f628:ed3d:955) (Ping timeout: 246 seconds)
2023-07-13 08:19:36 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-13 08:31:02 +0200matijja(~matijja@193.77.181.201) (Ping timeout: 252 seconds)
2023-07-13 08:31:02 +0200Philonous(~Philonous@user/philonous) (Ping timeout: 252 seconds)
2023-07-13 08:31:16 +0200mncheck(~mncheck@193.224.205.254) (Read error: Connection reset by peer)
2023-07-13 08:31:46 +0200cassiopea(~cassiopea@user/cassiopea) (Ping timeout: 252 seconds)
2023-07-13 08:32:08 +0200mmaruseacph2(~mihai@mihai.page) (Ping timeout: 252 seconds)
2023-07-13 08:32:35 +0200jonathan(~jonathan@c83-252-3-92.bredband.tele2.se)
2023-07-13 08:32:35 +0200Philonous_(~Philonous@user/philonous)
2023-07-13 08:32:35 +0200mncheck-m(~mncheck@193.224.205.254)
2023-07-13 08:32:35 +0200cassiope1(~cassiopea@user/cassiopea)
2023-07-13 08:32:35 +0200mmarusea1ph2(~mihai@mihai.page)
2023-07-13 08:32:49 +0200matijja(~matijja@193.77.181.201)
2023-07-13 08:38:10 +0200hgolden(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
2023-07-13 08:40:43 +0200dibblego(~dibblego@haskell/developer/dibblego) (Quit: λ)
2023-07-13 08:40:57 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 08:40:57 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 08:40:57 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 08:41:12 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-13 08:41:40 +0200michalz(~michalz@185.246.207.215)
2023-07-13 08:41:55 +0200ft(~ft@p3e9bcafd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-13 08:42:42 +0200titibandit(~titibandi@user/titibandit)
2023-07-13 08:43:43 +0200ft(~ft@p3e9bc835.dip0.t-ipconnect.de)
2023-07-13 08:50:45 +0200fendor(~fendor@2a02:8388:1640:be00:bfd6:9a8f:d4f6:3a03)
2023-07-13 08:51:28 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
2023-07-13 08:55:19 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 08:56:33 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 09:00:38 +0200catch22(~catch22@204.40.96.58.static.exetel.com.au) (Quit: Leaving)
2023-07-13 09:01:02 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-07-13 09:02:05 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-13 09:02:44 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 09:03:48 +0200bilegeek(~bilegeek@2600:1008:b023:ebcc:e781:815d:405f:74ed) (Quit: Leaving)
2023-07-13 09:05:16 +0200Guest9190(~finn@176-151-21-224.abo.bbox.fr)
2023-07-13 09:15:05 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-07-13 09:20:17 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 09:21:02 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 09:21:53 +0200gurkenglas(~gurkengla@dynamic-002-247-240-129.2.247.pool.telefonica.de)
2023-07-13 09:22:42 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-07-13 09:24:09 +0200dibblego(~dibblego@haskell/developer/dibblego) (Quit: λ)
2023-07-13 09:25:11 +0200 <arahael_> I'm attempting to create a new monad, just to try and relearn some of my old haskell, however, I want this monad to effectively "concat" every result it has, however, I'm not sure how to get access to the Semigroup instance:
2023-07-13 09:25:15 +0200 <arahael_> What I have: instance Monad HtmlElementS where
2023-07-13 09:25:40 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
2023-07-13 09:26:34 +0200 <arahael_> HtmlElementS is a type where I would like it to contain just HtmlElement, but because I need HtmlElementS to have type '* -> *' for some reason (Not entirely sure why...), I have to leave it underspecified. Which means the monad instance has to be fully generic. How can I otherwise make it instead be: instance Monad (HtmlElementS HtmlElement) where ... ?
2023-07-13 09:27:26 +0200 <arahael_> Because without knowing that the type is HtmlElement, I can't access it's Semigroup instance.
2023-07-13 09:28:32 +0200Wstfgl0Me-me
2023-07-13 09:28:36 +0200Me-me(~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Changing host)
2023-07-13 09:28:36 +0200Me-me(~me-me@user/me-me)
2023-07-13 09:28:43 +0200 <dminuoso> arahael_: The why is really hard to explain beyond just looking at
2023-07-13 09:28:46 +0200 <dminuoso> % :t (>>=)
2023-07-13 09:28:46 +0200 <yahb2> (>>=) :: Monad m => m a -> (a -> m b) -> m b
2023-07-13 09:28:55 +0200 <dminuoso> % :t return
2023-07-13 09:28:56 +0200 <yahb2> return :: Monad m => a -> m a
2023-07-13 09:29:10 +0200 <dminuoso> Note that the quantification is a bit misleading here.
2023-07-13 09:29:20 +0200 <dminuoso> Assume you are writing an instance for a particular type called T.
2023-07-13 09:29:24 +0200 <dminuoso> Then you have:
2023-07-13 09:29:36 +0200 <dminuoso> (>>=) :: forall a b. T a -> (a -> T b) -> m b
2023-07-13 09:29:55 +0200 <dminuoso> arahael_: Can you see how fundamentally this is about parameterized types that you cant/dont control?
2023-07-13 09:30:25 +0200 <arahael_> I think so, so there's no way for me to say something like, "Define this as an instance of Monad whenever a and b have a Semigroup instance?"
2023-07-13 09:30:29 +0200Putonlalla(~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 258 seconds)
2023-07-13 09:30:45 +0200 <dminuoso> arahael_: Maybe start from the beginning. The desire to make it a Monad instance seems strange.
2023-07-13 09:30:47 +0200 <arahael_> Because if I could say that, then that'd be a different type quantification?
2023-07-13 09:30:52 +0200 <dminuoso> Why do you insist on making a Monad instance?
2023-07-13 09:31:32 +0200 <arahael_> dminuoso: It is a bit strange, yeah. What I'm attempting to do is define a nice little DSL that makes it easy to code generate an HTML document. Not sure if it's something pragmatic, it's just a useful excercise to explore haskell with.
2023-07-13 09:32:34 +0200 <arahael_> So basically I want to be able to do something like: html = do h1 "The Title"; p "This is the first paragraph"; etc...
2023-07-13 09:32:52 +0200 <dminuoso> Okay. So the Monad wish comes from wanting to write this inside do-notation?
2023-07-13 09:32:58 +0200 <arahael_> Basically, yeah.
2023-07-13 09:33:01 +0200 <dminuoso> Okay thats fine
2023-07-13 09:33:24 +0200 <dminuoso> arahael_: So consider this example why it must be parametrized:
2023-07-13 09:33:25 +0200 <arahael_> It also came from observing that 'Free monads" are apparently great for defining DSL's like that. Except I don't really understand how to define those either.
2023-07-13 09:33:32 +0200 <dminuoso> You could write: a <- pure '1'
2023-07-13 09:33:50 +0200 <dminuoso> Whether you actually want to write that or not is irrelevant. If you make it Monad, that interface must be supported.
2023-07-13 09:33:52 +0200 <dminuoso> Similarly:
2023-07-13 09:34:03 +0200 <dminuoso> `a <- yourHTMLbuilderMonad` in general must be something sensible
2023-07-13 09:34:11 +0200 <ski> perhaps you could make an output/logging/writer monad
2023-07-13 09:34:41 +0200 <ski> i guess, `Writer HtmlElement' or so
2023-07-13 09:35:42 +0200 <arahael_> dminuoso: Trouble is, right now, the `a <- yourHtmlBuilderMonad` only returns the last item because my `>>=` is just: HtmlElementS a >>= f = f a
2023-07-13 09:36:12 +0200 <dminuoso> arahael_: What Im rather saying is, a monad has some (generalized/rough) notion of "result" that each action can embody.
2023-07-13 09:36:17 +0200 <ski> you've defined `newtype HtmlElementS a = HtmlElementS a' ?
2023-07-13 09:36:23 +0200 <arahael_> ski: Yes.
2023-07-13 09:36:35 +0200 <dminuoso> arahael_: Perhaps start with what ski recommended wrt output/logging/writer.
2023-07-13 09:36:40 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 09:36:40 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 09:36:40 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 09:36:46 +0200 <ski> how about `data HtmlElementS a = MkHtmlElementS HtmlElement a' ?
2023-07-13 09:37:13 +0200titiband1t(~titibandi@user/titibandit)
2023-07-13 09:37:13 +0200 <dminuoso> ski: Mmm, that wont be enough sensibly, you need a zipper at least.
2023-07-13 09:37:14 +0200 <ski> (which is basically equivalent to `type HtmlElementS = Writer HtmlElement')
2023-07-13 09:37:17 +0200 <arahael_> ski: I did think about just using a state monad, but I wanted to figure out how to *define* this.
2023-07-13 09:37:41 +0200 <ski> why state ?
2023-07-13 09:37:45 +0200 <ski> dminuoso : why zipper ?
2023-07-13 09:38:07 +0200 <dminuoso> ski: In most conceivable scenarios for HTML building, you will not just want a list of HTML tags, but probably build a tree of things.
2023-07-13 09:38:13 +0200 <ski> anyway, nothing stopping you from explicitly giving the `Monad' instance
2023-07-13 09:38:32 +0200 <dminuoso> But I guess you can also just do things like nested do-blocks with this style
2023-07-13 09:38:33 +0200 <ski> dminuoso : could be fixed with an auxilary combinator ?
2023-07-13 09:38:52 +0200 <arahael_> dminuoso: I'm currently looking up resources that might guide me towards knowing how to *implement* the writer monad.
2023-07-13 09:39:05 +0200 <ski> well, i mean, like `p' and similar could gather up and put in a substructure
2023-07-13 09:39:20 +0200 <ski> (so `HtmlElement' would be the tree type, then)
2023-07-13 09:39:41 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 258 seconds)
2023-07-13 09:39:41 +0200 <dminuoso> arahael_: Writer monad really isnt much more than just a tuple.
2023-07-13 09:40:08 +0200 <dminuoso> arahael_: The idea is that one element is some sort of 'log' that you can append things into, together with some sort of action result type.
2023-07-13 09:40:15 +0200 <arahael_> dminuoso: Sounds like the *monad* is building the value, then? I was trying to make it the HtmlElement itself build the value?
2023-07-13 09:40:33 +0200 <ski> arahael_ : output/logger/writer is just : concatenate/combine output from parallel computations
2023-07-13 09:40:53 +0200 <dminuoso> arahael_: The building isnt the "monad", the building happens in the combinators.
2023-07-13 09:41:40 +0200 <dminuoso> If we take a tuple over some log we append to, then (>>=) becomes isomorphic to: (Log, a) -> (a -> (Log, b)) -> (Log, b)
2023-07-13 09:41:41 +0200 <ski> arahael_ : you wanting to use `do' means that `(>>=)' (and `(>>)') will be called under the covers. that does the plumbing of combining the output log from all parts of the computation, into a single one
2023-07-13 09:41:59 +0200 <dminuoso> arahael_: And if you stare at that type signature for just a minute, you might begin to realize how silly simple the idea really is.
2023-07-13 09:42:11 +0200 <ski> (logA,a) >>= k = (logA <> logB,b)
2023-07-13 09:42:12 +0200chele(~chele@user/chele)
2023-07-13 09:42:13 +0200 <ski> where
2023-07-13 09:42:17 +0200 <ski> (logB,b) = k a
2023-07-13 09:42:53 +0200titiband1t(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-13 09:42:54 +0200 <dminuoso> Oh, I guess I elided a Monoid constraint on `a` (which technically just needs to be Semigroup there, but oh well)
2023-07-13 09:42:58 +0200 <ski> (logA,_) >> (logB,b) = (logA <> logB,b) -- the simpler case
2023-07-13 09:43:02 +0200 <arahael_> dminuoso: Yeah, about that...
2023-07-13 09:43:02 +0200 <dminuoso> err Log!
2023-07-13 09:43:09 +0200 <arahael_> dminuoso: How do you get access to that constraint?
2023-07-13 09:43:19 +0200 <dminuoso> arahael_: In this particular example its assumed to already exist on Log.
2023-07-13 09:43:26 +0200 <arahael_> dminuoso: How!?
2023-07-13 09:43:31 +0200 <dminuoso> `instance Monoid Log`
2023-07-13 09:43:39 +0200 <arahael_> Ah, for MOnoid, yeah.
2023-07-13 09:43:46 +0200 <arahael_> But Monad requires a * -> * type.
2023-07-13 09:43:55 +0200 <arahael_> So there's no way it knows about "Log", rihgt?
2023-07-13 09:43:58 +0200 <arahael_> *Right?
2023-07-13 09:43:58 +0200 <ski> yes ?
2023-07-13 09:44:00 +0200 <ski> no need
2023-07-13 09:44:07 +0200carbolymer_carbolymer
2023-07-13 09:44:12 +0200 <ski> it's `Log', not `a', which needs `Semigroup'/`Monoid'
2023-07-13 09:44:26 +0200 <ski> (`Monoid' is needed for `return'/`pure')
2023-07-13 09:44:34 +0200 <arahael_> In my case I've already defined the Semigroup instance for HtmlElement, but HtmlElementS can't know about it.
2023-07-13 09:44:35 +0200Putonlalla(~Putonlall@it-cyan.it.jyu.fi)
2023-07-13 09:45:27 +0200 <ski> `a' is just whatever custom "monadic result type" that the user of your `HtmlElementS' monad will use. you don't really need to care about it, apart from plumbing it around correctly. `a' is not the logging type (`HtmlElement' in your case)
2023-07-13 09:46:18 +0200 <ski> arahael_ : "but HtmlElementS can't know about it" -- of course it can know about it, as long as `instance Semigroup HtmlElement where ...' is either in the same module, or in a module which is (transitively) imported into your module
2023-07-13 09:46:28 +0200 <arahael_> It is in the same module.
2023-07-13 09:47:05 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-07-13 09:47:05 +0200aforemny_aforemny
2023-07-13 09:47:11 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-13 09:47:13 +0200 <arahael_> But I mean, I can't do antyhing like: data HtmlElementS = HtmlElementS HtmlElement; because I need to keep that type parameter in there.
2023-07-13 09:47:44 +0200 <ski> if you'd be using `Writer', then this would be `instance Monoid w => Monad (Writer w)'. in the `Monad' instance, considering `Writer w a', you're not allowed to add any constraints to *`a'* .. but you *are* allowed to add constaints for `w' (`HtmlElement' in your case)
2023-07-13 09:48:10 +0200CiaoSen(~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef)
2023-07-13 09:48:57 +0200 <arahael_> I need to go soon, is there some good reading material that I should go through for this? I'm already wanting to look up the code for 'Writer', but I'm noticing that most of the examples in Hoogle seem to be based on Monad transformers, which is a complication I dont yet want to figure out.
2023-07-13 09:48:59 +0200 <ski> (but since `HtmlElement' is a type constant, not a type variable, there's no need to say `instance Monoid HtmlElement => Monad HtmlElementS where ...'. because `instance Monoid HtmlElement' is already known, we can remove the (redundant) explicit constraint `Monoid HtmlElement => ' from the former instance declaration)
2023-07-13 09:49:15 +0200 <ski> @where Typeclassopedia
2023-07-13 09:49:15 +0200 <lambdabot> http://www.haskell.org/haskellwiki/Typeclassopedia
2023-07-13 09:49:20 +0200 <ski> @where AAM
2023-07-13 09:49:20 +0200 <lambdabot> http://www.haskell.org/haskellwiki/All_About_Monads
2023-07-13 09:49:54 +0200 <ski> those should talk about `Writer w a', which is what's relevant here
2023-07-13 09:51:11 +0200 <arahael_> I think that's a great page for me to spend some time understanding, I should head off for my thing and then get back to reading that page, and probably implement a bunch of those monads myself before trying to do something fancy with a new monad type.
2023-07-13 09:51:54 +0200 <ski> yes. implementing yourself will probably help. also try to make some example usage as well, using them to solve some simple task
2023-07-13 09:52:21 +0200 <arahael_> Thanks ski, (and thanks dminuoso, for explaining why the types just didn't work how I wanted it, too!) :)
2023-07-13 09:52:36 +0200 <arahael_> ski: I think I'll do exactly that. :)
2023-07-13 09:52:52 +0200 <ski> @where wadler-monads
2023-07-13 09:52:53 +0200 <lambdabot> Monad(ic (, idiomatic/applicative and arrow) effects) introduction papers by Philip Wadler in 1992-01 - 2010 at <https://homepages.inf.ed.ac.uk/wadler/topics/monads.html>. Start from oldest. Perhaps
2023-07-13 09:52:53 +0200 <lambdabot> skip the ones touching upon composable continuations, idioms, constraints, arrows, on a first read
2023-07-13 09:53:30 +0200 <arahael_> I think I'll go through that haskellwiki page first, ,the language there looks reasonably approachable.
2023-07-13 09:53:34 +0200 <ski> you could try some of Wadler's papers (starting from older ones), possibly
2023-07-13 09:53:39 +0200 <ski> Walder tends to be quite readable
2023-07-13 09:54:00 +0200 <arahael_> Ok, well I'll check them out and see whichever ones I want to work through. :)
2023-07-13 09:54:01 +0200 <ski> s/Walder/Wadler/
2023-07-13 09:54:08 +0200 <arahael_> I do need to go now, though - thanks again for your help!
2023-07-13 09:54:14 +0200 <ski> yw
2023-07-13 09:55:08 +0200 <ski> @where hell-monads
2023-07-13 09:55:08 +0200 <lambdabot> "What the hell are Monads?" by Noel Winstanley in 1999-02 at <https://www-users.mat.umk.pl/~fly/materialy/fp/haskell-doc/Monads.html>. Possibly the first (non-paper) general monad tutorial
2023-07-13 09:55:50 +0200 <dminuoso> Lately Ive been wondering whether these law-centric typeclasses were ever a good idea.
2023-07-13 09:57:00 +0200gmg(~user@user/gehmehgeh)
2023-07-13 09:57:58 +0200 <ski> hm, guess that link seems to be broken. <https://web.archive.org/web/19991018214519/http://www.dcs.gla.ac.uk/~nww/Monad.html> works, as well as <https://web.archive.org/web/20221208185730/https://www-users.mat.umk.pl/~fly/materialy/fp/haskell-…>
2023-07-13 09:58:28 +0200 <ski> elaborate ?
2023-07-13 09:59:45 +0200 <dminuoso> So take Monoid for instance. It is an abstract interface that has no clear purpose.
2023-07-13 10:00:21 +0200 <ski> ah, you might be touching upon that there can in general be multiple distinct valid instances ?
2023-07-13 10:00:34 +0200 <dminuoso> Sure, that's half of it.
2023-07-13 10:00:44 +0200 <dminuoso> The other half is that often across the instances, there's no common theme other than really just the laws.
2023-07-13 10:01:34 +0200 <dminuoso> If I asked you "what does <|>" do, you have no choice but to say "anything really, its just about the laws"
2023-07-13 10:02:04 +0200 <dminuoso> Which makes any ad-hoc incantation (where you have an immediate local monomorphization) just hidden code selection.
2023-07-13 10:02:05 +0200 <ski> (also reminds me of occasionally, people, years ago, suggesting something like `class (Functor f,Functor g) => NatTrans f g where natTrans :: f a -> g a' .. which thankfully didn't become a thing)
2023-07-13 10:02:37 +0200 <dminuoso> Say if I write `[1,2] <> [3,4]` Im really just being sneaky, in that the reader cant clearly know what this will do.
2023-07-13 10:03:00 +0200 <dminuoso> You have to specifically know what the Monoid [] instance does, you cant clearly infer the behavior from the laws alone.
2023-07-13 10:03:21 +0200 <dminuoso> Monoid is useful when its used in polymorphic positions say Monad Writer
2023-07-13 10:03:53 +0200 <dminuoso> Or law-centric typeclasses in general
2023-07-13 10:04:29 +0200 <ski> being able to talk about objects in other categories, might perhaps help with part of this
2023-07-13 10:04:49 +0200 <dminuoso> `a >>= f` is quite useless unless you happen know the types involved and the behavior of the monad instance. a `concatMap` f has clear ascribed behavior and behavior.
2023-07-13 10:04:59 +0200 <dminuoso> ascribed behavior and semantics.
2023-07-13 10:05:29 +0200 <ski> (saying `Sum Integer' is a workaround to trying to specify the additive monoid of integers, not as a set/type, but as a monoid)
2023-07-13 10:06:10 +0200 <dminuoso> ski: Well is `getSum (Sum 1 <> Sum 2)` any more useful than `1 + 2`?
2023-07-13 10:06:36 +0200 <dminuoso> Though this is a slightly bad example in that the newtype wrapper very explicitly mentions the behavior
2023-07-13 10:07:03 +0200 <ski> yea .. if you're already in a concrete situation, using a concrete specialization is often preferable. like `map' over `fmap', or `concat' over `join'
2023-07-13 10:08:23 +0200 <ski> well, the point of `Sum' is really to be able to plug in some specific "summarizing" (monoid) behaviour, into some operation that works over any monoid
2023-07-13 10:09:01 +0200merijn(~merijn@195.114.232.94)
2023-07-13 10:09:16 +0200 <ski> (like traversing some custom tree, perhaps pruning away some subtrees, while summarizing found information, perhaps)
2023-07-13 10:09:45 +0200 <dminuoso> ski: Right. Law-centric typeclasses are primarily useful for writing code that is polymorphic over them.
2023-07-13 10:11:20 +0200 <dminuoso> With Monad it often works because some discipline where only one instance is really ever used.
2023-07-13 10:13:15 +0200 <dminuoso> And in part this is why Monad is such a hard hurdle, mainly because its interface and laws are largely not relevant for someone instantiating m in `Monad m => ...`
2023-07-13 10:13:42 +0200 <dminuoso> Its mainly relevant for people writing polymorphic `forall m. Monad m => ...` code
2023-07-13 10:14:08 +0200mmhat(~mmh@p200300f1c7114c4cee086bfffe095315.dip0.t-ipconnect.de)
2023-07-13 10:14:09 +0200mmhat(~mmh@p200300f1c7114c4cee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-07-13 10:19:13 +0200danse-nr3(~francesco@151.57.246.23)
2023-07-13 10:20:26 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b51c:90a2:c6ee:ffbb) (Remote host closed the connection)
2023-07-13 10:21:57 +0200danse-nr3(~francesco@151.57.246.23) (Read error: Connection reset by peer)
2023-07-13 10:22:13 +0200danse-nr3(~francesco@151.47.247.62)
2023-07-13 10:24:07 +0200razetime(~quassel@117.193.6.5) (Ping timeout: 245 seconds)
2023-07-13 10:27:28 +0200titiband1t(~titibandi@user/titibandit)
2023-07-13 10:27:38 +0200danse-nr3(~francesco@151.47.247.62) (Ping timeout: 252 seconds)
2023-07-13 10:28:54 +0200danse-nr3(~francesco@151.54.45.22)
2023-07-13 10:30:22 +0200jonathan(~jonathan@c83-252-3-92.bredband.tele2.se) (Ping timeout: 245 seconds)
2023-07-13 10:31:39 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
2023-07-13 10:32:13 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 10:32:15 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-13 10:32:20 +0200dcoutts(~duncan@195.80.64.243)
2023-07-13 10:32:36 +0200 <merijn> oh fun times
2023-07-13 10:32:50 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Client Quit)
2023-07-13 10:32:55 +0200 <merijn> now I need to go update a ton of code because * gets deprecated in kind signatures
2023-07-13 10:33:18 +0200misterfish(~misterfis@87.215.131.102)
2023-07-13 10:34:39 +0200mei(~mei@user/mei)
2023-07-13 10:35:22 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-13 10:39:21 +0200titiband1t(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-13 10:39:43 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 10:39:43 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 10:39:43 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 10:44:55 +0200 <danse-nr3> i guess you are in good company, wondering whether it can be automated. Just found out about hlint --refactor
2023-07-13 10:45:04 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-07-13 10:45:25 +0200dcoutts(~duncan@195.80.64.243) (Ping timeout: 240 seconds)
2023-07-13 10:47:58 +0200razetime(~quassel@117.193.6.5)
2023-07-13 10:51:14 +0200 <Profpatsch> I never realized that fmap for Map.Strict is kinda dangerous oO
2023-07-13 10:51:20 +0200 <Profpatsch> It uses the lazy fmap
2023-07-13 10:51:41 +0200 <Profpatsch> So one should always use Map.map or Map.mapWithKey
2023-07-13 10:52:16 +0200 <Profpatsch> hlint should really include a lint that detects the usage of bad instances (maybe it does and I don’t know about it?)
2023-07-13 10:52:45 +0200 <Profpatsch> Like, we already lint for Data.Map -> Data.Map.Strict
2023-07-13 10:52:55 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2023-07-13 10:53:04 +0200 <Profpatsch> containers has an uncanny amount of tripwires :(
2023-07-13 10:57:50 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-13 10:59:42 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-13 10:59:58 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com)
2023-07-13 11:00:58 +0200 <danse-nr3> well not really "dangerous" as far as i understand ... just slow
2023-07-13 11:04:08 +0200tbidne[m](~tbidnemat@2001:470:69fc:105::3:6d42) (Remote host closed the connection)
2023-07-13 11:05:32 +0200danse-nr3(~francesco@151.54.45.22) (Remote host closed the connection)
2023-07-13 11:06:55 +0200danse-nr3(~francesco@151.54.45.22)
2023-07-13 11:08:17 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-13 11:09:30 +0200razetime(~quassel@117.193.6.5) (Remote host closed the connection)
2023-07-13 11:11:27 +0200razetime(~quassel@117.193.6.5)
2023-07-13 11:14:24 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-07-13 11:15:47 +0200bontaq(~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 246 seconds)
2023-07-13 11:17:45 +0200jonathan_(~jonathan@ip-185-104-137-43.ptr.icomera.net)
2023-07-13 11:18:13 +0200 <Profpatsch> Yeah that’s dangerous :P
2023-07-13 11:20:54 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-13 11:22:37 +0200ft(~ft@p3e9bc835.dip0.t-ipconnect.de) (Quit: leaving)
2023-07-13 11:25:01 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2023-07-13 11:27:17 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-13 11:30:39 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-07-13 11:31:25 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-07-13 11:32:32 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2023-07-13 11:34:17 +0200Lord_of_Life_Lord_of_Life
2023-07-13 11:35:40 +0200Midjak(~Midjak@82.66.147.146)
2023-07-13 11:47:56 +0200Wojciech_K(~Wojciech_@2a01:4f9:6a:18a8::239)
2023-07-13 11:53:21 +0200barcisz(~barcisz@31-151-117-10.dynamic.upc.nl)
2023-07-13 11:53:32 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-13 12:00:37 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 12:02:02 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
2023-07-13 12:02:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 12:03:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 12:03:42 +0200jonathan_(~jonathan@ip-185-104-137-43.ptr.icomera.net) (Ping timeout: 245 seconds)
2023-07-13 12:04:31 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-07-13 12:05:47 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-13 12:11:19 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-07-13 12:12:25 +0200jonathan_(~jonathan@ip-185-104-137-43.ptr.icomera.net)
2023-07-13 12:13:14 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2023-07-13 12:13:26 +0200infinity0(~infinity0@pwned.gg)
2023-07-13 12:15:51 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-13 12:23:42 +0200jonathan_(~jonathan@ip-185-104-137-43.ptr.icomera.net) (Ping timeout: 250 seconds)
2023-07-13 12:27:27 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
2023-07-13 12:28:01 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-13 12:29:32 +0200CiaoSen(~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 245 seconds)
2023-07-13 12:36:05 +0200 <danse-nr3> hlint --refactor can do huge amounts of edits by itself, but it has a strange annoying bug where it repeats comments lots of times
2023-07-13 12:37:36 +0200__monty__(~toonn@user/toonn)
2023-07-13 12:39:33 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 12:39:33 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 12:39:33 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 12:47:01 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 12:47:54 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-13 12:51:16 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-13 12:57:16 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 12:57:36 +0200buckwheat(~buckwheat@209.122.211.192) (Client Quit)
2023-07-13 12:58:13 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 12:59:23 +0200jonathan_(~jonathan@c-5eea6678-74736162.cust.telenor.se)
2023-07-13 13:00:26 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-13 13:06:43 +0200xff0x_(~xff0x@2405:6580:b080:900:4b46:1f06:e600:57cc)
2023-07-13 13:07:52 +0200razetime(~quassel@117.193.6.5) (Ping timeout: 245 seconds)
2023-07-13 13:08:37 +0200razetime(~quassel@117.193.2.3)
2023-07-13 13:09:23 +0200razetime(~quassel@117.193.2.3) (Remote host closed the connection)
2023-07-13 13:10:44 +0200st4hoo(~st4hoo@188.146.127.34)
2023-07-13 13:14:51 +0200mechap(~mechap@user/mechap) (Ping timeout: 246 seconds)
2023-07-13 13:14:55 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 13:14:55 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 13:14:55 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 13:16:03 +0200mechap(~mechap@user/mechap)
2023-07-13 13:16:55 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 13:21:17 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2023-07-13 13:23:21 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-13 13:25:02 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 13:25:03 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 13:25:03 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-13 13:25:55 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 13:28:00 +0200jsomedon(uid606872@id-606872.hampstead.irccloud.com)
2023-07-13 13:30:09 +0200mikoto-chan(~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d)
2023-07-13 13:31:12 +0200jonathan_(~jonathan@c-5eea6678-74736162.cust.telenor.se) (Ping timeout: 245 seconds)
2023-07-13 13:36:35 +0200jonathan_(~jonathan@94.234.102.120)
2023-07-13 13:37:52 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-13 13:40:07 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-13 13:41:12 +0200mechap(~mechap@user/mechap) (Ping timeout: 240 seconds)
2023-07-13 13:43:45 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-07-13 13:43:46 +0200jonathan_(~jonathan@94.234.102.120) (Read error: Connection reset by peer)
2023-07-13 13:44:36 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com)
2023-07-13 13:48:17 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-13 13:49:10 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-13 13:49:10 +0200dibblego(~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
2023-07-13 13:49:10 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-13 13:49:10 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-07-13 13:49:28 +0200dobblegodibblego
2023-07-13 13:50:42 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-13 13:52:37 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-07-13 13:53:40 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 13:57:45 +0200ddellacosta(~ddellacos@146.70.165.140)
2023-07-13 13:58:03 +0200st4hoo(~st4hoo@188.146.127.34) (Remote host closed the connection)
2023-07-13 13:58:27 +0200st4hoo(~st4hoo@188.146.127.34)
2023-07-13 14:01:26 +0200CiaoSen(~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef)
2023-07-13 14:03:44 +0200euandreh(~Thunderbi@189.6.18.7) (Remote host closed the connection)
2023-07-13 14:04:17 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 14:08:42 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
2023-07-13 14:09:01 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-07-13 14:11:17 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 14:14:14 +0200danse-nr3(~francesco@151.54.45.22) (Ping timeout: 252 seconds)
2023-07-13 14:20:57 +0200mikoto-chan(~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d) (Ping timeout: 246 seconds)
2023-07-13 14:25:54 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
2023-07-13 14:33:28 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 14:33:29 +0200mikoto-chan(~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d)
2023-07-13 14:33:32 +0200xff0x_(~xff0x@2405:6580:b080:900:4b46:1f06:e600:57cc) (Ping timeout: 240 seconds)
2023-07-13 14:35:45 +0200xff0x_(~xff0x@ai086045.d.east.v6connect.net)
2023-07-13 14:37:26 +0200mechap(~mechap@user/mechap)
2023-07-13 14:37:56 +0200mechap(~mechap@user/mechap) (Client Quit)
2023-07-13 14:38:04 +0200gurkenglas(~gurkengla@dynamic-002-247-240-129.2.247.pool.telefonica.de) (Ping timeout: 252 seconds)
2023-07-13 14:38:38 +0200comerijn(~merijn@185.143.104.11)
2023-07-13 14:39:07 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 14:41:25 +0200merijn(~merijn@195.114.232.94) (Ping timeout: 240 seconds)
2023-07-13 14:43:12 +0200comerijn(~merijn@185.143.104.11) (Ping timeout: 252 seconds)
2023-07-13 14:44:51 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Quit: leaving)
2023-07-13 14:44:53 +0200merijn(~merijn@195.114.232.94)
2023-07-13 14:45:47 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-13 14:46:05 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 14:46:35 +0200mauke(~mauke@user/mauke)
2023-07-13 14:49:31 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-07-13 14:50:54 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
2023-07-13 14:53:51 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2023-07-13 14:55:33 +0200 <merijn> And now for the epic journey of converting 4 packages into a single package with multiple public libraries
2023-07-13 14:56:51 +0200danse-nr3(~francesco@151.19.253.178)
2023-07-13 14:57:36 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 15:02:12 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 240 seconds)
2023-07-13 15:05:22 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-13 15:09:12 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 15:10:18 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680)
2023-07-13 15:12:14 +0200 <Profpatsch> wow I just love Haskell; writing tests for a pretty involved csv parser which needs to fetch multiple things from the database in between, moved all database fetchers into a mock record argument, now I can just write a test in `pure`
2023-07-13 15:12:44 +0200 <Profpatsch> Pretty mechanical conversion. I don’t even want to know how brittle this refactor would be in a language with unrestricted side-effects
2023-07-13 15:13:01 +0200 <kuribas> or with crazy mocking practices like python.
2023-07-13 15:14:00 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
2023-07-13 15:14:07 +0200 <Profpatsch> I mean the “pure” handler is still an an `m`, but it’s only MonadIO, MonadThrow and MonadLogger, all of which are available to the test handler
2023-07-13 15:15:15 +0200 <Profpatsch> the non-pure `m` is in MonadPostgres, MonadHttpRequest etc, and also wrapped in a Transaction transformer to run it all atomic on the database
2023-07-13 15:15:31 +0200 <Profpatsch> mtl is amazing
2023-07-13 15:15:42 +0200trev(~trev@user/trev) (Quit: trev)
2023-07-13 15:16:30 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-13 15:18:22 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 15:19:47 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 264 seconds)
2023-07-13 15:20:02 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-07-13 15:20:40 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 15:22:08 +0200st4hoo(~st4hoo@188.146.127.34) (Quit: Leaving)
2023-07-13 15:22:20 +0200laman3(~laman@rego.ai) (Quit: WeeChat 3.5)
2023-07-13 15:22:27 +0200mikoto-chan(~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d) (Ping timeout: 245 seconds)
2023-07-13 15:24:41 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
2023-07-13 15:25:47 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 15:25:55 +0200ccapndave(~ccapndave@mob-194-230-147-118.cgn.sunrise.net)
2023-07-13 15:26:50 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2023-07-13 15:28:54 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Ping timeout: 246 seconds)
2023-07-13 15:28:56 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-07-13 15:31:36 +0200dsrt^(~cd@24.125.210.85) (Remote host closed the connection)
2023-07-13 15:32:27 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 15:34:19 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-13 15:36:09 +0200danse-nr3_(~francesco@151.54.45.22)
2023-07-13 15:37:06 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 15:37:16 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-07-13 15:37:20 +0200ccapndave(~ccapndave@mob-194-230-147-118.cgn.sunrise.net) (Quit: Textual IRC Client: www.textualapp.com)
2023-07-13 15:37:46 +0200jsomedon(uid606872@id-606872.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-13 15:38:11 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 15:39:36 +0200danse-nr3(~francesco@151.19.253.178) (Ping timeout: 245 seconds)
2023-07-13 15:41:27 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-13 15:42:58 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
2023-07-13 15:43:56 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-07-13 15:46:52 +0200dcoutts(~duncan@195.80.64.243)
2023-07-13 15:49:52 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 15:53:10 +0200driib(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2023-07-13 15:54:34 +0200driib(~driib@vmi931078.contaboserver.net)
2023-07-13 15:54:58 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 258 seconds)
2023-07-13 15:55:14 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com) (Remote host closed the connection)
2023-07-13 15:55:39 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com)
2023-07-13 15:59:25 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 15:59:38 +0200 <monochrom> Profpatsch: Mock testing is driving by parametricity (free theorems): http://www.vex.net/~trebla/haskell/abs-type-param.html :)
2023-07-13 16:00:02 +0200 <monochrom> err s/driving/powered/
2023-07-13 16:00:03 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Client Quit)
2023-07-13 16:00:33 +0200 <monochrom> In fact I am teaching that today in class!
2023-07-13 16:01:23 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 16:02:02 +0200barcisz(~barcisz@31-151-117-10.dynamic.upc.nl) (Ping timeout: 252 seconds)
2023-07-13 16:04:32 +0200mncheck-m(~mncheck@193.224.205.254) (Ping timeout: 245 seconds)
2023-07-13 16:04:47 +0200acidjnk(~acidjnk@p200300d6e7072f1890d33f2b4a36e93a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2023-07-13 16:05:55 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 240 seconds)
2023-07-13 16:11:34 +0200dcoutts(~duncan@195.80.64.243) (Ping timeout: 252 seconds)
2023-07-13 16:12:07 +0200kitzman_(~kitzman@user/dekenevs) (Quit: C-x C-c)
2023-07-13 16:12:18 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-07-13 16:12:57 +0200 <yin> i'm having trouble installing ghc via ghcup on void linux
2023-07-13 16:13:16 +0200 <maerwald> yin: yes
2023-07-13 16:13:18 +0200 <maerwald> sec
2023-07-13 16:13:28 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 16:13:29 +0200 <yin> it hangs on "installing ghc (this may take a while)"
2023-07-13 16:13:47 +0200 <maerwald> musl?
2023-07-13 16:14:07 +0200 <yin> glibc
2023-07-13 16:14:28 +0200 <maerwald> that should work
2023-07-13 16:14:42 +0200 <maerwald> also need: xbps-install -S curl gcc gmp make ncurses ncurses-libtinfo-libs perl
2023-07-13 16:15:37 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
2023-07-13 16:15:40 +0200 <yin> check
2023-07-13 16:15:42 +0200 <monochrom> Will there be a null linux too? :)
2023-07-13 16:17:37 +0200 <Profpatsch> monochrom: the problem I have with statements such as this, is that “mocking” is an intuitive term, not a formal one
2023-07-13 16:17:57 +0200 <Profpatsch> ofc it’s true on an intuitive level, but the formalisms around it are not needed for understanding imo
2023-07-13 16:18:13 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 16:18:21 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 16:18:55 +0200 <Profpatsch> once you give it a formal definition, you can start being more precise, but then the question becomes whether you formal definition corresponds to reality in any meaningful way :P
2023-07-13 16:18:57 +0200gmg(~user@user/gehmehgeh)
2023-07-13 16:19:13 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 16:19:16 +0200 <monochrom> I think this one does.
2023-07-13 16:19:48 +0200 <Profpatsch> tbh I feel like type classes and higher kinded types help a lot more in Haskell’s case
2023-07-13 16:20:00 +0200 <Profpatsch> you can’t do half of these things in Rust, or Scala
2023-07-13 16:20:15 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-13 16:20:16 +0200 <Profpatsch> or maybe you can, but it amounts to losing some amount of hair
2023-07-13 16:20:42 +0200 <Profpatsch> RankN is also super useful
2023-07-13 16:20:58 +0200 <Profpatsch> like, many refactorings are just not possible in typed languages without these
2023-07-13 16:21:39 +0200 <yin> what's the log file for ghcup ghc install?
2023-07-13 16:21:52 +0200 <Profpatsch> I guess you could replace all type classes with RankN function arguments pretty mechanically, but then you are back to annoying manual work
2023-07-13 16:22:31 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
2023-07-13 16:24:11 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 16:25:31 +0200dcoutts(~duncan@195.80.64.243)
2023-07-13 16:25:50 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 16:26:40 +0200 <yin> maerwald: it just hangs
2023-07-13 16:26:43 +0200 <maerwald> yin: something in ~/.ghcup/logs
2023-07-13 16:26:49 +0200 <maerwald> run with -v
2023-07-13 16:26:57 +0200 <maerwald> ghcup -v install ghc
2023-07-13 16:27:44 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-13 16:29:23 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-13 16:30:08 +0200mei(~mei@user/mei)
2023-07-13 16:30:17 +0200myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Ping timeout: 246 seconds)
2023-07-13 16:30:55 +0200michalz(~michalz@185.246.207.215) (Ping timeout: 240 seconds)
2023-07-13 16:30:57 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 16:33:30 +0200johnw_(~johnw@69.62.242.138)
2023-07-13 16:33:33 +0200johnw(~johnw@69.62.242.138) (Read error: Connection reset by peer)
2023-07-13 16:34:57 +0200dcoutts(~duncan@195.80.64.243) (Ping timeout: 245 seconds)
2023-07-13 16:35:39 +0200mechap(~mechap@user/mechap)
2023-07-13 16:35:46 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
2023-07-13 16:39:00 +0200euandreh(~Thunderbi@189.6.18.7) (Remote host closed the connection)
2023-07-13 16:39:34 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 16:42:28 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 16:47:02 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 16:47:52 +0200dcoutts(~duncan@195.80.64.243)
2023-07-13 16:49:12 +0200 <kuribas> Profpatsch: can you imagine what you can do in idris with dependent types?
2023-07-13 16:49:42 +0200 <kuribas> Profpatsch: no more annoying newtypes to work around limitations in haskell hkts.
2023-07-13 16:51:36 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-13 16:52:02 +0200 <Profpatsch> kuribas: no I can’t, wake me when Idris has a performing compiler and somebody has reimplemented all of Snoyberg’s libraries to production quality :)
2023-07-13 16:53:58 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 16:56:43 +0200shapr(~user@2600:1700:c640:3100:8173:1c9d:ab8d:9a27)
2023-07-13 16:58:52 +0200dcoutts(~duncan@195.80.64.243) (Ping timeout: 250 seconds)
2023-07-13 16:58:52 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
2023-07-13 16:59:44 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 17:02:10 +0200merijn(~merijn@195.114.232.94) (Ping timeout: 252 seconds)
2023-07-13 17:02:15 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-13 17:04:44 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
2023-07-13 17:07:06 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com) (Ping timeout: 245 seconds)
2023-07-13 17:09:32 +0200Sgeo(~Sgeo@user/sgeo)
2023-07-13 17:10:36 +0200 <kuribas> it has a performing compiler.
2023-07-13 17:10:48 +0200 <kuribas> It may not be performing very well, but it's performing!
2023-07-13 17:11:15 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 17:12:27 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
2023-07-13 17:13:03 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-13 17:16:12 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 17:21:37 +0200driib(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2023-07-13 17:21:46 +0200kitzman(~kitzman@user/dekenevs)
2023-07-13 17:23:03 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 17:23:15 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com)
2023-07-13 17:24:41 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
2023-07-13 17:25:18 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
2023-07-13 17:26:11 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 17:27:27 +0200CiaoSen(~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 245 seconds)
2023-07-13 17:27:52 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 17:32:33 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com) (Read error: Connection reset by peer)
2023-07-13 17:33:26 +0200trev(~trev@user/trev)
2023-07-13 17:34:03 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com)
2023-07-13 17:34:35 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 17:34:50 +0200acidjnk(~acidjnk@p200300d6e7072f18d1756600c61e2eb6.dip0.t-ipconnect.de)
2023-07-13 17:36:19 +0200 <kuribas> And I am not really interested in snoyberg libraries.
2023-07-13 17:36:52 +0200 <kuribas> oh wait, wai is snoyberg right?
2023-07-13 17:36:59 +0200 <kuribas> I do want wai.
2023-07-13 17:37:06 +0200 <yin> maerwald: https://paste.jrvieira.com/1689262618294
2023-07-13 17:37:44 +0200driib(~driib@vmi931078.contaboserver.net)
2023-07-13 17:37:48 +0200 <maerwald> yin: what does the log file show
2023-07-13 17:37:51 +0200 <yin> should it be ...fedora27-linuz.tar.xz ?
2023-07-13 17:38:00 +0200 <yin> this is the log file
2023-07-13 17:38:46 +0200 <maerwald> what log files are there
2023-07-13 17:38:57 +0200dcoutts(~duncan@195.80.64.243)
2023-07-13 17:39:00 +0200 <jade[m]> I recently saw the `Num` instance for `Num b => a -> b` which was super interesting, but also had someone say it was debated whether the instance should be in base
2023-07-13 17:39:17 +0200 <yin> a blank ghc-configure.log and ghcup.log (this)
2023-07-13 17:39:30 +0200 <jade[m]> why is that the case when it is a valid instance and the only one that exists for the type?
2023-07-13 17:39:34 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
2023-07-13 17:40:33 +0200 <yin> maerwald: i pasted the tail, here's in full: https://paste.jrvieira.com/1689262817710
2023-07-13 17:40:38 +0200 <geekosaur> jade[m], because it causes a lot of confusion when you forget a parameter to a function and suddenly ghc can find a match for `Num (a -> b)`
2023-07-13 17:41:34 +0200barcisz(~barcisz@31-151-117-10.dynamic.upc.nl)
2023-07-13 17:41:47 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2023-07-13 17:42:04 +0200 <maerwald> yin: your configure gets *terminated*
2023-07-13 17:42:10 +0200 <maerwald> selinux or some sh*t?
2023-07-13 17:42:27 +0200 <maerwald> not ghcups fault for sure
2023-07-13 17:42:42 +0200 <yin> just a fresh void linux install on a vm
2023-07-13 17:42:54 +0200 <maerwald> well, termination doesn't happen by accident
2023-07-13 17:43:12 +0200 <jade[m]> geekosaur: that makes sense I suppose
2023-07-13 17:43:42 +0200 <jade[m]> to me it moreso seems like that'd be the issue of the error messages, but iirc you run into theoretical limotations
2023-07-13 17:43:59 +0200 <geekosaur> jade[m], that said, we're seeing more and more confusing instances showing up in base (consider Foldable (a,b)) so it might happen at some point
2023-07-13 17:44:46 +0200 <geekosaur> oh, the error messages are confusing enough even without that instance. they get much worse with it. and type inference means the more rope you give ghc, the more likely it hangs you at some distant point from the error
2023-07-13 17:45:18 +0200 <yin> NoImplicitPrelude ftw
2023-07-13 17:46:07 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 17:46:26 +0200 <jade[m]> thanks for the info :)
2023-07-13 17:46:27 +0200 <geekosaur> actually putting it in base would be safe if it were banished to Data.Function.Num or something that you had to import to get it
2023-07-13 17:46:54 +0200 <geekosaur> I think there's a similar thing for a Show instance for functions
2023-07-13 17:47:31 +0200 <jade[m]> that one's really useless imo
2023-07-13 17:47:33 +0200 <geekosaur> although, then you get the argument that the instance is actually for any Applicative, so should it be Control.Applicative.Num
2023-07-13 17:47:45 +0200 <jade[m]> if the one you are talking about is the `<function>` one
2023-07-13 17:47:49 +0200 <geekosaur> yes, but anything better has annoying constraints
2023-07-13 17:48:17 +0200 <yin> maerwald: i found this https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/366
2023-07-13 17:48:38 +0200 <maerwald> yin: that's not the same error
2023-07-13 17:48:55 +0200 <yin> it's not but might be a clue?
2023-07-13 17:48:56 +0200 <maerwald> your 'sh ./configure' gets *terminated*
2023-07-13 17:48:59 +0200 <maerwald> no
2023-07-13 17:49:08 +0200 <maerwald> there's a terminator on your system
2023-07-13 17:49:42 +0200 <maerwald> you can try it manually
2023-07-13 17:49:50 +0200 <maerwald> ghcup prefetch ghc
2023-07-13 17:50:04 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-13 17:50:07 +0200 <maerwald> then: tar xf ~/.ghcup/cache/<tarball>
2023-07-13 17:50:51 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 17:51:53 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 17:52:41 +0200 <yin> it runs for a long time before it get terminated though
2023-07-13 17:53:02 +0200 <maerwald> yeah, something trashed
2023-07-13 17:53:51 +0200 <rachelambda> geekosaur: what's the Show instance for functions?
2023-07-13 17:53:54 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
2023-07-13 17:54:36 +0200jonathan_(~jonathan@host-217-213-130-57.mobileonline.telia.com) (Ping timeout: 252 seconds)
2023-07-13 17:54:47 +0200 <yin> Show instance for what now?
2023-07-13 17:55:14 +0200 <rachelambda> that's what I was thinking
2023-07-13 17:55:41 +0200 <geekosaur[c]> As jade[m] said it's just "<function>"
2023-07-13 17:55:50 +0200 <lyxia> https://hackage.haskell.org/package/base-4.18.0.0/docs/Text-Show-Functions.html
2023-07-13 17:55:56 +0200 <rachelambda> ah
2023-07-13 17:55:58 +0200 <rachelambda> thank you
2023-07-13 17:56:20 +0200 <geekosaur[c]> There's a smarter one that shows types but it's monomorphic
2023-07-13 17:56:25 +0200 <mauke> wait, there's a Num Reader instance in base now?
2023-07-13 17:57:02 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 17:57:13 +0200 <geekosaur[c]> No Jade was asking why there wasn't
2023-07-13 17:57:29 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 17:58:39 +0200 <yin> geekosaur[c]: what's with the [c] ? i know [m] is for matrix
2023-07-13 17:58:41 +0200 <mauke> ah, I misunderstood
2023-07-13 17:59:41 +0200 <geekosaur[c]> IRCcloud because I'm on my phone
2023-07-13 18:00:22 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-07-13 18:00:50 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 18:01:41 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
2023-07-13 18:02:18 +0200bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-07-13 18:02:59 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-07-13 18:03:27 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 18:03:30 +0200off^(~cd@24.125.210.85)
2023-07-13 18:03:46 +0200danse-nr3_(~francesco@151.54.45.22) (Ping timeout: 245 seconds)
2023-07-13 18:04:10 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 18:04:51 +0200 <[Leary]> jade[m]: The only argument I've seen against that instance is that numeric literals accidentally written in application position e.g. `5 ()` would type check and go unnoticed.
2023-07-13 18:05:30 +0200 <mauke> it can get super confusing
2023-07-13 18:05:34 +0200 <jade[m]> that's a valid concern actually
2023-07-13 18:05:38 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-07-13 18:05:41 +0200 <mauke> > (sin + cos) 0.5
2023-07-13 18:05:42 +0200 <lambdabot> error:
2023-07-13 18:05:42 +0200 <lambdabot> • No instance for (Num (Double -> Double))
2023-07-13 18:05:42 +0200 <lambdabot> arising from a use of ‘e_105’
2023-07-13 18:06:04 +0200 <jade[m]> mauke: yeah but that's the part that's actually useful imo
2023-07-13 18:06:37 +0200nick4(~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4)
2023-07-13 18:06:53 +0200 <jade[m]> [Leary]: any sequence of numbers would also typecheck, right?
2023-07-13 18:06:56 +0200 <jade[m]> i.e. 1 2 3
2023-07-13 18:07:15 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 18:07:24 +0200 <mauke> @let instance Num a => Num (e -> a) where fromInteger = pure . fromInteger; abs = fmap abs; signum = fmap signum; negate = fmap negate; (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*)
2023-07-13 18:07:25 +0200 <lambdabot> Defined.
2023-07-13 18:07:29 +0200 <mauke> > (sin + cos) 0.5
2023-07-13 18:07:30 +0200 <lambdabot> 1.3570081004945758
2023-07-13 18:07:42 +0200 <mauke> > 1 "yeah, so what's this?" sin show
2023-07-13 18:07:43 +0200 <lambdabot> 1
2023-07-13 18:09:17 +0200 <rachelambda> I wish fromInteger was not a part of Num
2023-07-13 18:09:35 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
2023-07-13 18:09:53 +0200 <geekosaur[c]> Lots of people do
2023-07-13 18:10:02 +0200 <rachelambda> I except it to be a cold take
2023-07-13 18:10:10 +0200 <rachelambda> haha
2023-07-13 18:10:44 +0200 <[Leary]> jade[m]: Yes. Or a number followed by any sequence of arguments.
2023-07-13 18:11:07 +0200 <rachelambda> along with wishing there were AddMonoid, MulMonoid, AddGroup, MulGroup, Ring, Field, etc classes in place of the current bunch of classes
2023-07-13 18:11:14 +0200 <rachelambda> I guess I should just go use a custom prelude
2023-07-13 18:11:23 +0200 <jade[m]> numeric-prelude
2023-07-13 18:11:47 +0200 <mauke> @let instance Num a => Num (IO a) where fromInteger = pure . fromInteger; abs = fmap abs; signum = fmap signum; negate = fmap negate; (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*)
2023-07-13 18:11:47 +0200 <rachelambda> 👍
2023-07-13 18:11:48 +0200 <lambdabot> Defined.
2023-07-13 18:12:16 +0200 <mauke> finally I can write `readLn + readLn`
2023-07-13 18:12:44 +0200 <mauke> :t readLn + readLn
2023-07-13 18:12:45 +0200 <lambdabot> (Num a, Read a) => IO a
2023-07-13 18:13:07 +0200 <jade[m]> mauke: I feel like this isn't even that bad
2023-07-13 18:13:14 +0200 <rachelambda> @let instance (Num a, Applicative f) => Num (f a) where fromInteger = pure . fromInteger; abs = fmap abs; signum = fmap signum; negate = fmap negate; (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*)
2023-07-13 18:13:15 +0200 <lambdabot> Defined.
2023-07-13 18:13:19 +0200 <rachelambda> haha
2023-07-13 18:13:23 +0200 <rachelambda> slightly cursed
2023-07-13 18:13:41 +0200 <rachelambda> if only there was a way to iterate over any typeclass rather than only Num
2023-07-13 18:13:45 +0200 <rachelambda> to make it truly awful
2023-07-13 18:13:48 +0200 <ddellacosta> Data.Cursed.Slightly
2023-07-13 18:14:28 +0200 <int-e> Data.Cursed.Cursed (re-cursed)
2023-07-13 18:14:46 +0200 <ddellacosta> haha very nice
2023-07-13 18:15:23 +0200 <rachelambda> I think I've seen code like this once trying to implement rank polymorphism as seen in array languages
2023-07-13 18:15:42 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 18:15:51 +0200 <yin> i wish we had this https://www.youtube.com/watch?v=jFk1qpr1ytk
2023-07-13 18:16:02 +0200 <mauke> that instance could be made slightly more confusing by doing fromInteger = fmap pure fromInteger
2023-07-13 18:16:04 +0200 <rachelambda> it's a bit cute using weird instances for Num and the like
2023-07-13 18:17:13 +0200 <mauke> "for many cases Natural numbers retain all of the positive aspects of the Integers with none of the negatives" ohyou.jpg
2023-07-13 18:20:12 +0200 <yin> :)
2023-07-13 18:20:47 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 18:24:49 +0200notzmv(~zmv@user/notzmv)
2023-07-13 18:26:30 +0200 <rachelambda> naturals are very nice
2023-07-13 18:26:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 18:27:28 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 18:29:09 +0200ripspin(~chatzilla@1.145.198.92)
2023-07-13 18:31:42 +0200 <yin> Word
2023-07-13 18:32:39 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 18:33:34 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 18:35:00 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-13 18:35:30 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-07-13 18:38:21 +0200 <rachelambda> "you would say jose but memory is finite, and I would say why are you doing functional programming"
2023-07-13 18:38:25 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 240 seconds)
2023-07-13 18:38:30 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-13 18:38:58 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2023-07-13 18:40:59 +0200picklejuice(~root@172.56.222.214)
2023-07-13 18:43:21 +0200 <yin> good public speaker
2023-07-13 18:45:06 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 18:45:30 +0200razetime(~quassel@117.193.3.219)
2023-07-13 18:46:27 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-13 18:47:02 +0200 <rachelambda> yeah, he's great to listen to
2023-07-13 18:47:49 +0200falafel(~falafel@2603-7000-a700-8710-9d84-55b0-693c-e89b.res6.spectrum.com)
2023-07-13 18:49:44 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 18:50:17 +0200Inst_(~Inst@2601:6c4:4081:2fc0:5c21:6c0c:79b0:64a3) (Ping timeout: 246 seconds)
2023-07-13 18:50:51 +0200razetime(~quassel@117.193.3.219) (Ping timeout: 245 seconds)
2023-07-13 18:51:28 +0200razetime(~quassel@117.193.5.192)
2023-07-13 18:52:32 +0200ars23(~ars23@2a02:2f09:3f14:a200:15ad:aa36:9d5c:6013)
2023-07-13 18:53:42 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
2023-07-13 18:53:59 +0200ars23(~ars23@2a02:2f09:3f14:a200:15ad:aa36:9d5c:6013) (Client Quit)
2023-07-13 18:54:14 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 18:55:12 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-07-13 18:56:37 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 18:57:53 +0200ars23(~ars23@86.120.205.92)
2023-07-13 19:00:22 +0200razetime(~quassel@117.193.5.192) (Ping timeout: 245 seconds)
2023-07-13 19:00:50 +0200razetime(~quassel@117.193.2.221)
2023-07-13 19:01:12 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 19:02:22 +0200jmd_(~jmdaemon@user/jmdaemon)
2023-07-13 19:04:44 +0200ski. o O ( `instance (Finite a,Show a,Show b) => Show (a -> b)' )
2023-07-13 19:05:35 +0200migas(~migas@astra4961.startdedicated.net) (Remote host closed the connection)
2023-07-13 19:05:51 +0200migas(~migas@astra4961.startdedicated.net)
2023-07-13 19:06:03 +0200 <ski> (where e.g. `show not = "\\case {False -> True; True -> False}"')
2023-07-13 19:07:34 +0200 <rachelambda> awful, I love it
2023-07-13 19:08:09 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 19:12:23 +0200misterfish(~misterfis@87.215.131.102) (Ping timeout: 258 seconds)
2023-07-13 19:12:29 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
2023-07-13 19:12:52 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 19:13:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 19:15:33 +0200barcisz(~barcisz@31-151-117-10.dynamic.upc.nl) (Quit: Connection closed)
2023-07-13 19:19:45 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 19:24:57 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 19:27:54 +0200gok(~gok@2601:282:d00:2d60:2143:a66f:233:9ea7)
2023-07-13 19:31:33 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 19:33:52 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
2023-07-13 19:35:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 19:36:16 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 19:37:11 +0200mxs(~mxs@user/mxs) (Ping timeout: 264 seconds)
2023-07-13 19:37:19 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 19:39:07 +0200mxs(~mxs@user/mxs)
2023-07-13 19:39:48 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-13 19:42:06 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 19:43:03 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 19:44:25 +0200razetime(~quassel@117.193.2.221) (Ping timeout: 240 seconds)
2023-07-13 19:46:59 +0200razetime(~quassel@117.193.1.86)
2023-07-13 19:47:27 +0200picklejuice(~root@172.56.222.214) (Ping timeout: 245 seconds)
2023-07-13 19:47:59 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
2023-07-13 19:48:50 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 19:49:04 +0200picklejuice(~root@172.56.219.90)
2023-07-13 19:50:03 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 19:51:35 +0200razetime(~quassel@117.193.1.86) (Ping timeout: 264 seconds)
2023-07-13 19:53:27 +0200razetime(~quassel@117.193.3.135)
2023-07-13 19:53:30 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
2023-07-13 19:54:22 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
2023-07-13 19:56:32 +0200nick4(~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4) (Ping timeout: 240 seconds)
2023-07-13 19:56:37 +0200jmd_(~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
2023-07-13 19:58:42 +0200euandreh(~Thunderbi@189.6.18.7) (Remote host closed the connection)
2023-07-13 20:00:04 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 20:01:22 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:06:02 +0200razetime_(~quassel@117.193.7.68)
2023-07-13 20:06:04 +0200razetime(~quassel@117.193.3.135) (Ping timeout: 250 seconds)
2023-07-13 20:06:16 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 20:06:50 +0200fendor(~fendor@2a02:8388:1640:be00:bfd6:9a8f:d4f6:3a03) (Remote host closed the connection)
2023-07-13 20:07:07 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:09:36 +0200jmd_(~jmdaemon@user/jmdaemon)
2023-07-13 20:11:41 +0200razetime_(~quassel@117.193.7.68) (Ping timeout: 245 seconds)
2023-07-13 20:12:28 +0200razetime(~quassel@117.193.1.199)
2023-07-13 20:13:12 +0200nick4(~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4)
2023-07-13 20:14:57 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 20:16:43 +0200aforemny(~aforemny@2001:9e8:6cee:2b00:575d:a630:13ac:5fc5) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-13 20:16:45 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:17:04 +0200aforemny(~aforemny@i59F516E4.versanet.de)
2023-07-13 20:17:19 +0200gok(~gok@2601:282:d00:2d60:2143:a66f:233:9ea7) (Quit: Client closed)
2023-07-13 20:17:47 +0200nick4(~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4) (Ping timeout: 246 seconds)
2023-07-13 20:21:25 +0200lottaquestions(~nick@2607:fa49:503d:b200:5acb:c775:e1cd:3a88) (Ping timeout: 240 seconds)
2023-07-13 20:21:37 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 20:22:00 +0200pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-54-65-92-160-253.dsl.bell.ca) (Ping timeout: 252 seconds)
2023-07-13 20:28:32 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:29:48 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 20:31:10 +0200jmd_(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2023-07-13 20:32:36 +0200phma_(phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433)
2023-07-13 20:33:21 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 20:33:29 +0200Lears(~Leary]@user/Leary/x-0910699)
2023-07-13 20:34:17 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:34:22 +0200caasih_(sid13241@id-13241.ilkley.irccloud.com)
2023-07-13 20:34:28 +0200ripspin(~chatzilla@1.145.198.92) (Remote host closed the connection)
2023-07-13 20:34:32 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-13 20:34:41 +0200chaitlatte0_(ea29c0bb16@2604:bf00:561:2000::1124)
2023-07-13 20:34:41 +0200jil`(~user@vps-15050500.vps.ovh.net)
2023-07-13 20:34:44 +0200lukec_(9dfd4d094e@2604:bf00:561:2000::10e)
2023-07-13 20:34:45 +0200bsima1_(9d7e39c8ad@2604:bf00:561:2000::dd)
2023-07-13 20:34:45 +0200jkoshy_(99b9359beb@user/jkoshy)
2023-07-13 20:34:45 +0200n1essa_(3d621153a5@2604:bf00:561:2000::df7)
2023-07-13 20:34:47 +0200ggb_(a62ffbaf4f@2604:bf00:561:2000::3ac)
2023-07-13 20:34:52 +0200jakzale_(6291399afa@user/jakzale)
2023-07-13 20:34:56 +0200fvr_(ef3e56ca8b@2604:bf00:561:2000::3c4)
2023-07-13 20:34:58 +0200arcadewise_(52968ed80d@2604:bf00:561:2000::3df)
2023-07-13 20:35:04 +0200fluffyballoon_(45ce440a48@2604:bf00:561:2000::e2)
2023-07-13 20:35:04 +0200whereiseveryone_(206ba86c98@2604:bf00:561:2000::2e4)
2023-07-13 20:35:04 +0200shreyasminocha_(51fdc93eda@user/shreyasminocha)
2023-07-13 20:35:04 +0200theesm_(2cbdf4b38a@2604:bf00:561:2000::11c8)
2023-07-13 20:35:10 +0200jleightcap_(7bc4014b62@user/jleightcap)
2023-07-13 20:35:10 +0200JoelMcCracken_(5ea8252fbb@2604:bf00:561:2000::10e3)
2023-07-13 20:35:10 +0200b0o_(0e4a0bf4c9@2604:bf00:561:2000::1bf)
2023-07-13 20:35:10 +0200sus_(1b7af6299f@user/zeromomentum)
2023-07-13 20:35:10 +0200rselim_(ce261f06ff@2604:bf00:561:2000::257)
2023-07-13 20:35:11 +0200Ankhers_(e99e97ef8e@2604:bf00:561:2000::2a2)
2023-07-13 20:35:11 +0200sm2n_(ae95cb1267@user/sm2n)
2023-07-13 20:35:13 +0200Athas_(athas@sigkill.dk)
2023-07-13 20:35:15 +0200cbarrett_(sid192934@id-192934.helmsley.irccloud.com)
2023-07-13 20:35:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 20:35:24 +0200berberman_(~berberman@user/berberman)
2023-07-13 20:35:24 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-07-13 20:35:27 +0200JSharp_(sid4580@id-4580.lymington.irccloud.com)
2023-07-13 20:35:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 20:36:12 +0200razetime(~quassel@117.193.1.199) (Ping timeout: 245 seconds)
2023-07-13 20:36:24 +0200megaTherion_(~therion@unix.io)
2023-07-13 20:36:29 +0200h2t_(~h2t@user/h2t)
2023-07-13 20:36:49 +0200wagle_(~wagle@quassel.wagle.io)
2023-07-13 20:36:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2023-07-13 20:37:40 +0200jjhoo_(~jahakala@user/jjhoo)
2023-07-13 20:37:47 +0200nshepper1(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2023-07-13 20:37:51 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-07-13 20:38:02 +0200nckx_(~nckx@guix/contributor/nckx)
2023-07-13 20:38:08 +0200Cadey(~cadey@tailscale/xe)
2023-07-13 20:39:07 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
2023-07-13 20:39:13 +0200arthurvl(~arthurvl@77-174-49-144.fixed.kpn.net)
2023-07-13 20:39:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 20:41:19 +0200trev(~trev@user/trev) (Quit: trev)
2023-07-13 20:41:22 +0200cyphase_eviltwin(~cyphase@user/cyphase)
2023-07-13 20:42:09 +0200Midjak(~Midjak@82.66.147.146) (*.net *.split)
2023-07-13 20:42:09 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (*.net *.split)
2023-07-13 20:42:09 +0200takuan_dozo(~takuan@178-116-218-225.access.telenet.be) (*.net *.split)
2023-07-13 20:42:09 +0200mrmr(~mrmr@user/mrmr) (*.net *.split)
2023-07-13 20:42:09 +0200cyphase(~cyphase@user/cyphase) (*.net *.split)
2023-07-13 20:42:09 +0200phma(~phma@host-67-44-208-125.hnremote.net) (*.net *.split)
2023-07-13 20:42:09 +0200kimiamania6(~681cf57f@user/kimiamania) (*.net *.split)
2023-07-13 20:42:09 +0200berberman(~berberman@user/berberman) (*.net *.split)
2023-07-13 20:42:09 +0200Xe(~cadey@tailscale/xe) (*.net *.split)
2023-07-13 20:42:09 +0200Flow(~none@gentoo/developer/flow) (*.net *.split)
2023-07-13 20:42:09 +0200[Leary](~Leary]@user/Leary/x-0910699) (*.net *.split)
2023-07-13 20:42:09 +0200nckx(~nckx@guix/contributor/nckx) (*.net *.split)
2023-07-13 20:42:09 +0200Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (*.net *.split)
2023-07-13 20:42:09 +0200caasih(sid13241@id-13241.ilkley.irccloud.com) (*.net *.split)
2023-07-13 20:42:09 +0200earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (*.net *.split)
2023-07-13 20:42:09 +0200JSharp(sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
2023-07-13 20:42:09 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split)
2023-07-13 20:42:09 +0200jjhoo(~jahakala@user/jjhoo) (*.net *.split)
2023-07-13 20:42:09 +0200megaTherion(~therion@unix.io) (*.net *.split)
2023-07-13 20:42:09 +0200h2t(~h2t@user/h2t) (*.net *.split)
2023-07-13 20:42:09 +0200cbarrett(sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
2023-07-13 20:42:09 +0200jil(~user@vps-15050500.vps.ovh.net) (*.net *.split)
2023-07-13 20:42:09 +0200jleightcap(7bc4014b62@user/jleightcap) (*.net *.split)
2023-07-13 20:42:09 +0200Ankhers(e99e97ef8e@2604:bf00:561:2000::2a2) (*.net *.split)
2023-07-13 20:42:09 +0200fluffyballoon(45ce440a48@2604:bf00:561:2000::e2) (*.net *.split)
2023-07-13 20:42:09 +0200b0o(0e4a0bf4c9@2604:bf00:561:2000::1bf) (*.net *.split)
2023-07-13 20:42:09 +0200jakzale(6291399afa@user/jakzale) (*.net *.split)
2023-07-13 20:42:09 +0200sm2n(ae95cb1267@user/sm2n) (*.net *.split)
2023-07-13 20:42:09 +0200whereiseveryone(206ba86c98@2604:bf00:561:2000::2e4) (*.net *.split)
2023-07-13 20:42:09 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0) (*.net *.split)
2023-07-13 20:42:09 +0200rselim(ce261f06ff@user/milesrout) (*.net *.split)
2023-07-13 20:42:09 +0200lukec(9dfd4d094e@2604:bf00:561:2000::10e) (*.net *.split)
2023-07-13 20:42:09 +0200ggb(a62ffbaf4f@2604:bf00:561:2000::3ac) (*.net *.split)
2023-07-13 20:42:10 +0200bsima1(9d7e39c8ad@2604:bf00:561:2000::dd) (*.net *.split)
2023-07-13 20:42:10 +0200theesm(2cbdf4b38a@2604:bf00:561:2000::11c8) (*.net *.split)
2023-07-13 20:42:10 +0200sus(1b7af6299f@user/zeromomentum) (*.net *.split)
2023-07-13 20:42:10 +0200shreyasminocha(51fdc93eda@user/shreyasminocha) (*.net *.split)
2023-07-13 20:42:10 +0200jkoshy(99b9359beb@user/jkoshy) (*.net *.split)
2023-07-13 20:42:10 +0200arcadewise(52968ed80d@2604:bf00:561:2000::3df) (*.net *.split)
2023-07-13 20:42:10 +0200n1essa(3d621153a5@2604:bf00:561:2000::df7) (*.net *.split)
2023-07-13 20:42:10 +0200JoelMcCracken(5ea8252fbb@2604:bf00:561:2000::10e3) (*.net *.split)
2023-07-13 20:42:10 +0200fvr(ef3e56ca8b@2604:bf00:561:2000::3c4) (*.net *.split)
2023-07-13 20:42:10 +0200wagle(~wagle@quassel.wagle.io) (*.net *.split)
2023-07-13 20:42:10 +0200Athas(athas@sigkill.dk) (*.net *.split)
2023-07-13 20:42:11 +0200nckx_nckx
2023-07-13 20:42:11 +0200caasih_caasih
2023-07-13 20:42:11 +0200JSharp_JSharp
2023-07-13 20:42:12 +0200megaTherion_megaTherion
2023-07-13 20:42:12 +0200Ankhers_Ankhers
2023-07-13 20:42:12 +0200Lord_of_Life_Lord_of_Life
2023-07-13 20:42:12 +0200b0o_b0o
2023-07-13 20:42:12 +0200chaitlatte0_chaitlatte0
2023-07-13 20:42:12 +0200jakzale_jakzale
2023-07-13 20:42:12 +0200theesm_theesm
2023-07-13 20:42:12 +0200fluffyballoon_fluffyballoon
2023-07-13 20:42:12 +0200lukec_lukec
2023-07-13 20:42:12 +0200rselim_rselim
2023-07-13 20:42:12 +0200sus_sus
2023-07-13 20:42:12 +0200jleightcap_jleightcap
2023-07-13 20:42:12 +0200jkoshy_jkoshy
2023-07-13 20:42:12 +0200n1essa_n1essa
2023-07-13 20:42:12 +0200ggb_ggb
2023-07-13 20:42:12 +0200fvr_fvr
2023-07-13 20:42:13 +0200sm2n_sm2n
2023-07-13 20:42:13 +0200cbarrett_cbarrett
2023-07-13 20:42:13 +0200shreyasminocha_shreyasminocha
2023-07-13 20:42:13 +0200JoelMcCracken_JoelMcCracken
2023-07-13 20:42:13 +0200bsima1_bsima1
2023-07-13 20:42:13 +0200arcadewise_arcadewise
2023-07-13 20:42:19 +0200whereiseveryone_whereiseveryone
2023-07-13 20:42:44 +0200CadeyXe
2023-07-13 20:43:26 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Remote host closed the connection)
2023-07-13 20:43:30 +0200mrmr(~mrmr@user/mrmr)
2023-07-13 20:43:46 +0200kimiamania6(~681cf57f@user/kimiamania)
2023-07-13 20:44:01 +0200jmd_(~jmdaemon@user/jmdaemon)
2023-07-13 20:44:55 +0200fiddlerwoaroof(~fiddlerwo@user/fiddlerwoaroof) (Ping timeout: 260 seconds)
2023-07-13 20:46:00 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:47:20 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-13 20:47:55 +0200jmd_(~jmdaemon@user/jmdaemon) (Remote host closed the connection)
2023-07-13 20:48:16 +0200jmd_(~jmdaemon@user/jmdaemon)
2023-07-13 20:49:22 +0200fiddlerwoaroof(~fiddlerwo@user/fiddlerwoaroof)
2023-07-13 20:50:08 +0200Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
2023-07-13 20:50:08 +0200Flow(~none@gentoo/developer/flow)
2023-07-13 20:50:27 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-13 20:50:42 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
2023-07-13 20:51:45 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:52:02 +0200buhman_buhman
2023-07-13 20:52:26 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2023-07-13 20:52:32 +0200buhman(sid411355@id-411355.tinside.irccloud.com) (Changing host)
2023-07-13 20:52:32 +0200buhman(sid411355@user/buhman)
2023-07-13 20:53:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 20:54:53 +0200 <shapr> so quiet
2023-07-13 20:55:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 20:55:49 +0200 <[exa]> y tho
2023-07-13 20:56:36 +0200 <shapr> probably because I'm trying to prevent a rant about property based testing
2023-07-13 20:56:43 +0200 <shapr> I have *opinions*
2023-07-13 20:56:43 +0200ubert(~Thunderbi@178.115.54.100.wireless.dyn.drei.com)
2023-07-13 20:56:46 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
2023-07-13 20:57:31 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 20:57:51 +0200 <Rembane> shapr: I would love to hear one. Either here or in #haskell-offtopic
2023-07-13 20:59:59 +0200 <shapr> Rembane: How about a few lines that's an excerpt from an email I sent to Rudy Matela last week?
2023-07-13 21:00:41 +0200 <shapr> Rembane: how many property based checks is enough? How many is too many and just wasting CPU?
2023-07-13 21:00:51 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 21:01:10 +0200 <shapr> I came up with an answer last year during my most recent time at Recurse Center: https://github.com/shapr/kudzu/
2023-07-13 21:01:47 +0200 <shapr> My answer is, "use the Haskell Program Coverage tool to ask the GHC runtime to tell me which regions of the code have been executed"
2023-07-13 21:02:14 +0200 <shapr> I turn each region into a Bool value, and turn that into a count of regions executed.
2023-07-13 21:02:34 +0200 <shapr> When the total count of regions stops increasing, that's enough tests.
2023-07-13 21:02:50 +0200 <shapr> look how small it is! https://github.com/shapr/kudzu/blob/main/src/Kudzu.hs
2023-07-13 21:02:59 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
2023-07-13 21:03:13 +0200 <Rembane> I love the idea! How well does it work?
2023-07-13 21:03:19 +0200 <shapr> It works extremely well
2023-07-13 21:03:25 +0200 <shapr> BUT WAIT! there's more!
2023-07-13 21:03:53 +0200 <shapr> Rembane: can you guess whic of QuickCheck, HedgeHog, or LeanCheck took the fewest number of generated inputs to reach "enough" ?
2023-07-13 21:04:25 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-07-13 21:04:49 +0200 <shapr> For even more excitement, can you guess why LeanCheck took the fewest number of steps to cover the same amount of code?
2023-07-13 21:04:52 +0200ubert(~Thunderbi@178.115.54.100.wireless.dyn.drei.com) (Quit: ubert)
2023-07-13 21:05:00 +0200 <shapr> Anyway, that's the short talk
2023-07-13 21:05:23 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
2023-07-13 21:05:36 +0200 <shapr> For a longer and weirder talk, cdsmith and I wrote a large piece of either genius or insanity, depending on your viewpoint: https://github.com/shapr/trynocular
2023-07-13 21:06:03 +0200 <Rembane> shapr: I was going to guess QuickCheck because I like to have that package as an answer. I can't guess why LeanCheck took the fewest number of steps. I haven't used the package at all. :D
2023-07-13 21:06:08 +0200 <Rembane> shapr: Why not both?
2023-07-13 21:06:30 +0200 <shapr> The question for trynocular was: can I do gradient descent on random test inputs, and use that to explore what inputs exercise which parts of a codebase?
2023-07-13 21:06:59 +0200 <shapr> The answer is pretty much yes
2023-07-13 21:07:24 +0200 <shapr> With trynocular, it's more about really smart input generators
2023-07-13 21:07:57 +0200 <shapr> roughly, the thunks are wrapped in unsafePerformIO that lets them report when they were forced
2023-07-13 21:08:08 +0200 <shapr> So you know that's an input the code is using
2023-07-13 21:08:24 +0200 <Rembane> That's super neat!
2023-07-13 21:08:51 +0200 <shapr> The one sad part of this whole adventure was that I checked reverse dependencies of all the property based test libraries on hackage
2023-07-13 21:09:02 +0200 <shapr> and 1. far fewer property tests on hackage than I expected
2023-07-13 21:09:05 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 21:09:27 +0200 <shapr> and 2. many libraries that depend on a PBT library use it for unit tests with static inputs :-(
2023-07-13 21:09:56 +0200 <shapr> Rembane: anyway, if you get as excited about PBT as I do, you really want to read Rudy Matela's thesis on PBT tools
2023-07-13 21:10:12 +0200 <shapr> https://matela.com.br/
2023-07-13 21:10:33 +0200 <shapr> I'm a huge fan of PBT and Rudy has the coolest tools and ideas I've seen in decades of reading research papers on this topic
2023-07-13 21:11:19 +0200 <shapr> Rembane: in my opinion, LeanCheck is the simplest and best value generator for property based tests, in almost all cases
2023-07-13 21:11:25 +0200 <Rembane> shapr: Thank you for the links! I am super excited about PBT!
2023-07-13 21:11:29 +0200 <shapr> hurrah!
2023-07-13 21:11:31 +0200 <shapr> I'm not the only one!
2023-07-13 21:11:42 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-13 21:11:43 +0200 <Rembane> shapr: I'm a bit tired though so I'm not very good at english at the moment.
2023-07-13 21:11:47 +0200 <shapr> kein problem
2023-07-13 21:12:02 +0200 <shapr> Wait, I forget which language is your first
2023-07-13 21:12:16 +0200 <shapr> inga problem? svenska?
2023-07-13 21:12:21 +0200shaprshrugs
2023-07-13 21:12:52 +0200phma_(phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433) (Read error: Connection reset by peer)
2023-07-13 21:13:10 +0200 <shapr> And now I go back to trying to get afl-gcc to work inside nix
2023-07-13 21:13:14 +0200 <Rembane> Svenska it is!
2023-07-13 21:13:16 +0200phma_(phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433)
2023-07-13 21:13:23 +0200 <Rembane> shapr: Sounds exciting! GL HF!
2023-07-13 21:13:47 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 21:14:08 +0200tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 246 seconds)
2023-07-13 21:14:23 +0200nick4(~nick@2600:100d:b119:20c8:388e:ed2:1b56:5150)
2023-07-13 21:14:55 +0200 <shapr> tack så mycket! tror det blir kul
2023-07-13 21:15:10 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-07-13 21:15:39 +0200 <Rembane> shapr: No worries! ^^
2023-07-13 21:15:57 +0200 <mauke> I only know PBF
2023-07-13 21:16:56 +0200 <shapr> what's the F?
2023-07-13 21:17:06 +0200 <mauke> fellowship
2023-07-13 21:17:20 +0200lottaquestions(~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20)
2023-07-13 21:18:16 +0200tomboy64(~tomboy64@user/tomboy64)
2023-07-13 21:20:37 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 21:22:26 +0200codaraxis(~codaraxis@user/codaraxis)
2023-07-13 21:23:09 +0200 <picklejuice> set
2023-07-13 21:24:06 +0200picklejuice(~root@172.56.219.90) (Quit: leaving)
2023-07-13 21:25:33 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 21:26:12 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
2023-07-13 21:28:59 +0200troydm(~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2023-07-13 21:29:11 +0200lottaquestions_(~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20)
2023-07-13 21:29:24 +0200lottaquestions(~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20) (Ping timeout: 246 seconds)
2023-07-13 21:29:27 +0200troydm(~troydm@user/troydm)
2023-07-13 21:30:44 +0200nick4(~nick@2600:100d:b119:20c8:388e:ed2:1b56:5150) (Ping timeout: 246 seconds)
2023-07-13 21:32:23 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 21:37:06 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 21:38:13 +0200nick4(~nick@2600:8807:9144:2e00:1de:2bc9:a973:53c9)
2023-07-13 21:41:17 +0200pieguy128(~pieguy128@67.70.103.226)
2023-07-13 21:43:55 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
2023-07-13 21:46:11 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 21:47:52 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
2023-07-13 21:48:05 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Ping timeout: 246 seconds)
2023-07-13 21:49:01 +0200XliminalX(~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Remote host closed the connection)
2023-07-13 21:50:52 +0200XliminalX(~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-07-13 21:50:53 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 21:53:45 +0200XliminalX(~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Read error: Connection reset by peer)
2023-07-13 21:55:14 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-13 21:55:40 +0200XliminalX(~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-07-13 21:56:34 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 21:57:44 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 21:58:44 +0200jmd_(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2023-07-13 21:59:13 +0200Inst_(~Inst@2601:6c4:4081:2fc0:dd33:627c:a196:edc4)
2023-07-13 21:59:19 +0200 <yin> when installing ghc manually, is ./configure supposed to give me some output while running?
2023-07-13 21:59:47 +0200mxs(~mxs@user/mxs) (Ping timeout: 246 seconds)
2023-07-13 22:00:33 +0200APic(apic@apic.name) (Ping timeout: 246 seconds)
2023-07-13 22:01:03 +0200 <probie> yin: It gives me output
2023-07-13 22:01:12 +0200falafel(~falafel@2603-7000-a700-8710-9d84-55b0-693c-e89b.res6.spectrum.com) (Ping timeout: 245 seconds)
2023-07-13 22:01:13 +0200 <c_wraith> you should get a lot of gcc output from running ./configure
2023-07-13 22:02:15 +0200 <yin> i get nothing. i can see it's writing to disk for some minutes and then inexplicably terminates
2023-07-13 22:02:38 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 260 seconds)
2023-07-13 22:03:10 +0200mxs(~mxs@user/mxs)
2023-07-13 22:03:53 +0200 <yin> reintalling gcc...
2023-07-13 22:04:19 +0200 <probie> What OS are you on, what version of GHC are you trying to build, and did you run ./boot first? (not that not-running ./boot would cause no output, but you'll need to run it before you can build)
2023-07-13 22:06:08 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
2023-07-13 22:09:16 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 22:10:02 +0200ft(~ft@p3e9bc835.dip0.t-ipconnect.de)
2023-07-13 22:10:25 +0200vgtw(~vgtw@user/vgtw)
2023-07-13 22:10:41 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-13 22:12:32 +0200zeenk(~zeenk@2a02:2f04:a00b:1800::7fe)
2023-07-13 22:14:29 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 22:15:07 +0200ars23(~ars23@86.120.205.92) (Quit: Leaving)
2023-07-13 22:15:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 22:17:00 +0200pieguy128(~pieguy128@67.70.103.226) (Ping timeout: 246 seconds)
2023-07-13 22:17:44 +0200Athas_Athas
2023-07-13 22:21:39 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 22:21:42 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-13 22:23:38 +0200jonathan(~jonathan@c-5eea7352-74736162.cust.telenor.se)
2023-07-13 22:23:43 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-13 22:23:59 +0200APic(apic@apic.name)
2023-07-13 22:26:54 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
2023-07-13 22:29:05 +0200lottaquestions_(~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20) (Read error: Connection reset by peer)
2023-07-13 22:29:30 +0200lottaquestions_(~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20)
2023-07-13 22:29:56 +0200APic(apic@apic.name) (Ping timeout: 250 seconds)
2023-07-13 22:31:29 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-07-13 22:31:57 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-13 22:33:10 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 22:34:27 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 22:38:06 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 260 seconds)
2023-07-13 22:39:46 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 258 seconds)
2023-07-13 22:41:42 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 22:42:34 +0200APic(~apic@apic.name)
2023-07-13 22:42:51 +0200titibandit(~titibandi@user/titibandit) (Read error: Connection reset by peer)
2023-07-13 22:43:57 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-13 22:47:03 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 258 seconds)
2023-07-13 22:47:35 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
2023-07-13 22:48:27 +0200titibandit(~titibandi@user/titibandit)
2023-07-13 22:52:49 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-13 22:57:45 +0200fun-safe-math(~fun-safe-@c-24-21-226-85.hsd1.or.comcast.net) ()
2023-07-13 22:58:29 +0200bontaq(~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
2023-07-13 23:02:17 +0200YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 246 seconds)
2023-07-13 23:02:22 +0200boxscape_(~boxscape_@81.191.27.107)
2023-07-13 23:03:35 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 264 seconds)
2023-07-13 23:04:10 +0200 <yin> glibc void linux fresh install on a vm
2023-07-13 23:04:23 +0200 <yin> tried 10 different versions od ghc
2023-07-13 23:04:42 +0200 <yin> did not run ./boot
2023-07-13 23:04:50 +0200YuutaW(~YuutaW@2404:f4c0:f9c3:502::100:17b7)
2023-07-13 23:05:10 +0200 <yin> what's boot?
2023-07-13 23:07:17 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-13 23:07:25 +0200 <geekosaur> it verifies you have all the necessary haskell boot libraries and prepares everything for configure
2023-07-13 23:09:13 +0200 <yin> this is what i get in the logs https://paste.jrvieira.com/1689262817710
2023-07-13 23:09:21 +0200 <yin> from ghcup
2023-07-13 23:11:09 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-13 23:11:11 +0200 <mauke> are there any other files in ~/.ghcup/logs?
2023-07-13 23:11:45 +0200 <yin> no
2023-07-13 23:12:01 +0200 <Hecate> yin: as described in https://ghc.dev/, building ghc requires running "./boot && ./configure"
2023-07-13 23:13:39 +0200 <mauke> not a great error
2023-07-13 23:13:47 +0200 <mauke> I'd probably bust out strace -f at this point
2023-07-13 23:16:11 +0200pavonia(~user@user/siracusa)
2023-07-13 23:16:25 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
2023-07-13 23:19:53 +0200 <juri_> my talk to CCCCamp was accepted. https://pretalx.c3voc.de/chaos-communication-camp-2023/talk/review/TSTWWQ37BBEXKFWJRHMNQJWQRGDKBGCA
2023-07-13 23:20:23 +0200 <Hecate> juri_: congrats!
2023-07-13 23:20:56 +0200 <Hecate> Axman6: can I kindly ask for a review on this? I am quite out of my depth regarding the failure of the test here: https://github.com/haskell-cryptography/libsodium-bindings/pull/94
2023-07-13 23:21:11 +0200 <juri_> Hecate: thanks! I'm nervous already. :)
2023-07-13 23:21:28 +0200 <Hecate> juri_: yeah I understand, 'twas the same thing when my talk was accepted at FOSDEM
2023-07-13 23:21:52 +0200 <juri_> Hecate: this is my third CCC talk. :)
2023-07-13 23:22:02 +0200 <juri_> I'm just always nervous. :P
2023-07-13 23:22:38 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 23:23:06 +0200sm[i](~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
2023-07-13 23:23:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-13 23:23:15 +0200 <Hecate> juri_: hahaha
2023-07-13 23:23:23 +0200 <Hecate> well good luck nonetheless!
2023-07-13 23:23:34 +0200 <juri_> thank you! :)
2023-07-13 23:24:43 +0200 <yin> ok this is weird
2023-07-13 23:24:57 +0200 <yin> ./configure (line 19): Unsupported use of '='. In fish, please use 'set DUALCASE 1'.
2023-07-13 23:25:00 +0200 <yin> DUALCASE=1; export DUALCASE # for MKS sh
2023-07-13 23:25:02 +0200 <yin> ^~~~~~~~~^
2023-07-13 23:25:05 +0200 <yin> warning: Error while reading file ./configure
2023-07-13 23:25:18 +0200sm[i](~sm@024-165-041-186.res.spectrum.com)
2023-07-13 23:25:29 +0200 <Hecate> yin: AH! :D You use a non-POSIX shell, don't you?
2023-07-13 23:25:37 +0200 <yin> i get this error even if i dont use fish
2023-07-13 23:25:45 +0200 <Hecate> oh no
2023-07-13 23:25:55 +0200 <yin> oh no indeed
2023-07-13 23:25:57 +0200 <Hecate> yin: name and version of your shell?
2023-07-13 23:26:11 +0200 <Hecate> wait this should be using sh
2023-07-13 23:26:25 +0200 <geekosaur> it should have a `#! /bin/sh` at the top
2023-07-13 23:26:30 +0200 <Hecate> yeah
2023-07-13 23:26:40 +0200 <boxscape_> ...is it possible that /bin/sh is pointing to fish?
2023-07-13 23:26:41 +0200 <yin> bash 5.2.15
2023-07-13 23:26:54 +0200 <Hecate> exact same version here
2023-07-13 23:26:57 +0200 <yin> geekosaur: it does have #! /bon/sh
2023-07-13 23:27:01 +0200 <yin> *bin
2023-07-13 23:27:26 +0200 <Hecate> yin: and you've run ./boot before, right?
2023-07-13 23:27:38 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 272 seconds)
2023-07-13 23:27:55 +0200 <yin> yes, and i have used fish
2023-07-13 23:28:02 +0200 <Hecate> very peculiar
2023-07-13 23:28:04 +0200 <yin> but cloned the repo again
2023-07-13 23:28:15 +0200 <Hecate> ok
2023-07-13 23:28:19 +0200falafel(~falafel@2603-7000-a700-8710-f0a4-a73f-8e9b-67cd.res6.spectrum.com)
2023-07-13 23:28:33 +0200 <Hecate> unfortunately I have to leave, but do ask for help in #ghc, yin
2023-07-13 23:28:44 +0200 <yin> ok ty
2023-07-13 23:29:34 +0200 <yin> boxscape_: lol no
2023-07-13 23:29:41 +0200 <boxscape_> good :)
2023-07-13 23:30:26 +0200 <boxscape_> yin I guess the same thing happens if you run `/bin/sh configure` instead of `./configure`?
2023-07-13 23:30:30 +0200Guest9190(~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
2023-07-13 23:30:39 +0200 <yin> sec
2023-07-13 23:34:51 +0200 <yin> exact same thing
2023-07-13 23:35:07 +0200 <yin> something's wrong with my system
2023-07-13 23:36:56 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-13 23:39:39 +0200son0p(~ff@181.136.122.143) (Remote host closed the connection)
2023-07-13 23:39:48 +0200jonathan(~jonathan@c-5eea7352-74736162.cust.telenor.se) (Remote host closed the connection)
2023-07-13 23:40:08 +0200jonathan(~jonathan@94.234.115.82)
2023-07-13 23:42:36 +0200 <geekosaur> I really hope they didn't do something stupid like put /bin.sh under an /etc/alternatives style system and include a non-POSIX shell in the alternatives
2023-07-13 23:44:26 +0200jonathan(~jonathan@94.234.115.82) (Ping timeout: 246 seconds)
2023-07-13 23:44:52 +0200 <yin> no way
2023-07-13 23:45:10 +0200 <yin> i made a shell script and it works fine
2023-07-13 23:45:46 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-13 23:47:46 +0200son0p(~ff@181.136.122.143)
2023-07-13 23:51:28 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-07-13 23:54:03 +0200buckwheat(~buckwheat@209.122.211.192)
2023-07-13 23:54:21 +0200anon24339985(~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2023-07-13 23:54:35 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
2023-07-13 23:55:59 +0200acarrico(~acarrico@dhcp-68-142-49-163.greenmountainaccess.net) (Quit: Leaving.)
2023-07-13 23:57:28 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-13 23:59:11 +0200wroathe(~wroathe@user/wroathe)
2023-07-13 23:59:18 +0200buckwheat(~buckwheat@209.122.211.192) (Ping timeout: 272 seconds)