Home freenode/#haskell: Logs Calendar

Logs on 2020-10-28 (freenode/#haskell)

00:00:01 × Perlboy quits (~Perlboy@178.239.168.171) ()
00:01:03 <sandmwitch> Another strong contender: DigitalKiwicked
00:01:04 <WitchKiwi> i was thinking GhostKiwi
00:01:29 <WitchKiwi> i love Wicked
00:01:49 <WitchKiwi> DigitalKiWicked
00:01:59 <WitchKiwi> fun fact: my gmail name is Ki Wi
00:02:13 <sandmwitch> v. oriental
00:02:16 WitchKiwi is now known as DigitalKiWicked
00:02:29 <DigitalKiWicked> quora banned me
00:03:25 banner joins (~banner@116-255-17-180.ip4.superloop.com)
00:03:40 <DigitalKiWicked> kiwitch
00:04:34 <DigitalKiWicked> "are you a bird or a fruit" "sandwich"
00:04:54 <sandmwitch> I've only been banned from an online community once, and I couldn't even be upset about it because the message telling me why was just a link to this video: https://www.youtube.com/watch?v=p12coHOA51Q
00:05:11 <sandmwitch> Still no idea what I did wrong. haha
00:06:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
00:06:19 <Axman6> dat clipping
00:06:49 <sandmwitch> it is the Flash way
00:06:50 p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
00:07:26 <Axman6> my DAC is wasted on this trash. but I would also not be mad if that's how I were banned
00:08:36 obihann joins (~jhann@156.34.160.69)
00:08:55 hekkaidekapus thanks sandmwitch for being literally kicked out of the room. I sweared I’d behave but it has been many consecutives minutes of loud giggles…
00:09:34 <DigitalKiWicked> Quora
00:09:34 <DigitalKiWicked> Quora Moderation flagged your profile as not conforming to Quora's Real Name Policy.
00:09:34 <DigitalKiWicked> Quora Moderation blocked you from editing on Quora for this reason:
00:09:34 <DigitalKiWicked> Blocked from editing due to an unverified name. For more information, see Quora's policy on using real names: https://www.quora.com/Do-I-have-....
00:09:35 <DigitalKiWicked> You will not be able to add questions or write answers at this time.
00:11:06 <DigitalKiWicked> guess they don't want my free labor
00:11:18 <Rembane> DigitalKiWicked: So you had a so awesome name that you got blocked?
00:11:47 dme2 joins (~user@c-24-1-191-153.hsd1.il.comcast.net)
00:13:07 × ransom quits (~c4264035@2601:285:201:6720:a129:4845:9b41:4504) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:13:45 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 240 seconds)
00:14:38 polyrain joins (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e)
00:16:56 × macrover quits (~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection)
00:20:20 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:21:22 mmohammadi9812 joins (~mmohammad@2.178.146.18)
00:21:54 fabianhjr joins (~fabian@2806:106e:18:31bb:bd1c:28a6:e7cb:6de1)
00:21:54 × fabianhjr quits (~fabian@2806:106e:18:31bb:bd1c:28a6:e7cb:6de1) (Remote host closed the connection)
00:23:24 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 240 seconds)
00:25:53 polyrain_ joins (~polyrain@58.161.83.164)
00:27:44 × polyrain quits (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Ping timeout: 240 seconds)
00:31:44 fendor_ joins (~fendor@91.141.3.89.wireless.dyn.drei.com)
00:33:01 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:33:09 cylon007 joins (~user@64.119.200.11)
00:33:24 <cylon007> /?
00:33:39 <sandmwitch> /!
00:34:08 × fendor quits (~fendor@91.141.2.36.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
00:34:34 conal joins (~conal@64.71.133.70)
00:34:39 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
00:34:55 shatriff joins (~vitaliish@176.52.219.10)
00:35:28 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
00:35:47 × dme2 quits (~user@c-24-1-191-153.hsd1.il.comcast.net) (Ping timeout: 258 seconds)
00:35:47 shatriff joins (~vitaliish@176.52.219.10)
00:36:01 × cylon007 quits (~user@64.119.200.11) (Client Quit)
00:36:05 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
00:36:05 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
00:36:16 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
00:36:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:36:38 shatriff joins (~vitaliish@176.52.219.10)
00:37:04 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
00:37:19 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
00:37:22 shatriff joins (~vitaliish@176.52.219.10)
00:37:53 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
00:38:49 ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
00:41:16 Bill--Door joins (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch)
00:41:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
00:43:35 nek0 joins (~nek0@mail.nek0.eu)
00:44:40 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer)
00:45:10 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
00:48:13 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
00:49:21 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:52:23 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
00:52:45 Lord_of_Life_ joins (~Lord@46.217.221.241)
00:53:23 × nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer)
00:54:41 igustin joins (~igustin@185.204.1.185)
00:54:48 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds)
00:55:00 × jrm quits (~jrm@freebsd/developer/jrm) (Quit: ciao)
00:55:56 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
00:56:50 jrm joins (~jrm@freebsd/developer/jrm)
00:58:26 deftly joins (~user@209.58.189.165)
00:58:26 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
01:00:42 × mbomba quits (~mbomba@142.114.9.241) (Ping timeout: 256 seconds)
01:01:14 christo joins (~chris@81.96.113.213)
01:03:36 conal joins (~conal@64.71.133.70)
01:04:02 × banner quits (~banner@116-255-17-180.ip4.superloop.com) (Quit: Leaving)
01:04:40 × Madars quits (~null@unaffiliated/madars) (Ping timeout: 256 seconds)
01:07:37 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds)
01:07:47 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) (Ping timeout: 260 seconds)
01:08:10 Madars joins (~null@unaffiliated/madars)
01:09:13 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds)
01:09:40 × blissful quits (~azuline@unaffiliated/azuline) (Quit: The Lounge - https://thelounge.chat)
01:13:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:14:29 plutoniix joins (~q@175.176.222.7)
01:15:04 × Lord_of_Life_ quits (~Lord@46.217.221.241) (Ping timeout: 240 seconds)
01:17:37 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
01:18:39 Lord_of_Life joins (~Lord@46.217.221.153)
01:19:40 Amras joins (~Amras@unaffiliated/amras0000)
01:23:22 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
01:23:54 nuncanada joins (~dude@179.235.160.168)
01:26:19 × m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
01:27:06 × sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
01:31:44 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
01:34:57 × alp quits (~alp@2a01:e0a:58b:4920:95e9:ca1e:6b04:cf54) (Ping timeout: 272 seconds)
01:36:03 × darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 260 seconds)
01:38:34 jle` joins (~mstksg@unaffiliated/mstksg)
01:39:16 RecursiveG joins (~recursive@li810-210.members.linode.com)
01:40:01 × RecursiveG quits (~recursive@li810-210.members.linode.com) (Client Quit)
01:40:08 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
01:40:40 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
01:42:35 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Quit: Leaving)
01:42:38 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
01:44:15 RecursiveG joins (~recursive@li810-210.members.linode.com)
01:45:29 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
01:45:53 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:47:12 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
01:47:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:51:26 × polyrain_ quits (~polyrain@58.161.83.164) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:51:41 jbox joins (~atlas@unaffiliated/jbox)
01:52:04 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
01:56:04 × firstlove quits (~firstlove@58.246.122.242) (Remote host closed the connection)
01:58:17 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
01:58:49 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
01:59:43 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
02:01:47 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
02:01:48 GyroW_ joins (~GyroW@d54C03E98.access.telenet.be)
02:01:48 × GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
02:01:48 GyroW_ joins (~GyroW@unaffiliated/gyrow)
02:02:19 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:04:57 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:06:05 × vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:07:03 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
02:08:43 × jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 260 seconds)
02:09:55 obihann joins (~jhann@156.34.160.69)
02:10:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
02:10:58 × st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Ping timeout: 246 seconds)
02:11:10 vacm joins (~vacwm@70.23.92.191)
02:11:30 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:12:22 × oisdk quits (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) (Quit: oisdk)
02:12:22 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:14:44 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 240 seconds)
02:15:36 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
02:18:54 × Chi1thangoo quits (~Chi1thang@87.112.60.168) (Ping timeout: 265 seconds)
02:18:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:19:58 hackage agda-unused 0.1.0 - Check for unused code in an Agda project. https://hackage.haskell.org/package/agda-unused-0.1.0 (msuperdock)
02:23:24 × Bill--Door quits (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch) (Remote host closed the connection)
02:24:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
02:24:29 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:26:21 darjeeling_ joins (~darjeelin@112.16.171.8)
02:26:56 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
02:26:56 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
02:26:56 GyroW joins (~GyroW@unaffiliated/gyrow)
02:27:45 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
02:30:28 hackage barbies-th 0.1.7 - Create strippable HKD via TH https://hackage.haskell.org/package/barbies-th-0.1.7 (FumiakiKinoshita)
02:31:25 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
02:31:45 × vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:34:24 × darjeeling_ quits (~darjeelin@112.16.171.8) (Ping timeout: 240 seconds)
02:37:58 mbomba joins (~mbomba@142.114.9.241)
02:40:38 toorevitimirp joins (~tooreviti@117.182.180.36)
02:42:41 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:42:42 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
02:43:19 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:45:01 jlamothe joins (~jlamothe@198.251.55.207)
02:46:37 × acidjnk_new quits (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:51:24 × jakob_ quits (~textual@p57b0eae0.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
02:52:41 × plutoniix quits (~q@175.176.222.7) (Quit: Leaving)
02:53:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:57:12 sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
02:58:53 × ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection)
02:59:27 × xff0x quits (~fox@2001:1a81:5219:2300:29ba:4988:f159:6286) (Ping timeout: 260 seconds)
03:00:01 × igustin quits (~igustin@185.204.1.185) ()
03:00:28 ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf)
03:01:17 xff0x joins (~fox@2001:1a81:5251:7800:1dbd:1ac6:2640:4fc2)
03:04:04 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
03:07:37 × mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
03:09:24 mbomba joins (~mbomba@142.114.9.241)
03:10:42 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
03:12:51 <Kolkrabe> What are "strippable HKDs"? (I presume it has nothing to do with the currency of Hong Kong)
03:13:03 × ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
03:13:18 × lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services)))
03:13:18 <Axman6> higher kinded data
03:13:23 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
03:14:17 <Axman6> I can't renenber what strippable means in this context, though it may be that when your functor is Identity there's no wrapping of the fields in identity (but maybe that was another package which did that)
03:16:59 <Kolkrabe> Is it like wrapping fields of a datatype into another datatype?
03:17:42 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
03:17:56 × Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3)
03:18:19 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 260 seconds)
03:18:31 <Kolkrabe> I'm looking at the example at http://hackage.haskell.org/package/barbies-1.1.3.0/docs/Data-Barbie-Bare.html
03:19:21 <Axman6> basically - instead of defining your types like Data Foo = Foo { foo :: Int, bar :: Bool } you use data Foo f = Foo {foo :: f Int, bar :: f Bool}. Then a lot of nice things fall out of doing that - Foo Identity is basically the original type, Foo (Const String) lets you associate a string with every field, Foo (Either String) might be the result of parsing a Foo where you can collect errors for each field, and if all fields were Rights you pa
03:19:21 <Axman6> rsed it successfully
03:20:53 × akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds)
03:20:58 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
03:21:27 × solonarv quits (~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr) (Ping timeout: 256 seconds)
03:21:28 <Axman6> one really nice thing you can do is the transformation from Vector (Foo Identity) to Foo Vector - a.k.a the vector of structs to struct of vectors transformation
03:22:12 × eruditass quits (uid248673@gateway/web/irccloud.com/x-upuflkjgqfommgrg) (Ping timeout: 260 seconds)
03:22:12 × ReinH__ quits (sid179972@gateway/web/irccloud.com/x-vgpjckyigmgjdwtk) (Ping timeout: 260 seconds)
03:22:12 × rdivyanshu quits (sid322626@gateway/web/irccloud.com/x-otfoczynxqkuwcfm) (Ping timeout: 260 seconds)
03:22:17 plutoniix joins (~q@175.176.222.7)
03:22:25 × alanz quits (sid110616@gateway/web/irccloud.com/x-hhuchzrtvkxyanvu) (Ping timeout: 240 seconds)
03:22:28 × Cir0X quits (sid221743@gateway/web/irccloud.com/x-sfiedvvxkgjnutkr) (Read error: Connection reset by peer)
03:22:29 × AndreasK quits (sid320732@gateway/web/irccloud.com/x-rxqfxdsbssdfwfxd) (Read error: Connection reset by peer)
03:22:29 × bradparker quits (sid262931@gateway/web/irccloud.com/x-kzdpaybrmmwnrdgh) (Read error: Connection reset by peer)
03:22:29 × joshmeredith quits (sid387798@gateway/web/irccloud.com/x-hdepxcnffbqdlwvu) (Read error: Connection reset by peer)
03:22:30 × ebutleriv quits (sid217783@gateway/web/irccloud.com/x-cvawhvfjdshsscgr) (Read error: Connection reset by peer)
03:22:30 × cvlad- quits (sid203065@gateway/web/irccloud.com/x-efqqsgkcshqvhkds) (Read error: Connection reset by peer)
03:22:30 × banjiewen_ quits (sid115913@gateway/web/irccloud.com/x-prbnvikrvoskgqwb) (Read error: Connection reset by peer)
03:22:32 × jared-w quits (uid405292@gateway/web/irccloud.com/x-hoqehiufvhduodif) (Ping timeout: 260 seconds)
03:22:32 × cemerick quits (sid54985@gateway/web/irccloud.com/x-gqtgtcmcxeexxtnf) (Ping timeout: 260 seconds)
03:22:35 × natim87 quits (sid286962@gateway/web/irccloud.com/x-ceyxlbqjhgkntuzg) (Read error: Connection reset by peer)
03:22:35 × davetapley quits (sid666@gateway/web/irccloud.com/x-unkevmoregbjgeww) (Read error: Connection reset by peer)
03:22:36 × benwr____ quits (sid372383@gateway/web/irccloud.com/x-kvsrlvuwekbjywwv) (Read error: Connection reset by peer)
03:22:36 × totbwf quits (sid402332@gateway/web/irccloud.com/x-ymdhjktodciveoos) (Read error: Connection reset by peer)
03:22:43 × SrPx quits (sid108780@gateway/web/irccloud.com/x-bqucgfmlfmdjtbdg) (Read error: Connection reset by peer)
03:22:53 AndreasK joins (sid320732@gateway/web/irccloud.com/x-ktiwazcixhtnosgk)
03:22:56 ebutleriv joins (sid217783@gateway/web/irccloud.com/x-kvxiagmqenenwcwd)
03:22:57 benwr____ joins (sid372383@gateway/web/irccloud.com/x-fpmmjvddoaxuhwfl)
03:23:21 SrPx joins (sid108780@gateway/web/irccloud.com/x-uslzvcburhozaynt)
03:23:23 davetapley joins (sid666@gateway/web/irccloud.com/x-robbsvqvrfwhlocr)
03:23:24 alanz joins (sid110616@gateway/web/irccloud.com/x-kaaptnygtinjlvts)
03:23:29 rdivyanshu joins (sid322626@gateway/web/irccloud.com/x-vijvgbwevjdmeabn)
03:23:32 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
03:23:34 bradparker joins (sid262931@gateway/web/irccloud.com/x-cpaqunedaxagfosc)
03:23:37 Cir0X joins (sid221743@gateway/web/irccloud.com/x-vbsqpqvnwnaxxlao)
03:23:37 joshmeredith joins (sid387798@gateway/web/irccloud.com/x-fahcpupvewgkoceh)
03:23:37 totbwf joins (sid402332@gateway/web/irccloud.com/x-sxpcryhpiyewihxs)
03:23:39 cvlad- joins (sid203065@gateway/web/irccloud.com/x-dghqjpkfmvjbucbi)
03:23:39 natim87 joins (sid286962@gateway/web/irccloud.com/x-bwmegmbyiecjxmkz)
03:23:41 ReinH__ joins (sid179972@gateway/web/irccloud.com/x-kynfnrknqktyblak)
03:23:45 banjiewen_ joins (sid115913@gateway/web/irccloud.com/x-eopdvyfizptvmxgr)
03:23:57 × lally quits (sid388228@gateway/web/irccloud.com/x-iepgjmxehrzuvipm) (Ping timeout: 260 seconds)
03:23:57 × systemfault quits (sid267009@gateway/web/irccloud.com/x-htxicjxaklgtpnib) (Ping timeout: 260 seconds)
03:24:02 cemerick joins (sid54985@gateway/web/irccloud.com/x-syfoeolkqemrbwow)
03:24:51 lally joins (sid388228@gateway/web/irccloud.com/x-vliwvdsdwmscsdor)
03:25:01 systemfault joins (sid267009@gateway/web/irccloud.com/x-cuwcujscdtdsdgqf)
03:25:06 jared-w joins (uid405292@gateway/web/irccloud.com/x-hjvulmngvzyqxsmb)
03:25:11 eruditass joins (uid248673@gateway/web/irccloud.com/x-fakbfhwrqsthhqfr)
03:25:42 <Kolkrabe> Axman6: I see, thanks. Would be also useful for parse trees where you want to have different trees with source position information attached or not
03:25:51 christo joins (~chris@81.96.113.213)
03:27:35 petersen joins (~petersen@redhat/juhp)
03:28:51 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
03:29:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
03:30:07 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
03:30:27 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 260 seconds)
03:30:58 × christo quits (~chris@81.96.113.213) (Ping timeout: 272 seconds)
03:31:00 bartemius joins (~bartemius@109.252.20.20)
03:33:04 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
03:34:11 × theDon quits (~td@muedsl-82-207-238-193.citykom.de) (Ping timeout: 260 seconds)
03:35:05 × bartemius quits (~bartemius@109.252.20.20) (Ping timeout: 240 seconds)
03:35:49 theDon joins (~td@muedsl-82-207-238-123.citykom.de)
03:40:12 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:43:32 <koz_> Kolkrabe: Yeah, it can be used for that too.
03:43:48 <koz_> HKD does have some downsides though.
03:47:21 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
03:48:32 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:52:40 × lucasb quits (uid333435@gateway/web/irccloud.com/x-qizvrgxqojerddcd) (Quit: Connection closed for inactivity)
03:53:35 scf-1 joins (~scf-1@84.39.116.180)
03:56:46 Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch)
03:56:48 <Orbstheorem> #nixos
03:57:16 <Orbstheorem> (sorry for the noise)
03:57:31 × mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
03:58:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:59:33 × jedws quits (~jedws@101.184.193.144) (Remote host closed the connection)
03:59:44 × mmohammadi9812 quits (~mmohammad@2.178.146.18) (Quit: Quit)
04:00:00 mmohammadi9812 joins (~mmohammad@2.178.146.18)
04:00:17 jedws joins (~jedws@101.184.193.144)
04:00:26 Rudd0 joins (~Rudd0@185.189.115.108)
04:00:39 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
04:01:15 × ystael quits (~ystael@209.6.50.55) (Ping timeout: 260 seconds)
04:01:19 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
04:01:39 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
04:03:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
04:05:16 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
04:06:34 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
04:06:38 jbox parts (~atlas@unaffiliated/jbox) ("WeeChat 2.9")
04:07:02 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
04:07:20 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
04:07:20 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
04:07:20 GyroW joins (~GyroW@unaffiliated/gyrow)
04:07:38 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
04:10:04 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
04:11:05 obihann joins (~jhann@156.34.160.69)
04:14:24 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
04:15:15 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
04:15:37 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
04:15:53 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 260 seconds)
04:16:23 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
04:18:58 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
04:20:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:23:36 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer)
04:24:07 Stanley00 joins (~stanley00@unaffiliated/stanley00)
04:25:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
04:34:22 × plutoniix quits (~q@175.176.222.7) (Quit: Leaving)
04:37:05 × zebrag quits (~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
04:37:07 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
04:37:25 × FreeBird_ quits (~freebirdl@101.228.42.108) (Remote host closed the connection)
04:38:30 shatriff joins (~vitaliish@176.52.219.10)
04:39:32 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:39:39 × jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:39:58 zebrag joins (~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr)
04:43:35 crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
04:43:52 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
04:44:40 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
04:47:26 <crestfallen> http://ix.io/2CfR hi the ghci session I have commented out at the bottom of this paste gave unexpected results. how did the zero in (Just 0) end up in the tree? thamks
04:48:37 <sandmwitch> Well... I mean, -5 is not > 0, so
04:49:01 <koz_> Yeah, pretty much exactly this.
04:49:24 <crestfallen> (aa was originally : aa x = if even x then Just (div x 2) else Nothing )
04:49:42 <crestfallen> so with Nothing it fails, I see that
04:50:21 <crestfallen> But I thought that if anything fails the predicate then I would have Just 0 returned
04:51:08 <sandmwitch> What does "if anything fails the predicate then I would have Just 0 returned" mean?
04:51:26 <sandmwitch> Are you saying that you expect that `trevarse aa foo = Just 0` whenever there is a negative number somewhere in `foo`?
04:51:36 <sandmwitch> If so, why do you expect that?
04:51:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:51:45 <sandmwitch> (trevarse -> traverse, obviously)
04:52:45 <crestfallen> so if we used this func, and gave it the list [2,4,6] we'd have Just [1,2,3]
04:53:34 <crestfallen> so every member of the list needs to be even. but the other function I figured would return (Just 0)
04:56:28 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 265 seconds)
04:56:42 <sandmwitch> Why did you figure that, though?
04:57:08 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
04:57:16 × falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 260 seconds)
04:57:18 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
04:57:18 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
04:57:18 GyroW joins (~GyroW@unaffiliated/gyrow)
04:57:46 × fraktor quits (~walt@129.93.191.18) (Quit: WeeChat 2.8)
04:58:08 × mmohammadi9812 quits (~mmohammad@2.178.146.18) (Ping timeout: 256 seconds)
04:58:37 bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru)
04:59:13 <crestfallen> because whatever goes after the else clause would be returned as (Just 0) ; I didn't expect 0 to be integrated into (Con 0) like that. weird
04:59:46 <sandmwitch> The then/else divide is not special. The Just/Nothing divide is special.
04:59:55 × ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:00:22 mmohammadi9812 joins (~mmohammad@2.178.187.147)
05:00:29 <sandmwitch> (And the *reason* it is special is because the Applicative instance for Maybe does different things depending on whether it sees Just or Nothing.)
05:01:15 <crestfallen> sandmwitch: thanks not sure I see exactly what's happening
05:02:18 <crestfallen> I thought Just 0 would be a return value
05:02:41 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
05:04:26 <koz_> :t traverse
05:04:27 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
05:04:33 <koz_> Note what happens to the 'f'.
05:05:47 Tario joins (~Tario@201.192.165.173)
05:05:59 <crestfallen> in the return? : f (t b) koz_
05:06:30 <koz_> crestfallen: Yeah, exactly. That's what makes 'traverse' what it is. Now, notice where that 'f' is in the function argument to traverse.
05:06:39 <koz_> Now, look at your situation - what is 'f' in your case.
05:06:43 <koz_> Take. Due. Care.
05:07:47 <crestfallen> f is Maybe.. in this case Just
05:08:06 <koz_> The first was right, then you sank yourself. Again, please do not confuse the value level and the type level.
05:08:11 tdhttt joins (~tdhttt@static-198-54-131-149.cust.tzulo.com)
05:08:24 <crestfallen> hold on
05:08:26 <koz_> So therefore, given your 'aa', you'll _always_ end up with Just [some tree inside].
05:08:47 <koz_> Because no matter which branch you take, you'll get a Just.
05:08:47 christo joins (~chris@81.96.113.213)
05:09:07 <koz_> And since in your case, f ~ Maybe, the expected result is 'Maybe (Tree Int)'.
05:09:11 <koz_> Which is exactly what you're seeing.
05:09:20 <koz_> s/result/result type/
05:10:07 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
05:10:48 <crestfallen> ...
05:15:09 <crestfallen> so koz_ that behavior is interesting. it seems like the logic in the if / then statement has changed. (Just 0) is feeding the value to the rhs branch : (Con 0). trying to wrap my head around that
05:15:36 <koz_> No, the logic in the if-then-else hasn't 'changed', whatever that means.
05:15:47 <koz_> Look at your definition of 'traverse'.
05:15:54 <koz_> (for your Tree type).
05:16:00 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 258 seconds)
05:16:08 xxxzzzqqaa` joins (3dded63f@61-222-214-63.HINET-IP.hinet.net)
05:16:29 <koz_> That behaviour _is_ interesting, but the if-then-else you have there is literally the least interesting part of it.
05:16:35 <koz_> It's all about the traverse definition.
05:16:53 <crestfallen> what I meant was ... else Nothing changes the logic
05:17:00 <koz_> It does.
05:17:10 <koz_> And that's because of _the traverse definition_.
05:17:16 <koz_> I cannot stress enough just how much it matters.
05:17:31 <Axman6> returning Nothing anywhere from the function passed to traverse causes the result to be Nothing, since that's what the applicative instance for Nothing requires
05:17:34 <Axman6> uh, for Maybe
05:18:14 <crestfallen> right. let me re-paste one sec
05:18:14 <koz_> Axman6: Well, assuming it's not conditional on the values 'in' the Traversable somehow.
05:18:17 xerox_ joins (~xerox@unaffiliated/xerox)
05:18:20 <Axman6> iun traverse fn (Con a) = Con <$> (fn a), if fn returns Nothing, then the Con being fmapped over that Nothing still gives you as Nothing
05:18:42 <Axman6> @src Functor @Maybe
05:18:42 <lambdabot> Source not found. Do you think like you type?
05:19:13 <koz_> Sassy lambdabot.
05:19:42 <crestfallen> sorry just to keep a reference http://ix.io/2CfX
05:19:50 <Axman6> fmap f (Just a) = Just (f a); fmap _ Nothing = Nothing
05:22:18 notzmv joins (~user@unaffiliated/zmv)
05:23:35 <crestfallen> so the first Just in aa is the constructor for Maybe Tree a. the second Just : else (Just 0) is actually being fmapped over
05:23:41 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:23:46 day_ joins (~Unknown@unaffiliated/day)
05:25:06 <crestfallen> Axman6: am I correct?
05:25:19 <Axman6> I don't think so, you seem very confused
05:26:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
05:26:45 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
05:26:45 day_ is now known as day
05:27:16 <Axman6> I think you need to step through this line by line: traverse bb (Add (Add (Con 3) (Con 4)) (Con (-5))) ==> Add <$> traverse bb (Add (Con 3) (Con 4)) <*> (Con (-5)) ==> ???
05:27:46 <crestfallen> Axman6: no I get it. in aa there is no failure at all. so (Con a) on the right hand branch is going to take the 0.
05:27:49 <Axman6> just keep substituting the definitions for traverse, once you have none left, substitute in the definition for bb, in the Con 9 case
05:27:58 <dminuoso> TIL, operator dont have to be functions. :>
05:28:11 <dminuoso> % (.>>) = ">>"
05:28:12 <yahb> dminuoso:
05:28:26 <Axman6> % :t (%)
05:28:26 <yahb> Axman6: Integral a => a -> a -> Ratio a
05:28:34 <Axman6> % :t (.>>)
05:28:34 <yahb> Axman6: [Char]
05:28:52 <koz_> Oh wow, TIL indeed.
05:29:11 <Axman6> crestfallen: I would _strongly_ recommend you go the evaluation by hand I suggested above
05:29:25 <dminuoso> Im using this in a code generator with haskell-src-exts, such that I can do
05:29:25 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
05:30:05 <dminuoso> let (.>>) = op (sym ">>") in infixApp fooE (.>>) barE
05:32:44 Sanchayan joins (~Sanchayan@122.167.95.166)
05:32:48 <dminuoso> (Though ultimately I think Im going to use QQ instead, since [hs| $fooE >> $barE |] is a bit more readable)
05:33:44 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
05:34:48 <dsal> :t infixApp
05:34:49 <lambdabot> error: Variable not in scope: infixApp
05:35:50 <koz_> dminuoso: I recently wrote my first quasi-quoters, and it was honestly rather pleasant.
05:36:05 <dsal> oooh
05:36:57 × howdoi quits (uid224@gateway/web/irccloud.com/x-vkinnmkhoknarggj) (Quit: Connection closed for inactivity)
05:38:23 <dminuoso> koz_: Yeah, Im fond of QQ myself. I have some for IP/mac literals, especially in tests this is convenient. :)
05:38:56 <koz_> I'm definitely adding them to my arsenal for the future.
05:39:04 <dminuoso> http://hackage.haskell.org/package/hexquote-0.1/docs/Data-Hex-Quote.html this is a cute one as well
05:39:11 <dminuoso> That find usage in one of my projects tests a lot
05:42:42 × sandmwitch quits (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer)
05:42:50 <crestfallen> Axman6: koz_: please look at > traverse bb list http://ix.io/2Cg1
05:44:03 dmwit joins (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net)
05:44:52 dmwit is now known as dmwitch
05:46:07 crestfallen is now known as wretchswollen
05:51:20 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
05:51:25 × taurux quits (~taurux@net-188-216-37-152.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
05:51:29 <Axman6> wretchswollen: what about it?
05:52:49 <Axman6> wretchswollen: try using this: bb x = if even x then Right (x `div` 2) else Left (show x)
05:54:00 taurux joins (~taurux@net-188-216-13-237.cust.vodafonedsl.it)
05:54:16 <dminuoso> wretchswollen: You seem to be confusing Traversable with Filterable (see `witherable` package)
05:54:50 <dminuoso> (A poor mans witherable on just [] is `mapMaybe` in case you are looking for that)
05:56:04 <dminuoso> (Or I guess Witherable rather than Filterable)
05:57:26 <wretchswollen> with list each member needs to be even. so if it's traverse bb [2,4,6] then we get Just [1,2,3]. so the program doesn't get to the else statement
05:57:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:58:40 <wretchswollen> it builds Maybe List a without getting to the else statement
05:59:06 <dminuoso> wretchswollen: `Nothing` *is* Maybe [Int] too
05:59:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:59:29 <Axman6> wretchswollen: why won';t you do the thing I've now told you three times you should do? step. through. the. functions. by. expanding. their. definitions
05:59:41 <Axman6> you will see what's happening nearly immediately
05:59:58 <Axman6> but instead yuou keep asking the same question and not understanding the answers
06:00:01 × scf-1 quits (~scf-1@84.39.116.180) ()
06:00:20 <dsal> To write good code, one must become one with the compiler.
06:00:20 <Axman6> you have the wrong intuition, you can fix than by actually stepping through the evaluation
06:00:26 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
06:00:40 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
06:00:49 <Axman6> I started the work for you, all you need to dfo is contunue it
06:00:51 <Axman6> continue*
06:01:40 <wretchswollen> theres a lot going on.
06:01:46 <Axman6> yes
06:01:50 <Axman6> so you take it one step at a time
06:01:55 <Axman6> like I told you to
06:02:20 × rinwa quits (~rinwa@5.102.238.236) (Ping timeout: 272 seconds)
06:02:20 <wretchswollen> I don't have scrollback on this blasted chat client
06:02:28 <Axman6> I think you need to step through this line by line: traverse bb (Add (Add (Con 3) (Con 4)) (Con (-5))) ==> Add <$> traverse bb (Add (Con 3) (Con 4)) <*> (Con (-5)) ==> ???
06:02:30 <dminuoso> wretchswollen: Check the topic
06:02:34 <dminuoso> We have a log.
06:02:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:03:15 <Axman6> @where paste
06:03:15 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
06:06:29 <Axman6> wretchswollen: https://paste.tomsmeding.com/7TIQdWo7
06:06:55 <Axman6> I took a few steps at a time there, you can spread it out more if you want
06:08:25 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
06:08:37 × tdhttt quits (~tdhttt@static-198-54-131-149.cust.tzulo.com) (Ping timeout: 264 seconds)
06:09:00 <wretchswollen> Axman6: thanks so much. I should probably revisit this tomm. dminuoso thanks kindly
06:09:32 tdhttt joins (~tdhttt@static-198-54-131-149.cust.tzulo.com)
06:11:46 obihann joins (~jhann@156.34.160.69)
06:12:54 <wretchswollen> Axman6: yeah ok so doing > traverse aa (Con (-5)) ==> Just (Con 0)
06:15:09 <Axman6> yes
06:15:37 <Axman6> which is _exactly_ what the definition of traverse says will happen if your applicative is Maybe
06:16:14 <wretchswollen> so what happens is essentially: Just (Add (Add (Con 8) (Con 9))) <*> Just (Con 0)
06:16:42 <wretchswollen> hold on checking that..
06:16:52 <Axman6> sort of, the Add <$> is needed in front of that to make it type check
06:17:01 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 246 seconds)
06:17:10 <Axman6> you get Add <$> Just (Add (Add (Con 8) (Con 9))) <*> Just (Con 0)
06:20:39 <wretchswollen> that's pretty interesting thanks Axman6
06:20:40 <Axman6> which becomes Just (\x -> Add (Add (Add (Con 8) (Con 9))) x) <*> Just (Con 0)
06:20:57 <Axman6> % :t (<*> @Maybe)
06:20:57 <yahb> Axman6: ; <interactive>:1:6: error: parse error on input `@'
06:21:02 <Axman6> % :t (<*>) @Maybe
06:21:03 <yahb> Axman6: Maybe (a -> b) -> Maybe a -> Maybe b
06:21:52 m4v1 joins (~m4v@185.244.214.217)
06:21:56 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
06:22:02 _vaibhavingale_ joins (~Adium@42.106.216.64)
06:23:19 zaquest joins (~notzaques@5.128.210.178)
06:25:01 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
06:26:28 × jud^ quits (~jud@cpe-70-113-106-222.austin.res.rr.com) (Ping timeout: 246 seconds)
06:27:21 jedws joins (~jedws@101.184.193.144)
06:30:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:31:21 ecphras joins (~gschare@cpe-23-242-214-143.socal.res.rr.com)
06:34:00 × ecphras quits (~gschare@cpe-23-242-214-143.socal.res.rr.com) (Client Quit)
06:36:30 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
06:38:15 idhugo joins (~idhugo@563472ae.rev.stofanet.dk)
06:41:53 cfricke joins (~cfricke@unaffiliated/cfricke)
06:44:49 nsyde joins (~nsyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
06:45:24 × wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
06:46:26 × nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 256 seconds)
06:46:52 × caubert quits (~mrbentari@207.246.80.112) (Quit: WeeChat 2.9)
06:47:02 mrbentarikau joins (~mrbentari@207.246.80.112)
06:47:20 mrbentarikau is now known as caubert
06:49:02 × kori quits (~kori@arrowheads/kori) (Quit: WeeChat 2.8)
06:50:28 bitmagie joins (~Thunderbi@200116b8069fbf008d925686a233d598.dip.versatel-1u1.de)
06:53:00 × idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds)
06:53:03 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:53:30 tuple joins (~igloo@66.115.157.61)
06:53:49 × tuple quits (~igloo@66.115.157.61) (Client Quit)
06:54:56 × jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:57:57 keep_learning joins (~keep_lear@43.231.26.152)
06:58:50 | joins (183f4752@c-24-63-71-82.hsd1.ma.comcast.net)
06:59:14 | is now known as Guest35321
07:00:28 asheshambasta joins (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be)
07:01:50 mimi1vx joins (~mimi@tulipan.habr.nat.praha12.net)
07:02:47 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
07:03:52 plutoniix joins (~q@175.176.222.7)
07:04:09 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:04:55 × mimi_vx quits (~mimi@2a01:490:16:1026:9954:a30:869a:297e) (Ping timeout: 272 seconds)
07:05:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
07:06:56 jedws joins (~jedws@101.184.193.144)
07:11:32 _vaibhavingale_1 joins (~Adium@203.188.228.9)
07:12:05 × _vaibhavingale_ quits (~Adium@42.106.216.64) (Read error: Connection reset by peer)
07:15:14 alp joins (~alp@2a01:e0a:58b:4920:b56f:71bb:e7ea:75f0)
07:15:29 × nsyde quits (~nsyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
07:16:04 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
07:22:36 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:24:57 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
07:26:14 × sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
07:27:05 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
07:27:56 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
07:27:56 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
07:27:56 GyroW joins (~GyroW@unaffiliated/gyrow)
07:29:04 ulidtko|k joins (~ulidtko@193.111.48.79)
07:29:20 × ulidtko quits (~ulidtko@193.111.48.79) (Remote host closed the connection)
07:32:09 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:32:36 chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
07:35:27 hackage deriving-show-simple 0 - Derive a Show instance without field selector names https://hackage.haskell.org/package/deriving-show-simple-0 (FumiakiKinoshita)
07:38:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:44:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
07:46:45 × phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
07:46:50 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:49:07 idhugo joins (~idhugo@563472ae.rev.stofanet.dk)
07:49:38 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
07:50:31 dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
07:50:57 hackage hslua-module-doclayout 0.2.0.1 - Lua module wrapping Text.DocLayout. https://hackage.haskell.org/package/hslua-module-doclayout-0.2.0.1 (tarleb)
07:55:00 × idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Read error: Connection reset by peer)
07:55:12 idhugo joins (~idhugo@563472ae.rev.stofanet.dk)
07:55:27 × Lord_of_Life quits (~Lord@46.217.221.153) (Changing host)
07:55:27 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
07:56:28 rinwa joins (~rinwa@5.102.238.236)
07:57:48 × xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection)
07:59:53 × idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds)
08:03:23 raichoo joins (~raichoo@213.240.178.58)
08:03:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:04:02 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:10:05 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
08:13:05 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:13:17 <dminuoso> binary question, when I have a tree of Get primitives, is there a good rule of thumb where to isolate?
08:14:47 idhugo joins (~idhugo@users-1190.st.net.au.dk)
08:16:25 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
08:18:05 × jespada quits (~jespada@90.254.243.98) (Ping timeout: 258 seconds)
08:20:47 jespada joins (~jespada@90.254.243.98)
08:23:06 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:28:25 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
08:29:57 <eedgit> Why are these named 'op' / 'e' - is it completely random or does it have some significance? (can't google 'cause its too short :( )
08:29:57 <eedgit> https://dpaste.org/cht0
08:30:31 <dminuoso> The 'e' is likely random
08:30:39 <dminuoso> And 'op' is just to suggest this is likely to be used with some kind of "operator"
08:30:45 <dminuoso> Think:
08:30:52 <dminuoso> % foldr (+) 0 [1,2,3,4,5]
08:30:52 <yahb> dminuoso: 15
08:31:27 <eedgit> thank you! I thought that might be operator. Is there a big list of commonly used vars / built in ones
08:31:36 <eedgit> To a novice it's like staring at a bowl of alphabet soup sometimes
08:35:38 <merijn> eedgit: I don't think there is a list, some common ones would be f/g/h for functions, i/j/k for indices, any single letter for just "a value of some polymorphic type"
08:36:10 <merijn> eedgit: oh, and of course the (x:xs) idiom (following from 1 item, multiple itemS you get 1 x, multiple xS)
08:36:22 kish joins (~oracle@unaffiliated/oracle)
08:38:28 <merijn> eedgit: I might call the 'e' "acc" (for accumulator or something), but it's not really clear what a "better" name would be.
08:39:56 <eedgit> `acc` is much better thanks
08:41:11 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
08:41:32 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
08:44:02 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
08:44:32 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
08:46:03 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
08:46:07 × jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:46:49 FreeBirdLjj joins (~freebirdl@101.228.42.108)
08:47:07 <dminuoso> eedgit: I tend to not like `acc` because it leads to a more imperative thinking.
08:47:56 <dminuoso> https://wiki.haskell.org/wikiupload/3/3e/Right-fold-transformation.png
08:48:28 <dminuoso> So if we foldr a list, then that second argument really is just what the empty list at the end gets replaced with.
08:51:22 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Ping timeout: 265 seconds)
08:52:33 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
08:53:19 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Client Quit)
08:53:51 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
08:54:32 <tomsmeding> "imperative thinking" certainly fits the time of year, does it not?
08:55:06 <merijn> Nothing wrong with imperative Haskell :)
08:55:10 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
08:56:56 <merijn> https://twitter.com/k0001/status/1295846402648682496 :p
08:57:49 _vaibhavingale_ joins (~Adium@203.188.228.9)
08:58:22 invaser joins (~Thunderbi@31.148.23.125)
08:58:49 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
08:58:52 <tomsmeding> lol
08:59:10 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-hxonwkkgkhrxlnbv) (Quit: Connection closed for inactivity)
08:59:21 <tomsmeding> depends on the domain of course
08:59:23 thc202 joins (~thc202@unaffiliated/thc202)
08:59:37 × _vaibhavingale_1 quits (~Adium@203.188.228.9) (Ping timeout: 264 seconds)
08:59:38 <Rembane> As long as you don't think imperitavel... yeah... you can program using the style. *nods sagely*
09:00:02 × m4v1 quits (~m4v@185.244.214.217) ()
09:00:59 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
09:01:08 <eedgit> dminuoso that's hurting my head a bit. Is the distinction you're making that it's 'folded' into the end, rather than accumulated in a new variable?
09:02:42 <tomsmeding> eedgit: 'foldr op e l' really just replaces the (:) in l with op, and the [] in l with e
09:03:14 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
09:03:26 <tomsmeding> foldr op e (1 : (2 : (3 : [])) = 1 `op` (2 `op` (3 `op` e))
09:03:30 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
09:03:30 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
09:03:30 GyroW joins (~GyroW@unaffiliated/gyrow)
09:03:44 <tomsmeding> hence 'e' for "empty list"
09:04:28 <tomsmeding> oh that's what the picture says, lol
09:04:46 <eedgit> ahh ok, think I've got it (*whiteboarding intensifies*)
09:04:49 <eedgit> ty
09:05:49 <tomsmeding> and if you at some point think, hey you can generalise this idea of "replacing constructors" to other data types: welcome to the theory of folds :)
09:09:11 <eedgit> still not entirely sure it's not witchcraft. My original implementation was pretty long but by looking at other solutions I'm down to a handful of variables
09:09:28 Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it)
09:09:33 <eedgit> Is there a simpler / more native way than flattening and using foldr for rose-trees ?
09:10:10 <dminuoso> eedgit: So, `flattening` *is* already fully descriptive of the fold.
09:10:45 <dminuoso> We could think of Foldable having two equivalent signature methods `toList` and `foldr` (or perhaps foldMap instead of foldr).
09:11:28 <dminuoso> (Im not actually sure why toList is not a method of Foldable)
09:12:32 <dminuoso> But yes, you could essentially rip down the implementation of toList, and use that to implement a foldr directly
09:12:56 <Axman6> is there any optimisations to he had with toList /= foldr (:) []?
09:13:05 <dminuoso> Where, if you look at the above scheme, instead of putting in a `:` you just put in the argument `f` and, and instead of the `[]` at the end you put in the z
09:13:42 <dminuoso> So if you had some implementation `flatten ... = x : ...; flatten ... = []`
09:13:47 <dminuoso> You could, instead, replace that implementation as
09:14:11 <dminuoso> instance Foldable YourTree where foldr f _z ... = x `f` ...; foldr _f z ... = z
09:14:13 <dminuoso> Mechanically
09:14:17 <dminuoso> (You dont even have to think about it)
09:14:36 <dminuoso> And then the `flatten` you have for free via `toList`
09:15:09 <dminuoso> Axman6: Well, less fusion/deforestation I guess?
09:15:26 <dminuoso> (By "less" I mean "less required")
09:15:35 quaestor joins (~quaestor@griffith.christophrauch.de)
09:15:35 <Axman6> but surely that would have happened in your foldr definition
09:15:54 <dminuoso> If the foldr has to decompose a list again, that surely hinders optimizations
09:16:23 <dminuoso> If we dont even allow generating a list, we dont have to do deforestation in the first place.
09:16:58 hackage ukrainian-phonetics-basic 0.1.6.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.6.0 (OleksandrZhabenko)
09:17:32 × bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
09:17:58 hackage mmsyn6ukr 0.8.2.0 - A musical instrument synthesizer or a tool for Ukrainian language listening https://hackage.haskell.org/package/mmsyn6ukr-0.8.2.0 (OleksandrZhabenko)
09:19:01 × mmohammadi9812 quits (~mmohammad@2.178.187.147) (Ping timeout: 246 seconds)
09:19:38 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
09:19:47 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
09:20:05 mbomba joins (~mbomba@142.114.9.241)
09:22:20 <eedgit> Makes sense, thanks
09:22:50 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
09:23:13 knupfer joins (~Thunderbi@200116b82c8890009cbf5dfffee482bd.dip.versatel-1u1.de)
09:23:29 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
09:23:39 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
09:23:39 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
09:23:39 GyroW joins (~GyroW@unaffiliated/gyrow)
09:23:41 × knupfer quits (~Thunderbi@200116b82c8890009cbf5dfffee482bd.dip.versatel-1u1.de) (Remote host closed the connection)
09:23:45 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
09:23:48 knupfer joins (~Thunderbi@200116b82c88900038812dc9660ae862.dip.versatel-1u1.de)
09:24:08 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
09:24:57 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:26:52 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
09:27:12 benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60)
09:27:52 avoandmayo joins (~textual@122.58.158.238)
09:29:10 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
09:30:05 mmohammadi9812 joins (~mmohammad@2.178.160.31)
09:30:46 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
09:32:54 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
09:35:04 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
09:36:22 × avoandmayo quits (~textual@122.58.158.238) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:40:15 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
09:42:12 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
09:42:37 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
09:42:59 berberman joins (~berberman@unaffiliated/berberman)
09:43:09 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:44:52 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
09:45:53 kuribas joins (~user@ptr-25vy0i9apvg5lclnymw.18120a2.ip6.access.telenet.be)
09:48:52 × xxxzzzqqaa` quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection)
09:50:34 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
09:51:49 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:52:14 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:54:24 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
09:54:42 PeErLesS joins (~PeErLesS@s91904426.blix.com)
09:55:05 PeErLesS is now known as Guest65945
09:55:08 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
10:00:28 hackage th-lego 0.2 - Template Haskell construction utilities https://hackage.haskell.org/package/th-lego-0.2 (NikitaVolkov)
10:01:48 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds)
10:02:57 hackage wai-saml2 0.2.1.1 - SAML2 assertion validation as WAI middleware https://hackage.haskell.org/package/wai-saml2-0.2.1.1 (mbg)
10:04:21 Rudd0 joins (~Rudd0@185.189.115.108)
10:04:45 m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
10:04:47 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:6857:8c0f:5834:bc03) (Ping timeout: 246 seconds)
10:05:24 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c)
10:05:28 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
10:09:01 xsperry joins (~as@unaffiliated/xsperry)
10:09:03 wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
10:09:45 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
10:10:02 shatriff joins (~vitaliish@176.52.219.10)
10:10:29 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
10:10:33 p8m_ joins (p8m@gateway/vpn/protonvpn/p8m)
10:11:03 shatriff joins (~vitaliish@176.52.219.10)
10:11:05 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
10:13:21 obihann joins (~jhann@156.34.160.69)
10:14:01 × wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
10:16:23 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds)
10:16:46 jedws joins (~jedws@101.184.193.144)
10:16:46 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds)
10:16:56 × mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
10:17:22 vacm joins (~vacwm@70.23.92.191)
10:17:37 takuan joins (~takuan@178-116-218-225.access.telenet.be)
10:20:33 × vacm quits (~vacwm@70.23.92.191) (Client Quit)
10:20:44 × rprije quits (~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 272 seconds)
10:22:04 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 240 seconds)
10:24:46 jakob_ joins (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de)
10:25:38 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:25:58 acidjnk_new joins (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de)
10:26:46 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
10:27:25 ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
10:28:26 obihann joins (~jhann@156.34.160.69)
10:29:44 × jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:30:20 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
10:32:17 <dminuoso> data ConDecl l where ConDecl l (Name l) [Type l] | ...
10:32:26 <dminuoso> This is from haskell-src-exts, what is this type list?
10:32:45 <dminuoso> Is that possibly for DatatypeContexts?
10:34:34 <dminuoso> Oh shoot me.
10:34:42 <dminuoso> Haskell for beginners.
10:36:13 × Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 264 seconds)
10:37:37 bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
10:43:15 darjeeling_ joins (~darjeelin@115.215.42.47)
10:43:30 bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru)
10:46:52 × jneira quits (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) (Ping timeout: 246 seconds)
10:49:25 jedws joins (~jedws@101.184.193.144)
10:50:08 Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net)
10:53:20 <tomsmeding> I believe there was a conversation here a few days back with a beginning haskell programmer that had trouble distinguishing [a] on the type level and a singleton list on the value level
10:54:09 jess-o-lantern joins (jess@freenode/staff/jess)
10:54:50 <tomsmeding> oh wait I'm misunderstanding your misunderstanding am I not
10:55:08 <tomsmeding> yay
10:55:25 <lortabac> types and data constructors with the same name were my main source of confusion when I was a beginner
10:56:56 <tomsmeding> understandable
10:57:31 × Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 265 seconds)
10:57:49 × aarvar quits (~foewfoiew@50.35.43.33) (Ping timeout: 264 seconds)
10:58:16 <dminuoso> tomsmeding: Haha, I was just wondering "what in the name does a data constructor declaration need a type for"
10:58:24 <dminuoso> My brain stopped working there for a good 5 minutes.
10:58:47 carlomagno1 joins (~cararell@148.87.23.8)
10:58:48 <tomsmeding> it's also kind of confusing
10:59:04 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 240 seconds)
10:59:15 <tomsmeding> "data constructor" is probably a value-level constructor, which takes value-level arguments
10:59:43 <tomsmeding> so on the surface, having no idea about the organisation of haskell-src-exts, I'd assume that those types are the instantiations of the type variables of the data type or something?
10:59:49 <tomsmeding> but that makes no sense in the context of a parser
10:59:51 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
11:00:00 × fendor_ quits (~fendor@91.141.3.89.wireless.dyn.drei.com) (Remote host closed the connection)
11:00:11 <tomsmeding> and if it's really a data _type_ declaration, then please do not call that a "data cosntructor"
11:01:18 fendor joins (~fendor@91.141.3.89.wireless.dyn.drei.com)
11:01:34 × carlomagno quits (~cararell@148.87.23.12) (Ping timeout: 246 seconds)
11:02:35 <dminuoso> tomsmeding: `data Foo = Bar Int`
11:02:39 <dminuoso> Here the `Int` is meant
11:02:55 <dminuoso> (The declaration of the data constructor Bar does take a number of types)
11:03:06 <tomsmeding> lol
11:03:07 × jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:03:22 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 260 seconds)
11:03:33 <tomsmeding> I guess we can share the bullet
11:10:46 cfricke joins (~cfricke@unaffiliated/cfricke)
11:11:17 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds)
11:12:37 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
11:17:44 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 272 seconds)
11:18:24 Guest18 joins (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102)
11:19:24 × knupfer quits (~Thunderbi@200116b82c88900038812dc9660ae862.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
11:19:46 <dminuoso> tomsmeding: Indeed, I was in a similar mindset as you. "This makes no sense"
11:21:18 machinedgod joins (~machinedg@24.105.81.50)
11:24:51 Chi1thangoo joins (~Chi1thang@87.112.60.168)
11:25:51 × alp quits (~alp@2a01:e0a:58b:4920:b56f:71bb:e7ea:75f0) (Ping timeout: 272 seconds)
11:26:16 idhugo_ joins (~idhugo@users-1190.st.net.au.dk)
11:26:37 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
11:26:49 × idhugo quits (~idhugo@users-1190.st.net.au.dk) (Read error: Connection reset by peer)
11:27:02 × nerdypepper quits (nerdypeppe@152.67.160.69) (Remote host closed the connection)
11:27:04 × nkly quits (~nkly@ip5f5bd51d.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
11:27:15 nerdypepper joins (nerdypeppe@152.67.160.69)
11:27:47 cheater joins (~user@unaffiliated/cheater)
11:27:56 × dragestil quits (~quassel@185.137.175.104) (Remote host closed the connection)
11:29:06 dragestil joins (~quassel@185.137.175.104)
11:29:39 nkly joins (~nkly@2a02:8109:9ac0:4a4c::9b9d)
11:30:24 × xff0x quits (~fox@2001:1a81:5251:7800:1dbd:1ac6:2640:4fc2) (Ping timeout: 240 seconds)
11:31:08 __monty__ joins (~toonn@unaffiliated/toonn)
11:31:09 DavidEichmann joins (~david@43.240.198.146.dyn.plus.net)
11:31:27 xff0x joins (~fox@2001:1a81:5251:7800:3e24:5cc1:3a0e:4d8)
11:34:29 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
11:35:07 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
11:36:47 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
11:37:46 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
11:39:16 × cfricke quits (~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer)
11:42:43 × plutoniix quits (~q@175.176.222.7) (Quit: Leaving)
11:46:20 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
11:47:05 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
11:47:15 × acidjnk_new quits (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Remote host closed the connection)
11:47:38 acidjnk_new joins (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de)
11:48:33 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
11:49:45 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
11:51:18 × bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
11:51:29 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Client Quit)
11:56:34 alp joins (~alp@2a01:e0a:58b:4920:a0d1:e2a9:a9ab:3adb)
11:59:07 livvy joins (~livvy@gateway/tor-sasl/livvy)
12:00:01 × Guest65945 quits (~PeErLesS@s91904426.blix.com) ()
12:01:57 bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
12:03:23 cfricke joins (~cfricke@unaffiliated/cfricke)
12:03:44 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds)
12:03:49 × deftly quits (~user@209.58.189.165) (Ping timeout: 264 seconds)
12:04:00 × bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Client Quit)
12:04:42 bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
12:05:42 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
12:07:46 × cfricke quits (~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer)
12:08:04 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
12:08:52 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
12:09:30 wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
12:10:02 × Kolkrabe quits (~user@unaffiliated/siracusa) (Quit: Bye!)
12:13:45 × wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
12:14:43 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
12:15:12 ech joins (~user@gateway/tor-sasl/ech)
12:17:31 × Guest18 quits (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) (Quit: Connection closed)
12:19:12 × p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 265 seconds)
12:19:12 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
12:19:21 × bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Quit: WeeChat 2.9)
12:19:37 bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
12:23:45 × nuncanada quits (~dude@179.235.160.168) (Ping timeout: 240 seconds)
12:25:14 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
12:27:07 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
12:27:24 × acidjnk_new quits (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
12:28:57 boxscape joins (577bcbc2@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.203.194)
12:30:02 × Guest35321 quits (183f4752@c-24-63-71-82.hsd1.ma.comcast.net) (Remote host closed the connection)
12:31:30 Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se)
12:31:43 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
12:32:25 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
12:33:44 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 256 seconds)
12:34:25 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Ping timeout: 264 seconds)
12:36:07 × Foritus quits (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Ping timeout: 260 seconds)
12:37:22 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
12:37:50 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
12:39:49 Tops2 joins (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de)
12:39:52 Foritus joins (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net)
12:40:40 × bliminse quits (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) (Ping timeout: 260 seconds)
12:41:18 bliminse joins (~bliminse@host109-158-129-241.range109-158.btcentralplus.com)
12:41:44 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
12:41:57 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c) (Ping timeout: 260 seconds)
12:42:15 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
12:42:47 kritzefitz joins (~kritzefit@fw-front.credativ.com)
12:44:08 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
12:46:12 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
12:47:27 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
12:47:29 solonarv joins (~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr)
12:48:43 akad joins (~akad@109107030050.radomsko.vectranet.pl)
12:50:07 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:2ef5:ab40:91d2:d4c8) (Ping timeout: 260 seconds)
12:52:35 × mmohammadi9812 quits (~mmohammad@2.178.160.31) (Quit: Quit)
12:52:48 mmohammadi9812 joins (~mmohammad@2.178.160.31)
12:53:07 urodna joins (~urodna@unaffiliated/urodna)
12:53:39 × idhugo_ quits (~idhugo@users-1190.st.net.au.dk) (Quit: Leaving)
12:54:52 × wallacer3 quits (~quassel@ns3134113.ip-37-187-4.eu) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:57:55 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c)
12:59:35 × koz_ quits (~koz@2404:4408:4303:8800:4270:af80:81b7:2f9) (Ping timeout: 272 seconds)
12:59:58 GyroW_ joins (~GyroW@d54C03E98.access.telenet.be)
12:59:58 × GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
12:59:58 GyroW_ joins (~GyroW@unaffiliated/gyrow)
13:00:27 jamm_ joins (~jamm@unaffiliated/jamm)
13:00:44 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
13:01:38 ericsagn1 joins (~ericsagne@2405:6580:0:5100:a7:5aa8:702f:4d52)
13:02:38 koz joins (~koz@121.99.240.58)
13:07:03 × lemmih quits (~lemmih@2406:3003:2072:44:21d6:f064:b28b:f0d4) (Remote host closed the connection)
13:07:19 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
13:07:23 lemmih joins (~lemmih@2406:3003:2072:44:c5c7:520:a681:5f3f)
13:08:50 geekosaur85 joins (82659a09@host154-009.vpn.uakron.edu)
13:09:08 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
13:10:54 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
13:11:14 × geekosaur85 quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
13:12:00 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
13:13:34 × pie_ quits (~pie_bnc]@unaffiliated/pie-/x-0787662) (Quit: pie_)
13:13:34 × vancz quits (~vancz@unaffiliated/vancz) (Quit: vancz)
13:13:54 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-plvaooheqznjbhqg) (Quit: Connection closed for inactivity)
13:14:41 pie_ joins (~pie_bnc]@unaffiliated/pie-/x-0787662)
13:14:41 vancz joins (~vancz@unaffiliated/vancz)
13:17:09 whatisRT joins (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d)
13:20:29 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
13:21:22 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
13:22:40 Tario joins (~Tario@201.192.165.173)
13:23:00 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:23:22 FreeBirdLjj joins (~freebirdl@101.228.42.108)
13:23:34 Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net)
13:24:03 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
13:25:15 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
13:25:15 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
13:25:15 GyroW joins (~GyroW@unaffiliated/gyrow)
13:26:04 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
13:26:16 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
13:27:52 WhereIsMySpoon joins (~WhereIsMy@178.239.168.171)
13:29:35 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
13:32:08 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection)
13:32:23 Tops21 joins (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de)
13:32:37 × Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 264 seconds)
13:33:05 FreeBirdLjj joins (~freebirdl@101.228.42.108)
13:33:24 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Read error: Connection reset by peer)
13:34:04 acidjnk_new joins (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de)
13:35:44 × Tops2 quits (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
13:36:44 <hyperisco> I am using dhall as a library and would like to _encode_ data and write it to a file. How can I do that? I see the ToDhall class but I am not sure where to go from there
13:38:55 Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net)
13:39:25 Amras joins (~Amras@unaffiliated/amras0000)
13:39:48 mirrorbird joins (~psutcliff@m83-187-163-53.cust.tele2.se)
13:40:27 hackage keycloak-hs 2.0.0 - https://hackage.haskell.org/package/keycloak-hs-2.0.0 (CorentinDupont)
13:41:23 × taurux quits (~taurux@net-188-216-13-237.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
13:41:51 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
13:42:34 ystael joins (~ystael@209.6.50.55)
13:43:10 taurux joins (~taurux@net-188-216-13-237.cust.vodafonedsl.it)
13:43:34 × ystael quits (~ystael@209.6.50.55) (Read error: Connection reset by peer)
13:44:46 justsomeguy joins (~justsomeg@216.186.218.241)
13:44:46 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
13:44:46 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
13:46:02 Wuzzy joins (~Wuzzy@p5790ef06.dip0.t-ipconnect.de)
13:46:04 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:47:33 ystael joins (~ystael@209.6.50.55)
13:48:52 <dminuoso> Can you emit newlines with CPP macros?
13:49:10 <Uniaika> should you? :P
13:49:29 <dminuoso> I want to define a bunch of instances with a single macro.
13:49:31 <dminuoso> So yes.
13:49:41 <Uniaika> I think you can
13:50:28 × Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 256 seconds)
13:52:24 × xff0x quits (~fox@2001:1a81:5251:7800:3e24:5cc1:3a0e:4d8) (Ping timeout: 240 seconds)
13:53:40 xff0x joins (~fox@83.236.18.113)
13:57:08 ddellacosta joins (~dd@86.106.121.168)
13:57:43 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 258 seconds)
14:00:47 Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net)
14:02:55 × akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds)
14:04:23 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:06:44 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
14:07:38 <siraben> Anyone using Emacs and got hlint + LSP to work together?
14:07:44 <siraben> I want to see hlint hints when using haskell-lsp but the manual doesn't seem to say anything about it
14:09:02 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
14:10:33 son0p joins (~son0p@181.136.122.143)
14:11:24 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 240 seconds)
14:12:14 akad joins (~akad@109107030050.radomsko.vectranet.pl)
14:13:24 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
14:15:12 × GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
14:15:23 GyroW joins (~GyroW@d54c03e98.access.telenet.be)
14:15:23 × GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host)
14:15:23 GyroW joins (~GyroW@unaffiliated/gyrow)
14:16:58 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
14:20:47 <lyxia> hyperisco: there is a Pretty instance, maybe that's the right way?
14:22:52 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) (Ping timeout: 260 seconds)
14:24:52 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
14:25:05 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
14:25:25 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
14:25:43 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:25:47 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
14:25:53 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
14:26:12 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
14:26:41 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
14:27:00 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
14:27:29 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
14:28:27 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
14:28:42 shatriff joins (~vitaliish@176.52.219.10)
14:29:15 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
14:29:37 nados joins (~dan@69-165-210-185.cable.teksavvy.com)
14:32:28 idhugo joins (~idhugo@eduroam06.au.dk)
14:32:38 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:33:59 ph88 joins (~ph88@2a02:8109:9e40:2704:f4dc:2c7e:f773:7bca)
14:36:02 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
14:36:19 ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net)
14:36:19 × ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host)
14:36:19 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
14:36:57 × koz quits (~koz@121.99.240.58) (Remote host closed the connection)
14:37:42 koz joins (~koz@121.99.240.58)
14:37:46 <tomsmeding> dminuoso: no you can't
14:37:49 <tomsmeding> this is also annoying in C
14:38:12 <tomsmeding> at least -- you can't, unless the haskell CPP is a different one than the regular CPP from C/C++
14:38:36 <dminuoso> I think the CPP is the one from.. well.. I dont know..
14:38:48 <dminuoso> The documentation seemed a bit fuzzy
14:39:54 <tomsmeding> notable is that in C, the only place in the syntax that requires a hard newline is in CPP directives; since CPP macros can't generate new macros, it's therefore unnecessary for macros to be able to generate newliens
14:40:11 <tomsmeding> and it turns out that they actually can't
14:40:23 <merijn> GHC CPP is pretty much unspecified
14:40:53 <merijn> It uses a super hacky setup of non-standard backwards compat flags/modes of the C compiler with a bunch of parsing rules changed to do CPP
14:40:55 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/native-cpp
14:40:59 <merijn> It's 100% vile hacks, basically
14:41:23 <dminuoso> So if I want something clean, it's TH?
14:42:02 <tomsmeding> generate TH with CPP!
14:42:21 <tomsmeding> that's got to be the ugliest combination of extensions yet
14:42:43 <dminuoso> tomsmeding: I can think of one better
14:43:12 <dminuoso> Add RebindableSyntax to change how the Q monad works
14:44:06 <tomsmeding> juicy
14:44:58 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
14:45:16 motherfsck joins (~motherfsc@unaffiliated/motherfsck)
14:45:20 <dminuoso> Or maybe we can do something fancy with Arrows
14:45:23 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
14:45:41 <dminuoso> (Are there still packages in use that even use the Arrows extension?)
14:45:49 <merijn> TH is also ill-defined, but in a less broken and vile way :p
14:46:02 <merijn> As in, at least TH is well-specified if you don't attempt to cross-compile
14:46:25 jamm_ joins (~jamm@unaffiliated/jamm)
14:46:42 <dminuoso> merijn: Is that because of reflection, where you could for instance look at `sizeOf (undefined :: Int)`?
14:46:48 <dminuoso> (inside TH)
14:47:14 × raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal)
14:49:11 <merijn> dminuoso: Yeah
14:49:23 <merijn> And then you get hairy questions like "which Int"?
14:49:37 <dminuoso> what do you mean by which?
14:49:39 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit)
14:49:47 × alp quits (~alp@2a01:e0a:58b:4920:a0d1:e2a9:a9ab:3adb) (Ping timeout: 272 seconds)
14:49:50 <merijn> as in "on the target architecture" or "on the build architecture"
14:49:55 <dminuoso> right
14:50:27 <merijn> But if you don't cross-compile it's not ambiguous
14:50:32 <dminuoso> Is that why TH is not allowed in the stage 1 compiler?
14:50:41 <merijn> This is also why cross-compiling TH is probably forever doomed
14:50:44 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
14:51:26 <merijn> Would've had to have explicit platform support build in from the get-go, but figuring out what it's "supposed" to do is hard
14:52:21 alp joins (~alp@88.126.45.36)
14:52:53 Ariakenom joins (~Ariakenom@h-158-174-186-203.NA.cust.bahnhof.se)
14:52:53 knupfer joins (~Thunderbi@200116b82c8890003c526afffe804160.dip.versatel-1u1.de)
14:53:11 <Ariakenom> async exceptions, yay or nay?
14:53:23 <monsterchrom> \∩/
14:53:27 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
14:53:47 <merijn> Ariakenom: Depends, do you like going depressed drinking binges?
14:53:53 <merijn> s/going/going on
14:53:56 × knupfer quits (~Thunderbi@200116b82c8890003c526afffe804160.dip.versatel-1u1.de) (Remote host closed the connection)
14:54:09 knupfer joins (~Thunderbi@200116b82c8890009dcece03b1dbb634.dip.versatel-1u1.de)
14:54:22 <noctux> "how I developed a drinking habit with the help of #haskell"
14:54:52 <merijn> Ariakenom: If yes, probably fine. If you have mercy on your liver, probably best avoid them as much as possible :)
14:55:03 <merijn> Also reduces the amount of uncontrollable sobbing in your life
14:55:13 <Ariakenom> :p
14:55:17 <dminuoso> Ariakenom: Can you specify the question?
14:55:39 <Ariakenom> dminuoso: would you prefer if they didnt exist in haskell
14:55:58 conal joins (~conal@64.71.133.70)
14:56:01 <dminuoso> Hard to say, they're quite convenient for killing threads.
14:56:03 <merijn> Ariakenom: I wish we had more control of what/where/when you could throw them
14:56:13 <merijn> But I wish we had first class concurrency too
14:56:28 <dminuoso> Without it, killing threads would require yield points and cooperatoin
14:56:42 <merijn> dminuoso: It still does :p
14:56:45 <dminuoso> heh
14:56:56 <dminuoso> merijn: except GHC takes care of the yield points for me.
14:57:02 <dminuoso> It does a mostly good job
14:57:07 <merijn> Sure, but still!
14:57:15 <dminuoso> okay fine
14:57:29 <dminuoso> Without it, killing threads would require manual yield points and manual cooperation.
14:57:29 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
14:57:41 <dminuoso> Which is hard to get right
14:57:51 <Ariakenom> I once wrote some concurrent code in python where I added yield points and timeouts everywhere. that would have been much easier in haskell, I tihnk
14:57:57 <dminuoso> I think, a notable fraction of async exception pain is because Control.Exception is messed up
14:58:02 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
14:58:08 <dminuoso> But if you use UnliftIO.Exception for example, most of that is gone
14:58:43 <Ariakenom> I like asyncs but I havent run into much trouble
14:58:44 × idhugo quits (~idhugo@eduroam06.au.dk) (Ping timeout: 240 seconds)
14:59:00 <merijn> Ariakenom: That's because there's no trouble, right up until the point everything is broken :p
14:59:10 <merijn> And then it's impossible to debug :p
14:59:34 <dminuoso> Ariakenom: To be exact, Control.Exception doesn't make a clear distinction between async and sync exceptions. That's sadly an antipattern
14:59:43 <Ariakenom> agreed
14:59:55 <dminuoso> We shouldnt hand you tools you can use to accidentally recover from an async exceptoin
15:00:02 × WhereIsMySpoon quits (~WhereIsMy@178.239.168.171) ()
15:00:04 <merijn> Naah
15:00:06 <dminuoso> (If you want to shoot yourself in the foot, make your own shotgun)
15:00:17 <merijn> The problem with Control.Exception is that it messed up masking stuff
15:00:25 <dminuoso> merijn: no it *is* a problem
15:00:41 <Ariakenom> veryUninterruptibleIAmBusyMask
15:01:07 Saukk joins (~Saukk@2001:998:f9:2914:1fa4:7678:3395:bc0)
15:01:12 <dminuoso> merijn: Oh you mean how mask doesn't actually mask?
15:01:18 <dminuoso> or not completely, anyhow
15:01:38 <Ariakenom> funny thing. in python, Ctrl-C aka SIGINT aka KeyboardInterrupt is basically an async exception. but because asyncs arent a thing in python it can break most anything
15:01:49 <merijn> I meant that catch and co should use uninterruptibleMask for cleanup, but don't
15:01:53 <dminuoso> Perhaps we should rename mask/uninterruptableMask to mask/interruptableMask
15:02:06 <dminuoso> (oh well, they should be flipped on one side)
15:02:07 <merijn> There's a mailing list thread by me from 2013
15:02:18 × Sanchayan quits (~Sanchayan@122.167.95.166) (Quit: leaving)
15:02:19 <dminuoso> merijn: And I propose that catch shouldn't even catch async exceptions.
15:02:42 <merijn> dminuoso: That's a user decision, tbh
15:02:54 <dminuoso> I personally avoid all of that pain since all my apps use unliftio anyway, so I just use UnliftIO.Exception instead of Control.Exceptoin
15:03:01 <dminuoso> which has the "fixed semantics"
15:03:14 <Ariakenom> I at least prefer haskell embracing asyncs to python having it as a broken special case. half way isnt great
15:03:39 <dminuoso> (it takes just a single `f catch (\(e :: SomeExceptoin) -> ...)` and your thread becomes unkillable
15:03:51 <dminuoso> These catch-all points do exist
15:04:05 <merijn> dminuoso: Well, then we should *instead* ban SomeException :p
15:04:12 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:04:15 <merijn> I'm much more on-board for that
15:04:43 <dminuoso> merijn: I dont care about the how really, in the current state of things, it's easier to tweak the combinators to selectively ignore async exceptions if they provide recovery
15:04:58 <merijn> dminuoso: The current state of unchecked exceptions is a stupid mess too
15:04:59 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
15:05:03 <dminuoso> such that async exceptions are just for acts of violence
15:05:33 <dminuoso> (because if you wanted to use them for communication, just use stm instead...)
15:05:34 <merijn> I should start a patreon to fund me working on a GHC fork full of "non fancy type" breaking extensions :p
15:05:35 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
15:05:35 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
15:05:35 GyroW_ joins (~GyroW@unaffiliated/gyrow)
15:06:11 <dminuoso> merijn: If only you could *sell* all your grand ideas but one, then you'd have enough money to fund yourself working on the remaining one.
15:06:15 <Ariakenom> merijn's ghc cleaning fund
15:06:25 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
15:07:03 <merijn> dminuoso: My grand ideas are *good* and as you know, you can't get people to listen to good ideas even if you pay them :p
15:07:36 <dminuoso> Of course, everyone thinks their ideas are good.
15:07:51 <dminuoso> It makes you wonder why nobody will listen to them!
15:07:51 <merijn> Mine actualy, that's why no one listens to them!
15:08:52 polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
15:09:20 × Saukk quits (~Saukk@2001:998:f9:2914:1fa4:7678:3395:bc0) (Remote host closed the connection)
15:09:48 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Ping timeout: 260 seconds)
15:11:17 vacm joins (~vacwm@70.23.92.191)
15:12:13 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
15:12:33 × vacm quits (~vacwm@70.23.92.191) (Client Quit)
15:13:57 <__monty__> Interesting use of moduse tollens.
15:15:27 hackage happstack-clientsession 7.3.2 - client-side session data https://hackage.haskell.org/package/happstack-clientsession-7.3.2 (JeremyShaw)
15:17:42 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
15:18:01 nitrix is now known as nitrix-or-treat
15:18:36 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
15:20:44 × son0p quits (~son0p@181.136.122.143) (Ping timeout: 240 seconds)
15:21:57 hackage ukrainian-phonetics-basic 0.1.7.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.7.0 (OleksandrZhabenko)
15:22:31 × toorevitimirp quits (~tooreviti@117.182.180.36) (Remote host closed the connection)
15:22:38 son0p joins (~son0p@181.136.122.143)
15:22:58 hackage keycloak-hs 2.0.1 - https://hackage.haskell.org/package/keycloak-hs-2.0.1 (CorentinDupont)
15:24:24 × acidjnk_new quits (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
15:24:59 Ariakenom_ joins (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se)
15:27:34 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
15:27:44 ggole joins (~ggole@2001:8003:8119:7200:517f:9804:f25b:eb42)
15:28:14 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:28:34 invaser joins (~Thunderbi@31.148.23.125)
15:29:10 × Ariakenom quits (~Ariakenom@h-158-174-186-203.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
15:32:13 helpmeguys joins (676c5f93@103.108.95.147)
15:32:52 <helpmeguys> Is it possible to write a Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements. Note: the complement of a set contains all the elements in [1..n] that are not members of the given set. Show the outputs for n=6.
15:34:17 <dminuoso> helpmeguys: When you say complement, do you mean that as relative complement with respect to [1..n]?
15:34:37 <helpmeguys> Yes, under that assumption.
15:34:55 <dminuoso> helpmeguys: The answer is yes.
15:35:28 <helpmeguys> Can I get an example of such a program?
15:36:08 <dminuoso> You mean a solution to your homework assignment?
15:36:16 <Uniaika> (shots fired)
15:36:17 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
15:36:18 <helpmeguys> No
15:36:22 <dminuoso> :>
15:36:26 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
15:36:29 <dminuoso> No but seriously, this does sound like a homework assignment.
15:36:30 <helpmeguys> I am just looking up old questions
15:36:44 <dminuoso> What have you tried?
15:38:43 <helpmeguys> Binary trees
15:38:47 <helpmeguys> And all
15:39:01 <helpmeguys> Cyclic groups
15:39:41 <dminuoso> Maybe I understand the task wrong, but this seems like a very simple one liner..
15:40:07 <helpmeguys> Please
15:40:09 <helpmeguys> Help me
15:40:22 <helpmeguys> I just want to see the code.
15:40:29 <helpmeguys> It will relax my mind
15:40:42 <dminuoso> Dunno, I still think this is a homework assignment.
15:40:51 <ghoulguy> helpmeguys, give it a shot and then paste what you try on a pastebin to share/get help
15:41:00 <ghoulguy> It will help relax your mind
15:41:13 <dminuoso> I mean if this is an old question, you surely have an answer already, or have enough competency to solve this yourself.
15:41:23 cfricke joins (~cfricke@unaffiliated/cfricke)
15:41:37 <dminuoso> And Im also not sure how binary trees or cyclic groups are even remotely useful here
15:42:03 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
15:42:05 × akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 240 seconds)
15:42:30 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
15:42:32 <dminuoso> It should also be said, that lists dont form proper sets as they have internal ordering.
15:42:43 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
15:42:52 <dminuoso> So that begs another question whether [1,2] = [2,1] for the purpose of this excercise
15:43:11 <dminuoso> (or what a subset even means)
15:43:20 <ghoulguy> I'm imagining: *Help> homework 4
15:43:20 <ghoulguy> [[0,1],[0,2],[0,3],[1,2],[1,3],[2,3]]
15:43:50 <dminuoso> ghoulguy: For the purpose of golfing, did you do the naive thing?
15:44:25 <ghoulguy> I didn't use anything from Data.List, if that's what you're asking.
15:44:47 <helpmeguys> *Help> homework 4
15:44:55 <helpmeguys> Is that hint?
15:45:50 christo joins (~chris@81.96.113.213)
15:46:58 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Ping timeout: 258 seconds)
15:47:25 × boxscape quits (577bcbc2@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.203.194) (Quit: Connection closed)
15:49:20 Tario joins (~Tario@201.192.165.173)
15:49:30 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
15:50:07 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:50:07 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
15:50:26 <ghoulguy> dminuoso, That implementation tries to maximize sharing and minimize retraversing any lists
15:51:06 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-dqhgzgfgsjzhioqy)
15:52:08 idhugo joins (~idhugo@563472ae.rev.stofanet.dk)
15:53:52 wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
15:54:39 ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
15:55:21 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
15:55:41 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 256 seconds)
15:55:49 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
15:55:49 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
15:55:49 GyroW joins (~GyroW@unaffiliated/gyrow)
15:56:39 ddellacosta joins (~dd@86.106.121.168)
15:58:03 is_null joins (~jpic@pdpc/supporter/professional/is-null)
15:59:26 × ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:00:45 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
16:02:31 × bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
16:03:15 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
16:03:39 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
16:03:57 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 265 seconds)
16:03:58 Tario joins (~Tario@201.192.165.173)
16:04:44 × bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
16:06:30 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
16:07:44 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 240 seconds)
16:07:57 vacm joins (~vacwm@70.23.92.191)
16:08:38 ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
16:09:24 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
16:09:51 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
16:09:51 × vacm quits (~vacwm@70.23.92.191) (Client Quit)
16:12:21 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
16:12:27 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
16:13:22 <typetetris> Can I disable a redundant constraint warning for a single function within a file?
16:13:38 <geekosaur> not currently
16:13:39 <ghoulguy> typetetris: I'd be surprised
16:14:06 × ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
16:14:14 <helpmeguys> Please
16:14:17 <helpmeguys> Help me
16:14:25 <helpmeguys> I will study better next time
16:14:29 <helpmeguys> Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements?
16:14:31 <helpmeguys> I promise
16:14:35 <helpmeguys> I will work hard
16:14:37 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds)
16:14:41 <dminuoso> typetetris: A long while ago, the ability to disable diagnostics per region was asked for orphans and overlapping names. The discussion quickly devolved into "lets build this right and put in an entire architecture for this for all diagnostics"
16:14:47 <dminuoso> And then it stopped.
16:14:50 <dminuoso> That was about 10 years ago I think?
16:15:08 <ghoulguy> helpmeguys: study for what?
16:15:17 <helpmeguys> For my diploma
16:15:20 <merijn> dminuoso: I've had this discussion as recent as 2 years ago when I proposed an "ADOPT" macro for orphan instances
16:15:43 <merijn> (yes, I think I'm verry funny)
16:15:43 <dminuoso> merijn: Indeed. I think we're at a stage where it's fine to just hack ADOPT in, and deprecate it if or when we get that architecture
16:15:46 <typetetris> Sometimes ghc complains HasCallStack would be redundant ... but I don't see how it comes into the signature otherwise.
16:16:10 <helpmeguys> Please
16:16:15 <helpmeguys> Can someone tell me :)
16:16:20 <helpmeguys> Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements?
16:16:22 <dminuoso> Because the benefit of ADOPT greatly outweighs the heavy and unbearable engineering complexity (that nobody wants to do) that nobody needs anyway.
16:16:40 <dminuoso> Out of all the things, I think ADOPT is pretty much the only one where I really want the diagnostics but the ability to selectively disable them
16:16:44 xerox_ joins (~xerox@unaffiliated/xerox)
16:16:52 <dminuoso> I've went as far as always using Orphan modules precisely because of this
16:16:55 <typetetris> What is ADOPT?
16:17:06 <dminuoso> typetetris: A proposed addition to suppress orphan instance warnings
16:17:14 <typetetris> Thanks.
16:17:21 <dminuoso> say `instance {-# ADOPT #-} C T`
16:18:25 <dminuoso> merijn: Maybe we should restart the discussion and lobby for "lets fix this now, and deprecate it if this imaginary and impossible infrastructure ever arrives"
16:18:29 <dminuoso> Im up for it
16:18:42 <dminuoso> (the technical implementation should be very simple)
16:18:46 <davean> We kinda got it for overlapping?
16:18:49 <merijn> dminuoso: Good luck :)
16:19:09 <merijn> typetetris: A made up pragma for silencing orphan instance warnings
16:19:21 <dminuoso> davean: No, in case of overlapping it doesn't just suppress a warning, it affects instance resolution
16:19:31 <dminuoso> ADOPT is really just about suppressing a warning
16:19:39 <merijn> typetetris: Because the only current alternative is to disable *all* orphan instances, rather than specific ones
16:20:18 <typetetris> merijn: Yes, a more specific pragma would be better.
16:21:57 <dminuoso> typetetris: The rough argument against it was "yet another syntax change, causing more friction on libraries like haskell-src - and while we're at it, we should have an infrastructure in place where we could selectively disable any diagnostic on arbitrary code regions"
16:22:06 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
16:22:09 <dminuoso> You know, just the thing that requires tremendous engineering and effort
16:22:23 <dminuoso> Except, we don't really need it for anything but orphan warnings realistically.
16:22:26 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
16:22:58 <typetetris> dminuoso: .... yeah, sounds like YAGNI
16:23:23 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
16:23:43 <dminuoso> typetetris: To be fair, GHC has frequently suffered from ad-hoc additions to its syntax like that.
16:24:27 <dminuoso> So rather than "changing the syntax with extra bits every time you come up with the new idea", it's not completely unwise to think about "if we do this, we should find a general solution once and for all"
16:24:32 <typetetris> Is there a timeline for the primops to speed up effect libraries in sight?
16:24:41 <typetetris> Forgot how they have been called.
16:26:16 vacm joins (~vacwm@70.23.92.191)
16:26:36 koz is now known as koz_
16:26:51 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
16:27:15 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
16:27:28 <lyxia> typetetris: you can look up the proposal and its discussion on Github https://github.com/ghc-proposals/ghc-proposals/pull/313
16:28:07 <helpmeguys> Okay
16:28:11 <helpmeguys> My test is up
16:28:16 <helpmeguys> At-least tell me now
16:28:17 <helpmeguys> :)
16:28:25 <ghoulguy> helpmeguys: What test?
16:28:40 <helpmeguys> FBI Cybersec Command
16:28:53 ChanServ sets mode +q *!*@103.108.95.147
16:29:28 × helpmeguys quits (676c5f93@103.108.95.147) (Remote host closed the connection)
16:29:37 <dminuoso> Thank you whoever did that.
16:29:58 × alp quits (~alp@88.126.45.36) (Ping timeout: 272 seconds)
16:31:31 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
16:31:55 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
16:34:53 × polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:36:13 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
16:38:12 × koz_ quits (~koz@121.99.240.58) (Ping timeout: 260 seconds)
16:38:16 × Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 246 seconds)
16:39:03 alp joins (~alp@2a01:e0a:58b:4920:3dfd:5fdb:5e25:6dc1)
16:40:15 <noctux> hmm, ghoulguy, is there actually a "nice" oneliner solution?
16:40:22 Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus)
16:40:29 howdoi joins (uid224@gateway/web/irccloud.com/x-npushggnkcvoclse)
16:40:40 <noctux> my most (codeminimal) one was with permutations and nub
16:40:45 koz joins (~koz@121.99.240.58)
16:41:09 <ghoulguy> noctux: If the goal is 'short' then using: filter and subsequences
16:41:20 koz is now known as koz_
16:41:32 <noctux> ah, damn it...
16:41:59 <noctux> subsequences actually includes "ac" from "abc"...
16:42:08 <noctux> someone should learn to read docs :P
16:42:11 <noctux> ghoulguy: thanks!
16:42:23 <ghoulguy> I wouldn't use that in general, though
16:43:24 <noctux> sure, was just out of codegolf-interest
16:43:57 hackage esqueleto 3.3.4.1 - Type-safe EDSL for SQL queries on persistent backends. https://hackage.haskell.org/package/esqueleto-3.3.4.1 (parsonsmatt)
16:44:36 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
16:44:53 is_null joins (~jpic@pdpc/supporter/professional/is-null)
16:45:20 × wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds)
16:45:38 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
16:46:31 Aquazi joins (uid312403@gateway/web/irccloud.com/x-roarfkilnkqrlcqj)
16:48:24 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
16:49:32 × alp quits (~alp@2a01:e0a:58b:4920:3dfd:5fdb:5e25:6dc1) (Ping timeout: 260 seconds)
16:50:11 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
16:52:32 shafox joins (~Srain@106.51.234.111)
16:54:57 Ariakenom joins (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se)
16:58:19 justsomeguy joins (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b)
16:58:19 × justsomeguy quits (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host)
16:58:19 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
16:58:35 × knupfer quits (~Thunderbi@200116b82c8890009dcece03b1dbb634.dip.versatel-1u1.de) (Quit: knupfer)
16:58:46 knupfer joins (~Thunderbi@200116b82c88900030a49d309e535b83.dip.versatel-1u1.de)
16:59:02 × knupfer quits (~Thunderbi@200116b82c88900030a49d309e535b83.dip.versatel-1u1.de) (Client Quit)
16:59:12 knupfer joins (~Thunderbi@200116b82c889000692da158e2b06244.dip.versatel-1u1.de)
16:59:31 × knupfer quits (~Thunderbi@200116b82c889000692da158e2b06244.dip.versatel-1u1.de) (Client Quit)
16:59:48 knupfer joins (~Thunderbi@200116b82c889000c591b125fca64e2d.dip.versatel-1u1.de)
17:02:50 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
17:03:25 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
17:03:41 × chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
17:04:24 <devalot> Haskell Cafe is still using mailman 2 and it appears there are issues with SPF and DMARC. As an example, I posted a message a few weeks ago. One person responded directly to me and the list. Neither message is in the archive. Is it just me or do others have problems with the mailing list?
17:07:31 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
17:11:17 kritzefitz joins (~kritzefit@212.86.56.80)
17:12:44 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:12:46 aidecoe joins (~aidecoe@unaffiliated/aidecoe)
17:16:04 uhrenmacher joins (~uhrenmach@p200300ef8f06020024f0b14712d0bcf7.dip0.t-ipconnect.de)
17:17:57 hackage keycloak-hs 2.0.2 - https://hackage.haskell.org/package/keycloak-hs-2.0.2 (CorentinDupont)
17:18:34 <geekosaur> devalot, try in #haskell-infrastructure
17:19:46 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
17:20:14 britva joins (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef)
17:20:54 × Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Quit: Leaving)
17:24:02 kayvan joins (~user@52-119-115-243.PUBLIC.monkeybrains.net)
17:24:39 × uhrenmacher quits (~uhrenmach@p200300ef8f06020024f0b14712d0bcf7.dip0.t-ipconnect.de) (Quit: )
17:24:57 × hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
17:26:28 hackage cut-the-crap 2.2.0 - Cuts out uninteresting parts of videos by detecting silences. https://hackage.haskell.org/package/cut-the-crap-2.2.0 (Jappie)
17:32:04 <justsomeguy> Hi there -- I'm on HPFP, chapter 8, learning about the basics of recursion. I'm writing a recursive function to multiply two numbers by repeatedly adding, and having trouble figuring out what I'm doing wrong. It works for positive inputs, but reverses the sign for negative inputs. Would someone mind taking a look at my code and giving me a hint? https://github.com/kingparra/multiply/blob/master/src/Lib.hs
17:32:49 <lyxia> devalot: I've noticed that happening also a few weeks ago.
17:33:48 × ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:34:06 × ggole quits (~ggole@2001:8003:8119:7200:517f:9804:f25b:eb42) (Quit: Leaving)
17:35:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
17:36:06 <justsomeguy> Ah, ok, seems I hadn't considered the case where y is negative.
17:36:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:38:09 × thunderrd quits (~thunderrd@183.182.111.47) (Ping timeout: 272 seconds)
17:39:53 rx_ joins (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207)
17:43:21 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
17:47:58 pjb joins (~t@2a01cb04063ec5000c3dc2e28b3d9ccb.ipv6.abo.wanadoo.fr)
17:48:10 Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas)
17:48:14 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
17:50:46 thunderrd joins (~thunderrd@183.182.115.112)
17:51:10 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 258 seconds)
17:51:57 × Chi1thangoo quits (~Chi1thang@87.112.60.168) (Read error: Connection reset by peer)
17:54:10 × kayvan quits (~user@52-119-115-243.PUBLIC.monkeybrains.net) (Remote host closed the connection)
17:54:18 akad joins (~akad@109107030050.radomsko.vectranet.pl)
17:54:54 hololeap joins (~hololeap@unaffiliated/hololeap)
17:55:33 × hololeap quits (~hololeap@unaffiliated/hololeap) (Max SendQ exceeded)
17:55:38 Chi1thangoo joins (~Chi1thang@87.112.60.168)
17:56:03 hololeap joins (~hololeap@unaffiliated/hololeap)
17:56:31 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
17:56:44 × rx_ quits (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) (Ping timeout: 240 seconds)
17:56:51 <typetetris> https://github.com/ghc-proposals/ghc-proposals/pull/313 was touched last time in September ... hopefully it doesn't fizzle out.
17:58:31 × asheshambasta quits (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
17:59:01 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
17:59:24 rx_ joins (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207)
17:59:46 kritzefitz joins (~kritzefit@212.86.56.80)
18:00:00 ixlun joins (~matthew@213.205.241.94)
18:00:11 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
18:00:31 × britva quits (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep)
18:01:12 is_null joins (~jpic@pdpc/supporter/professional/is-null)
18:01:45 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
18:02:04 <ixlun> Hi all, I was wondering if someone may
18:02:16 <ixlun> be able to help me with some performance issues
18:02:42 <ixlun> After 1 min of execution I'm getting: total alloc = 60,821,691,232 bytes
18:03:07 <ixlun> so I'm presuming I've got a space leak somehwere
18:03:25 × Ariakenom_ quits (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) (Quit: Leaving)
18:04:42 <ixlun> apparently, (!) in https://termbin.com/7iia is responsible for a large part of that
18:04:42 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
18:05:02 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
18:05:27 × kuribas quits (~user@ptr-25vy0i9apvg5lclnymw.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
18:05:31 <monsterchrom> IIRC "total alloc" means nothing when taken out of context.
18:06:12 <monsterchrom> The correct first step is to look at "resident memory" only.
18:07:09 <monsterchrom> And the best way is to use the unix/linux programs "top" or "htop" to look at RSS only. Not even "virtual whatever", that's a lie.
18:07:23 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
18:10:43 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
18:10:50 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
18:12:23 × Kaivo quits (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Ping timeout: 260 seconds)
18:13:08 <ixlun> Hmm, I don't think it looks that terrible,
18:13:24 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
18:13:27 <ixlun> but doesn't the above imply lots and lots of GC is occuring?
18:13:53 bennofs1 joins (~benno@dslb-178-000-065-150.178.000.pools.vodafone-ip.de)
18:13:53 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
18:14:01 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
18:14:39 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
18:14:41 <dolio> Space leaks aren't the same as doing lots of GC.
18:14:42 <monsterchrom> Yes, that does.
18:14:51 <monsterchrom> And what dolio said.
18:15:39 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
18:16:03 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
18:17:44 jesser[m] joins (jessermatr@gateway/shell/matrix.org/x-fexhchkhagwtqfyl)
18:17:44 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
18:18:22 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
18:19:00 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
18:19:11 <rx_> what column is rss?
18:19:32 <monsterchrom> Sorry, RES
18:20:25 × taurux quits (~taurux@net-188-216-13-237.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
18:21:46 ranman1 joins (~ranman@217.146.82.202)
18:22:12 taurux joins (~taurux@net-188-216-115-134.cust.vodafonedsl.it)
18:24:26 <ixlun> Hmm, I think I need to do some reasrch on optimising Haskell
18:24:27 hackage polysemy-methodology 0.1.0.0 - Domain modelling algebra for polysemy https://hackage.haskell.org/package/polysemy-methodology-0.1.0.0 (locallycompact)
18:26:46 ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
18:30:03 ishutin_ joins (~Ishutin@92-249-182-32.pool.digikabel.hu)
18:32:49 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:33:13 × ishutin quits (~Ishutin@80-95-82-226.pool.digikabel.hu) (Ping timeout: 256 seconds)
18:34:24 × idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 240 seconds)
18:34:58 hackage hex-text 0.1.0.2 - ByteString-Text hexidecimal conversions https://hackage.haskell.org/package/hex-text-0.1.0.2 (chris_martin)
18:35:31 × dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 246 seconds)
18:37:01 × kish quits (~oracle@unaffiliated/oracle) (Remote host closed the connection)
18:37:10 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
18:38:25 kish joins (~oracle@unaffiliated/oracle)
18:41:38 dcoutts_ joins (~duncan@33.14.75.194.dyn.plus.net)
18:41:58 wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
18:43:10 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
18:44:02 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
18:45:30 × Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 272 seconds)
18:45:46 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
18:46:25 × wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
18:46:25 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Remote host closed the connection)
18:46:40 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
18:47:57 rx_ parts (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) ()
18:48:12 × nyaomi quits (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) (Quit: meow)
18:51:03 rx_ joins (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207)
18:51:45 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
18:51:47 <rx_> hm, so `let double x = 2 * x; let quadruple x = quadruple (double x)` almost crashed my computer
18:52:01 <rx_> why's that?
18:52:10 <rx_> using ghci
18:52:34 <geekosaur> because quadruple calls itself immediately
18:52:35 × dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
18:52:58 <rx_> but it's not defined
18:53:09 <geekosaur> it's defined recursively at that point
18:53:17 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
18:53:20 <rx_> ok
18:53:36 <rx_> can I limit the "heap" space
18:53:41 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer)
18:53:43 <geekosaur> let defines things recursively. this is a feature when used appropriately since infinite values are useful when they're productive
18:53:59 Kolkrabe joins (~user@unaffiliated/siracusa)
18:54:09 <geekosaur> > let ones = 1 : ones in take 10 ones
18:54:12 <lambdabot> [1,1,1,1,1,1,1,1,1,1]
18:54:45 GyroW_ joins (~GyroW@d54C03E98.access.telenet.be)
18:54:45 × GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
18:54:45 GyroW_ joins (~GyroW@unaffiliated/gyrow)
18:54:49 fabianhjr joins (~fabian@2806:106e:18:31bb:397f:b3aa:2c0e:c3b3)
18:54:49 × fabianhjr quits (~fabian@2806:106e:18:31bb:397f:b3aa:2c0e:c3b3) (Client Quit)
18:55:07 <geekosaur> there are ways to limit heap but it'll still crash ghci
18:55:09 <rx_> that's haskell after the : ?
18:55:29 <geekosaur> yes
18:55:44 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
18:56:04 <geekosaur> (x:xs) is the fundamental way of building a list
18:56:13 <rx_> oh yeah
18:56:23 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
18:56:29 <rx_> I thought it was a separator for a moment
18:56:31 <rx_> thanks
18:59:57 hackage vimeta 0.3.0.1 - Frontend for video metadata tagging tools https://hackage.haskell.org/package/vimeta-0.3.0.1 (PeterJones)
19:00:14 × knupfer quits (~Thunderbi@200116b82c889000c591b125fca64e2d.dip.versatel-1u1.de) (Remote host closed the connection)
19:00:23 knupfer joins (~Thunderbi@200116b82c889000d491c85aad532716.dip.versatel-1u1.de)
19:00:24 × mirrorbird quits (~psutcliff@m83-187-163-53.cust.tele2.se) (Ping timeout: 240 seconds)
19:00:49 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
19:01:05 nineonine joins (~textual@216.81.48.202)
19:01:12 alp joins (~alp@2a01:e0a:58b:4920:d435:c55a:9994:ea6)
19:03:27 <dminuoso> rx_: As a useful note, (:) is actually just a data constructor that happens to look like an operator. :)
19:03:29 conal joins (~conal@64.71.133.70)
19:03:30 berberman_ joins (~berberman@unaffiliated/berberman)
19:04:04 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
19:04:21 <dminuoso> One could assume list was defined as `data [a] = a : [a] | []` - or alternatively as `data List a = Cons a [a] | Nil`. In this second version `Cons` takes the role of (:) :)
19:04:29 is_null joins (~jpic@pdpc/supporter/professional/is-null)
19:05:11 <rx_> what does caps mean in hs ?
19:05:22 <rx_> library function?
19:05:33 <geekosaur> initial capital is a constructor, vs. a variable/binding
19:05:46 <rx_> oh ok
19:06:22 <geekosaur> this is important in pattersn so it knows which parts are structural to be matched against, vs. which parts are data that can be bound to
19:06:40 bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru)
19:06:55 <dminuoso> Oh, I messed up the second declaration. That should have read `data List a = Cons a (List a) | Nil` of course.
19:06:59 fmeyer joins (~fmeyer@p4fc127b6.dip0.t-ipconnect.de)
19:07:06 <dminuoso> % data List a = Cons a (List a) | Nil
19:07:06 <yahb> dminuoso:
19:07:25 × tdhttt quits (~tdhttt@static-198-54-131-149.cust.tzulo.com) (Ping timeout: 240 seconds)
19:07:49 <geekosaur> when using infix constructors, initial colon (:) is "capital" (borrowed from list syntax)
19:07:56 × ulidtko|k quits (~ulidtko@193.111.48.79) (Remote host closed the connection)
19:08:02 <rx_> hmm, there is no way out of the quadruple function is there
19:08:14 ulidtko|k joins (~ulidtko@193.111.48.79)
19:08:25 <geekosaur> not as written. but did you want double (double x) ?
19:08:38 <rx_> I'm tracing through it but I realize it needs a way out
19:08:48 <rx_> ah no, just going through the haskell wikibook
19:09:16 <rx_> clever question by the author I guess :]
19:09:16 <hyperisco> okay I hate exceptions in Haskell now
19:09:17 <geekosaur> either that, or a way to produce a partial result before it recurses (like the `ones` example)
19:09:33 <hyperisco> so about them checked exceptions
19:09:35 <geekosaur> hyperisco, what took you so long?
19:09:49 <hyperisco> I have never written a program that does IO in Haskell until now lol
19:09:49 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 264 seconds)
19:09:58 tdhttt joins (~tdhttt@2600:8802:2203:2500:49a:4401:3967:ca62)
19:09:59 <hyperisco> you know how Haskell is also a research language?
19:10:11 <hyperisco> so anyways, every exception is a SomeException right?
19:10:17 <geekosaur> yes
19:10:22 <hyperisco> okay then it is fixed
19:10:51 <hyperisco> I am just in two minds that you either have unityped errors or you have checked errors, and checked errors are not really so useful
19:11:02 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection)
19:11:29 <hyperisco> a half-way of unchecked I dunno what type you're throwing is unpleasant
19:11:39 <dsal> I'm a pretty non-fan of checked exceptions. I've gone from "I hate exceptions in Haskell" to "Eh"
19:12:03 <dminuoso> dsal: Are you opposed to the general idea of it, or to specific implementations of it?
19:12:11 Amras joins (~Amras@unaffiliated/amras0000)
19:12:11 <dminuoso> Because why would you willingly discard information?
19:12:21 <dsal> I've only experienced in Java, and most of what I've done there is get rid of things.
19:13:08 <dsal> It just seems to sprawl without bounds and get wrapped in other thing that make it somewhat lossy. I don't think it *can't* be done, but the Java experiment was very bad.
19:13:10 <hyperisco> dminuoso, you'd willingly discard information when there is no decisions to be made on the basis of that information
19:13:25 <hyperisco> because, otherwise, it is extra effort to keep around
19:13:27 <geekosaur> ^
19:13:47 <dminuoso> hyperisco: Why do decisions need to be made? Isn't it enough to have some kind of proof your program is right?
19:13:50 <dsal> Yeah, like, I'd be fine with a handler somewhere that could infer what exceptions were in scope.
19:13:58 <hyperisco> and it just seems to be that, for many uses, a string message and maybe a stack trace and maybe a source line suffices
19:14:02 <dminuoso> In a similar sense to how type systems dont make active decisions for you, they just filter out bad programs.
19:14:25 <dsal> i.e., when you go to write an exception handler, it would be aware of the things that might be thrown. If you're not writing an exception handler, you shouldn't have to say anything.
19:14:30 <dminuoso> "Oops forgot to catch an exception here" can lead to brittle software in production.
19:14:53 <dsal> I've seen far more bugs from "I was forced to deal with an exception here" than forgetting to catch them.
19:15:03 <dsal> Crashes > bad behavior.
19:15:13 <hyperisco> dminuoso, what is the point of having more than one exception type?
19:15:16 <dminuoso> Not sure whether the > denotes badness or goodness.
19:15:26 <rx_> dminuoso, it seems hard to solve just forgetting to do something
19:15:35 <dsal> Heh. I'd rather have software crash than behave incorrectly.
19:15:58 <dminuoso> dsal: Depends on what the cost of crash recovery is.
19:16:03 <dsal> But I'd be open to "what kinds of crashes might occur here"
19:16:29 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:16:40 <dminuoso> hyperisco: The same point of having more than one data type?
19:16:42 <dsal> The cost of crash recovery is probably less than the cost of "the software just did the wrong thing that was kind of undefined"
19:16:52 <dminuoso> The ability to pattern match on it, and make decisions.
19:17:05 <dsal> I used to write a lot of erlang, though, where crashing is great.
19:17:05 <hyperisco> dminuoso, I think that is a good hypothesis but my experience is that it does not bear out
19:17:11 <dminuoso> dsal: Id argue that depends greatly on the problem domain of your software.
19:17:45 <dminuoso> hyperisco: So perhaps the right ergonomics haven't been discovered or implemented yet. Im merely suggesting that in principle checked exceptions seems like a desirable thing.
19:17:57 <dsal> Maybe, but I'd think undefined behavior is generally worse than crashed program.
19:18:10 <hyperisco> dminuoso, I found some utility with file system operations, because you can glean the state of the file system (or at least what the state was) by which exception was thrown
19:18:16 <dminuoso> Because I'd rather have my compiler tell me "you have an uncaught exception here" than to discover this at runtime.
19:18:22 <dminuoso> I mean folks, that's precisely why we love our typesystem.
19:18:27 <dsal> dminuoso: I'm not sure I disagree with you in general. It wouldn't be the only thing Java got very wrong.
19:18:54 akad_ joins (~akad@109107030050.radomsko.vectranet.pl)
19:19:16 × akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 246 seconds)
19:19:20 <hyperisco> dminuoso, if the ergonomics were sufficient that you could largely ignore it when it is not needed then the cost of having it around would be near zero and I wouldn't complain :)
19:19:32 × Tops21 quits (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) (Quit: Leaving.)
19:19:35 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:19:40 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 260 seconds)
19:19:54 <dsal> I think most places there's a try block in java, nobody should be dealing with exceptions at all. A catch block does one of three things: 1. Rewraps an exception to satisfy the type system, 2. possibly does something sensible, 3. introduces a bug.
19:19:59 <dsal> These are the things I'd want to avoid.
19:20:39 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
19:21:02 <dsal> #2 there is OK. Most places there's a try block, we probably just want finally. That's easy to do in Haskell already. So the checked exceptions system needs to let me ignore exceptions where I need them. Then I'm happy with the compiler letting me know I introduced a new exception that I've not considered.
19:21:06 <hyperisco> dminuoso, I think type inference demonstrates a strong antagonism to types
19:21:08 <dsal> Hopefully I can also still do partial exception handler.
19:21:19 <dminuoso> dsal: Interestingly, in Haskell we have related issues with recovery mechanisms in Control.Exception - a plain `catch f (\(e :: SomeException) -> ...)` will catch and recover from async exceptions.
19:21:21 <dsal> Wait, what?
19:21:53 <hyperisco> dminuoso, I think it says we want automatic analysis without the expense of explaining ourselves
19:22:08 × rx_ quits (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) (Quit: Connection closed)
19:22:14 <dminuoso> hyperisco: I'd say type inference is a compromise.
19:22:17 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
19:22:34 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
19:22:34 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
19:22:34 GyroW joins (~GyroW@unaffiliated/gyrow)
19:22:44 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
19:22:51 <dsal> dminuoso: Yeah, I think it can be better. I'm going to go ahead and say your initial assessment of my opinion is probably right. Something hurt me, but that doesn't mean all things will.
19:23:05 <hyperisco> and I'd admit that probably the worst annoyance of Java that C# fixed was type inference for variable declarations
19:23:08 <dminuoso> So a system of checked exceptions should, ideally, have a similar model of type inference, where the type checker would automatically deduce what exceptions can be thrown, which exceptions are removed, and so forth.
19:23:23 acidjnk_new joins (~acidjnk@p200300d0c7237897ad6a1cb47299ad15.dip0.t-ipconnect.de)
19:23:35 <dsal> Type inference just prevents you from having to talk about types all over the place. You *need* to talk about your types in some place.
19:23:41 <dminuoso> In a way where you can suddenly hop in and declare some fact, and then let the checker verify whether this leads to conflicts with all the inferred things
19:24:00 <dminuoso> dsal: Right! The more you elaborate, the better type errors get.
19:24:14 × sphalerite quits (~sphalerit@NixOS/user/lheckemann) (Quit: nixos 20.09, here I come!)
19:24:36 <dminuoso> I mean we see this in multiple levels. It frequently happens that I encounter GHC errors in all the wrong places, because of the way type inference works.
19:24:51 <hyperisco> even on TLDs is a burden
19:25:02 <hyperisco> literally dozens of exception types build up
19:25:29 <hyperisco> are you going to keep typing those all out? unlikely
19:26:19 × dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing)
19:26:50 conal joins (~conal@64.71.133.70)
19:27:51 dexterlb joins (~dexterlb@2a01:9e40:2:2::2)
19:28:12 <hyperisco> probably there is a type synonym at the top of the file for the union of all exceptions thrown by definitions in that file, because then it is much shorter and less noisy
19:28:34 × nineonine quits (~textual@216.81.48.202) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:29:11 <hyperisco> but then you're weakening all your definitions, and largely forgoing any purpose the feature had in the first place
19:30:30 <hyperisco> I feel like some of you are in the "wouldn't it be great if" stage of the discussion, and I am in the "it wasn't so great" part of the discussion
19:31:09 <hyperisco> but I haven't applied checked exceptions to every domain of programming… like I said, some use in file system APIs. Could be others.
19:31:28 <dolio> Which one wasn't great?
19:31:44 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
19:32:05 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:32:05 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
19:32:37 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
19:33:36 <hyperisco> checked exceptions as a type list / row type
19:33:56 × mmohammadi9812 quits (~mmohammad@2.178.160.31) (Read error: Connection reset by peer)
19:34:02 <dolio> In what context? Haskell?
19:34:06 mmohammadi9812 joins (~mmohammad@2.178.160.31)
19:34:17 <hyperisco> I was using PureScript but I don't see why the conclusions wouldn't port
19:35:14 × jakob_ quits (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
19:35:14 <hyperisco> related, that is a language that had a concept of effect rows and removed them, was a hugely breaking change
19:35:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:36:45 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
19:36:54 user01_ joins (~user01@179.181.12.232)
19:37:08 user01_ parts (~user01@179.181.12.232) ("Leaving")
19:37:52 <dolio> Well, any judgment based on an expectation of GHC type programming doesn't sound relevant, for instance, because I would imagine the point would be to design an exception system with usability in mind, and complicated GHC type hackery is usually the antithesis of that.
19:38:02 <davean> I've used it in a few Haskell projects.
19:38:06 <davean> It wasn't terrible.
19:38:18 jneira joins (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250)
19:38:23 × shafox quits (~Srain@106.51.234.111) (Read error: Connection reset by peer)
19:38:26 <davean> I didn't keep using it.
19:38:53 geekosaur can't help but think "wasn't terrible" is not a usability milestone to reach for
19:39:02 <hyperisco> there could be a more palatable system out there… but I think we can look at Java and see that isn't it either, though that seems contended. I'm not Java programmer
19:39:23 <dolio> Anything concluded based on Java is also irrelevant.
19:39:51 <davean> http://hackage.haskell.org/package/control-monad-exception is the one I used IIRC.
19:40:03 <hyperisco> you should consider it relevant, because if you exclude yourself from tried examples then how do you avoid repeating them
19:40:42 <hyperisco> your chance of success in designing a better system is lessened if you don't fill these potholes first
19:40:53 <dolio> No, the point is to design a good system, so saying that Java's isn't good doesn't mean that there can't be a good one. This is just the argument that all type systems are bad because Java's is bad.
19:41:08 <hyperisco> that wasn't my argument, but never mind
19:41:29 <davean> Is this discussion going anywhere useful?
19:41:36 × Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
19:42:12 <dminuoso> And who knows, perhaps there's some cool ways to build a workable idea into the Haskell type system that either nobody has thought of before, or it hasn't risen to popularity yet.
19:42:52 × Athas quits (athas@2a01:7c8:aaac:1cf:3df1:2652:30d1:76b7) (Quit: ZNC - http://znc.sourceforge.net)
19:43:02 Athas joins (athas@2a01:7c8:aaac:1cf:a58f:f586:d8cf:e687)
19:43:46 <dminuoso> I guess the real problem is type inference at the end, it seems like an almost trivial task to build checked exceptions without the backdoors Java has.
19:44:15 <hyperisco> I think it starts with another look at exactly what the problem is and allowing new ideas to come in
19:45:09 u0_a298 joins (~user@47.206.148.226)
19:45:24 <dolio> If the other example is PureScript's Eff, then I think it also isn't a very good example. It was kind of the most bare bones step in that direction, missing a lot of stuff that could potentially make such a system useful. At least, if I recall correctly.
19:45:51 <hyperisco> the need to throw multiple exception types, and now how do we analyse that with types or other static analysis, are the assumptions that need to be revisited
19:46:21 <dminuoso> The last time I had this type of discussion, it was theorized that checked exceptions might perhaps best live in separate type system.
19:46:42 <dminuoso> Id have to dig my logs to find the exact arguments for this
19:46:44 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
19:46:51 <hyperisco> dolio, it was done away with because it was more work for the programmer without substantial (or I might argue any) payoff
19:46:57 × mmohammadi9812 quits (~mmohammad@2.178.160.31) (Read error: Connection reset by peer)
19:47:07 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
19:47:23 mmohammadi9812 joins (~mmohammad@2.178.160.31)
19:47:24 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
19:47:45 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
19:48:06 <hyperisco> and it relates because the symptoms are similar… it accumulated effects as a row type, there weren't interesting ways to discharge most of them, so all rows tended to be widened to the union of all effects
19:48:08 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
19:48:14 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection)
19:48:16 <dolio> It was like, 'what if instead of IO there were a bunch of fine grained but still opaque monads, but that's it.' And it turns out that isn't super useful for browser stuff. Just keeping track of FileInput vs. FileOutput in a completely non-acionable way is not useful.
19:48:36 <dolio> Non-actionable, even.
19:48:40 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
19:48:59 <hyperisco> this concept of effects was without the utility of interpretation, so it isn't to be compared to effect systems
19:50:29 <hyperisco> dolio, no it was even sillier than that, it was more like you had a NOW effect if you called Date.getNow(), and a AJAX effect if you used XmlHttpRequest, and several other made up… lets say "tags"
19:50:44 × nek0 quits (~nek0@mail.nek0.eu) (Quit: The Lounge - https://thelounge.chat)
19:51:04 × alp quits (~alp@2a01:e0a:58b:4920:d435:c55a:9994:ea6) (Ping timeout: 240 seconds)
19:51:05 <hyperisco> the only one I can argue had utility was the EXCEPTION effect, which is caused by throw and could be discharged with a catch
19:51:34 <hyperisco> what is the use of a type… it is found through the ways it is introduced and the ways in which it is eliminated
19:51:39 <dolio> Yeah. Just tracking whether or not you use getNow in particular is not useful.
19:51:57 nek0 joins (~nek0@mail.nek0.eu)
19:52:18 <hyperisco> the effect rows in PS were almost all with introductions and without eliminations, and so that is how I'd argue they had no use
19:52:39 <dolio> Yeah, but exceptions can be caught.
19:52:44 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
19:52:46 <hyperisco> they let you look at a definition and say "oh that uses XmlHttpRequest somewhere" and then not do anything about it, seemingly
19:52:56 <dolio> So they are unlike that kind of useless tracking.
19:53:15 <hyperisco> yes, _when_ they can be sensibly caught
19:53:39 <hyperisco> and why would you catch them? because you know what they mean and you can decide something based on that meaning
19:54:03 <hyperisco> and it seems to be that, many times, that just isn't the case
19:54:11 conal joins (~conal@64.71.133.70)
19:55:01 <hyperisco> so a solution should account for the reality that, much of the time, it is an unneeded facility
19:55:26 <geekosaur> that seems to depend on what you're using it for. service? you probably want to catch a lot of stuff for resource management reasons if nothing else. simple client? probably just let it abort
19:56:26 crestfallen joins (~john@128.32.176.159)
19:58:35 × u0_a298 quits (~user@47.206.148.226) (Read error: Connection reset by peer)
19:59:05 u0_a298 joins (~user@47.206.148.226)
20:00:04 × ystael quits (~ystael@209.6.50.55) (Ping timeout: 240 seconds)
20:01:08 Varis joins (~Tadas@unaffiliated/varis)
20:01:54 × bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
20:02:04 <hyperisco> so I said I hated Haskell exceptions just a while ago… why… well lets ignore the conclusion that all exceptions are a SomeException and can be caught that way
20:02:19 <hyperisco> lets say to catch a thrown exception you had to name the type of that exception exactly
20:02:46 × dopplerg- quits (~dop@titan.pathogen.is) (Ping timeout: 256 seconds)
20:02:51 <geekosaur> the ergonomics of that are also something of a problem imo
20:02:58 × ixlun quits (~matthew@213.205.241.94) (Read error: Connection reset by peer)
20:03:02 <hyperisco> then there is a documentation problem of knowing how to catch an exception, because you know not which exception type is thrown or where it is thrown
20:03:29 <hyperisco> and that is something checked exceptions would fix, yes, but so does catching SomeException
20:03:32 × u0_a298 quits (~user@47.206.148.226) (Ping timeout: 260 seconds)
20:03:35 dopplergange joins (~dop@titan.pathogen.is)
20:03:37 nineonine joins (~textual@216.81.48.202)
20:03:46 <dminuoso> A particularly fancy bit about Haskell and checked exceptions is async exceptions.
20:04:19 <dminuoso> That alone should thwart an attempt at a complete, type-driven, way of checked exceptions.
20:04:31 hiroaki joins (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
20:04:32 <dminuoso> I just realized.
20:04:40 <hyperisco> so then we can either assume all IO throws or we could talk about adding the one bit of information to determine if it throws
20:05:00 <dminuoso> hyperisco: It throws. at any time, that means catching doesnt ever remove exceptions
20:05:06 <dminuoso> because after its caught, it could be thrown to you again.
20:05:21 <hyperisco> sure
20:06:53 <hyperisco> just sussing out that there are different facets to what we might consider the problem to be, and it would be smart to not immediately conflate them to necessitate a unified solution
20:08:12 × dopplergange quits (~dop@titan.pathogen.is) (Ping timeout: 260 seconds)
20:08:58 Deide joins (~Deide@217.155.19.23)
20:11:27 hackage uuagc 0.9.53.1 - Attribute Grammar System of Universiteit Utrecht https://hackage.haskell.org/package/uuagc-0.9.53.1 (JeroenBransen)
20:11:34 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
20:11:48 <dminuoso> I guess the above again recognizes, that async exceptions shouldn't share code with regular exceptions. They should be borderline uncatchable.
20:12:49 <dolio> Yeah, it doesn't make much sense for async exceptions to be checked.
20:12:59 onealmond joins (~onealmond@cpc72411-sotn15-2-0-cust577.15-1.cable.virginm.net)
20:13:07 geekosaur still thinks most non-async exceptions should be ExceptT
20:13:13 <geekosaur> or similar
20:13:25 rprije joins (~rprije@194-193-168-77.tpgi.com.au)
20:14:03 nuxdie_ joins (uid343142@gateway/web/irccloud.com/x-ctcwkmqltziojobr)
20:14:06 <geekosaur> except there's a bootstrapping problem between base and mtl if we do that
20:14:27 <hyperisco> indeed that was the term implementation of the checked exceptions I did use
20:14:47 × nuxdie_ quits (uid343142@gateway/web/irccloud.com/x-ctcwkmqltziojobr) (Client Quit)
20:14:52 <hyperisco> is as simple as ExceptT and the error type is a variant type, using whatever fancy type features for polymorphic unions
20:16:08 ystael joins (~ystael@209.6.50.55)
20:16:27 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
20:17:10 <hyperisco> and as complicated as not all monads work as transformers
20:17:20 nuxdie joins (uid343142@gateway/web/irccloud.com/x-eubxksbuxauhuttg)
20:18:19 nyaomi joins (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89)
20:19:35 <hyperisco> well what do I mean… I mean that stacking ExceptT on another monad does not necessarily give you the semantics you want, which was the case with PureScript's Aff
20:19:55 × Reiser quits (~0a2a0001@static.210.242.216.95.clients.your-server.de) (Changing host)
20:19:55 Reiser joins (~0a2a0001@unaffiliated/reisen)
20:21:28 <hyperisco> why? because if you have an M a you can lift it to ExceptT e M a , but if you take an ExceptT e M a you cannot necessarily lower it to M a
20:21:55 <hyperisco> and you would need to do that if definitions on M a themselves took an M a
20:22:09 <hyperisco> such as… bracketing
20:22:10 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
20:24:37 dopplergange joins (~dop@titan.pathogen.is)
20:25:19 blissful joins (~azuline@unaffiliated/azuline)
20:25:57 × dopplergange quits (~dop@titan.pathogen.is) (Read error: Connection reset by peer)
20:26:10 dopplergange joins (~dop@titan.pathogen.is)
20:29:32 acidjnk_new2 joins (~acidjnk@p200300d0c7226033a9f8e60d1c4e3d2a.dip0.t-ipconnect.de)
20:29:43 × notnatebtw quits (~nate@125.161.130.165) (Quit: WeeChat 2.9)
20:29:47 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
20:30:25 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
20:30:36 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
20:30:44 × acidjnk_new quits (~acidjnk@p200300d0c7237897ad6a1cb47299ad15.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
20:31:07 <hyperisco> how can I touch a file with Haskell IO? I am on Windows
20:31:18 <hyperisco> I have tried appendFile path "" and this seems to leave the file untouched
20:32:02 × _vaibhavingale_ quits (~Adium@203.188.228.9) (Quit: Leaving.)
20:32:06 × rinwa quits (~rinwa@5.102.238.236) (Quit: WeeChat 1.9.1)
20:32:43 <hyperisco> I also tried opening the file in append mode, writing the empty string, and closing the handle, and also that left the file untouched
20:33:16 jakob_ joins (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de)
20:33:31 <geekosaur> afaik you need to use system-specific stuff,e.g. there's a touchFile in the unix package and I don't know off the top of my head what the win32 equivalent is
20:34:00 <hyperisco> what if, like a madman, I rename the file
20:35:44 × knupfer quits (~Thunderbi@200116b82c889000d491c85aad532716.dip.versatel-1u1.de) (Quit: knupfer)
20:35:45 knupfer1 joins (~Thunderbi@200116b82c88900028a87937fa2fda7d.dip.versatel-1u1.de)
20:36:03 <geekosaur> no idea, sorry
20:36:10 wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
20:36:24 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
20:37:19 aarvar joins (~foewfoiew@50.35.43.33)
20:37:20 × GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
20:37:39 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
20:37:39 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
20:37:39 GyroW joins (~GyroW@unaffiliated/gyrow)
20:38:10 × knupfer1 quits (~Thunderbi@200116b82c88900028a87937fa2fda7d.dip.versatel-1u1.de) (Client Quit)
20:38:12 knupfer joins (~Thunderbi@200116b82c88900065f627a2dcebe201.dip.versatel-1u1.de)
20:38:45 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds)
20:39:04 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 258 seconds)
20:39:13 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:40:16 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
20:41:01 × wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
20:41:26 × Graypup_ quits (Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in)
20:43:32 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
20:43:54 sphalerite joins (~sphalerit@NixOS/user/lheckemann)
20:44:21 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
20:44:23 alp joins (~alp@2a01:e0a:58b:4920:31ac:4738:735:9459)
20:44:31 bitmapper joins (uid464869@gateway/web/irccloud.com/x-olrayksqtbhbbqvo)
20:45:26 × dopplergange quits (~dop@titan.pathogen.is) (Quit: ZNC 1.7.5 - https://znc.in)
20:45:36 × crestfallen quits (~john@128.32.176.159) (Ping timeout: 256 seconds)
20:46:36 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
20:48:26 × darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 256 seconds)
20:49:32 dopplergange joins (~dop@titan.pathogen.is)
20:51:30 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:52:52 chaosmasttter joins (~chaosmast@p200300c4a70a4101b8cb3fec88fbfe5e.dip0.t-ipconnect.de)
20:53:33 Graypup_ joins (Graypup@lfcode.ca)
20:54:27 hackage tasty-rerun 1.1.18 - Rerun only tests which failed in a previous test run https://hackage.haskell.org/package/tasty-rerun-1.1.18 (Bodigrim)
20:56:38 nbloomf joins (~nbloomf@2600:1700:ad14:3020:81f2:cbad:9b12:33ca)
20:56:40 dopplerg- joins (~dop@199.58.187.26)
20:57:25 × dopplergange quits (~dop@titan.pathogen.is) (Ping timeout: 240 seconds)
21:00:01 × ranman1 quits (~ranman@217.146.82.202) ()
21:00:17 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
21:00:44 invaser joins (~Thunderbi@31.148.23.125)
21:02:04 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
21:02:55 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:81f2:cbad:9b12:33ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:07:46 × dopplerg- quits (~dop@199.58.187.26) (Ping timeout: 256 seconds)
21:08:39 dopplergange joins (~dop@titan.pathogen.is)
21:09:32 darjeeling_ joins (~darjeelin@115.215.42.47)
21:10:05 × alp quits (~alp@2a01:e0a:58b:4920:31ac:4738:735:9459) (Remote host closed the connection)
21:10:25 alp joins (~alp@2a01:e0a:58b:4920:494c:d829:c480:230f)
21:17:04 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
21:18:24 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host)
21:18:30 takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be)
21:19:23 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
21:23:02 one_almond joins (~onealmond@185.195.232.170)
21:23:18 × one_almond quits (~onealmond@185.195.232.170) (Remote host closed the connection)
21:23:50 dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net)
21:25:27 × falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection)
21:25:44 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
21:26:03 × onealmond quits (~onealmond@cpc72411-sotn15-2-0-cust577.15-1.cable.virginm.net) (Ping timeout: 256 seconds)
21:26:22 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
21:29:21 × Ariakenom quits (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) (Quit: Leaving)
21:34:47 × invaser quits (~Thunderbi@31.148.23.125) (Quit: invaser)
21:35:06 invaser joins (~Thunderbi@31.148.23.125)
21:36:18 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
21:36:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
21:38:10 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
21:39:05 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
21:39:34 × chaosmasttter quits (~chaosmast@p200300c4a70a4101b8cb3fec88fbfe5e.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
21:39:43 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
21:40:16 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
21:42:04 × nyaomi quits (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) (Ping timeout: 240 seconds)
21:42:44 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
21:43:21 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
21:44:34 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
21:44:43 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
21:44:49 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
21:44:49 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
21:44:49 GyroW joins (~GyroW@unaffiliated/gyrow)
21:45:33 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!)
21:46:29 × takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:52:56 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
21:52:58 hackage keycloak-hs 2.0.3 - https://hackage.haskell.org/package/keycloak-hs-2.0.3 (CorentinDupont)
21:53:35 <koz_> Does foldM _require_ a Monad constraint to make sense, or could foldA actually exist?
21:54:22 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
21:56:38 <joel135> hmm
21:56:50 nbloomf joins (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98)
21:59:16 × drewolson quits (~drewolson@64.227.24.16) (*.net *.split)
21:59:16 × qz quits (~quetzal@li272-85.members.linode.com) (*.net *.split)
21:59:16 × glamas quits (~glamas@107.182.17.237) (*.net *.split)
21:59:16 × gekh quits (~gkh@thor.kevinhill.nl) (*.net *.split)
21:59:16 × zopsi quits (~zopsi@irc.dir.ac) (*.net *.split)
21:59:16 × tv- quits (~tv@unaffiliated/tv-) (*.net *.split)
21:59:16 × Flonk quits (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (*.net *.split)
21:59:16 × digia quits (~digia@unaffiliated/digia) (*.net *.split)
21:59:16 × NieDzejkob quits (~quassel@188.123.215.55) (*.net *.split)
21:59:16 × clynamen quits (~clynamen@109.116.4.71) (*.net *.split)
21:59:16 × rzmt quits (~rzmt@87-92-180-112.rev.dnainternet.fi) (*.net *.split)
21:59:16 × bobbytables quits (~bobbytabl@ec2-44-224-191-138.us-west-2.compute.amazonaws.com) (*.net *.split)
21:59:16 × amatecha__ quits (sid10006@gateway/web/irccloud.com/x-uwkjukjibnksfmha) (*.net *.split)
21:59:16 × spoonm quits (spoonm@gunma.spoonm.org) (*.net *.split)
21:59:16 × milessabin quits (sid86799@gateway/web/irccloud.com/x-rqchthtgtmeyzixk) (*.net *.split)
21:59:16 × seliopou quits (seliopou@entropy.tmok.com) (*.net *.split)
21:59:16 × stvc quits (~stvc@192.241.166.39) (*.net *.split)
21:59:16 × marble_visions quits (~user@68.183.79.8) (*.net *.split)
21:59:16 × HiRE_ quits (~HiRE@104.128.237.40) (*.net *.split)
21:59:16 × bsima quits (~bsima@simatime.com) (*.net *.split)
21:59:16 × tstat quits (~tstat@165.227.66.131) (*.net *.split)
21:59:16 × eagleflo quits (~aku@eagleflow.fi) (*.net *.split)
21:59:16 × Someguy123 quits (~someguy@unaffiliated/compgenius999) (*.net *.split)
21:59:16 × madog quits (~madog@163.ip-51-254-203.eu) (*.net *.split)
21:59:16 × sayak1 quits (~sayak@static.11.113.47.78.clients.your-server.de) (*.net *.split)
21:59:16 × sim590 quits (~sim590@modemcable090.207-203-24.mc.videotron.ca) (*.net *.split)
21:59:23 madog joins (~madog@163.ip-51-254-203.eu)
21:59:24 jedws joins (~jedws@101.184.193.144)
21:59:25 eagleflo joins (~aku@eagleflow.fi)
21:59:26 glamas joins (~glamas@107.182.17.237)
21:59:26 spoonm joins (spoonm@gunma.spoonm.org)
21:59:26 seliopou joins (seliopou@entropy.tmok.com)
21:59:27 NieDzejkob joins (~quassel@188.123.215.55)
21:59:27 rzmt joins (~rzmt@87-92-180-112.rev.dnainternet.fi)
21:59:30 drewolson joins (~drewolson@64.227.24.16)
21:59:30 milessabin joins (sid86799@gateway/web/irccloud.com/x-tsnesmrcjrlroviv)
21:59:31 digia joins (~digia@unaffiliated/digia)
21:59:32 sayak1 joins (~sayak@static.11.113.47.78.clients.your-server.de)
21:59:32 qz joins (~quetzal@li272-85.members.linode.com)
21:59:32 clynamen joins (~clynamen@109.116.4.71)
21:59:34 bobbytables joins (~bobbytabl@ec2-44-224-191-138.us-west-2.compute.amazonaws.com)
21:59:36 marble_visions joins (~user@68.183.79.8)
21:59:38 HiRE joins (~HiRE@2602:ffc5:20::1:512e)
21:59:39 bsima joins (~bsima@simatime.com)
21:59:41 stvc joins (~stvc@192.241.166.39)
21:59:46 gekh joins (~gkh@thor.kevinhill.nl)
21:59:50 zopsi joins (~zopsi@irc.dir.ac)
22:00:00 Flonk joins (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com)
22:00:07 amatecha__ joins (sid10006@gateway/web/irccloud.com/x-umzvzowaztsfellj)
22:01:40 × esph quits (~weechat@unaffiliated/esph) (Read error: Connection reset by peer)
22:02:01 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 264 seconds)
22:02:01 × nckx quits (~nckx@tobias.gr) (Ping timeout: 264 seconds)
22:02:09 tv- joins (~tv@unaffiliated/tv-)
22:02:10 sim590 joins (~sim590@modemcable090.207-203-24.mc.videotron.ca)
22:02:10 <jle`> :t foldM
22:02:11 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
22:02:20 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
22:02:21 <jle`> yea that needs to be monady
22:02:36 <jle`> since you have to bind the 'b' to use the (b -> a -> m b)
22:02:37 <koz_> I guess if it was an 'effectful foldMap' it wouldn't?
22:02:47 nckx joins (~nckx@tobias.gr)
22:02:49 × tv- quits (~tv@unaffiliated/tv-) (Client Quit)
22:03:10 tv- joins (~tv@unaffiliated/tv-)
22:03:37 esph joins (~weechat@unaffiliated/esph)
22:03:39 <jle`> yeah, like traverse_
22:03:45 <jle`> er, traverse
22:03:50 crestfallen joins (~john@128.32.176.159)
22:03:51 <koz_> Yeah, except a general monoid instead of ().
22:04:01 <jle`> in this case the "next `m b` to use" depends on the result of a previous action
22:04:05 <jle`> :t traverse
22:04:06 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
22:04:13 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
22:04:17 <jle`> but for traverse, the "next `f b`" can be decided without any previous actions
22:04:23 <koz_> It'd be like 'foldMapA :: (Applicative f, Monoid m, Traversable t) => (a -> f m) -> t a -> f m'
22:04:24 <Uniaika> (obligatory slides for Traverse: https://clementd-files.cellar-c2.services.clever-cloud.com/lambdalille-traverse.html#1.0 )
22:04:36 <jle`> koz_: that's foldMap with Ap, yeah
22:04:44 × mmohammadi9812 quits (~mmohammad@2.178.160.31) (Ping timeout: 240 seconds)
22:04:51 <koz_> It's not _quite_ a generalized traverse_.
22:04:55 <koz_> (stronger constraint needed)
22:05:06 <jle`> :t \f -> getAp . foldMap (Ap . f)
22:05:07 <lambdabot> forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1
22:05:19 <jle`> hm, that's weird
22:05:32 <jle`> it should have the same type as yours
22:05:34 <koz_> Monoid (Ap f a) holds whenever Applicative f, right?
22:05:53 <jle`> (Applicative f, Monoid a) => Monoid (Ap f a)
22:06:07 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
22:06:18 <jle`> i'm pretty sure your foldMapA is equivalent to traverse_
22:06:37 <koz_> :t traverse_
22:06:38 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
22:07:02 <jle`> use [b] for m
22:07:02 Someguy123 joins (~someguy@unaffiliated/compgenius999)
22:07:02 <koz_> Except that instead of (), we can get back any Monoid m.
22:07:42 <jle`> i think you can implement both in terms of each other
22:09:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:09:51 <koz_> I think there's a catch here somewhere.
22:09:51 <jle`> you'd just use Const m or something like that
22:09:51 <jle`> for your Applicative
22:09:51 <jle`> Compose f (Const m)
22:09:59 <koz_> Ah, I see.
22:10:04 <koz_> Yeah that'd work.
22:10:11 nyaomi joins (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89)
22:10:19 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
22:10:36 <koz_> Would be great to have a helper doing that, admittedly.
22:10:57 <koz_> It reminds me of something I saw in the churros library which permitted a similar generalization.
22:11:20 <jle`> % :t \ff -> fmap getConst . getCompose . traverse_ (Compose . fmap Const . ff)
22:11:21 <yahb> jle`: (Foldable t, Applicative f, Monoid b) => (a -> f b) -> t a -> f b
22:11:40 <jle`> but it'd be easier to write in terms of foldMap
22:12:10 <jle`> % :t \ff -> getAp . foldMap (Ap . ff)
22:12:10 <yahb> jle`: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1
22:12:31 <jle`> huh you could even flip the Const if you use Ap
22:12:57 notnatebtw joins (~nate@125.161.130.165)
22:12:58 <koz_> That's actually interesting - foldMap and foldr can implement each other, but if you throw in effects, you actually can't do that.
22:13:13 <jle`> % :t \ff -> getAp . getConst . traverse_ (Const . Ap . ff)
22:13:13 <yahb> jle`: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1
22:13:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
22:13:36 <jle`> koz_: well it's kind of up to what you think is the rightful generalization of foldr
22:13:49 t1m joins (4dde69fc@gateway/web/ajax/mibbit.com/session)
22:13:57 <jle`> and foldM isn't necessarily the natural generalization from an applicative standpoint
22:14:05 <koz_> What's another view?
22:14:32 <jle`> maybe foldr :: (f a -> f b -> f b) -> f b -> t a -> f b ?
22:14:48 <jle`> although...i guess that's more of a specialization than a generalization
22:15:23 <koz_> Yeah, it's not actually similar to the foldMapA above, since you gotta stick effects in both negative and positive positions.
22:15:47 <koz_> (in the function argument)
22:16:06 <jle`> hm, i think you can implement foldMapM in terms of foldM
22:16:08 × t1m quits (4dde69fc@gateway/web/ajax/mibbit.com/session) (Disconnected by services)
22:16:11 <jle`> you just need Monad in both cases
22:16:14 <jle`> so they can still implement 'each other'
22:16:35 <jle`> and you can always use foldMapA with monads too
22:16:39 <koz_> Yes, that's true.
22:16:47 <koz_> But the reverse direction doesn't (necessarily) hold.
22:16:48 <jle`> so, you can implement foldM with foldMapA :)
22:17:10 <jle`> hm, i wonder if you can implement foldMapA with foldM
22:17:32 <jle`> i thiiink it should be possible actually
22:17:32 <koz_> I mean, yeah. Your starting value is the mempty.
22:17:38 <jle`> just use foldM to get [m a]
22:17:42 <jle`> and foldMapA id
22:17:45 <koz_> Lol.
22:17:47 <koz_> Ah yes.
22:17:51 <koz_> 'Hack everythign into list'.
22:18:00 <koz_> Aka 'how all of Foldable works'.
22:18:50 <koz_> Although realistically, by its very nature, 'toList' falls out of Traversable even if Foldable weren't a thing.
22:19:29 <koz_> (or heck, toX, where X is some linear collection with concatenation and emptiness as concepts)
22:19:45 <koz_> (or heck, it doesn't even technically have to be a _linear_ collection)
22:19:54 matt57 joins (d57a8ff0@host213-122-143-240.range213-122.btcentralplus.com)
22:24:08 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:24:18 <jle`> yeah, Foldable is baby Traversable :)
22:25:16 <koz_> And basically, we get 'emptiness and concatenation' as a special case of Monoid.
22:25:29 <koz_> Basically, it really is all traverse and monoids all the way down.
22:25:33 jamm_ joins (~jamm@unaffiliated/jamm)
22:27:22 × remexre quits (~nathan@207-153-38-50.fttp.usinternet.com) (Read error: Connection reset by peer)
22:28:21 britva joins (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef)
22:30:24 × ichimaru quits (~ichimaru@45.63.97.131) (Quit: ichimaru)
22:31:13 remexre joins (~nathan@207-153-38-50.fttp.usinternet.com)
22:37:05 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
22:37:22 × matt57 quits (d57a8ff0@host213-122-143-240.range213-122.btcentralplus.com) (Remote host closed the connection)
22:39:25 × bitmagie quits (~Thunderbi@200116b8069fbf008d925686a233d598.dip.versatel-1u1.de) (Quit: bitmagie)
22:39:34 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
22:39:52 × knupfer quits (~Thunderbi@200116b82c88900065f627a2dcebe201.dip.versatel-1u1.de) (Remote host closed the connection)
22:40:01 knupfer joins (~Thunderbi@200116b82c88900041e2bae31fea6a53.dip.versatel-1u1.de)
22:40:29 christo joins (~chris@81.96.113.213)
22:44:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:45:07 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
22:45:44 day joins (~Unknown@unaffiliated/day)
22:47:48 × fendor quits (~fendor@91.141.3.89.wireless.dyn.drei.com) (Remote host closed the connection)
22:48:24 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
22:48:44 mmohammadi9812 joins (~mmohammad@2.178.160.31)
22:50:44 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
22:53:24 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
22:55:49 × vk3wtf quits (~doc@14-202-30-62.static.tpgi.com.au) (Quit: WeeChat 2.7.1)
22:56:20 vk3wtf joins (~doc@14-202-30-62.static.tpgi.com.au)
22:57:37 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
22:58:07 × xsperry quits (~as@unaffiliated/xsperry) ()
22:58:49 × jakob_ quits (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
22:59:32 jakob_ joins (~textual@p57b0eae0.dip0.t-ipconnect.de)
22:59:52 × crestfallen quits (~john@128.32.176.159) (Quit: Leaving)
23:01:55 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:06:09 crestfallen joins (~john@128.32.176.159)
23:06:25 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:06:52 × britva quits (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep)
23:07:26 nbloomf joins (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98)
23:09:35 × errst quits (~errst@unaffiliated/tirej) (Quit: Lost terminal)
23:10:56 britva joins (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef)
23:11:37 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
23:12:27 × knupfer quits (~Thunderbi@200116b82c88900041e2bae31fea6a53.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
23:15:41 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:15:49 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
23:16:00 Tario joins (~Tario@201.192.165.173)
23:16:04 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
23:17:10 <crestfallen> Hi .. I understand most of this paste. it clarifies that (->) is not a morphism (I guess a morphism cannot be binary?) ; and that fmap for Functor (-> r) is composition. So generally fmap is a morphism, perhaps the most basic one? https://termbin.com/evcw
23:17:43 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
23:18:40 <crestfallen> I see how the expansion of (->) r (fmap) is composition.
23:19:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
23:21:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
23:21:35 <crestfallen> so my question is, if the above is correct, are there morphisms more simple than fmap?
23:21:59 × britva quits (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep)
23:22:10 <bsima> how do i convert a Decimal to a Float or Int?
23:22:17 × ulidtko|k quits (~ulidtko@193.111.48.79) (Remote host closed the connection)
23:22:33 <Axman6> what's a Decimal?
23:22:36 ulidtko|k joins (~ulidtko@193.111.48.79)
23:22:38 <bsima> Data.Decimal
23:22:39 <ghoulguy> probably: realToFrac and truncate
23:22:56 nbloomf joins (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98)
23:23:06 <ghoulguy> truncate or round, depending on which behavior you want
23:23:39 <Axman6> :t realToFrac
23:23:40 <lambdabot> (Real a, Fractional b) => a -> b
23:24:21 <crestfallen> or are there morphisms I've probably come across before?
23:24:27 <bsima> i think realToFrac is what I wanted, thanks
23:24:48 × falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 272 seconds)
23:25:34 <crestfallen> also I'm trying to see if and how (->) r is partial application
23:25:58 <crestfallen> a bit confused..
23:26:41 <Axman6> it's a partial application of the type (->) but doesn't represent partial application of functions to values - ((->) r) is all functions which can accept an r
23:26:43 <lyxia> crestfallen: I'm not sure what you mean by "morphism"
23:27:03 <crestfallen> https://termbin.com/evcw lyxia it's the blurb at the top
23:27:45 <crestfallen> all functions which can accept an r Axman6 ...
23:27:53 <lyxia> crestfallen: I don't find that paste particularly good, notably because it starts by using the word "morphism" in an unconventional way, if it makes sense at all.
23:28:23 <crestfallen> really ok. lyxia thanks, what about below the paragraph though?
23:29:47 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
23:30:17 <lyxia> The important part is that ((->) r) is a mapping from types to types, that's the first condition for something to be in the Functor class in Haskell.
23:30:59 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:31:15 <lyxia> But it's worth mentioning that the Functor class in Haskell is itself a restriction of amuch more general idea of functors in category theory, where they don't necessarily map types to types.
23:31:49 mdrjr1 joins (~mdrjr@217.146.82.202)
23:32:25 <lyxia> So this paragraph is talking in terms of categories about the very restricted notion of Functor in Haskell, that's bound to mix up ideas and confuse people.
23:32:44 <crestfallen> yeah, i.e. an object doesn't need to be a type. like it can be a group I think lyxia
23:32:51 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
23:33:13 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Quit: ChaiTRex)
23:33:30 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
23:35:04 christo joins (~chris@81.96.113.213)
23:36:34 <monsterchrom> Who wrote that?
23:36:43 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
23:36:56 <crestfallen> thanks lyxia and Axman6 monsterchrom one sec
23:37:33 <lyxia> monsterchrom: did you change your nick
23:37:41 <monsterchrom> There is a reason in a 1st-year linear algebra course we don't go "use the Yoneda lemma to prove that every elementary row operation is representable by multiplying by a matrix", even though it is totally true.
23:37:50 <monsterchrom> Yeah Halloween theme
23:38:01 crestfallen is now known as wretchswollen
23:38:31 <wretchswollen> I need to find the source monsterchrom . I probably doctored the paragraph to the best of my understanding
23:39:24 <monsterchrom> There is totally no point in bringing up objects and morphism in Haskell. Not even in the context of the Functor type class.
23:39:38 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
23:40:03 <lyxia> ^
23:40:09 <monsterchrom> Alternatively if the purpose is learning category theory, then learn from a proper category theory book independent of Haskell.
23:40:10 <wretchswollen> ok I read bartosz a bit and it often goes there..
23:40:24 <wretchswollen> I think it might be from that quarter
23:40:42 <monsterchrom> I actually looked in Bartosz's and can't find it.
23:40:54 <wretchswollen> not sure, I certainly didn't write it
23:41:15 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:41:38 <wretchswollen> I'll delete it. I like the exercise of getting to fmap = (.)
23:41:39 jamm_ joins (~jamm@unaffiliated/jamm)
23:41:45 <monsterchrom> Bartosz's is a case of "category theory for programmers" so first of all if you are not already a good programmer, one that has written 1000 lines of correct code, you can't use it.
23:42:26 <monsterchrom> I don't understand how one looks at "category theory for programmers" and infers "so this is good for learning both at the same time".
23:42:45 <wretchswollen> yeah it's tough. sometimes things do stick. I got a lot from a lesson on the kleisli operator
23:43:13 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:43:16 <wretchswollen> it helped me understand bind better
23:43:43 <monsterchrom> Then again I also don't understand how there can be undergrad students who look at "prerequisite of this course" and can mentally edit it to "co-requsite of this course" and then email me "can I take your course and the prereq course at the same time? like it makes perfect sense?"
23:43:44 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:44:30 <wretchswollen> I had it easy: I studied Literature and my mom taught me to read well.
23:44:40 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
23:45:57 <wretchswollen> thanks monsterchrom that takes the load off. but to be honest I'm still thinking about Axman6 's " ((->) r) is all functions which can accept an r "
23:46:14 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
23:46:45 <koz_> monsterchrom: I would make a funny joke here, but I don't think I can think of two things where 'pre-X' and 'co-X' both exist
23:46:46 whaletechno joins (~whaletech@unaffiliated/whaletechno)
23:46:50 <koz_> Like, are cosheaves a thing?
23:47:43 × jespada quits (~jespada@90.254.243.98) (Ping timeout: 256 seconds)
23:47:47 <wretchswollen> yeah like I tried to sit in on abstract algebra, when pre algebra and calculus was 30 years old
23:47:58 <wretchswollen> were*
23:48:13 <wretchswollen> I meant preCalculus
23:49:05 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
23:49:26 <wretchswollen> but hey, I'm beginning to understand bind, and yesterday made a huge headway with traversable
23:50:37 tim joins (~user@S0106a84e3fe54613.ed.shawcable.net)
23:50:48 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
23:50:48 jespada joins (~jespada@90.254.243.98)
23:50:53 × tim quits (~user@S0106a84e3fe54613.ed.shawcable.net) (Remote host closed the connection)
23:51:38 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
23:51:40 tput joins (~user@S0106a84e3fe54613.ed.shawcable.net)
23:51:42 <Axman6> data Foo f = Foo { bar :: f Int,baz :: f Bool }; type ReadFoo = Foo ((->) String) -- ReadFoo ~= Foo {bar :: r -> Int, baz :: r -> Bool}. ((->) String) is the functor for functors which can accept Strings
23:51:52 jcowan joins (sid325434@gateway/web/irccloud.com/x-evadozowlzlhtjmy)
23:52:09 xocolatl joins (xocolatl@gateway/vpn/protonvpn/xocolatl)
23:52:26 xocolatl parts (xocolatl@gateway/vpn/protonvpn/xocolatl) ("Leaving")
23:52:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:53:38 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
23:53:38 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
23:53:39 <jcowan> A speculative question: I realize that Haskell patterns are fixed. But suppose they were extensible. What would matching against a procedure plausibly mean?
23:53:39 <Axman6> for functions*
23:54:02 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
23:54:07 <Axman6> jcowan: like view patterns?
23:54:24 <Axman6> or something else
23:55:49 <wretchswollen> working...
23:56:08 <tput> I'm writing an fft as an exercise. I have a vector of values which I need to divide into two sub vectors, composed of every other element. How can I do this *quickly*? Basically I'm looking for a performant stride or slice. I'm happy to change from vector to array or any other similar datatype.
23:56:55 <wretchswollen> thanks Axman6
23:56:59 <Axman6> tput: one way I've seen this done is how Repa would do it, where you just use functions to reindex into the original array
23:57:03 <koz_> tput: By 'quickly' I assume you mean O(1)?
23:57:29 <jcowan> Are view patterns implemented now?
23:57:30 <koz_> If so, delayed arrays are indeed what you want - you'll be well-served by massiv, I think.
23:57:43 <Axman6> they have been implemented for years jcowan
23:57:44 <tput> yeah, I'd ideally like a reindexed view into the original data structure without copying
23:58:00 <koz_> tput: Ah, then you can use generate from vector.
23:58:15 <koz_> If you wanna be _sure_, then massiv's delayed arrays are what you're after.
23:58:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
23:58:23 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
23:58:32 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
23:58:34 <koz_> generate will _likely_ fuse, but I can't promise much.
23:58:44 <Axman6> > let f ((\x -> x `mod` 3 == 0 && x `mod` 5 == 0) -> True) = "FizzBuzz"; f x = show x in map f [1..20]
23:58:46 <lambdabot> ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","FizzBuzz","16...
23:59:03 <jcowan> Okay, thanks. I was under the impression they were part of Haskell at one time and then withdrawn.
23:59:26 × falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 264 seconds)

All times are in UTC on 2020-10-28.