Home freenode/#haskell: Logs Calendar

Logs on 2021-02-04 (freenode/#haskell)

00:00:08 Axman6 is the king of premature optimisation
00:02:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
00:02:29 gxt joins (~gxt@gateway/tor-sasl/gxt)
00:02:32 <sm[m]> tomsmeding: ping ?
00:03:14 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
00:03:53 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
00:04:29 <hseg> Axman6: i challenge you for the title!
00:04:47 <hseg> (:
00:06:28 <monochrom> You can't take the title unless your premature optimizations become pessimizations in the big picture!
00:07:04 <monochrom> For example loop invariant code motion for loops that actually aren't executed!
00:07:05 × theDon quits (~td@94.134.91.50) (Ping timeout: 240 seconds)
00:08:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:09:11 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds)
00:10:53 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
00:13:05 infinity0 joins (~infinity0@freenet/developer/infinity0)
00:13:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
00:14:09 × motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Remote host closed the connection)
00:14:13 argento joins (~argent0@168.227.97.23)
00:14:25 × DavidEichmann quits (~david@234.109.45.217.dyn.plus.net) (Ping timeout: 240 seconds)
00:15:17 × ridcully quits (~ridcully@pd951f4de.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
00:15:50 theDon joins (~td@muedsl-82-207-239-014.citykom.de)
00:17:14 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
00:17:34 deviantfero joins (~deviantfe@179.51.60.188)
00:18:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:18:25 × hseg quits (~gesh@185.120.124.95) (Ping timeout: 240 seconds)
00:19:02 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
00:19:20 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds)
00:19:27 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
00:19:49 × kupi quits (uid212005@gateway/web/irccloud.com/x-hwbscpvqcraoqtak) (Quit: Connection closed for inactivity)
00:19:56 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
00:25:59 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
00:26:05 gxt joins (~gxt@gateway/tor-sasl/gxt)
00:26:27 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 268 seconds)
00:27:52 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
00:28:10 livvy joins (~livvy@gateway/tor-sasl/livvy)
00:29:35 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
00:30:51 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
00:31:18 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
00:31:50 × rmk236 quits (~lcampos@2a02:908:3616:b100:9d94:72c:d22d:2612) (Quit: Leaving.)
00:32:53 xiinotulp joins (~q@node-upb.pool-125-24.dynamic.totinternet.net)
00:33:07 × alx741 quits (~alx741@186.178.110.33) (Quit: alx741)
00:33:34 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
00:33:55 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
00:35:34 ridcully joins (~ridcully@pd951f269.dip0.t-ipconnect.de)
00:35:42 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds)
00:36:49 × themba_ quits (themba@90.221.74.173) (Read error: Connection reset by peer)
00:37:05 <monochrom> Axman6: As it happens, I'm reading https://www.cs.bham.ac.uk/~udr/papers/logical-relations-and-parametricity.pdf out of a different conversation, but it brings up "monoid semiautomaton" as an automaton without a designated start state. Perhaps you could use that name.
00:37:05 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
00:37:28 themba_ joins (themba@90.221.74.173)
00:37:47 <monochrom> (page 11)
00:37:56 × rawles quits (~r@unaffiliated/rawles) (Ping timeout: 240 seconds)
00:39:01 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
00:39:06 infinity0 joins (~infinity0@freenet/developer/infinity0)
00:39:24 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
00:39:38 × Sparadox quits (~etienne@ns3123347.ip-51-68-152.eu) (Quit: ZNC 1.7.5 - https://znc.in)
00:39:38 × zyeri quits (zyeri@tilde.team/users/zyeri) (Quit: ZNC 1.8.1 - https://znc.in)
00:39:56 × plutoniix quits (~q@node-unx.pool-125-24.dynamic.totinternet.net) (Ping timeout: 258 seconds)
00:39:56 zyeri- joins (zyeri@gateway/shell/tilde.team/x-xvdpvpjsanrpyrhi)
00:39:56 × xiinotulp quits (~q@node-upb.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
00:40:07 jpds joins (~jpds@gateway/tor-sasl/jpds)
00:40:19 Sparadox joins (~etienne@ns3123347.ip-51-68-152.eu)
00:40:37 rawles joins (~r@unaffiliated/rawles)
00:41:17 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
00:43:11 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds)
00:44:00 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
00:44:42 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
00:46:40 teardown_ joins (~user@gateway/tor-sasl/mrush)
00:47:15 rajivr joins (uid269651@gateway/web/irccloud.com/x-fytanfqvvewadlns)
00:47:42 × theDon quits (~td@muedsl-82-207-239-014.citykom.de) (Ping timeout: 258 seconds)
00:48:41 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
00:49:30 theDon joins (~td@94.134.91.17)
00:49:53 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
00:50:35 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
00:50:52 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
00:52:12 pavonia joins (~user@unaffiliated/siracusa)
00:52:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
00:55:16 myShoggoth joins (4ba43b2f@75.164.59.47)
00:56:57 teardown joins (~user@gateway/tor-sasl/mrush)
00:57:45 × hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 240 seconds)
00:58:09 × ep1ctetus quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 264 seconds)
00:59:44 livvy joins (~livvy@gateway/tor-sasl/livvy)
00:59:51 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
01:00:09 × teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
01:00:19 motherfsck joins (~motherfsc@unaffiliated/motherfsck)
01:02:01 teardown joins (~user@gateway/tor-sasl/mrush)
01:03:59 gxt joins (~gxt@gateway/tor-sasl/gxt)
01:06:38 <MarcelineVQ> semiring semiautomaton semiworks semiokay
01:06:48 × mozzarella quits (~sam@unaffiliated/sam113101) (Read error: Connection reset by peer)
01:07:51 <monochrom> :)
01:08:23 nbloomf joins (~nbloomf@2600:1700:ad14:3020:9840:c51c:baa7:1cb4)
01:11:23 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:12:48 <monochrom> Oh wait, Peter O'Hearn is at Facebook too?!
01:14:22 × myShoggoth quits (4ba43b2f@75.164.59.47) (Quit: Connection closed)
01:14:54 <monochrom> Ah, he cofounded a startup first, then bought by Facebook.
01:15:20 myShoggoth joins (4ba43b2f@75.164.59.47)
01:15:34 <monochrom> Coincidentally, the startup was called Monoidics. >_< Why is today the monoid day?!
01:16:20 <MarcelineVQ> because semigroups sounds like a truck enthusiast gathering
01:16:30 <monochrom> haha
01:17:36 teardown_ joins (~user@gateway/tor-sasl/mrush)
01:20:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:21:20 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
01:21:30 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:21:52 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:23:57 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
01:24:29 <monochrom> http://www0.cs.ucl.ac.uk/staff/p.ohearn/Invader/Invader/Invader_Home.html
01:24:39 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:25:04 <monochrom> "space invader" (analyzes C program pointer correctness)
01:27:07 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
01:28:19 × myShoggoth quits (4ba43b2f@75.164.59.47) (Quit: Connection closed)
01:30:40 teardown joins (~user@gateway/tor-sasl/mrush)
01:34:17 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
01:34:32 × toppler quits (~user@mtop.default.momentoftop.uk0.bigv.io) (Remote host closed the connection)
01:34:45 toppler joins (~user@mtop.default.momentoftop.uk0.bigv.io)
01:35:24 × noctux quits (~noctux@unaffiliated/noctux) (Read error: Connection reset by peer)
01:35:25 × meck quits (~meck@li1809-18.members.linode.com) (Quit: ZNC 1.8.2 - https://znc.in)
01:35:33 noctux joins (~noctux@unaffiliated/noctux)
01:35:33 × hackage quits (mniip@haskell/bot/hackage) (Remote host closed the connection)
01:35:36 × seliopou quits (seliopou@entropy.tmok.com) (Ping timeout: 240 seconds)
01:35:50 teardown_ joins (~user@gateway/tor-sasl/mrush)
01:36:09 hackage joins (mniip@haskell/bot/hackage)
01:37:13 seliopou joins (seliopou@entropy.tmok.com)
01:37:31 jedws joins (~jedws@101.184.202.248)
01:38:36 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
01:39:47 meck joins (~meck@li1809-18.members.linode.com)
01:40:22 average joins (uid473595@gateway/web/irccloud.com/x-oviqbcwayddkmlvw)
01:40:50 teardown joins (~user@gateway/tor-sasl/mrush)
01:41:41 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
01:42:00 ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
01:43:07 ransom joins (~c4264035@2a09:bac0:98::830:861e)
01:45:57 teardown_ joins (~user@gateway/tor-sasl/mrush)
01:46:15 Jd007 joins (~Jd007@162.156.11.151)
01:46:45 × guest23 quits (~user@49.5.6.87) (Ping timeout: 240 seconds)
01:47:38 sssb54 joins (~ssssb56@vps-b2931db6.vps.ovh.ca)
01:49:05 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
01:49:58 guest23 joins (~user@49.5.6.87)
01:51:19 teardown joins (~user@gateway/tor-sasl/mrush)
01:53:39 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
01:55:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
01:55:09 × deviantfero quits (~deviantfe@179.51.60.188) (Ping timeout: 264 seconds)
01:55:52 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
02:00:37 teardown_ joins (~user@gateway/tor-sasl/mrush)
02:01:42 retlo is now known as \2E0KNO
02:02:31 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
02:02:45 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:02:45 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
02:04:17 aarvar parts (~foewfoiew@2601:602:a080:fa0:6991:31b3:1556:10f4) ()
02:05:05 × swarmcollective quits (~joseph@cpe-65-31-18-174.insight.res.rr.com) (Ping timeout: 240 seconds)
02:05:07 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
02:05:31 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds)
02:06:05 mozzarella joins (~sam@unaffiliated/sam113101)
02:07:26 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds)
02:08:35 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
02:09:05 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
02:09:25 shinobi__ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
02:09:25 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:10:50 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
02:10:55 tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:10:56 × shinobi quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
02:11:28 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
02:11:57 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Ping timeout: 264 seconds)
02:15:52 × tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
02:17:33 toorevitimirp joins (~tooreviti@117.182.181.145)
02:19:38 vs^ joins (vs@ip98-184-89-2.mc.at.cox.net)
02:20:56 teardown joins (~user@gateway/tor-sasl/mrush)
02:24:00 × ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
02:24:51 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
02:24:57 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:25:19 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
02:26:53 deviantfero joins (~deviantfe@190.150.27.58)
02:27:42 teardown_ joins (~user@gateway/tor-sasl/mrush)
02:29:09 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
02:29:17 × xff0x_ quits (~xff0x@2001:1a81:536f:2100:2f3c:8f56:462:e9ab) (Ping timeout: 258 seconds)
02:30:58 xff0x_ joins (~xff0x@2001:1a81:53aa:1900:159a:3f2d:dfc0:b6f8)
02:31:57 conal joins (~conal@64.71.133.70)
02:32:15 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
02:37:33 Jd007 joins (~Jd007@162.156.11.151)
02:38:52 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
02:40:54 teardown joins (~user@gateway/tor-sasl/mrush)
02:41:13 × themba_ quits (themba@90.221.74.173) (Ping timeout: 276 seconds)
02:42:04 themba_ joins (themba@90.221.74.173)
02:44:54 da39a3ee5e6b4b0d joins (~da39a3ee5@49.228.239.163)
02:45:07 <Axman6> monochrom: Thanks, I'll take a look :)
02:45:12 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
02:45:31 × m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds)
02:45:56 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
02:46:00 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:47:53 teardown_ joins (~user@gateway/tor-sasl/mrush)
02:47:57 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds)
02:48:11 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:9840:c51c:baa7:1cb4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:50:05 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
02:50:36 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
02:51:48 hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
02:51:59 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
02:52:10 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
02:54:20 nbloomf joins (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b)
02:57:38 <Axman6> zzz: that video is pretty entertaining :)
02:57:51 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
03:00:27 teardown joins (~user@gateway/tor-sasl/mrush)
03:04:19 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:05:34 teardown_ joins (~user@gateway/tor-sasl/mrush)
03:07:47 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
03:08:38 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:10:44 × argento quits (~argent0@168.227.97.23) (Remote host closed the connection)
03:10:58 teardown joins (~user@gateway/tor-sasl/mrush)
03:12:16 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
03:12:25 × theDon quits (~td@94.134.91.17) (Ping timeout: 276 seconds)
03:13:32 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
03:14:02 theDon joins (~td@muedsl-82-207-238-046.citykom.de)
03:15:25 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:16:14 teardown_ joins (~user@gateway/tor-sasl/mrush)
03:17:56 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
03:18:05 × viluon quits (uid453725@gateway/web/irccloud.com/x-ucvzxcoudognhctl) (Quit: Connection closed for inactivity)
03:18:30 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:18:58 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:19:18 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
03:20:59 × stiell quits (~stian@fsf/member/stiell) (Ping timeout: 256 seconds)
03:21:39 × ransom quits (~c4264035@2a09:bac0:98::830:861e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:23:24 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
03:24:07 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 276 seconds)
03:27:19 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
03:29:03 × urodna_ quits (~urodna@unaffiliated/urodna) (Quit: urodna_)
03:29:27 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:31:28 jedws joins (~jedws@101.184.202.248)
03:31:30 Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi)
03:34:11 teardown joins (~user@gateway/tor-sasl/mrush)
03:35:18 × aveltras quits (uid364989@gateway/web/irccloud.com/x-zridcshpxaalituf) (Quit: Connection closed for inactivity)
03:35:56 stiell joins (~stian@fsf/member/stiell)
03:37:37 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:37:54 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:37:54 finn_elija is now known as Guest69359
03:37:54 FinnElija is now known as finn_elija
03:39:12 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
03:39:43 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:40:10 swarmcollective joins (~joseph@cpe-65-31-18-174.insight.res.rr.com)
03:40:10 <swarmcollective> myShoggoth, How is your project progressing?
03:41:56 × Guest69359 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
03:43:08 × TommyC quits (~TommyC@unaffiliated/sepulchralbloom) (Ping timeout: 265 seconds)
03:43:36 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
03:43:55 TommyC joins (~TommyC@unaffiliated/sepulchralbloom)
03:44:30 teardown_ joins (~user@gateway/tor-sasl/mrush)
03:44:41 jedws joins (~jedws@101.184.202.248)
03:46:51 plutoniix joins (~q@184.82.206.197)
03:48:43 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:49:35 sMuNiX joins (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca)
03:51:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:51:27 teardown joins (~user@gateway/tor-sasl/mrush)
03:52:48 × salumu quits (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Ping timeout: 264 seconds)
03:54:33 × stiell quits (~stian@fsf/member/stiell) (Ping timeout: 246 seconds)
03:55:01 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
03:55:30 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
03:57:55 hackage newtype-generics 0.6 - A typeclass and set of functions for working with newtypes https://hackage.haskell.org/package/newtype-generics-0.6 (sjakobi)
03:58:17 × metreo quits (~Thunderbi@unaffiliated/metreo) (Quit: metreo)
03:59:35 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Quit: Lost terminal)
03:59:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
04:00:18 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
04:00:32 stiell joins (~stian@fsf/member/stiell)
04:00:33 teardown_ joins (~user@gateway/tor-sasl/mrush)
04:03:31 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
04:04:45 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:05:30 × hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 258 seconds)
04:05:33 teardown joins (~user@gateway/tor-sasl/mrush)
04:07:07 × sw1nn quits (~sw1nn@2a00:23c6:2385:3a00:bc71:9ab4:c3a5:8b4c) (Ping timeout: 272 seconds)
04:07:09 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
04:07:41 × da39a3ee5e6b4b0d quits (~da39a3ee5@49.228.239.163) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:08:08 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
04:08:27 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:08:34 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds)
04:08:52 × xff0x_ quits (~xff0x@2001:1a81:53aa:1900:159a:3f2d:dfc0:b6f8) (Remote host closed the connection)
04:09:10 xff0x_ joins (~xff0x@2001:1a81:53aa:1900:f400:282e:9bd1:5c2c)
04:10:06 × stiell quits (~stian@fsf/member/stiell) (Ping timeout: 258 seconds)
04:12:36 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
04:13:13 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:13:40 teardown_ joins (~user@gateway/tor-sasl/mrush)
04:15:28 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
04:15:30 stiell joins (~stian@fsf/member/stiell)
04:17:59 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
04:18:19 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:18:40 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
04:18:44 teardown joins (~user@gateway/tor-sasl/mrush)
04:19:23 sw1nn joins (~sw1nn@2a00:23c6:2385:3a00:8481:383e:48dd:21f5)
04:20:03 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
04:21:24 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:23:30 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-duetsgbgiyfgeatn) ()
04:23:51 teardown_ joins (~user@gateway/tor-sasl/mrush)
04:24:24 hackage opaleye-trans 0.5.2 - A monad transformer for Opaleye https://hackage.haskell.org/package/opaleye-trans-0.5.2 (wraithm)
04:24:29 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:25:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
04:28:49 teardown joins (~user@gateway/tor-sasl/mrush)
04:29:42 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
04:30:52 × teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
04:31:16 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:31:55 hackage heartbeat-streams 0.1.0.3 - Heartbeats for io-streams https://hackage.haskell.org/package/heartbeat-streams-0.1.0.3 (wraithm)
04:32:20 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
04:33:54 teardown joins (~user@gateway/tor-sasl/mrush)
04:38:05 × nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 258 seconds)
04:38:52 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
04:41:12 Edwin91 joins (63f0a4ca@cpe5c7695b93ed1-cm5c7695b93ecf.cpe.net.cable.rogers.com)
04:43:38 raym joins (~ray@45.64.220.55)
04:44:00 teardown_ joins (~user@gateway/tor-sasl/mrush)
04:44:36 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
04:46:52 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:47:26 × Younder quits (~john@33.51-174-155.customer.lyse.net) (Quit: Leaving)
04:47:45 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
04:48:32 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
04:50:25 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
04:50:40 teardown joins (~user@gateway/tor-sasl/mrush)
04:51:25 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
04:54:09 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:55:19 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
05:00:15 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
05:00:47 ixaxaar joins (~ixaxaar@49.207.210.215)
05:01:52 × Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
05:03:47 × cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection)
05:03:53 teardown_ joins (~user@gateway/tor-sasl/mrush)
05:04:20 × Edwin91 quits (63f0a4ca@cpe5c7695b93ed1-cm5c7695b93ecf.cpe.net.cable.rogers.com) (Quit: Connection closed)
05:04:55 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds)
05:07:19 cheater joins (~user@unaffiliated/cheater)
05:08:08 × Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
05:08:16 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
05:08:52 teardown joins (~user@gateway/tor-sasl/mrush)
05:09:31 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
05:09:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:10:37 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
05:11:21 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
05:11:43 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
05:12:23 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
05:13:09 × mrchampion quits (~mrchampio@38.18.109.23) (Ping timeout: 264 seconds)
05:13:44 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
05:15:05 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
05:15:07 deviantfero joins (~deviantfe@190.150.27.58)
05:15:40 conal joins (~conal@64.71.133.70)
05:16:06 × cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer)
05:16:47 mrchampion joins (~mrchampio@38.18.109.23)
05:17:32 × Guest38429 quits (~abian@185.204.1.185) (Remote host closed the connection)
05:17:51 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
05:18:37 cheater joins (~user@unaffiliated/cheater)
05:18:55 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
05:19:59 bitmagie joins (~Thunderbi@200116b80656d5009c3e767f69ddfc16.dip.versatel-1u1.de)
05:20:49 teardown_ joins (~user@gateway/tor-sasl/mrush)
05:23:53 × cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer)
05:24:15 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
05:24:37 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:24:55 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
05:25:27 nineonine joins (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa)
05:27:19 teardown joins (~user@gateway/tor-sasl/mrush)
05:27:32 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
05:27:37 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
05:27:50 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
05:28:39 cheater joins (~user@unaffiliated/cheater)
05:29:36 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds)
05:30:59 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:31:25 conal joins (~conal@64.71.133.70)
05:31:42 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
05:34:10 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
05:34:11 × cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer)
05:35:53 cheater joins (~user@unaffiliated/cheater)
05:36:40 nineonin_ joins (~nineonine@50.216.62.2)
05:38:26 × nineonine quits (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) (Ping timeout: 264 seconds)
05:39:54 × mmohammadi9812 quits (~mmohammad@2.178.213.79) (Read error: Connection reset by peer)
05:40:03 mmohammadi9812 joins (~mmohammad@198.12.95.181)
05:42:31 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
05:47:15 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
05:48:22 × chrisdotcode quits (~chrisdotc@unaffiliated/chrisdotcode) (Ping timeout: 256 seconds)
05:50:25 × mmohammadi9812 quits (~mmohammad@198.12.95.181) (Ping timeout: 240 seconds)
05:51:17 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
05:51:17 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer)
05:51:21 mmohammadi9812 joins (~mmohammad@198.12.95.182)
05:51:42 chrisdotcode joins (~chrisdotc@unaffiliated/chrisdotcode)
05:52:00 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
05:56:14 <wroathe> Hmmm, after not writing Haskell for well over a year I've forgotten all of my opinions I had on libraries in the ecosystem. Me no gusta.
05:57:22 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
06:00:07 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:01:25 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
06:01:50 jb55 joins (~jb55@gateway/tor-sasl/jb55)
06:04:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
06:07:45 jedws joins (~jedws@101.184.202.248)
06:08:04 shiraeeshi joins (~shiraeesh@109.166.56.2)
06:08:08 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:12:27 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
06:16:18 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:18:05 × deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
06:18:25 deviantfero joins (~deviantfe@190.150.27.58)
06:18:59 × Wuzzy quits (~Wuzzy@p5b0df175.dip0.t-ipconnect.de) (Remote host closed the connection)
06:20:56 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
06:21:10 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:21:23 TianGTY joins (~textual@42.120.74.97)
06:21:29 × TianGTY quits (~textual@42.120.74.97) (Client Quit)
06:21:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:22:25 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
06:22:35 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
06:23:16 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
06:24:04 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
06:25:25 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
06:25:39 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
06:28:02 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:30:44 × vs^ quits (vs@ip98-184-89-2.mc.at.cox.net) ()
06:32:01 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:34:00 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:35:57 × shiraeeshi quits (~shiraeesh@109.166.56.2) (Ping timeout: 264 seconds)
06:37:10 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
06:37:55 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
06:37:56 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:38:00 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds)
06:39:07 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
06:39:09 × alexelcu quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
06:39:20 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
06:39:46 alexelcu joins (~alexelcu@142.93.180.198)
06:40:09 erh^ joins (erh@ip98-184-89-2.mc.at.cox.net)
06:40:51 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
06:41:18 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:42:45 × incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
06:43:08 incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com)
06:47:52 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:47:58 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:48:27 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
06:49:24 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
06:52:55 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
06:52:55 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
06:53:41 jonatanb joins (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl)
06:53:45 × _bin quits (~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net) (Ping timeout: 240 seconds)
06:56:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
07:00:01 × jonatanb quits (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Ping timeout: 276 seconds)
07:00:23 cheater1 joins (~user@unaffiliated/cheater)
07:02:05 × bitmagie quits (~Thunderbi@200116b80656d5009c3e767f69ddfc16.dip.versatel-1u1.de) (Quit: bitmagie)
07:02:31 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 276 seconds)
07:02:38 cheater1 is now known as cheater
07:04:16 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:05:45 × mmohammadi9812 quits (~mmohammad@198.12.95.182) (Ping timeout: 240 seconds)
07:06:24 mmohammadi9812 joins (~mmohammad@198.12.95.171)
07:07:55 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
07:08:29 _bin joins (~bin@2600:1700:10a1:38d0:edac:3b4f:504:68cd)
07:09:38 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
07:10:45 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
07:12:27 d3od joins (~nickmeno3@78-1-82-164.adsl.net.t-com.hr)
07:12:44 chris8142 joins (~chris8142@srvnet-01-071.ikbnet.co.at)
07:13:02 alar[m] joins (alarmxalat@gateway/shell/matrix.org/x-nrpvsrskbirkqhpn)
07:16:29 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:17:17 asheshambasta joins (~user@ptr-e1lysavr00fz11rl6gx.18120a2.ip6.access.telenet.be)
07:21:43 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:25:05 michalz joins (~user@185.246.204.79)
07:26:05 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
07:26:20 rmk236 joins (~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de)
07:28:05 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:30:22 × MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
07:30:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
07:31:01 MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru)
07:33:04 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
07:33:20 × d3od quits (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Remote host closed the connection)
07:34:17 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:35:36 forgottenone joins (~forgotten@176.42.30.142)
07:39:23 vchlup joins (~vchlup@nat.brnet.cz)
07:39:32 cfricke joins (~cfricke@unaffiliated/cfricke)
07:39:43 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:40:04 × average quits (uid473595@gateway/web/irccloud.com/x-oviqbcwayddkmlvw) (Quit: Connection closed for inactivity)
07:44:23 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
07:46:15 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:47:06 nineonine joins (~nineonine@50.216.62.2)
07:47:22 × nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 276 seconds)
07:50:25 × Natch quits (~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
07:50:57 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 264 seconds)
07:51:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
07:51:24 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-nvqzpcbpfmbefeds) (Quit: Connection closed for inactivity)
07:51:50 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
07:52:33 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
07:53:22 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:53:52 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
07:54:14 × unlink2 quits (~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
07:54:28 hhnoob joins (3dded63f@61-222-214-63.HINET-IP.hinet.net)
07:55:18 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0)
07:55:34 × mmohammadi9812 quits (~mmohammad@198.12.95.171) (Quit: Quit)
07:56:01 Natch joins (~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
07:56:14 unlink2 joins (~unlink2@p57b8511e.dip0.t-ipconnect.de)
07:56:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:56:57 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:58:00 chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de)
07:58:11 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 258 seconds)
07:59:39 EncodePanda joins (b9eeefcd@185.238.239.205)
08:01:07 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
08:02:06 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
08:02:50 thongpv88 joins (~thongpv87@103.6.151.121)
08:02:51 × thongpv88 quits (~thongpv87@103.6.151.121) (Client Quit)
08:02:55 d3od joins (~nickmeno3@78-1-82-164.adsl.net.t-com.hr)
08:03:01 × d3od quits (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Excess Flood)
08:03:16 d3od joins (~nickmeno3@78-1-82-164.adsl.net.t-com.hr)
08:03:39 × d3od quits (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Remote host closed the connection)
08:04:50 × renzhi quits (~renzhi@2607:fa49:6500:6f00::1e43) (Ping timeout: 264 seconds)
08:06:34 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
08:07:45 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:08:57 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:12:05 × poscat quits (~poscat@111.192.221.197) (Ping timeout: 240 seconds)
08:13:26 poscat joins (~poscat@111.192.221.197)
08:13:36 acdsystemliorg[m joins (acdsysteml@gateway/shell/matrix.org/x-fdbespuaoazmlwtb)
08:13:48 antaoiseach joins (~z0ltan@103.5.134.18)
08:14:56 <antaoiseach> Hello folks, correct me if I'm wrong, but Stack uses Clang by default on macOS, right? If so, can I make it use gcc instead? I'm trying to build Carp lang (which is written in Haskell), but getting some really weird errors with `ld`... suspecting maybe it's due to clang (not sure!)
08:15:00 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:15:13 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:15:30 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:18:02 <merijn> *Everything* uses clang by default on macOS
08:18:41 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
08:18:45 <merijn> gcc on macOS is just wrapper around clang unless you install "real" gcc from homebrew/source
08:19:13 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
08:20:10 <hhnoob> hello, I am trying to learn linear haskell recently.
08:20:15 <hhnoob> I have wrote a function
08:20:18 <hhnoob> add1 :: Int %1 -> Int
08:20:22 <hhnoob> add1 a = a + 1
08:20:28 <hhnoob> but it not works
08:20:31 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
08:20:33 <hhnoob> Is it possible to make (+) have a type signature (Num a) => a %1 -> a %1 -> a ?
08:20:42 <hhnoob> Or it just not make sense that function add1 is linear ?
08:20:54 hackage Z-Data 0.6.0.0 - Array, vector and text https://hackage.haskell.org/package/Z-Data-0.6.0.0 (winterland)
08:20:56 <antaoiseach> merijn: that's right. I have gcc 10.2 from homebrew - just trying to figure out how to make stack use it!
08:21:31 polyrain joins (~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede)
08:21:39 <tomsmeding> sm[m]: I still exist?
08:21:42 <tomsmeding> s/?/!
08:22:03 <koz_> tomsmeding: A very philosophical question.
08:22:04 <antaoiseach> hnOsmium0001: wow, that's some ugly syntax!
08:22:04 <tomsmeding> though I admit I haven't existed on irc for a few weeks; I blame thesis sprint
08:22:20 <tomsmeding> I am now MSc
08:22:22 <merijn> antaoiseach: No clue how stack works, but I'm guessing it just uses GHC to compile C files, which means you need to change your ghc config
08:22:27 <tomsmeding> or, well, will be
08:22:32 <merijn> tomsmeding: Trigger warnings on the t word :(
08:22:38 <antaoiseach> merijn: that does make sense ...
08:22:53 <tomsmeding> merijn: I will be doing a phd
08:22:58 <tomsmeding> is that also a trigger word?
08:23:02 <koz_> tomsmeding: Congratulations, and you poor soul.
08:23:06 <antaoiseach> merijn: lemme explore that. In the meantime, if anybody has an idea about _that_, please let me know! :-)
08:23:11 <tomsmeding> :D
08:23:33 <Uniaika> hhnoob: do you use the `linear-base` package? https://github.com/tweag/linear-base
08:23:56 <hhnoob> no
08:24:02 <Uniaika> tomsmeding: congratulations for the Master's degree!
08:24:12 tomsmeding is very happy
08:24:14 <hhnoob> I just download ghc 9.0.1 binary package
08:24:30 <koz_> hhnoob: If you wanna use stuff from base with linear types, you gotta use linear-base.
08:24:42 <koz_> Because currently, base is not linearity-aware in any way.
08:25:02 <merijn> tomsmeding: Naah, that just makes you look dumb :p
08:25:12 <tomsmeding> I love that
08:25:17 <merijn> Flee, while you still can >.>
08:25:17 <hhnoob> so
08:25:25 <tomsmeding> merijn: signed contract already, too late
08:25:34 <merijn> RIP your mental health
08:25:47 <hhnoob> should I expect linear aware base to merge in to ghc in the future ?
08:26:42 <koz_> hhnoob: I wouldn't hold your breath.
08:26:46 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:27:00 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:27:05 <merijn> hah
08:27:22 <merijn> linear aware base merged into ghc, that'll trigger a civil war
08:27:34 <Uniaika> tomsmeding: we'll always be there for you to support you during those years of PhD
08:27:45 <tomsmeding> <3
08:27:46 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:27:51 <Uniaika> merijn: A SCHISM LIKE NO OTHER
08:27:53 <merijn> Uniaika: Mostly just to say "I told you so" :p
08:27:58 <tomsmeding> I guess monochrom will be happy I'm not yet in a bank
08:28:05 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:28:25 <merijn> Uniaika: I mean...the Orthodox/Catholic schism was pretty big... >.>
08:28:28 <koz_> merijn: You mean, before or after it gets drowned in bikeshedding?
08:29:52 <merijn> koz_: Why not both? :p
08:30:06 <koz_> merijn: 'Les deux' is indeed a good answer.
08:30:55 nineonine joins (~nineonine@50.216.62.2)
08:31:11 knupfer joins (~Thunderbi@200116b82ce4e60025387f735d9833ce.dip.versatel-1u1.de)
08:31:21 <antaoiseach> what, now I can't even uninstall stack? wtf?
08:31:37 <antaoiseach> I give up, uninstalling stack, carp, and haskell.. hahaha! :D
08:31:50 <tomsmeding> antaoiseach: what do you mean "can't uninstall stack"?
08:31:58 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:32:01 <tomsmeding> $ rm $(which stack); rm -r ~/.stack
08:32:38 <tomsmeding> if the first gives a permission error, you might want to check you haven't installed stack via some kind of package manager that wants some attention
08:32:53 <antaoiseach> tomsmeding: I mean, there is no uninstall command, right? :(
08:33:07 <antaoiseach> tomsmeding: yes, that's what I did L-)
08:33:07 <merijn> antaoiseach: Well, that depends on how you install it
08:33:33 <tomsmeding> show me command-line software that can uninstall itself
08:33:45 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:33:59 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:34:00 <antaoiseach> merijn: yeah, I like Haskell the language, but the whole ecosystem appears too bizarre to me. Most times neither cabal nor stack seem to work for me :|
08:34:06 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:34:09 <antaoiseach> I'm scooting off back to Idris.. .hahaha
08:34:18 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:e2bc:3fed:317c:3efb)
08:34:22 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:34:25 <antaoiseach> tomsmeding: I mean most software come with uninstall scripts
08:34:40 <antaoiseach> even stack has an "uninstall" flag, but that does nothing!
08:35:00 <tomsmeding> I guess stack didn't bother because uninstalling it is really just the above, it doesn't store anything anywhere else, except in your own projects -- which would be strange to remove
08:35:04 <merijn> antaoiseach: In my experience a solid 80-90% of "cabal doesn't work" boils down to "I'm trying to use abandonware packages whose bounds refuse to let it build"
08:35:36 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
08:35:47 <tomsmeding> antaoiseach: 'stack uninstall' is not to uninstall stack, but to uninstall stuff installed _with_ stack -- except, as you found, it doesn't want to do that :p
08:35:55 <antaoiseach> merijn: Quite possibly! However, from a beginner's point of view, the whole system appears byzantine
08:35:58 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:36:07 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 276 seconds)
08:36:14 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:36:21 <merijn> antaoiseach: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07 :p
08:36:26 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:36:30 <antaoiseach> I hate to bring up the "R" word, but the Rust ecosystem is topnotch - no wonder a lot of beginners are flocking to it, despite the learning curve!
08:36:45 <antaoiseach> tomsmeding: yeah, you're right
08:36:50 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:37:39 <merijn> antaoiseach: The Rust ecosystem will be the exact same in a few years
08:37:39 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:38:03 vchlup joins (~vchlup@nat.brnet.cz)
08:38:04 <merijn> antaoiseach: It hasn't been around long enough to acrue a significant number of broken/abandonned packages, but it inevitably will
08:38:19 <antaoiseach> merijn: I don't know about that! :D .. I'm not a big fan of the Rust community, but the tools seem to be in a league of their own. Let's hope it stays that way!
08:38:22 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:38:32 <merijn> I mean, the only solution to "broken abandonware doesn't build" is "don't use broken abandonware"
08:38:39 <arahael> merijn: So it might become more like Haskell? ;)
08:38:49 <merijn> I'm not sure what kinda technical solution people imagine will fix this
08:39:02 <antaoiseach> merijn: That aspect is quite true. It's already afflicted by the "pre 1.0" syndrome - quite a lot of the crates expire before they reach 1.0 - a rather scary situatopm
08:39:06 <antaoiseach> situation*
08:39:06 <merijn> Cabal not building broken shit isn't a bug/deficiency in cabal
08:39:34 <merijn> No matter how many beginners claim it is/blame cabal
08:39:38 <arahael> merijn: Incidentially, that was one big reason why I liked stack a while back. Having a curated set of packages is *really* nice for a newbie.
08:39:42 <antaoiseach> merijn: Yes, of course. However, when one downloads a project and tries to build it, the error messages don't inspire confidence to fix them :(
08:39:44 <sclv> what is the actual error you encounter
08:39:52 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
08:40:09 <tomsmeding> ever tried to build old C/C++ stuff?
08:40:18 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:1934:160d:83fd:85ea) (Quit: WeeChat 3.0)
08:40:27 <antaoiseach> merijn: No, I mean the project creators might be reponsible for it, but the blame of course goes to the tools in the end. I thought Stack was supposed to fix that, but I don't think it really does that much better from a UX perspective
08:40:33 <[exa]> tomsmeding: (ask gentoo users, building their baselayouts from 1980s)
08:40:36 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
08:40:49 <tomsmeding> there is also old haskell stuff that still builds :p
08:40:51 <antaoiseach> arahael: hjahahaha
08:40:57 <sclv> stack can’t fix a broken project. Only coders can
08:41:06 <[exa]> ^ +1
08:41:22 <[exa]> portability, reliability and maintainability is not a property of language (except for php)
08:41:28 <tomsmeding> stack 4.0.0: now includes AI to fix your compiler errors
08:41:57 <merijn> arahael: Yea, but then half of stack projects still depend on non-curated hackage packages :p
08:42:13 <sclv> antaoiseach: you are complaining about errors but haven’t pasted the error
08:42:21 ericsagnes joins (~ericsagne@2405:6580:0:5100:6838:f94d:c1b8:154c)
08:42:27 <antaoiseach> Sigh. I get it, man. I definitely get it, but when a lot of people go on repeat-mode about some UX, perhaps it's worth investigating. My own experience (a total beginner in Haskell) was that learning Haskell from Graham Hutton's book was one of the most enjoyable experiences in my life. I loved it. When it came time to try out some real projects, it was a very difficult process to the point where I
08:42:33 <antaoiseach> left it at that.
08:42:36 <arahael> merijn: Well, *that*'s hardly the fault of stack. ;) And even then, those are opt-in, and more easy to reason about, imho.
08:42:38 <antaoiseach> tomsmeding: Lmfao! :D :D
08:43:42 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:43:49 miguel_clean joins (~Miguel@89-72-187-203.dynamic.chello.pl)
08:43:58 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:44:03 × EncodePanda quits (b9eeefcd@185.238.239.205) (Quit: Connection closed)
08:46:09 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
08:46:29 <antaoiseach> sclv: I don't remember the projects I tried to build before, but I saw a lot of "the checker couldn't find a formula that worked" or some such error message
08:46:47 <antaoiseach> To a beginner, that might as well be Greek!
08:47:23 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
08:47:25 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
08:47:30 <tomsmeding> the cabal output suffers a bit from being used by the people that already understand it
08:47:38 <antaoiseach> tomsmeding: precisely
08:47:54 <merijn> tbh, the message you give seems pretty normal english
08:47:55 <tomsmeding> problem is that it's non-trivial to fix it
08:48:13 <tomsmeding> where "fix" means "is very clear to people who have no idea how cabal works"
08:48:13 <antaoiseach> merijn: yes, but how do you even know where to begin to fix the problem?
08:48:32 <merijn> antaoiseach: Look at mentioned dependencies and their bounds
08:49:04 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:51:04 × hhnoob quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Connection closed)
08:52:00 × chris8142 quits (~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0.1)
08:52:42 simara[m] joins (simaramatr@gateway/shell/matrix.org/x-qirnwrgkrbmjerbr)
08:53:08 antaoiseach parts (~z0ltan@103.5.134.18) ()
08:53:28 <merijn> If it mentions base, your GHC is too old/new, if it mentions anything else one of your dependencies has an upperbound that doesn't support the base/GHC you're using and/or your dependencies have conflicting requirements
08:53:57 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
08:54:19 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:55:43 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-ioizzidwfhnufbxy)
08:56:21 × hiroaki quits (~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
08:57:00 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
09:00:08 borne joins (~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de)
09:04:02 × rmk236 quits (~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de) (Quit: Leaving.)
09:05:42 TianGTY joins (~textual@42.120.74.97)
09:07:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
09:07:52 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Remote host closed the connection)
09:10:10 nineonine joins (~nineonine@50.216.62.2)
09:12:24 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
09:12:30 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
09:13:44 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
09:15:07 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 276 seconds)
09:21:46 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
09:21:53 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
09:22:52 Varis joins (~Tadas@unaffiliated/varis)
09:25:15 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
09:26:23 frozenErebus joins (~frozenEre@94.128.81.133)
09:26:39 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-vcqnqeayruwjdhxh) (Quit: Connection closed for inactivity)
09:27:57 × quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
09:29:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
09:29:54 sakirious4 joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
09:30:34 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
09:30:46 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
09:30:51 × sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 272 seconds)
09:30:52 sakirious4 is now known as sakirious
09:35:06 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
09:35:18 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
09:35:55 × sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 276 seconds)
09:36:36 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
09:36:36 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
09:37:05 × knupfer quits (~Thunderbi@200116b82ce4e60025387f735d9833ce.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
09:37:29 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
09:37:55 knupfer joins (~Thunderbi@dynamic-046-114-147-200.46.114.pool.telefonica.de)
09:39:18 <ph88_> How can i access the source code of this thing ? https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#t:StateT
09:40:04 <merijn> ph88_: StateT is defined in transformers
09:40:04 <Taneb> ph88_: it's in the "transformers" library: http://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.State.Lazy.html#StateT
09:40:19 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
09:40:32 × toorevitimirp quits (~tooreviti@117.182.181.145) (Ping timeout: 258 seconds)
09:41:24 × knupfer quits (~Thunderbi@dynamic-046-114-147-200.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
09:42:10 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
09:43:34 sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
09:43:45 mouseghost joins (~draco@wikipedia/desperek)
09:43:50 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 264 seconds)
09:46:19 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
09:47:19 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
09:47:21 × catt quits (~r@31.124.181.226) (Ping timeout: 264 seconds)
09:48:56 <ph88^> can anyone help me to get the type right to stack monad transformers ? https://bpa.st/IRMA
09:49:53 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:50:22 p7lpa1ugixavugu joins (~atomic@2800:810:514:8155:885f:ca4:6add:b1fa)
09:50:36 thc202 joins (~thc202@unaffiliated/thc202)
09:53:25 hseg joins (~gesh@185.120.124.95)
09:55:11 <[exa]> ph88^: you may be missing a lift. I assume you want State + Except + IO, right?
09:55:48 Aquazi joins (uid312403@gateway/web/irccloud.com/x-vpvehxcmwssmnbeh)
09:56:04 j2t joins (~j2t@84.122.202.215.dyn.user.ono.com)
09:56:54 × j2t quits (~j2t@84.122.202.215.dyn.user.ono.com) (Client Quit)
09:57:11 pera joins (~pera@unaffiliated/pera)
09:57:42 × hseg quits (~gesh@185.120.124.95) (Ping timeout: 256 seconds)
09:59:09 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:59:56 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:01:08 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
10:01:08 toorevitimirp joins (~tooreviti@117.182.181.186)
10:01:20 cfricke joins (~cfricke@unaffiliated/cfricke)
10:01:23 Rudd0 joins (~Rudd0@185.189.115.103)
10:02:11 son0p joins (~son0p@181.58.39.182)
10:04:59 <ph88^> yes
10:05:04 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
10:05:24 <ph88^> lift where ? on putStrLn ?
10:07:25 m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
10:08:17 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
10:10:23 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
10:13:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
10:14:59 Franciman joins (~francesco@host-95-235-155-82.retail.telecomitalia.it)
10:15:02 <[exa]> ph88^: the common type shold then look like `type MyMonad a = StateT MyStateType (ExceptT MyExceptionType IO) a`
10:16:41 <[exa]> for running it, you unwrap the monad layers using roughly `runExceptT . runStateT initialState`, which should give you an IO action
10:17:08 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:17:36 <ph88^> how does that work putting types together like that ?
10:17:58 <[exa]> ph88^: highly recommend making a "primitive" main function and checking that the types of everything match the expectation, before starting the actual program
10:18:07 <ph88^> ExceptT e (m :: * -> *) a 3 things there ExceptT MyExceptionType IO 2 things there
10:19:08 <[exa]> the magic is in *->*, the "ExceptT MyExceptionType IO" is a "function on types", and the StateT kindof forwards the "return type" `a` to it
10:19:31 <ph88^> ah like that
10:19:39 <[exa]> (which is basically to make sure that all monads in the stack return the same thing)
10:20:00 <[exa]> then the unwrapping goes like this:
10:20:13 <ph88^> what should MyExceptionType be ?
10:20:23 <ph88^> I was thinking just to return a String for the error
10:20:27 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:20:29 <[exa]> the type of your exceptions, Strings are okay for a start
10:21:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
10:21:49 <[exa]> ...the unwrapping:
10:21:52 <merijn> I recommend not conflating "exceptions" and ExceptT
10:22:14 <merijn> ExceptT is great at what it does, it's not great at exceptions
10:22:18 <[exa]> +1 ^
10:22:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
10:23:48 kritzefitz joins (~kritzefit@212.86.56.80)
10:24:02 × xff0x_ quits (~xff0x@2001:1a81:53aa:1900:f400:282e:9bd1:5c2c) (Ping timeout: 264 seconds)
10:24:06 <[exa]> ph88^: `runStateT initstate` gets you a value of type `ExceptT String IO (a,s)` for some `a` that you returned in the state and `s :: YourStateType`
10:24:21 xff0x_ joins (~xff0x@2001:1a81:53aa:1900:dab4:3a8f:b8f:c49a)
10:24:39 <[exa]> ph88^: `runExceptT` further unwraps it to `IO (Either String (a,s))`, and you can run that normally in `main`
10:24:54 hackage hpqtypes-extras 1.10.4.0 - Extra utilities for hpqtypes library https://hackage.haskell.org/package/hpqtypes-extras-1.10.4.0 (arybczak)
10:25:43 DavidEichmann joins (~david@234.109.45.217.dyn.plus.net)
10:26:11 <ph88^> when should i use function lift and when liftIO ?
10:26:12 <[exa]> merijn: we should start to systematically call the other exceptions a completely different name, such as bottoms or something
10:26:18 ubert joins (~Thunderbi@p200300ecdf25d92eca5b76fffe29f233.dip0.t-ipconnect.de)
10:27:05 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
10:27:31 <[exa]> ph88^: in your monad, you can run State "methods" (get, set) normally, but without any further tooling the Except methods won't work on State. `lift` moves the method 1 level up in the monad stack, so you can use `lift.lift` to run IO functions in your case
10:27:51 <ph88^> thanks
10:27:55 <ph88^> what about liftIO ?
10:27:55 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
10:27:57 <[exa]> `liftIO` uses a bit of type information to automatically derive how many `lift` it needs
10:28:02 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:28:10 <[exa]> so you don't need to write `lift.lift.lift.lift` in complicated stacks
10:28:23 <[exa]> same exists for other monads
10:28:53 <ph88^> nice some clear answers today
10:29:03 <[exa]> now the important difference
10:29:13 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
10:29:57 <[exa]> there is `mtl` (which uses typeclasses like MonadState to say that a monad stack "has a state" somewhere, and `get` and `put` work right on anything that has MonadState)
10:29:59 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 258 seconds)
10:30:11 <ph88^> is this the right module to import lift from ? https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-Class.html#v:lift
10:30:38 <[exa]> and there are `transformers` which have similar functionality, but implemented in a slightly different way
10:30:48 <[exa]> yes, use `transformers` if you can
10:31:13 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
10:31:46 <[exa]> the MonadTrans is a common typeclass for everything capable of "lifting" an operation to a monad that's deeper in the stack
10:33:16 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
10:33:37 <ph88^> [exa], can you have a look as my code is now ? https://bpa.st/SHVQ
10:33:43 coot joins (~coot@2a02:a311:433f:a080:2f8e:acf5:8455:513f)
10:33:52 × coot quits (~coot@2a02:a311:433f:a080:2f8e:acf5:8455:513f) (Read error: Connection reset by peer)
10:33:55 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:34:39 <[exa]> ph88^: you may be missing a $ before `inner` in main
10:35:09 <[exa]> (btw `putStrLn.show` is basically `print`)
10:35:20 <merijn> not just basically
10:35:23 <merijn> literally that :p
10:36:24 hackage haskoin-store 0.40.13 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.13 (jprupp)
10:36:52 <[exa]> anyway I'm not sure how liftIO interacts with `transformers` package
10:37:48 <ph88^> [exa], can you take another look ? https://bpa.st/DOCQ
10:37:50 <[exa]> ph88^: I'm usually just creating helper functions for the lifting to prevent ambiguity, in your case you can define `io = lift.lift` and use it as `io $ putStrLn "foo"`
10:38:10 <[exa]> :t evalState
10:38:11 <lambdabot> State s a -> s -> a
10:38:30 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
10:38:35 <[exa]> order of the arguments is important here; just flip the evalState
10:39:02 <[exa]> (or well, flip the arguments manually, you don't have a `do` block in there)
10:39:05 <ph88^> i would like to avoid using flip and . for now rather move arguments around
10:39:16 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
10:39:49 <[exa]> (flip is useful if you go for `flip evalState initialState $ do ...program... `
10:39:51 <kuribas> it's shitty they didn't put the arguments in the "right" order
10:40:10 <merijn> kuribas: It's because they're field accessors, so that can't work
10:40:33 <kuribas> merijn: I see, but they don't have to be field accessors, do they?
10:40:35 <merijn> Well, I guess eval/exec aren't, but they follow the order of runState
10:40:44 <[exa]> kuribas: also there's kindof a mantra that "functions for composition first, data last"
10:40:58 <[exa]> kuribas: consider `map [1..5] fn`
10:41:01 <merijn> kuribas: Now you just gotta invent a timemachine, go back 20 years and safe us from that mistake :p
10:41:03 <[exa]> (atrocity!)
10:41:10 × TianGTY quits (~textual@42.120.74.97) (Ping timeout: 272 seconds)
10:41:14 <kuribas> [exa]: I usually do it the other way...
10:41:16 <merijn> [exa]: eh, you mean "for"? :p
10:41:19 <merijn> :t for
10:41:20 <lambdabot> (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b)
10:41:21 <merijn> :t forM
10:41:22 <lambdabot> (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
10:41:23 <merijn> :t forM_
10:41:24 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
10:41:37 <merijn> [exa]: Which, incidentally works *great* with lambdas
10:41:42 <[exa]> merijn: it was an counterexample that shold have looked wrong
10:41:52 <kuribas> yeah, for_ and <&> are very useful.
10:41:54 <[exa]> anyway yes, there are usecases
10:42:03 <ph88^> [exa], problems with monad stack seem gone now .. almost working i think https://bpa.st/7QOA
10:42:27 <merijn> [exa]: Like https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Migration.hs#L100-L121 :p
10:42:39 <[exa]> ph88^: why 'traverse'? your function already takes [Int]
10:42:56 <ph88^> then my function is wrong
10:43:01 <[exa]> merijn: yes, that's also a good style
10:43:12 <merijn> of course
10:43:18 <merijn> Because I have impeccable taste
10:43:36 <[exa]> merijn: I wanted to point out that even in λ calculus it is more usual to compose functions first, and leave the data for later (or never, in λ)
10:44:23 <[exa]> which is ofc not for this kind of almost imperative code :]
10:44:50 <kuribas> merijn: why forM_, and not for_ ?
10:44:54 <kuribas> :t forM_
10:44:55 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
10:44:58 <kuribas> :t for_
10:44:59 <lambdabot> (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
10:45:48 <ph88^> be back later
10:45:51 <ph88^> thanks for the help [exa]
10:46:12 <[exa]> ph88^: let us know how it ended up :D
10:46:42 <[exa]> ph88^: btw I guess the code can be fixed just by commenting out the explicit type of `inner`
10:47:16 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
10:47:17 <kuribas> I only use a more specialized function if: it helps type inference, or, it has better performance ((++) vs (<>))
10:47:25 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
10:47:39 <[exa]> kuribas: I kindof guess for_ is much newer than forM_
10:47:44 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
10:47:46 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
10:47:58 <kuribas> [exa]: yes, because it's traversable
10:48:06 <kuribas> erm applicative
10:49:27 <[exa]> hm let's see if hlint will comment on `flip traverse`
10:49:40 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:52:06 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:54:00 _noblegas joins (uid91066@gateway/web/irccloud.com/x-nqgmbmccisnkcgyh)
10:54:55 hackage dep-t-advice 0.4.0.1 - Giving good advice to functions in a DepT environment. https://hackage.haskell.org/package/dep-t-advice-0.4.0.1 (DanielDiazCarrete)
10:55:13 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
10:57:10 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
11:01:26 × pjb quits (~t@2a01cb04063ec5009d3731745487fa1c.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
11:05:26 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-ioizzidwfhnufbxy) (Quit: Connection closed for inactivity)
11:08:20 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:09:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
11:13:17 TianGTY joins (~textual@103.116.47.86)
11:13:27 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
11:14:07 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:14:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
11:16:14 × TianGTY quits (~textual@103.116.47.86) (Client Quit)
11:16:43 TianGTY joins (~textual@103.116.47.86)
11:18:14 mgautier joins (~max@91-167-197-212.subs.proxad.net)
11:18:20 jedws joins (~jedws@101.184.202.248)
11:18:33 × darjeeling_ quits (~darjeelin@122.245.120.134) (Ping timeout: 264 seconds)
11:18:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:18:56 × jedws quits (~jedws@101.184.202.248) (Client Quit)
11:19:57 × mgautier quits (~max@91-167-197-212.subs.proxad.net) (Remote host closed the connection)
11:20:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:22:05 aveltras joins (uid364989@gateway/web/irccloud.com/x-wppxrrvmmzrfxdph)
11:25:24 <idnar> kuribas: which (++) is this?
11:25:46 <kuribas> idnar: Data.List.++
11:25:54 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:25:55 <kuribas> are there others?
11:29:00 <idnar> kuribas: how could that have better perf than (<>)?
11:29:13 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
11:30:08 notzmv joins (~user@unaffiliated/zmv)
11:30:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
11:31:09 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
11:31:20 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
11:31:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:32:17 fendor joins (~fendor@77.119.129.25.wireless.dyn.drei.com)
11:34:15 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
11:34:53 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds)
11:36:22 <ph88_> [exa], the inner function works now .. however i made an inner2 function with the monad stack turned around and that one doesn't work https://bpa.st/J3TA
11:37:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:37:21 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:37:42 <ph88_> i already found some mistakes here fixing them now
11:38:57 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 264 seconds)
11:39:40 <[exa]> ph88_: some monads allow various versions of "backtracking" and "masking" of the code, which generally doesn't interplay very well with stateful computation. In your case, one of the versions will retain the state through exceptions, and one will discard it
11:39:43 <ph88_> one error remaining now which i don't know how to solve https://bpa.st/FVNA
11:40:16 <ph88_> which one will retain the state and which one will discard ?
11:40:35 <[exa]> look at the return types :]
11:40:49 <ph88_> are you talking about my paste or my question ?
11:40:58 <[exa]> about the question-- `Either error (a,s)` vs `(Either error a, s)`
11:41:08 pjb joins (~t@2a01cb04063ec5000c7095db6c592b59.ipv6.abo.wanadoo.fr)
11:41:37 <ph88_> i think inner2 will keep the state
11:41:39 <[exa]> btw you have a mistake in the explicit type of `inner2`
11:41:43 <[exa]> yes
11:42:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
11:42:37 <ph88_> i don't see my mistake in the inner2 type signature
11:42:52 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:43:05 <[exa]> "ExceptT StateType" vs "StateT ExceptType"
11:43:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:43:33 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
11:44:13 × son0p quits (~son0p@181.58.39.182) (Quit: Lost terminal)
11:44:31 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
11:44:48 <ph88_> which paste are you looking at ? the last one ?
11:44:58 <[exa]> yes
11:45:15 <[exa]> seems you flipped the ExceptT and StateT but forgot to flip the type params properly
11:45:28 <[exa]> oh noes, sorry
11:45:32 <[exa]> that was not the latest one :]
11:45:38 <ph88_> right ..
11:45:55 <[exa]> btw `inner` vs `inner2` ?
11:46:30 <ph88_> ah yes xD
11:47:09 <[exa]> it's beneficial to read the error messages, 'expected type' is what the environment says, and 'actual type' is what you put there
11:47:23 × plutoniix quits (~q@184.82.206.197) (Quit: Leaving)
11:47:25 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
11:47:25 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
11:47:47 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
11:48:08 <ph88_> ye that i know
11:48:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
11:49:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:51:16 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
11:54:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:54:58 <ph88_> <[exa]> the magic is in *->*, the "ExceptT MyExceptionType IO" is a "function on types", and the StateT kindof forwards the "return type" `a` to it
11:55:11 <ph88_> do you know where i can see this magic in the code ?
11:55:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:55:40 <[exa]> ph88_: right in the definition of StateT
11:56:01 <[exa]> (it's not much of magic actually, it just forwards the argument... :] )
11:56:30 <ph88_> there is no source code button here https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#t:StateT
11:57:23 <[exa]> take the one from `transformers`
11:57:36 × thongpv87 quits (~thongpv87@103.6.151.121) (Read error: No route to host)
11:58:14 shiraeeshi joins (~shiraeesh@109.166.56.2)
11:58:23 <[exa]> (it says `newtype StateT s m a = StateT { runStateT :: s -> m (a,s) }` --you see `m` is given a type argument there)
11:58:51 × toorevitimirp quits (~tooreviti@117.182.181.186) (Remote host closed the connection)
11:58:53 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:59:04 <ph88_> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-State-Lazy.html#t:StateT
11:59:14 <ph88_> why is this type in two different packages ?
11:59:27 toorevitimirp joins (~tooreviti@117.182.181.186)
12:00:17 <[exa]> there are more possible implementations, very roughly `mtl` uses the multiparameter typeclasses, `transformers` is more portable and uses type families
12:01:28 <ph88_> how come mtl has this type but there is no source code for it ?
12:01:56 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:02:18 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:02:30 darjeeling_ joins (~darjeelin@122.245.120.134)
12:02:46 <[exa]> ph88_: the source is there, probably not just linked from the generated docs
12:03:10 ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net)
12:03:18 × polyrain quits (~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:03:25 × ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host)
12:03:25 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
12:03:46 <ph88_> i mean from here https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#t:StateT
12:03:50 <ph88_> https://hackage.haskell.org/package/mtl-2.2.2/docs/src/Control.Monad.State.Class.html
12:04:09 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
12:04:10 <[exa]> oh it looks like `mtl` is now just a wrap around `transformers`. :]
12:04:44 <ph88_> so this different implementations story is no longer true ?
12:04:55 <[exa]> seems so, just "different interface"
12:05:15 <ph88_> oki
12:05:52 <zzz> what deoes the 'safe' mean in 'instance [safe] Wtv...' ?
12:06:45 kritzefitz joins (~kritzefit@212.86.56.80)
12:07:22 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
12:10:16 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
12:10:30 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
12:10:58 <[exa]> zzz: I guess it's from safe haskell, see https://wiki.haskell.org/Safe_Haskell
12:12:32 × srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds)
12:13:09 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds)
12:14:36 frozenErebus joins (~frozenEre@94.128.81.133)
12:15:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
12:16:16 <ph88_> with a type like this newtype StateT s m a = StateT { runStateT :: s -> m (a,s) } there is no further implementation of runStateT ??
12:16:45 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:16:55 <merijn> That *is* the implementation
12:18:02 <ph88_> what kind of implementation is that ?
12:18:14 <ph88_> there is :: but no = like with normal functions
12:18:50 × ubert quits (~Thunderbi@p200300ecdf25d92eca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection)
12:19:09 ubert joins (~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de)
12:19:37 hexo joins (~hexo@gateway/tor-sasl/hexo)
12:19:38 srk joins (~sorki@gateway/tor-sasl/sorki)
12:19:42 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
12:20:02 livvy joins (~livvy@gateway/tor-sasl/livvy)
12:20:36 <Taneb> It's a newtype declaration with a labelled field
12:21:28 <ph88_> ye but you can call it on the value level and then it just automagically shuffles the types around .. so what's up with that
12:22:18 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:22:19 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
12:22:46 bitmapper joins (uid464869@gateway/web/irccloud.com/x-ualbkaikcrbbwtmy)
12:25:03 × Athas quits (athas@sigkill.dk) (Quit: ZNC - http://znc.sourceforge.net)
12:25:17 Athas joins (athas@2a01:7c8:aaac:1cf:1c06:6cab:a957:ec6e)
12:33:16 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:33:27 × erh^ quits (erh@ip98-184-89-2.mc.at.cox.net) ()
12:34:48 <dminuoso> ph88_: The name "runStateT" is just a suggestive hint. The real trick lies in the instances and/or functions that work with StateT.
12:35:00 × vnz quits (~vnz@unaffiliated/vnz) (Remote host closed the connection)
12:35:10 vnz joins (~vnz@2001:bc8:604:94f::1)
12:35:10 × vnz quits (~vnz@2001:bc8:604:94f::1) (Changing host)
12:35:10 vnz joins (~vnz@unaffiliated/vnz)
12:35:20 <ph88_> for example ?
12:35:33 <dminuoso> Monad for instance
12:35:48 <ph88_> can you point to the source code for this real trick ?
12:35:55 <dminuoso> Sure
12:35:58 tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net)
12:36:07 <dminuoso> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.State.Lazy.html#line-221
12:36:15 <dminuoso> Oh well, that's the lazy one
12:36:26 <dminuoso> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.State.Strict.html#line-218
12:37:47 × xff0x_ quits (~xff0x@2001:1a81:53aa:1900:dab4:3a8f:b8f:c49a) (Ping timeout: 260 seconds)
12:37:51 <ski> ph88_ : field selection functions are confusing. the way it works is that if you have `data Rec = ... | Con {f :: T,...} | ...', then the field `f' of data constructor `Con' in `Rec' has type `T', but when you use the name `f' in other places than record consrtuction&update syntax, it means the field extraction function `f :: Rec -> T'
12:38:06 <ph88_> i see there runStateT being used .. does that tell me the trick of how runStateT works somehow ?
12:38:21 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
12:38:34 <merijn> There is no trick, it's basic Haskell syntax
12:38:35 xff0x_ joins (~xff0x@2001:1a81:53aa:1900:7e89:568a:710c:5bc9)
12:38:36 <ski> (i think it would be better if the extraction function was written differently. perhaps `#f' (like in SML), or something else. not just `f')
12:39:09 <ski> (oh, and the same thing happens for `newtype', except now you can only have one data constructor, with only one field/component)
12:39:29 <ph88_> thanks
12:41:45 <dminuoso> ph88_: runStateT is just a fancy alternate way of pattern matching.
12:41:50 qwfpluy joins (3e605a22@62.96.90.34)
12:41:51 <ski> for an implementation, you could consider
12:42:17 <ski> modify :: Monad m => (s -> s) -> StateT s m ()
12:42:22 <dminuoso> In fact, since this is a newtype, runStateT does not even have any runtime representation, so nothing really happens! :)
12:42:40 <dminuoso> (Think of runStateT as a constrained coerce, maybe)
12:42:50 <ski> modify u = StateT {runStateT = \s -> return ((),u s)}
12:42:57 <qwfpluy> what's the best way to do Haskell projects on Windows? on Linux I was using plain ghc with cabal and nix for dependencies
12:44:37 viluon joins (uid453725@gateway/web/irccloud.com/x-dhvshmzrbfswywrh)
12:45:04 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 276 seconds)
12:45:20 <ski> in this case, `runStateT (modify u)' will extract the function `\s -> return ((),u s)', so that `runStateT (modify u) s' computes `return ((),u s)', updating the given state `s' with `u', giving back the result
12:47:01 <ph88_> thanks guys :) :)
12:47:46 <dminuoso> ph88_: The name is suggestive in the sense, that the actual "stateful computation" is embedded in the function. So in order to "run" the thing, you have to unwrap it and provide it with an initial state.
12:48:28 <dminuoso> So if you wrote `runStateT myProg initState`, then you'd unravel the stateful computation. Methods such as (>>=) build up this internal function
12:49:03 <dminuoso> So truely, in order to "run it" you have to unwrap it first. This is why often newtypes have fields that start with `run`
12:49:05 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:49:26 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:49:43 <ski> one suggestive way to define `(>>=)' would be if one could write
12:50:05 frozenErebus joins (~frozenEre@94.128.81.133)
12:50:05 <ski> (>>=) :: Monad m => StateT s m a -> (a -> StateT s m b) -> StateT s m b
12:50:19 sh9 joins (~sh9@softbank060116136158.bbtec.net)
12:50:32 <ski> runStateT (ma >>= amb) s0 = do
12:50:49 <ski> (a,s1) <- runStateT ma s0
12:50:54 hackage haskoin-store 0.40.14 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.14 (jprupp)
12:50:56 Tario joins (~Tario@201.192.165.173)
12:50:56 reactormonk1 joins (~reactormo@mehl.schokokeks.org)
12:51:02 <ski> (b,s2) <- runStateT (amb a) s1
12:51:07 <ski> return (b,s2)
12:51:29 <swarmcollective> qwfpluy, one option is to use vscode's "dev container" feature. This just starts up a docker container with the environment you need for Haskell.
12:51:44 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:51:56 <ski> (so, calling `runStateT' on an action of form `ma >>= amb' in turn causes calls to `runStateT' on the action `ma', and once one's got the result `a' from it, also on the action `amb a'
12:52:30 bitmagie joins (~Thunderbi@200116b80656d50064954332a754decc.dip.versatel-1u1.de)
12:52:37 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
12:52:38 <swarmcollective> qwfpluy, for example: https://github.com/calledtoconstruct/haskell-hls-devcontainer
12:55:47 × TianGTY quits (~textual@103.116.47.86) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:56:25 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:56:41 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
12:58:17 <ph88_> thanks ski dminuoso i will save this information in a note
12:58:35 TianGTY joins (~textual@103.116.47.86)
13:01:07 <qwfpluy> swarmcollective thanks!
13:04:34 × qwfpluy quits (3e605a22@62.96.90.34) (Quit: Connection closed)
13:07:32 × darjeeling_ quits (~darjeelin@122.245.120.134) (Ping timeout: 256 seconds)
13:08:09 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 265 seconds)
13:08:40 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:09:09 × TianGTY quits (~textual@103.116.47.86) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:09:51 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
13:10:45 × forgottenone quits (~forgotten@176.42.30.142) (Ping timeout: 240 seconds)
13:10:59 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
13:11:07 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
13:12:19 Sheilong joins (uid293653@gateway/web/irccloud.com/x-yenulyouxfdnsprv)
13:12:35 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
13:13:28 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
13:13:31 sord937 joins (~sord937@gateway/tor-sasl/sord937)
13:15:01 geekosaur joins (82650c7c@130.101.12.124)
13:15:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
13:19:20 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:19:43 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:23:15 darjeeling_ joins (~darjeelin@122.245.120.134)
13:24:43 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
13:25:31 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:26:25 <ij> my Data.Vector.Mutable.unsafeRead was showing up as consuming time in the profiler output, so I just inlined it and now the most time spent seems to show up in the place where it makes more sense
13:27:17 michalz` joins (~user@185.246.204.93)
13:28:49 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
13:28:56 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
13:29:05 × michalz quits (~user@185.246.204.79) (Ping timeout: 240 seconds)
13:29:16 × voidcontext quits (~pgee@178.62.100.221) (Ping timeout: 240 seconds)
13:29:18 sord937 joins (~sord937@gateway/tor-sasl/sord937)
13:30:22 voidcontext joins (~pgee@178.62.100.221)
13:30:32 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
13:30:45 urodna joins (~urodna@unaffiliated/urodna)
13:31:25 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
13:32:57 nbloomf joins (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b)
13:35:18 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:36:25 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
13:38:59 vicfred joins (vicfred@gateway/vpn/mullvad/vicfred)
13:39:05 × geekosaur quits (82650c7c@130.101.12.124) (Quit: Ping timeout (120 seconds))
13:40:03 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds)
13:40:32 geekosaur joins (82650c7c@130.101.12.124)
13:41:44 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
13:42:45 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:43:04 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
13:44:17 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
13:45:28 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Client Quit)
13:45:33 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
13:45:56 gzj joins (~gzj@unaffiliated/gzj)
13:46:25 × toorevitimirp quits (~tooreviti@117.182.181.186) (Remote host closed the connection)
13:46:53 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
13:47:33 ADG1089__ joins (~aditya@223.236.190.35)
13:47:46 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
13:47:50 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
13:48:53 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:49:55 hackage haskoin-store 0.40.15 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.15 (jprupp)
13:50:46 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:55:21 <ph88_> looking for english word for "the usual way to write X in language Y"
13:55:48 <dminuoso> idiomatic
13:55:55 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
13:56:08 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
13:56:55 <ph88_> thanks
13:57:10 forgottenone joins (~forgotten@176.42.30.142)
13:58:51 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
14:00:32 lortabac joins (~lortabac@51.158.65.124)
14:01:35 hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
14:01:56 unlink_ joins (~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de)
14:02:23 × unlink2 quits (~unlink2@p57b8511e.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
14:02:41 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood)
14:03:07 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
14:03:24 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
14:03:47 average joins (uid473595@gateway/web/irccloud.com/x-wmphahzlcegaaqct)
14:04:10 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
14:04:31 gzj joins (~gzj@unaffiliated/gzj)
14:05:11 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:05:34 gzj joins (~gzj@unaffiliated/gzj)
14:05:57 berberman joins (~berberman@unaffiliated/berberman)
14:06:50 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:07:02 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
14:08:10 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:08:32 gzj joins (~gzj@unaffiliated/gzj)
14:09:11 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:09:33 gzj joins (~gzj@unaffiliated/gzj)
14:11:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:11:30 gzj joins (~gzj@unaffiliated/gzj)
14:11:36 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
14:11:50 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
14:12:30 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
14:12:52 hseg joins (~gesh@185.120.124.95)
14:13:10 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:13:31 gzj joins (~gzj@unaffiliated/gzj)
14:14:12 mmmattyx joins (uid17782@gateway/web/irccloud.com/x-bmhpuzgzzgtmheov)
14:15:07 davros joins (~davros@host86-185-99-39.range86-185.btcentralplus.com)
14:15:11 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:15:33 gzj joins (~gzj@unaffiliated/gzj)
14:16:10 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
14:16:50 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
14:17:12 × forgottenone quits (~forgotten@176.42.30.142) (Quit: Konversation terminated!)
14:17:47 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
14:18:24 hackage hls-eval-plugin 0.2.0.0 - Eval plugin for Haskell Language Server https://hackage.haskell.org/package/hls-eval-plugin-0.2.0.0 (PasqualinoAssini)
14:18:33 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:18:37 deviantfero joins (~deviantfe@190.150.27.58)
14:22:33 <ph88_> [exa], are you here ?
14:23:54 frozenErebus joins (~frozenEre@94.128.81.133)
14:24:27 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:25:05 × themba_ quits (themba@90.221.74.173) (Ping timeout: 240 seconds)
14:25:23 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:25:45 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:29:21 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
14:30:59 toorevitimirp joins (~tooreviti@117.182.181.186)
14:31:48 alx741 joins (~alx741@186.178.110.33)
14:32:33 × motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Read error: Connection reset by peer)
14:33:12 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
14:38:49 × hexfive quits (~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
14:40:26 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:41:38 themba_ joins (~themba@bcde0474.skybroadband.com)
14:42:28 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
14:43:03 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:44:17 <sshine> ij, have you heard Snoyman rant about 'vector'?
14:45:33 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 264 seconds)
14:45:55 <ij> haskell, the bad parts? I'll take a look
14:46:23 <ski> @quote henning
14:46:23 <lambdabot> shachaf says: Henning should call all his modules M
14:46:30 <merijn> ha
14:46:48 <merijn> Let's not give him any ideas >.>
14:47:57 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
14:52:35 × toorevitimirp quits (~tooreviti@117.182.181.186) (Remote host closed the connection)
14:53:10 toorevitimirp joins (~tooreviti@117.182.181.186)
14:53:44 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
14:57:40 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 276 seconds)
14:59:18 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:59:39 × geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed)
15:00:09 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
15:00:16 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
15:03:11 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
15:03:40 plutoniix joins (~q@node-upb.pool-125-24.dynamic.totinternet.net)
15:04:06 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
15:06:12 mirrorbird joins (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676)
15:06:15 Jd007 joins (~Jd007@162.156.11.151)
15:08:05 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
15:08:44 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
15:08:46 × raym quits (~ray@45.64.220.55) (Quit: leaving)
15:09:02 raym joins (~ray@45.64.220.55)
15:09:56 <kuribas> his complaint was that Vector should just be a vector, not a streaming library...
15:11:42 <sshine> ski, who is Henning?
15:11:52 <maerwald> oh wow, haskell weekly 2022-02-04. I switched universe again
15:12:34 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Client Quit)
15:12:54 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
15:14:11 <ski> sshine : <https://hackage.haskell.org/user/HenningThielemann>
15:15:48 <merijn> sshine: The person with the world's most disliked Haskell naming scheme :p
15:15:52 <ski> a typical example is `instance (Ord a,Num a) => C (T a)'
15:16:13 <merijn> sshine: Do you like all your classes being called C and all your types T? Do I have the libraries for you!
15:16:19 <ski> (can you guess from which package that is taken ?)
15:16:27 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
15:16:30 <merijn> ski: All of them? :D
15:16:48 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
15:16:51 <sshine> ohh... an academic! :-D
15:17:09 <merijn> sshine: Hardly
15:17:12 <sshine> merijn, sounds very mathematician-like. surely the habit of someone who thinks they're writing on a blackboard. :-P
15:17:39 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
15:17:52 <merijn> sshine: His opinion is that all imports should always be qualified, so you can just read the module name, but those don't show in the haddocks
15:18:39 <sshine> merijn, a mere tooling problem!
15:19:53 <maerwald> kuribas: lol, because you should use conduit instead? no thanks :p
15:19:54 <ski> oh how do you like `data Handle = Handle {sequ :: T DuplexMode,client :: T,portPublic :: T,portPrivate :: T,queue :: T}' ?
15:20:02 <ski> (yes, that's not a kind error)
15:20:41 <kuribas> maerwald: or streamly?
15:20:54 <maerwald> kuribas: snoyman is not affiliated with that
15:21:16 <kuribas> maerwald: I think his complaint was predictable performance.
15:21:19 <kuribas> not NIH
15:21:51 <sshine> ski, if it were `data Handle t = ...`, maybe. :-D
15:21:52 <maerwald> wait... vector streaming is the basis for streamly and streamly outperforms conduit in *every* single instance afaik
15:21:53 × pera quits (~pera@unaffiliated/pera) (Quit: leaving)
15:21:54 <ski> (note that most of those `T's are different types)
15:22:25 <merijn> maerwald: His complaint is "streaming vector operations" and "vector library" should be separate packages
15:22:47 <maerwald> I could just read the rant maybe, but my blood pressure
15:23:07 <sshine> maerwald, someone is wrong on the internets!
15:23:16 <merijn> maerwald: "every single instance" being "when you're using only pure code that conduit/pipes were never designed for"? >.>
15:23:31 <sshine> maerwald, silence is complicity!
15:23:31 <ski> sshine : wouldn't work, if you meant `data Handle t = Handle {sequ :: t DuplexMode,client :: t,portPublic :: t,portPrivate :: t,queue :: t}'
15:23:38 <sshine> ski, :(
15:23:56 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
15:24:02 <ski> (see my comment above)
15:24:05 <sshine> ski, I don't know. I was just thinking that 'T' is a bad name, but somehow we tend to accept short type parameters.
15:24:20 <maerwald> merijn: right, I forgot that snoyman usually designs everything around a huge transformer stack where the innermost monad is IO anyway
15:24:30 <ski> the point isn't quite that `T' is an uninformative name
15:24:33 <sshine> ski, I suppose it is because in most concrete applications, those become more spelled-out instances.
15:24:35 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
15:24:41 <sshine> ski, oh, what is the point then?
15:24:43 <ski> the point is that the same name `T' refers to *different* types, there
15:24:44 <merijn> maerwald: All of iteratees (and conduit and pipes) were designed for streaming *IO*
15:24:49 <sshine> ski, oh, hahaha.
15:25:09 × ubert quits (~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
15:25:11 <maerwald> well, then what's the point of using it... io-streams is simpler
15:25:13 <sshine> ski, sorry, I didn't notice because of the spacing. how is that possible?
15:25:16 <maerwald> streamly is faster
15:25:16 <ski> (in the source, there's module qualification. but the Haddock doesn't show that)
15:25:23 <merijn> maerwald: Seems weird to complain about the performance of conduit for pure streams when it's intended and practical use it's entirely irrelevant
15:26:02 <ski> sshine : so, when looking at docs for his packages, you very easily gets lost in a maze of `T's and `C's, all seemingly the same
15:26:02 × toorevitimirp quits (~tooreviti@117.182.181.186) (Remote host closed the connection)
15:26:16 × noctux quits (~noctux@unaffiliated/noctux) (Ping timeout: 240 seconds)
15:26:23 deviantfero joins (~deviantfe@190.150.27.58)
15:26:27 <sshine> ski, can you link to the place you got that line from? I need to know how that's possible.
15:26:29 <merijn> maerwald: io-streams lacks some pretty obvious basic things
15:26:45 <merijn> maerwald: Like "the utter inability to write middles"
15:26:46 <ski> sshine : <https://hackage.haskell.org/package/streamed-0.2/docs/Sound-MIDI-ALSA-Common.html>
15:26:54 <merijn> maerwald: You can only writes sources and sinks
15:27:07 × lawid quits (~quassel@dslb-088-073-132-251.088.073.pools.vodafone-ip.de) (Quit: lawid)
15:27:07 <ski> sshine : now hover over the `T's to see the links describing where they come from
15:27:18 <merijn> maerwald: So sure, "io-streams is simpler" if you throw out 90% of the desired functionality
15:27:29 <maerwald> 90%? :D
15:27:47 <ski> sshine : next, check the corresponding source of the definition of `Handle'
15:27:47 <sshine> ski, ahhh, I get it. so the code reads SndSeq.T, Client.T, Port.T, Queue.T, but GHCi or whatever just says T, T, T, T.
15:27:53 <ski> yes
15:28:08 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:28:15 <ski> (Haddock, not GHCi. i don't recall what GHCi says)
15:28:18 <merijn> maerwald: I spent most of my time on the middle, interesting part of a processing pipeline, yes. Not on the boring input/output
15:28:27 noctux joins (~noctux@unaffiliated/noctux)
15:28:37 <kuribas> merijn: it's only irrelevant if your database is slow
15:29:06 <sshine> ski, Jane Street's Base library (OCaml) also has the convention of having modules export the type 't', so Int.t is the integer type, etc. But I think it works better in ML because of all the module verbosity. Haskell's type classes makes this horrible.
15:29:08 <merijn> kuribas: That's nonsense
15:29:08 <kuribas> merijn: what if you use it to stream stuff from lmdb on a ssd for example?
15:29:16 lawid joins (~quassel@dslb-088-073-132-251.088.073.pools.vodafone-ip.de)
15:29:48 <kuribas> merijn: streamly is even faster than plain lists
15:29:49 <merijn> kuribas: Show me a benchmark showing non-trivial overhead of Conduit when doing IO
15:29:54 <sshine> ski, I also think there are other conventions like higher-order modules taking arguments named 'M', 'F', and so on. I think it can really work out as long as the syntax enforces verbosity everywhere.
15:30:09 <kuribas> merijn: if I get my lmdb database working, I will :)
15:30:18 <maerwald> merijn: there's an australian company doing video streaming with haskell and they laughed at conduit
15:30:31 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
15:30:36 <kuribas> merijn: it's memory mapped, so if the timeseries is in memory, it will be as fast as fetching from RAM.
15:31:02 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 260 seconds)
15:31:09 <maerwald> I'm too lazy to find the presentation slides
15:31:20 <sshine> ski, but yeah, the Haddock just looks altogether broken. my first thought is "Either this guy knows mad type-fu, or his code is utterly broken." :-D
15:31:25 <merijn> maerwald: "unknown company laughs at library for unmentioned reason" wow, some truly compelling evidence that conduit is problematic
15:31:45 <merijn> I'm sure there's usecases where it can't work, but for 95% of people asking questions here it's fine
15:31:46 <maerwald> merijn: yes, it was a presentation at standard chartered
15:31:51 <maerwald> pretty random
15:32:23 <merijn> This means nothing
15:32:26 <maerwald> they tried all libraries and ended up at 'streaming'
15:32:46 <maerwald> field experience means nothing? :)
15:32:55 <maerwald> ok
15:32:59 <merijn> maerwald: Without knowing what their usecase is, why there was a problem, etc. you can't just blindly generalise "this library has shit performance"
15:33:08 <ski> sshine : yes, i think TH got the convention from the MLs
15:33:35 <merijn> maerwald: Field experience says "95% of problems are fine to solve with conduit", because people are doing that *right now*
15:34:22 <maerwald> well, I trust others production experience more than benchmarks, but I guess that's just me
15:34:23 <sshine> ski, sadly I looked at his code and thought "Oh, yeah, that's fine." -- but had I evaluated the Haddock first I'd have been severely annoyed. the power of internalization.
15:34:27 <merijn> "You should use library X, because it's faster than Y (by sacrificing features)!" is the exact same nonsense reasoning C people say you should write everything in C "for performance"
15:34:43 <maerwald> merijn: what is 'streaming' missing?
15:34:59 <sshine> merijn, stalking Henning I found this excellent piece, http://research.henning-thielemann.de/CHater.html
15:35:09 <merijn> maerwald: Integration with every other library I use
15:35:25 <kuribas> merijn: conduit also looks easier to use than streamly
15:35:27 <maerwald> merijn: that's not the problem of the library author
15:35:34 <merijn> maerwald: The performance of your streaming library is *only* relevant if that performance is the bottleneck of your program
15:35:50 <merijn> maerwald: My statement is: for 95% of programmers and usecases, conduit is not the bottleneck
15:35:50 <ski> (typically not always, or only, sacrificing features, but also reasoning tools)
15:36:01 <maerwald> merijn: where did you get that number from?
15:36:04 <merijn> Therefore it's supposed "bad" performance is irrelevant
15:36:24 <merijn> maerwald: The fact that tons of hackage is using conduit and not having any performance problems
15:36:28 <dolio> You should use lazy I/O, then, right? Because it integrates perfectly with everything.
15:36:37 <maerwald> merijn: eh, that depends on the use case
15:37:00 <merijn> maerwald: Right, that's like, literally, what I said
15:37:02 <maerwald> and, in general, not a great argument either
15:37:32 <sshine> merijn, I'd even go as far as to say: for 99.9999% of programmers, conduit isn't even a dependency!
15:37:41 <merijn> sshine: Pretty much
15:38:00 <maerwald> I'm more interested in what ppl use those libraries for in production, rather than looking at those few hackage libs that make use of it
15:38:12 <maerwald> I don't see how that's a good metric
15:38:19 <merijn> kuribas: It is, despite maerwald's complaints that streamly is "just as easy" I find it's API confusing and overcomplicated
15:38:48 <maerwald> it's confusing to navigate the documentation, but conduit is worse
15:38:55 <kuribas> merijn: it's "like a list", but then not realy, as elements can be lost if you just have a side-effect.
15:38:55 <merijn> maerwald: People use kubernetes and hadoop in production too, so that's not really a great metric anyway
15:39:01 jiribenes joins (~jiribenes@rosa.jiribenes.com)
15:39:14 <kuribas> merijn: IMO streamly is a ListT don't right with concurrency support.
15:39:34 <kuribas> so basically a very fancy list transformer.
15:39:37 <merijn> Anyway, back to doing something useful with my life, rather than indulging maerwald's axe grinding :p
15:39:49 <merijn> kuribas: Oh, but I already have a "concurrent conduit" stage :p
15:40:23 <exarkun> Where's the version of Data.Map.fromListWith that takes (a -> a -> b) and gives you `Map k b`, instead?
15:40:27 <maerwald> functor, monad etc instances in streamly do something actually useful
15:40:36 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
15:40:46 <merijn> exarkun: How would that work?
15:40:53 <merijn> exarkun: What if a key has no duplicates
15:40:58 <maerwald> conduit doesn't really provide you *streams*, but stream "producers" or how you all it
15:41:04 <merijn> maerwald: Eh, the functor and monad instance of conduit *are* useful
15:41:12 <merijn> maerwald: In fact, I use them a bunch of times in my code
15:41:13 <maerwald> streamly follows a different philosophy
15:41:28 ski . o O ( stream transducers ? )
15:41:33 × bitmagie quits (~Thunderbi@200116b80656d50064954332a754decc.dip.versatel-1u1.de) (Quit: bitmagie)
15:41:34 <maerwald> that makes other parts of streaming harder though
15:42:04 zaquest joins (~notzaques@5.128.210.178)
15:42:05 <maerwald> the Fold/Unfold stuff etc can be confusing too
15:42:08 <exarkun> merijn: Hm yea. _Actually_ what I want is a constructor that gives me `Map k [a]`
15:42:16 <kuribas> maerwald: the monad instance is like a non-determinism monad, but that makes it weird for streaming.
15:42:55 <merijn> exarkun: eh "Map.fromListWith (++) . map (:[])" :p
15:43:47 <Taneb> foldr (M.insertWith (<>) . (LNE.:|[])) M.empty
15:44:18 <exarkun> Oof.
15:44:39 <merijn> Could've have done a nice foldMap with M.singleton if the Monoid for Map hadn't sucked
15:44:41 <exarkun> _Actually_ what I want is `something :: [(a, b)] -> Map a [b]`
15:44:53 knupfer joins (~Thunderbi@200116b82ca37600006d23d966947440.dip.versatel-1u1.de)
15:45:06 <merijn> :t M.fromListWith (++) . map (second (:[]))
15:45:08 <lambdabot> Ord k => [(k, a)] -> M.Map k [a]
15:45:08 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
15:45:09 <sshine> Map.fromListWith (<>) ?
15:45:12 <merijn> boom
15:45:22 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
15:45:31 <kuribas> merijn: isn't that quadratic?
15:45:32 <sshine> (:[]) being robot monkey
15:45:38 <merijn> kuribas: No, why?
15:45:43 <kuribas> merijn: appending?
15:45:46 toorevitimirp joins (~tooreviti@117.182.181.186)
15:45:54 <Taneb> :t foldr (uncurry (M.insertWith (<>)) . second (NE.:|[])) M.empty
15:45:55 <lambdabot> (Foldable t, Ord k) => t (k, b) -> M.Map k (NonEmpty b)
15:46:02 <exarkun> What's `second`? `snd`?
15:46:07 <merijn> :t second
15:46:08 <lambdabot> Arrow a => a b c -> a (d, b) (d, c)
15:46:12 <merijn> eh, wrong one
15:46:14 <exarkun> Oof.
15:46:16 <merijn> :t Data.Bifunctor.second
15:46:18 <lambdabot> Bifunctor p => (b -> c) -> p a b -> p a c
15:46:20 <Taneb> (a -> b) -> (c, a) -> (c, b)
15:46:23 <ski> @type \f x -> second f x
15:46:25 <lambdabot> (b -> c) -> (d, b) -> (d, c)
15:46:25 <Taneb> merijn: they match for (,)
15:46:37 <merijn> Taneb: Yes, but Control.Arrow is ba
15:46:39 <merijn> *bad
15:46:57 × mirrorbird quits (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Ping timeout: 272 seconds)
15:47:14 <merijn> Wait, I guess technically fmap works :p
15:47:22 <Taneb> When I'm using "second" to map over the second element of a tuple, I don't care which second I'm using
15:47:24 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
15:47:27 <merijn> :t M.fromListWith (++) . map (fmap (:[]))
15:47:28 <lambdabot> Ord k => [(k, a)] -> M.Map k [a]
15:47:38 <sshine> :t Data.Map.fromListWith (<>) . fmap (second pure)
15:47:40 <lambdabot> (Ord k, Semigroup (f b), Applicative f) => [(k, b)] -> M.Map k (f b)
15:47:43 <merijn> Avoided an import! \o/
15:47:46 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
15:48:03 <sshine> @src second
15:48:03 <lambdabot> Source not found. Are you on drugs?
15:48:14 <merijn> sshine: "foldMap (\(k, v) -> M.singleton k [v])" would've worked with a not sucky monoid on Map
15:48:27 <merijn> That's even cleaner, imo
15:48:33 <merijn> Bad alas
15:48:40 <merijn> for now the Monoid sucks
15:48:55 <Taneb> (I'd use non-empty lists here, but it's not important)
15:48:58 <exarkun> Okay, just learned that (,) has a Functor instance...
15:49:02 <Uniaika> exarkun: yes :)
15:49:04 <kuribas> merijn: ok, so it inserts it backwards.
15:49:06 <sshine> merijn, where do I use Map's Monoid?
15:49:09 <maerwald> merijn: https://github.com/ivan-m/FPSyd-Streaming
15:49:13 <kuribas> merijn: reversing the list
15:49:18 <Uniaika> exarkun: we have a surprise for you in the next docs for Funtor
15:49:21 <Uniaika> *Functor
15:49:26 <Taneb> (here there's not any semantic difference between the value at x being [] and there not being a value at x at all)
15:49:33 <merijn> sshine: No, I meant my example would work with that
15:49:47 <ski> @src (->) second
15:49:47 <lambdabot> second f = id *** f
15:49:57 <ski> @src (->) (***)
15:49:57 <lambdabot> (f *** g) ~(x,y) = (f x, g y)
15:50:03 <ski> @src (,) fmap
15:50:03 <lambdabot> fmap f (x,y) = (x, f y)
15:50:16 <sshine> merijn, ah. I really like Map.fromListWith :) I *also* like foldMap in principle, but often good Monoid instances are hard to come by.
15:51:08 <exarkun> Uniaika: Oh goodie, more surprises :)
15:53:14 <Uniaika> exarkun: if you can't wait: https://imrryr.org/~viktor/haskell/ghc-docs/libraries/base/Data-Foldable.html#g:21
15:53:30 <maerwald> merijn: there are some good API related arguments in that presentation
15:53:30 <merijn> maerwald: That doesn't have any units/labelling on the performance axes, nor does it have any indication of those were "pure streams" or IO streams
15:53:39 <maerwald> correct
15:53:45 <exarkun> Uniaika: thanks!
15:54:19 <maerwald> merijn: https://ivan-m.github.io/FPSyd-Streaming/#/benchmarks
15:54:39 <merijn> maerwald: I already saw that
15:54:52 <merijn> But again, no axes labelling/units and no explanation of what's being measured
15:55:03 <maerwald> sure, it isn't scientific
15:55:10 <maerwald> and idc about that
15:55:14 <merijn> maerwald: If you had said "I dislike conduit's API/interface" I can respect that
15:55:40 <merijn> maerwald: Telling every beginner "conduit is too slow, don't use it" is just misleading
15:56:12 <kuribas> merijn: like this guy complaining about mutable data structures being to slow.
15:56:28 <maerwald> merijn: I did not do that
15:56:42 <maerwald> merijn: I said "streamly is faster" and "io-streams is simpler" :)
15:56:57 <merijn> maerwald: Literally anytime mentions conduit you complain it's too slow >.>
15:56:59 × toorevitimirp quits (~tooreviti@117.182.181.186) (Remote host closed the connection)
15:57:08 × berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
15:57:33 toorevitimirp joins (~tooreviti@117.182.181.186)
15:57:35 berberman joins (~berberman@unaffiliated/berberman)
15:57:36 <maerwald> no, I just don't see which use case it fits... there's a better library for every use case
15:57:46 <idnar> :t foldMapBy (M.fromListWith (++)) mempty (\(k, v) -> M.singleton k [v]) -- here you go merijn
15:57:47 <lambdabot> error:
15:57:47 <lambdabot> • Couldn't match type ‘M.Map k1 [a1]’
15:57:47 <lambdabot> with ‘[(k1, [a1])] -> [(k1, [a1])]’
15:57:52 <merijn> I mean, chuck a "read lines of numbers from a file" in front of those streaming benchmarks and I'll bet you the bars will suddenly be equally long >.>
15:57:54 <idnar> err
15:58:31 <maerwald> merijn: I'll actually gonna try to use conduit for file writing and see if the performance is equal to streamly
15:58:59 <maerwald> I have a version of low-level haskell loop and a streamly loop already
15:59:38 <idnar> why :/
16:00:05 <idnar> OH
16:00:31 <idnar> :t foldMapBy (M.unionWith (++)) mempty (\(k, v) -> M.singleton k [v])
16:00:33 <lambdabot> (Foldable t, Ord k) => t (k, a) -> M.Map k [a]
16:00:55 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-zomvgoemagekvvah)
16:01:14 kritzefitz joins (~kritzefit@212.86.56.80)
16:01:24 hackage HDBC-postgresql 2.5.0.0 - PostgreSQL driver for HDBC https://hackage.haskell.org/package/HDBC-postgresql-2.5.0.0 (DavidJohnson)
16:01:28 <maerwald> and then we can continue the discussion next week :D
16:01:28 ubert joins (~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de)
16:01:36 <maerwald> I have a feeling you're eager to
16:02:13 × berberman quits (~berberman@unaffiliated/berberman) (Client Quit)
16:02:41 berberman joins (~berberman@unaffiliated/berberman)
16:03:28 × toorevitimirp quits (~tooreviti@117.182.181.186) (Remote host closed the connection)
16:03:54 hackage trackit 0.7 - A command-line tool for live monitoring https://hackage.haskell.org/package/trackit-0.7 (EmilAxelsson)
16:03:55 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
16:04:11 <idnar> :t foldMapBy (M.unionWith (++)) mempty (\(k, v) -> M.singleton k (v :| []))
16:04:12 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
16:04:12 <lambdabot> error:
16:04:12 <lambdabot> • Couldn't match type ‘NonEmpty a’ with ‘[a1]’
16:04:12 <lambdabot> Expected type: M.Map k [a1]
16:04:32 <idnar> :t foldMapBy (M.unionWith (<>)) mempty (\(k, v) -> M.singleton k (v :| []))
16:04:33 <lambdabot> (Foldable t, Ord k) => t (k, a) -> M.Map k (NonEmpty a)
16:05:22 × cocreature quits (~cocreatur@eirene.uberspace.de) (Read error: Connection reset by peer)
16:06:03 cocreature joins (~cocreatur@eirene.uberspace.de)
16:06:09 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Quit: jiribenes)
16:06:25 jiribenes joins (~jiribenes@rosa.jiribenes.com)
16:07:41 ransom joins (~c4264035@2a09:bac0:98::830:861e)
16:08:10 <Taneb> Stack/cabal/something in the whole pile has decided to ignore my data-files all of a sudden
16:08:19 <Taneb> Not sure what I've changed to break it
16:08:28 × berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
16:08:46 <merijn> Ignore data files how?
16:09:30 berberman joins (~berberman@unaffiliated/berberman)
16:09:43 <Taneb> They're not showing up where in the build directory where Paths_lib.getDataFileName expects them to be
16:10:04 LKoen_ joins (~LKoen@252.248.88.92.rev.sfr.net)
16:10:24 × berberman quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded)
16:11:03 berberman joins (~berberman@unaffiliated/berberman)
16:11:28 <merijn> hmm, not sure how stack handles those, tbh
16:11:29 <Taneb> ...actually, something is very wrong, there's a whole file heirarchy that doesn't seem to exist
16:12:21 × Franciman quits (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
16:12:27 <merijn> Taneb: data files normally get installed, I now v2-run has a special hack to make data files work for not installed executables in your build, but I dunno if stack has that
16:12:47 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Ping timeout: 256 seconds)
16:13:07 <Taneb> These are only used at build
16:13:34 <merijn> Data files only used at build?
16:13:38 <Taneb> Yes?
16:13:50 <merijn> That sounds *horribly* suspicious
16:13:59 <merijn> Because that's not what Paths_ is for
16:14:16 <merijn> That's for finding datafiles at runtime
16:14:20 <Taneb> I'm generating a whole bunch of code with template haskell based on some CSV files
16:14:27 <merijn> Taneb: Are you using stack or cabal?
16:14:38 <Taneb> Stack
16:14:40 TianGTY joins (~textual@211.106.132.202)
16:14:56 <merijn> ok, that I can't help with
16:15:04 swarmcollective thinks Taneb is building a transpiler. :)
16:15:05 <Taneb> What would you have said if I said cabal
16:15:15 <merijn> Taneb: But, eh, I'm fairly confident that you cannot rely on Paths_ at compile time
16:15:41 <Taneb> Hmm, that would be consistent if I'd built it successfully before but not invoked the template haskell
16:15:49 <merijn> Taneb: tbh, it sounds like what you need is to mark those CSV file as extra-source-files and just access them via relative path
16:16:10 <merijn> (in TH)
16:16:19 <merijn> Ditching the Paths_ stuff entirely
16:16:34 smitop joins (uid328768@gateway/web/irccloud.com/x-meiowmymjnuutbpg)
16:17:44 <Taneb> OK, that's easy enough, I'll give it a go
16:18:42 <merijn> Taneb: With data-files those CSV files are getting copied/installed along with your package code, so that doesn't sound like your goal anyway
16:18:55 hackage Z-IO 0.6.0.0 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.6.0.0 (winterland)
16:19:10 <merijn> Taneb: It's more intended for stuff like "what if you wanted to ship an English dictionary with your executable and access it at runtime?"
16:19:35 Deide joins (~Deide@217.155.19.23)
16:19:35 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
16:19:43 <Taneb> merijn: OK, it's working much better now, thank you
16:19:48 <merijn> \o/
16:20:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
16:20:55 × TianGTY quits (~textual@211.106.132.202) (Remote host closed the connection)
16:21:46 zelazny joins (~zelazny@217.146.82.202)
16:22:59 <swarmcollective> Taneb, out of curiosity, is this something that you expect to do often (convert csv formatted content to Haskell code)? I'm just trying to imagine a usecase for that.
16:23:36 <Taneb> swarmcollective: it's not something I'd ever recommend
16:23:55 <swarmcollective> Fair enough.
16:24:22 <Taneb> But here the alternative is building a huge record with 90 constructors and up to 120 fields, which each constructor has some of but not all of, plus a parser to go with it
16:25:55 hiroaki joins (~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de)
16:25:59 <Taneb> When the data structure is described in a spreadsheet I got given
16:26:16 <Taneb> This way might not be any easier but it's a lot more fun
16:26:34 <swarmcollective> That sounds about right!
16:29:21 × hseg quits (~gesh@185.120.124.95) (Ping timeout: 264 seconds)
16:29:57 ph88^ joins (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
16:33:45 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
16:34:02 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 260 seconds)
16:36:05 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:36:16 <ph88^> does someone have a link to where several preludes are debated ?
16:36:49 <merijn> There are two types of Prelude
16:37:01 <merijn> Prelude and a bunch of stuff nobody really uses
16:37:34 <maerwald> merijn: I get around ~3secs (conduit) vs ~2.7sec (streamly) on a 3GB file copy operation (same device). I haven't run it through a proper benchmark program yet though. Could be difference in chunk size or fixed overhead
16:37:36 <maerwald> https://github.com/hasufell/streamly-bench
16:39:04 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
16:39:20 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
16:39:33 mirrorbird joins (~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d)
16:40:04 frozenErebus joins (~frozenEre@94.128.81.133)
16:40:07 <sm[m]> hello tomsmeding , sorry to keep pinging you
16:40:08 <shapr> Is there a URL concatenation library that works like filepath? I want to prevent double slashes in URLs.
16:40:17 × ixian quits (~mgold@2002:4a74:ba78:1701:0:ff:fe78:6269) (Ping timeout: 258 seconds)
16:40:19 <tomsmeding> hi sm[m] :)
16:40:53 turion joins (~turion@2a02:810d:8abf:c4a8:7417:1a58:4f1d:bffb)
16:41:06 ixian joins (~mgold@terra.bitplane.org)
16:41:13 <sm[m]> I think we're ready to stop having #hledger logged by ircbrowse, would you mind removing it from https://ircbrowse.tomsmeding.com
16:41:22 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
16:41:24 hackage haskoin-store 0.40.16 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.16 (jprupp)
16:41:31 <tomsmeding> sure, will do
16:41:41 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-yenulyouxfdnsprv) (Quit: Connection closed for inactivity)
16:41:42 <tomsmeding> particular reason why, if I may ask? :)
16:41:48 motherfsck joins (~motherfsc@unaffiliated/motherfsck)
16:42:24 hackage husk-scheme 3.20 - R5RS Scheme interpreter, compiler, and library. https://hackage.haskell.org/package/husk-scheme-3.20 (JustinEthier)
16:43:00 <ezzieyguywuf> is there a more concise way to do this? Prelude> sequence_ (map (putStrLn . show) [1..10])
16:43:21 <ryantrinkle> ezzieyguywuf: you can use mapM_ instead of sequence_ and map
16:43:25 <maerwald> merijn: the difference seems to be varying between 0.3 to 0.6 seconds
16:43:27 <tomsmeding> ( sm[m]: if you need to reach me to do something with stuff I host for #haskell and I'm unresponsive, feel free to use one of the other communication channels listed on my website)
16:43:37 <ezzieyguywuf> blahhh I always forget about mapM_ thanks
16:44:09 <swarmcollective> Isn't `print` essentially the same as `putStrLn . show` ?
16:44:45 <tomsmeding> 'mapM_ print $' is muscle memory for me
16:44:50 <sm[m]> tomsmeding: sure. Short answer, it tends to surprise people, some don't like it, and we're not making much use of it. Private logs + matrix logging is enough. (Matrix logging shows history only since you joined the channel, and isn't bot-accessible (at least to the same degree.)
16:45:09 <tomsmeding> sm[m]: got it! makes sense too.
16:45:28 <sm[m]> it wasn't that urgent, I just wanted to get it done as an atomic operation when you were around. Thanks, and thanks for the service!
16:45:39 <maerwald> merijn: 7GB file is 8sec (streamly) vs 10sec (conduit)
16:45:47 <maerwald> suggesting it's not a fixed overhead
16:46:07 bitmagie joins (~Thunderbi@200116b80656d5009dbe3295da93e3ee.dip.versatel-1u1.de)
16:46:10 × conal quits (~conal@64.71.133.70) (Quit: Textual IRC Client: www.textualapp.com)
16:47:02 × bitmagie quits (~Thunderbi@200116b80656d5009dbe3295da93e3ee.dip.versatel-1u1.de) (Client Quit)
16:47:08 <maerwald> if you can run it through criterion, that would be cool, I can barely use an editor
16:47:26 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
16:47:31 <tomsmeding> sm[m]: shall I delete the logs currently in the database too?
16:47:45 <sm[m]> (I still think public logs can be a useful resource for a public channel, but just don't want the hassle at the moment.) yes please
16:47:49 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
16:48:28 soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
16:49:54 nbloomf joins (~nbloomf@2600:1700:ad14:3020:d1d4:ed84:6d20:4ae3)
16:51:00 conal joins (~conal@66.115.157.97)
16:51:13 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
16:52:13 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
16:52:30 × dolio quits (~dolio@haskell/developer/dolio) (Ping timeout: 256 seconds)
16:52:54 dolio joins (~dolio@haskell/developer/dolio)
16:55:02 × ubert quits (~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
16:56:23 × borne quits (~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
16:57:00 <monochrom> Hrm, atomic erasure of files = nuking, literally :)
16:57:01 × michalz` quits (~user@185.246.204.93) (Remote host closed the connection)
16:57:10 × carldd11 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
16:57:21 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
16:58:14 carldd11 joins (~carldd@90-224-49-113-no56.tbcn.telia.com)
16:58:21 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
16:58:50 <aveltras> having some record like the following, i'd like to be able to generate lenses to update fields using the symbol given to Prop, those lenses should also work for multiple wrapper types f (goal is to have it work for Identity with Lucid and Dynamic t for reflex), i've started looking at the higgledy library and think it might be doable with it but im not sure, any idea ?
16:58:55 <aveltras> https://www.irccloud.com/pastebin/AQpoUnML/
17:01:08 × srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds)
17:01:08 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds)
17:02:02 ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
17:02:16 hexo joins (~hexo@gateway/tor-sasl/hexo)
17:02:17 srk joins (~sorki@gateway/tor-sasl/sorki)
17:03:09 felixpm joins (~felixpm@172.56.10.85)
17:03:26 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
17:04:00 × viluon quits (uid453725@gateway/web/irccloud.com/x-dhvshmzrbfswywrh) (Quit: Connection closed for inactivity)
17:04:24 <tomsmeding> sm[m]: ircbrowse_tom should be gone from #hledger, is that correct?
17:04:24 × conal quits (~conal@66.115.157.97) (Ping timeout: 256 seconds)
17:04:53 <sm[m]> tomsmeding: correct. Thank you!
17:05:39 <tomsmeding> sm[m]: channel removed from ircbrowse instance, logs and database entries deleted
17:05:46 <tomsmeding> :)
17:05:49 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
17:06:02 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
17:06:03 × carldd11 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
17:06:09 <tomsmeding> if this happens often I might write a script to clean the database, that's an annoying job
17:06:20 <zzz> anyone here writing haskell in vim?
17:06:27 <tomsmeding> zzz: nvim
17:06:39 <polux200137> Hello! Is there a list-like structure in haskell with fast random access, fast concatenation, and that supports infinite sequences? (Data.Sequence is finite, Vector has O(n+m) concatenation). I've found https://hackage.haskell.org/package/nested-sequence-0.1/docs/Data-Nested-Seq-Lazy.html. Is there anything more canon?
17:07:01 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:d1d4:ed84:6d20:4ae3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:07:06 <zzz> tomsmeding: what's currently a good solution for ghci integration?
17:07:22 carldd11 joins (~carldd@90-224-49-113-no56.tbcn.telia.com)
17:07:35 <tomsmeding> zzz: I use either HLS using ALE, or ghcid if HLS doesn't work
17:07:43 <tomsmeding> not sure how much integration you want
17:08:02 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
17:09:00 hseg joins (~gesh@185.120.124.95)
17:10:14 × felixpm quits (~felixpm@172.56.10.85) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
17:10:38 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
17:11:04 <sm[m]> tomsmeding: a small factor in the decision was the noise (and excess personal information) from join/leave messages in the log
17:11:04 × _noblegas quits (uid91066@gateway/web/irccloud.com/x-nqgmbmccisnkcgyh) (Quit: Connection closed for inactivity)
17:11:30 Wuzzy joins (~Wuzzy@p5b0df175.dip0.t-ipconnect.de)
17:12:27 <zzz> my priority is showing a selected function's type but ghci integration would be nice
17:12:27 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
17:12:53 <zzz> i tried hdevtools with syntastic but i couldnt make it work
17:13:42 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
17:15:31 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
17:15:34 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:15:53 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:16:14 × rajivr quits (uid269651@gateway/web/irccloud.com/x-fytanfqvvewadlns) (Quit: Connection closed for inactivity)
17:16:21 × ADG1089__ quits (~aditya@223.236.190.35) (Remote host closed the connection)
17:17:05 <merijn> polux200137: Pretty sure those requirements are contradictory :p
17:17:14 <polux200137> nested-sequence doesn't build anymore because it declares an instance for Monoid but not Semigroup
17:17:24 conal joins (~conal@64.71.133.70)
17:17:26 <polux200137> merijn: is the doc of nested-sequence lying then?
17:17:27 <merijn> zzz: hdevtools has been dead for *well* over 4 years
17:17:54 <merijn> zzz: I maintained my own fork 2 years after it died, but I haven't touched that fork since, like, 2016
17:18:21 <merijn> zzz: ghcide (either directly, or via hls) together with an LSP plugin is the way to go
17:18:24 <polux200137> merijn: ah no it isn't, and you're right, it has O(n) append
17:18:25 <polux200137> sorry
17:18:36 <merijn> I use ALE with ghcide
17:18:41 <polux200137> I mean I don't know if you're right but it is not a good counter-example :)
17:19:07 <polux200137> do you think it's contradictory because infinite lists cannot be balanced?
17:19:14 <polux200137> I guess that would make sense
17:19:25 × Guest19099 quits (~textual@zrcout.mskcc.org) (Ping timeout: 240 seconds)
17:19:35 <merijn> polux200137: I mean, fast random access limits you to some finite representation that almost certainly rules out fast concatenation and infinite length
17:19:49 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
17:19:56 <polux200137> yes ok, thanks
17:19:59 <polux200137> makes sense
17:20:03 <merijn> polux200137: I mean you could have an infinite binary tree, but that's not going to have very great random access
17:20:04 <zzz> merijn: thanks
17:20:29 <polux200137> merijn: yes, that's what I meant by "infinite lists cannot be balanced"
17:20:39 <sshine> what's it called when you want to parse a Haskell module but not use haskell-src-exts?
17:20:57 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
17:21:39 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
17:21:59 <polux200137> sshine: wishful thinking :) seriously, ormolu's doc says "Using GHC's own parser to avoid parsing problems caused by haskell-src-exts" so that must be an option.
17:22:10 <sshine> ghc-lib-parser
17:25:05 forgottenone joins (~forgotten@176.42.30.142)
17:25:54 × dolio quits (~dolio@haskell/developer/dolio) (Ping timeout: 258 seconds)
17:26:33 heatsink_ joins (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
17:26:34 × heatsink_ quits (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
17:27:45 dolio joins (~dolio@haskell/developer/dolio)
17:29:50 nineonine joins (~nineonine@50.216.62.2)
17:30:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
17:30:54 hackage haskoin-store 0.40.17 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.17 (jprupp)
17:31:29 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8527:2d6c:6fbd:96de)
17:32:04 epicte7us joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
17:32:50 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
17:34:20 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
17:34:20 × ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 258 seconds)
17:34:59 nineonin_ joins (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa)
17:36:47 nineoni__ joins (~nineonine@50.216.62.2)
17:38:06 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
17:39:33 napping joins (~brandon@174-20-93-137.mpls.qwest.net)
17:39:38 × nineonin_ quits (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) (Ping timeout: 264 seconds)
17:39:51 Alleria joins (~textual@zrcout.mskcc.org)
17:39:59 × vchlup quits (~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
17:40:14 Alleria is now known as Guest69009
17:40:31 vchlup joins (~vchlup@nat.brnet.cz)
17:40:45 × dolio quits (~dolio@haskell/developer/dolio) (Ping timeout: 265 seconds)
17:40:51 codolio joins (~dolio@haskell/developer/dolio)
17:41:55 hackage unliftio-streams 0.1.1.1 - Generalization of io-streams to MonadUnliftIO https://hackage.haskell.org/package/unliftio-streams-0.1.1.1 (BardurArantsson)
17:44:03 metreo joins (~Thunderbi@unaffiliated/metreo)
17:44:06 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
17:44:48 × metreo quits (~Thunderbi@unaffiliated/metreo) (Client Quit)
17:44:49 × chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
17:45:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:47:06 metreo joins (~Thunderbi@unaffiliated/metreo)
17:48:58 Franciman joins (~francesco@host-95-235-155-82.retail.telecomitalia.it)
17:53:20 itai joins (~itai@46.19.86.2)
17:53:50 Noldorin joins (~noldorin@unaffiliated/noldorin)
17:54:02 × xff0x_ quits (~xff0x@2001:1a81:53aa:1900:7e89:568a:710c:5bc9) (Ping timeout: 264 seconds)
17:54:04 × itai quits (~itai@46.19.86.2) (Remote host closed the connection)
17:54:47 xff0x_ joins (~xff0x@2001:1a81:53aa:1900:f90b:c43e:4a98:6d16)
17:55:44 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds)
17:56:25 × codolio quits (~dolio@haskell/developer/dolio) (Ping timeout: 240 seconds)
17:56:29 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
17:57:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
17:57:55 hackage jsonifier 0.1.1 - Fast and simple JSON encoding toolkit https://hackage.haskell.org/package/jsonifier-0.1.1 (NikitaVolkov)
17:58:00 <monochrom> https://well-typed.com/blog/2021/01/fragmentation-deeper-look/ (by way of Haskell Weekly News)
17:58:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:58:09 dandart joins (~Thunderbi@home.dandart.co.uk)
17:58:09 × dandart quits (~Thunderbi@home.dandart.co.uk) (Client Quit)
17:58:24 <monochrom> I can't help but see the pun in "pinpoint the cause of the fragmentation issues" :)
18:01:31 dolio joins (~dolio@haskell/developer/dolio)
18:03:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
18:03:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:09:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
18:09:36 royal_screwup216 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
18:09:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:09:57 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
18:10:08 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds)
18:10:30 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
18:13:46 seneca joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
18:14:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
18:15:36 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
18:15:36 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:16:45 × epicte7us quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 264 seconds)
18:17:57 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 264 seconds)
18:20:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:21:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:25:16 deviantfero joins (~deviantfe@190.150.27.58)
18:25:47 × smitop quits (uid328768@gateway/web/irccloud.com/x-meiowmymjnuutbpg) (Quit: Connection closed for inactivity)
18:26:49 × raym quits (~ray@45.64.220.55) (Quit: leaving)
18:26:54 hackage peregrin 0.3.1 - Database migration support for use in other libraries. https://hackage.haskell.org/package/peregrin-0.3.1 (BardurArantsson)
18:27:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:27:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:28:52 raym joins (~ray@45.64.220.55)
18:30:19 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
18:31:33 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
18:32:49 heatsink joins (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
18:36:25 hackage servant-cassava 0.10.1 - Servant CSV content-type for cassava https://hackage.haskell.org/package/servant-cassava-0.10.1 (DavidJohnson)
18:36:36 × dolio quits (~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.2 - https://znc.in)
18:36:58 <tomsmeding> merijn: why can't an infinite binary tree have good random access, say O(log(n)) for an index n ?
18:37:19 <tomsmeding> not sure how to do append, granted
18:38:14 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
18:38:25 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 256 seconds)
18:38:36 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
18:38:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:39:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:39:33 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 264 seconds)
18:40:12 × jle` quits (~mstksg@unaffiliated/mstksg) (Ping timeout: 265 seconds)
18:40:24 <zzz> huh. just found out that mempty (a -> b) = mempty
18:41:20 <tomsmeding> zzz: const mempty?
18:44:34 <zzz> no
18:44:37 <zzz> > mempty :: Monoid b => (a -> b)
18:44:39 <lambdabot> error:
18:44:39 <lambdabot> • No instance for (Typeable a0)
18:44:39 <lambdabot> arising from a use of ‘show_M21966143301322321887’
18:44:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
18:45:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:46:42 <zzz> well forget it
18:46:48 <zzz> yes const mempty
18:48:42 <zzz> ok that makes sense
18:48:51 <zzz> sorry. got confused
18:49:28 elfets_ joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
18:49:43 <zzz> all is well
18:50:50 <maerwald> merijn: I did some more testing... the bigger the file, the faster conduit becomes. Is that about buffer/chunk size?
18:50:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
18:51:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:51:54 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Ping timeout: 276 seconds)
18:51:54 × royal_screwup216 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Ping timeout (120 seconds))
18:51:54 napping_ joins (~brandon@174-20-93-137.mpls.qwest.net)
18:51:55 × incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 276 seconds)
18:52:33 incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com)
18:52:36 napping is now known as Guest16629
18:52:53 × napping_ quits (~brandon@174-20-93-137.mpls.qwest.net) (Client Quit)
18:52:58 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds)
18:52:58 × Guest16629 quits (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 276 seconds)
18:53:09 infinity0 joins (~infinity0@freenet/developer/infinity0)
18:54:32 <swarmcollective> maerwald, thank you for continuing the thread. Documenting these findings might provide more clarity.
18:55:01 <maerwald> it's hard to rule out side effects in benchmarks, especially when IO is involved
18:55:01 <swarmcollective> I've just recently started to use conduit, but for limited use cases (not performance sensitive, yet).
18:55:20 <maerwald> I also had to find a way to disable cpu scaling
18:56:08 napping joins (~brandon@174-20-93-137.mpls.qwest.net)
18:56:19 geekosaur joins (82650c7c@130.101.12.124)
18:56:22 × knupfer quits (~Thunderbi@200116b82ca37600006d23d966947440.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
18:58:25 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
19:01:23 benjamingr__ joins (uid23465@gateway/web/irccloud.com/x-hwcybnxooouhdsux)
19:01:24 × dorkside quits (~tdbgamer@208.190.197.222) (Remote host closed the connection)
19:01:47 dorkside joins (~tdbgamer@208.190.197.222)
19:02:48 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:03:12 × dorkside quits (~tdbgamer@208.190.197.222) (Remote host closed the connection)
19:03:21 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:03:32 dorkside joins (~tdbgamer@208.190.197.222)
19:03:32 berberman_ joins (~berberman@unaffiliated/berberman)
19:04:50 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:07:04 dolio joins (~dolio@haskell/developer/dolio)
19:07:29 × vikid quits (~vikid@83.110.238.94) (Remote host closed the connection)
19:07:54 vikid joins (~vikid@bba428846.alshamil.net.ae)
19:09:58 <maerwald> yeah, chunk size had an impact
19:10:48 hexfive joins (~hexfive@50.35.83.177)
19:14:07 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 256 seconds)
19:14:54 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
19:14:59 <ph88^> after reading this https://stackoverflow.com/a/43441289 i have the question what are the tradeoffs between using StateT and MonadState (and similar for other monads) .. can somebody explain ?
19:15:47 × asheshambasta quits (~user@ptr-e1lysavr00fz11rl6gx.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
19:16:19 <geekosaur> ph88^, if you're using StateT directly then you're just wrapping and unwrapping manually and there doesn't seem to be much point to it
19:17:01 <ph88^> i didn't have a use case in mind for my previous question (doesn't mean im not working on something that is related)
19:18:24 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
19:20:11 <geekosaur> I think I understand how you are confused, but I'm not sure how to unconfuse you
19:20:44 <ph88^> hahahahah nice one geekosaur :D
19:21:00 <geekosaur> StateT is a constructor, which you normally don't use directly; you use its type
19:21:16 <geekosaur> MonadState provides all the useful stuff
19:22:37 <ph88^> StateT works with lift and MonadState without ?
19:22:44 × thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202)
19:22:55 <geekosaur> no?
19:23:34 <geekosaur> StateT is a newtype wrapper for a function. All it does is give the MonadState instance something to be attached to\
19:23:57 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
19:23:58 <ephemient> MonadState is the type class that you should normally be working with
19:24:22 <geekosaur> I already said that but I don't think I was understood
19:24:25 × ixaxaar quits (~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds)
19:24:42 <ephemient> StateT (under certain constraints) can be instantiated to a concrete type that is a Monad & MonadState
19:24:56 <ph88^> so there is no reason to type StateT ... instead you should to MonadState .. => .. in all the cases ?
19:25:32 <ephemient> pretty much
19:26:29 <ph88^> i have two functions here inner and inner2 https://bpa.st/MIPA
19:26:35 <ph88^> they work differently
19:26:49 <ph88^> could i replace them by something with MonadState and MonadExcept constraint ?
19:28:24 <ph88^> don't understand how the order of the monad stack can be maintained in this way because (MonadState .. , MonadExcept ..) => is the same as (MonadExcept .. , MonadState) =>
19:28:50 <ephemient> you're using IO in there, so that sort of fixes what you can possibly do...
19:29:35 <ephemient> but you could have (MonadError, MonadState, MonadIO)
19:29:47 × Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com)
19:29:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:30:22 × geekosaur quits (82650c7c@130.101.12.124) (Ping timeout: 240 seconds)
19:30:35 <ephemient> runExceptT $ evalStateT $ ... will then be where the actual monad transformer stack is determined
19:31:01 <ph88^> aah ok
19:31:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:31:21 <ph88^> now it becomes clear :P
19:34:04 <ski> behaviour may differ, depending the nesting order you choose
19:34:58 × jneira quits (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) (Quit: Connection closed)
19:35:54 <ski> btw, using `MonadState' doesn't necessarily mean that you should be writing `MonadState' constraints in your signatures
19:36:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:36:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:37:49 × Wuzzy quits (~Wuzzy@p5b0df175.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
19:38:10 <ski> <maerwald> merijn: I did some more testing... the bigger the file, the faster conduit becomes. Is that about buffer/chunk size?
19:39:22 <[exa]> ph88^: one extra "use-case": StateT isn't necessarily the only monad that implements State. For that reason there's a typeclass MonadState for all monads that implement the get/put state interface.
19:39:37 Wuzzy joins (~Wuzzy@p57a2e44e.dip0.t-ipconnect.de)
19:39:58 <ph88^> ski, why doesn't it mean that ?
19:40:45 <ski> ph88^ : you could also be defining your own data type, that's a monad, implemented in terms of `StateT' and what-not
19:41:36 <ski> and then, you could provide exported operations for that data type (commonly being abstract), that are defined in terms of `put' and so on (so, using `MonadState', without incurring a `MonadState' constraint on the signature of said operation)
19:41:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
19:42:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:42:28 × heatsink quits (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
19:42:55 hackage dep-t 0.4.0.1 - Reader-like monad transformer for dependency injection. https://hackage.haskell.org/package/dep-t-0.4.0.1 (DanielDiazCarrete)
19:42:55 <ski> e.g., perhaps `MyMonad a' is represented as `ReaderT MyContext (StateT MyState (ExceptT MyExn IO)) a'
19:43:29 <ski> (normally you wouldn't make instances of `MonadReader',`MonadState',.. for `MyMonad', here)
19:43:57 <ski> (so, not exposing the particular implementation of `MyMonad')
19:45:45 <ski> `mtl' and `transformers' used to be competing packages. then it was compromised that one was to define the data types, and the other the type classes
19:46:50 <ski> but you can still choose to program either by using specific transformer stacks (either using them in "raw" form, or hiding that behind an abstract data type), or else letting your operations by constrained polymorphic, mentioning the `MonadBlah' constraints
19:48:45 geekosaur joins (82650c7c@130.101.12.124)
19:49:37 deviantfero joins (~deviantfe@190.150.27.58)
19:50:17 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
19:50:20 <ephemient> concrete example: Control.Monad.RWS is a MonadState but isn't StateT
19:52:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
19:53:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:54:04 <ski> hm .. not really seeing how that's a concrete example of what i said
19:54:43 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 276 seconds)
19:55:01 <ski> (it is an example of an instance of `MonadState' which isn't either the `StateT' instance, or a "lifting" instance for another monad transformer .. but i didn't really touch upon this)
19:55:20 catt joins (~r@31.124.181.226)
19:55:28 × haritz quits (~hrtz@unaffiliated/haritz) (Remote host closed the connection)
19:56:32 haritz joins (~hrtz@62.3.70.206)
19:56:32 × haritz quits (~hrtz@62.3.70.206) (Changing host)
19:56:32 haritz joins (~hrtz@unaffiliated/haritz)
19:56:57 × fendor quits (~fendor@77.119.129.25.wireless.dyn.drei.com) (Remote host closed the connection)
19:58:38 fendor joins (~fendor@77.119.129.25.wireless.dyn.drei.com)
19:58:55 × seneca quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Quit: Leaving)
19:59:32 <ephemient> oh I misread what you wrote earlier as "you could also be defining your own MonadState"
19:59:52 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
19:59:56 deviantfero joins (~deviantfe@190.150.27.58)
20:00:37 <ski> oh
20:01:32 Noldorin joins (~noldorin@unaffiliated/noldorin)
20:03:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
20:04:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:05:42 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
20:08:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:08:55 hackage http-client 0.7.5 - An HTTP client engine https://hackage.haskell.org/package/http-client-0.7.5 (MichaelSnoyman)
20:09:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
20:10:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:11:35 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:11:56 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
20:11:58 × cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving)
20:14:57 × hseg quits (~gesh@185.120.124.95) (Quit: WeeChat 3.0)
20:16:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
20:16:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:17:45 <[exa]> ph88^: just curious, did you get that example from before to work?
20:18:06 <ph88^> yes
20:18:20 <[exa]> ah cool
20:19:12 <ph88^> thanks to your help :)
20:21:41 metro joins (~Thunderbi@unaffiliated/metreo)
20:21:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
20:21:42 <[exa]> if you wanted a more challenging (and educative by being completely impractical) example, try combining the list monad with IO
20:21:58 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:23:57 × metreo quits (~Thunderbi@unaffiliated/metreo) (Ping timeout: 264 seconds)
20:23:57 metro is now known as metreo
20:24:32 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 258 seconds)
20:24:41 × shinobi__ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
20:24:45 <monochrom> I define my own MonadState instance all the time.
20:25:00 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
20:25:05 <monochrom> I hate State's s->(a,s) so I define my own s->(s,a) version. :)
20:25:35 <monochrom> (I'm joking. I do this for teaching.)
20:25:37 <aveltras> is anyone familiar with the hkd machinery with barbies / higgledy ? i'd like to get the labelsWhere' function here to return [(String, String)] where the first string is the textual representation of the field name and the second string is the value of the field converted with a Show instance ?
20:25:41 <aveltras> https://www.irccloud.com/pastebin/PGucY4I0/
20:26:05 <aveltras> this code compiles, the goal is to replace Bool by String
20:30:18 × DavidEichmann quits (~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection)
20:30:42 <exarkun> I have a data type that I'd really like to automatically derive Enum for (just for `fromEnum`) ... but one of its constructors takes a parameter. Any tricks that might help with this?
20:30:56 <[exa]> monochrom: why they even had the order of (a,s) this way? I seriously wanted to ask earlier today
20:31:13 <monochrom> I really don't know.
20:31:17 jrp joins (05501e8f@5.80.30.143)
20:31:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
20:32:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:33:45 <jrp> Grateful for suggestions for implementing  duplicates :: (Traversable f, Eq a) => f a -> [a]  (computing the list of values which occur more than once. )
20:34:11 <[exa]> exarkun: you'd probably need some version of Bounded to be able to know the enum values that go "after" the parameter
20:34:26 <merijn> jrp: And Ord is a no go?
20:34:42 verement joins (~anonymous@cpe-76-167-229-223.san.res.rr.com)
20:35:10 <monochrom> jrp: I would think you just need Foldable, if you produce [a] instead of f a.
20:35:35 <jrp> nope.  This is a Conor McBride example and I assume that it only uses Eq and some Applicative
20:36:53 <jrp> yes.  My current approach is to turn into a list and use list comprehension or filtering, but I think that that defeats the purpose of the exercise
20:37:00 knupfer joins (~Thunderbi@200116b82ca3760088333a8e5fca7cce.dip.versatel-1u1.de)
20:37:15 <[exa]> jrp: you can't do much better with just Eq
20:37:24 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:37:33 <merijn> [exa]: Well, it's a pigworker assignment then god knows ;)
20:37:47 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
20:38:23 cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
20:38:32 <jrp> He says There’s a
20:38:33 <jrp> lovely way to do this using differential calculus, but that’s another story.  Which I assume means one-hole contexts, etc.  But that's for bonus points !
20:39:31 <merijn> jrp: Should probably mention Conor McBride straight away so people can mentally shift gear from "try and find a convenient way to do this for beginners" to "overcomplicated puzzle" when trying to answer :p
20:39:40 <[exa]> I hope "lovely" means "less than exponential complexity"
20:40:13 <merijn> [exa]: "lovely" means "paper explaining this only takes 6 pages" in McBride speak :p
20:40:32 <merijn> [exa]: As opposed to say, 24 and a whole thesis :p
20:40:41 <jrp> My attempts:
20:40:42 <jrp> duplicates' :: (Eq a, Foldable f) => f a -> Bool
20:40:43 <jrp> duplicates' l = foldr test end l []
20:40:43 <jrp>   where
20:40:44 <jrp>     test :: Eq a => a -> ([a] -> Bool) -> [a] -> Bool
20:40:44 <jrp>     test a cont seen = (a `elem` seen) || cont (a : seen)
20:40:45 <jrp>     end :: [a] -> Bool
20:40:45 <jrp>     end = const False
20:40:50 <merijn> @where paste
20:40:50 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
20:40:54 <merijn> jrp: ^^
20:41:57 <monochrom> Perhaps Traversable is provided so you can use the State applicative and store seen items there.
20:42:25 hackage haskus-utils-types 1.5.1 - Haskus types utility modules https://hackage.haskell.org/package/haskus-utils-types-1.5.1 (SylvainHenry)
20:42:38 <merijn> I wonder if there's some voodoo with "clowns to the left of me, joker's to the right"
20:42:51 heatsink joins (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
20:43:32 <jrp> Here are a couple of my attempts https://paste.tomsmeding.com/9TYvXtuj
20:43:37 <merijn> I think that used Applicative
20:44:05 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
20:44:17 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
20:44:39 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
20:44:49 <jrp> The second effectively uses State
20:44:50 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
20:45:34 <jrp> He does add the disclaimer: Not completely trivial.
20:46:14 <jrp> The clowns / joker is probably the solution using differential calculus
20:46:45 <merijn> Clowns/jokers paper was super interesting...for the 25% of it that I actually understood xD
20:46:56 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
20:47:01 <jiribenes> jrp: What if you had `f ~ []` and a function `[a] -> [ListZipper a]`, could you solve your problem with that (at least for lists)? ;)
20:47:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
20:48:43 <jrp> The problem is solved (see the paste above, if it made it through) but it doesn't really use applicatives
20:50:28 <jrp> @merlin https://hackage.haskell.org/package/functor-combo-0.3.6 This seems to be an implementation by Conal Elloitt (of clowns & jokers)
20:50:28 <lambdabot> Unknown command, try @list
20:50:35 l8star joins (~l8star@business-90-187-113-149.pool2.vodafone-ip.de)
20:50:57 <jrp>  https://hackage.haskell.org/package/functor-combo-0.3.6 This seems to be an implementation by Conal Elloitt (of clowns & jokers)
20:51:13 <conal> @jrp: maybe Conor McBride
20:51:13 <lambdabot> Unknown command, try @list
20:52:24 hackage pandoc-plantuml-diagrams 0.1.1.0 - Render and insert PlantUML diagrams with Pandoc https://hackage.haskell.org/package/pandoc-plantuml-diagrams-0.1.1.0 (thriqon)
20:52:32 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:52:36 <conal> jrp: ^
20:52:36 <jrp> Sorry. Don't understand. What about him?
20:52:54 <conal> Conor wrote the Clowns & Jokers paper
20:53:04 <jrp> Indeed
20:53:16 <conal> oh, yeah. and that functor-combo sounds like one of mine.
20:53:56 <jrp> Ah great.  Thanks.  It has the cool Functor Kit
20:54:10 <conal> oh, yeah. now i'm remembering.
20:54:16 × zebrag quits (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:54:21 <conal> i was exploring another notion of zippers
20:54:26 <conal> for a blog post
20:54:36 zebrag joins (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
20:54:50 <conal> probably http://conal.net/blog/posts/another-angle-on-zippers
20:55:39 <jrp> OK.  So it's not quite clowns and jokers
20:56:58 todda7 joins (~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2)
20:57:48 <jrp> But I'd be quite content with the simpler solution to  duplicates :: (Traversable f, Eq a) => f a -> [a]  pro tem
20:59:08 mrQuidome joins (d57f25d0@ip-213-127-37-208.ip.prioritytelecom.net)
21:00:34 <ph88^> why is it not enough here to write MonadIO m to match with IO ? https://bpa.st/FPVA
21:00:52 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:01:00 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
21:01:18 <mrQuidome> I am trying to use splitOn but I get Could not find module ‘Data.List.Split’ in visual studio code. I have: import Data.List.Split as a first line, did cabal install split. But now completly stuck
21:01:43 × turion quits (~turion@2a02:810d:8abf:c4a8:7417:1a58:4f1d:bffb) (Ping timeout: 272 seconds)
21:02:09 <jiribenes> ph88^: You're probably using some function `f` which is of the type `a -> IO b`. Use `liftIO f` instead to get the `MonadIO m` constraint.
21:02:31 <ph88^> thx jiribenes
21:02:42 pengjiz joins (~user@cmu-secure-128-237-82-2.nat.cmu.net)
21:03:23 × mmmattyx quits (uid17782@gateway/web/irccloud.com/x-bmhpuzgzzgtmheov) (Quit: Connection closed for inactivity)
21:03:31 <swarmcollective> mrQuidome, in the status bar of vscode, is the Haskell Language Server (HLS) still analysing the project? Have you added the split dependency in the .cabal file?
21:03:34 <merijn> mrQuidome: If you're using cabal 3.0 or later "cabal install split" isn't what you want and won't really work
21:04:11 × ixian quits (~mgold@terra.bitplane.org) (Quit: leaving)
21:04:17 <merijn> You'll want a cabal file for your code as swarmcollective mentions
21:04:24 <mrQuidome> I am using cabal 3.2.0.0
21:04:54 hackage ghcide 0.7.3.0 - The core of an IDE https://hackage.haskell.org/package/ghcide-0.7.3.0 (jneira)
21:05:06 <mrQuidome> I have a cabal file but no dependency added
21:05:11 <swarmcollective> Be sure that split is in the build-depends: section of the .cabal file.
21:05:30 <merijn> ^^^ that
21:06:02 <mrQuidome> I now have: build-depends: base >=4.14 && <4.15
21:06:12 <monochrom> "cabal install split" is very likely a no-op. Put it in build-depends instead.
21:06:12 <mrQuidome> where and how do I add it?
21:06:48 <swarmcollective> Add a new line under that, and tab over to where "base" is, then add "split"
21:06:58 <merijn> mrQuidome: ", split" behind that should work (optionally make it ", split == x.y.z" where x.y.z is whatever the version on hackage is
21:07:01 <swarmcollective> (tab or space over)
21:07:28 <merijn> Doesn't even have to be on a newline (although that does look cleaner, generally)
21:08:26 son0p joins (~son0p@181.136.122.143)
21:09:07 <ephemient> https://discourse.haskell.org/t/ghc-9-0-1-released/1840
21:09:22 <swarmcollective> If you are not already using the "haskell.haskell" vscode extension, I would recommend it as it uses the ~latest Haskell Language Server (HLS)
21:09:47 <mrQuidome> OK, added the line, do I have to run Cabal?
21:09:54 <mrQuidome> Before GHC?
21:10:10 <mrQuidome> I am now working outside VSC on purpose
21:10:12 ixian joins (~mgold@terra.bitplane.org)
21:11:13 <merijn> mrQuidome: Generally you don't bother running GHC by hand and just use "cabal build" to compile the code instead
21:14:23 <merijn> mrQuidome: hls (which VS Code uses) should pick up the cabal file automatically to
21:15:08 × geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed)
21:15:43 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
21:17:54 hackage launchdarkly-server-sdk 2.1.0 - Server-side SDK for integrating with LaunchDarkly https://hackage.haskell.org/package/launchdarkly-server-sdk-2.1.0 (launchdarkly)
21:20:37 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
21:20:52 usr25 joins (~usr25@unaffiliated/usr25)
21:23:37 raingloom joins (~quassel@BC242713.catv.pool.telekom.hu)
21:24:23 fendor_ joins (~fendor@178.115.130.101.wireless.dyn.drei.com)
21:25:55 × Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com)
21:26:12 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:26:39 conal joins (~conal@64.71.133.70)
21:27:24 × fendor quits (~fendor@77.119.129.25.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
21:28:02 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
21:30:04 <mrQuidome> pfff, that works outside VSC, thxs a lot guys
21:30:07 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 256 seconds)
21:30:10 <mrQuidome> I am on windows, what is the preferred IDE for Haskell?
21:30:15 <mrQuidome> And maybe a nice link for basic Cabal :)
21:30:56 × conal quits (~conal@64.71.133.70) (Ping timeout: 240 seconds)
21:31:53 CMCDragonkai1 joins (~Thunderbi@120.18.74.44)
21:35:30 <dolio> I suspect no IDE.
21:36:00 jneira joins (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64)
21:37:37 × noctux quits (~noctux@unaffiliated/noctux) (Read error: Connection reset by peer)
21:37:58 × CMCDragonkai1 quits (~Thunderbi@120.18.74.44) (Remote host closed the connection)
21:39:00 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
21:40:03 × DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 258 seconds)
21:41:57 <mrQuidome> Aha, ok, so your good old plain text editor then, hm... As you already suspected I am pretty new to Haskell and I must say I am very impressed and used to IDE's :)
21:41:57 soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
21:42:57 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 268 seconds)
21:43:04 <mrQuidome> But with Haskell I can probably do without, syntax highlighting is nice and showing errors in the editor as well
21:43:27 <mrQuidome> would like to have that
21:43:45 <dolio> Lots of editors can highlight Haskell code.
21:44:05 <mrQuidome> also showing what's wrong?
21:44:05 <ephemient> unfortunately, Windows isn't the best developer experience
21:44:12 <ephemient> but HLS should work with VSCode
21:44:17 jb55 joins (~jb55@gateway/tor-sasl/jb55)
21:44:21 heatsink joins (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
21:44:35 <mrQuidome> What IS the best developer experience then?
21:45:32 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:47:04 <merijn> mrQuidome: https://cabal.readthedocs.io/en/latest/getting-started.html
21:47:29 <ephemient> I believe GHC on Linux has fewer issues than on other platforms, although all the major platforms should all be supported
21:47:49 <ephemient> (and IIRC GHC on WSL1 had some syscall issues... WSL2 should be equivalent to regular Linux though)
21:47:50 <merijn> mrQuidome: I'd say this channel is about 1/3 (n)vim, 1/3 emacs, 1/3 rest (with VS Code probably being a fairly sizable portion of "rest")
21:48:22 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
21:48:25 <mrQuidome> wow, die hards then ;)
21:48:26 <merijn> mrQuidome: hls via LSP is "as good as it gets" currently
21:48:27 conal joins (~conal@64.71.133.70)
21:48:34 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
21:48:48 <merijn> mrQuidome: More like "not enough commercial investment to build language specific IDEs" :)
21:49:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
21:49:17 <merijn> mrQuidome: hls has some actual funding and people paid to work on it, so it's improving rather rapidly
21:49:18 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
21:49:27 raingloom parts (~quassel@BC242713.catv.pool.telekom.hu) ("https://quassel-irc.org - Chat comfortably. Anywhere.")
21:49:54 <merijn> I think they're on a monthly release schedule now?
21:50:17 <fendor_> yeah, just like hie
21:50:20 <mrQuidome> OK, thnxs a lot, going to study your cabal link...
21:50:21 fendor_ is now known as fendor
21:50:28 <mrQuidome> buy
21:50:33 <fendor> *just like hie used to
21:50:44 × mrQuidome quits (d57f25d0@ip-213-127-37-208.ip.prioritytelecom.net) (Quit: Connection closed)
21:51:05 takuan joins (~takuan@178-116-218-225.access.telenet.be)
21:54:22 noctux joins (~noctux@unaffiliated/noctux)
21:54:35 × miguel_clean quits (~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.)
22:00:10 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 276 seconds)
22:01:09 × napping quits (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 264 seconds)
22:02:49 ADG1089__ joins (~aditya@122.163.194.122)
22:03:48 <monochrom> vscode is usually good enough. Certainly good enough for my students.
22:04:21 <monochrom> Since vscode exists and works, I don't understand the perpetual pursuit for "haskell IDE".
22:05:38 <monochrom> https://ro-che.info/ccc/26 is extremely prophetic. It still holds true today, and of vscode, even when it doesn't come with any of the stigma surrounding the fpcomplete corporation.
22:06:05 DataComputist joins (~lumeng@50.43.26.251)
22:06:06 × zelazny quits (~zelazny@217.146.82.202) (Ping timeout: 265 seconds)
22:06:45 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
22:07:07 × knupfer quits (~Thunderbi@200116b82ca3760088333a8e5fca7cce.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
22:07:45 × Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
22:07:57 Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net)
22:08:25 × Lowl3v3l quits (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
22:08:36 <monochrom> "good enough for my students" under the circumstance I forgot to say that my students are not remotely close to the minimalist-text-editor kind. They grew up on IPython and Java IDEs. So if vscode is good enough for them, it's good enough period.
22:09:20 kupi joins (uid212005@gateway/web/irccloud.com/x-pyrfhfaitkpiyesc)
22:11:10 <kupi> liftM does the same thing as fmap?
22:11:16 <monochrom> Yes.
22:12:30 <monochrom> When I'm lazy I define "instance Functor MyMonad where fmap = liftM" done.
22:12:31 <kupi> what's the point of liftM? there was a time when Monad was not required to have a functor instance?
22:12:33 × Tesseraction quits (~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer)
22:12:37 <monochrom> Yes.
22:12:55 <monochrom> Still, today it has a small use such as mine.
22:13:35 <monochrom> You will find that along the same line fmapDefault exists in Data.Traversable
22:13:53 <ski> kupi : `liftM' still serves the purpose of being a default implementation of `fmap', in terms of `return' and `(>>=)'
22:14:25 <monochrom> onoes GHC 9.0.1 is offical
22:14:45 <ski> (that is, an implementation you can plug in when making a `Functor' instance .. not as one that's automatically applied for you, if you don't define `fmap')
22:15:31 <ski> @type Data.Traversable.fmapDefault
22:15:32 <lambdabot> Traversable t => (a -> b) -> t a -> t b
22:16:14 <ski> kupi : similarly `liftA' if you only have an `Applicative' instance. and `ap' serve as a default implementation of `(<*>)'
22:17:41 <monochrom> "Record field selectors are now given type signatures that preserve the user-written order of quantified type variables" haha
22:17:48 <kupi> Is there a way to tell hlint or something else to warn if a more general function could be used?
22:17:54 <monochrom> (The type-var-order saga continues!)
22:18:20 <merijn> monochrom: I continue being right, as always :p
22:18:43 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
22:18:49 livvy_ joins (~livvy@gateway/tor-sasl/livvy)
22:21:28 <ski> monochrom : which tyvars are those ? those for `PolymorphicComponents', or of `ExistentialQuantification', or of plain parameters of the data type ?
22:21:50 <monochrom> I don't know.
22:22:26 <ski> merijn : hehe :b
22:22:41 × urodna quits (~urodna@unaffiliated/urodna) (Read error: Connection reset by peer)
22:23:14 <monochrom> I think a PolymorphicComponent example is given.
22:23:29 <ski> kupi : not really that i know of. (hlint might have some suggestions built-in to it. however, hlint is also opinionated, so i wouldn't blindly follow its advice)
22:24:48 <ski> kupi : hanging around this channel, lurking, talking, you do pick up some generalizations, though
22:25:06 <ski> however, it's not clear using a more general operation is always a win
22:26:21 <ski> if it results in a more general signature for your operation, perhaps it is (e.g. extra polymorphism can give you additional guarantees, due to parametricity. not to speak of the obvious, that you might be able to apply the generalized operation in more situations)
22:27:00 Tesseraction joins (~Tesseract@unaffiliated/tesseraction)
22:27:33 <ski> however, if it doesn't then it may be better to use the more specialized operation. (a) it may be easier for a human to read the code and understand what's going on, if you don't replace all the `map's with `fmap's (or `<$>'s), so that you can distinguish between the `map's and the `fmap's you do have
22:28:02 napping joins (~brandon@174-20-93-137.mpls.qwest.net)
22:28:02 <ski> and (b) your type error messages may become clearer if you do this
22:28:07 × ADG1089__ quits (~aditya@122.163.194.122) (Remote host closed the connection)
22:28:54 <ski> (may also be less ambiguity problems, although i don't think that's as common)
22:30:01 <ski> (generalization could also help with separating concerns)
22:31:05 <monochrom> "LexicalNegation is a new extension" and "The behavior of NegativeLiterals changed"
22:31:26 <monochrom> The former allows "f -x" to mean "f (negate x)"
22:31:40 <ski> hm .. and then there's the fact that sometimes, in a more general/abstract setting, a problem is easier to solve (or easier to find the (correct) solution of, perhaps one should say), simply because there's less detail that one may be confused by, and that may be irrelevant. (but then, generalization of the problem could also take you to an unsolvable problem, or one where an (as) efficient solution is no
22:31:46 <ski> longer possible)
22:31:52 <monochrom> and for "(-) x y,", you make sure you have spaces, "x - y"
22:32:05 <merijn> monochrom: You know what the biggest mistake in Haskell98/Haskell2010 is?
22:33:06 <merijn> monochrom: Not requiring spaces around operators. That one single change would've made all this negation nonsense and RecordDot stuffs trivial :\
22:33:15 <ski> monochrom : so `x-1' will mean `x (-1)' ?
22:33:31 <merijn> See...lunayc
22:34:00 <merijn> merijn for Haskell BDFL to end this nonsense >.>
22:34:23 <ski> should spaces around `@' (or after `!' and `~') be mandatory ?
22:34:46 <monochrom> "x-1" falls under NegativeLiterals because 1 is a literal. In this case, "x-1" is (-) x 1. And this is a 9.0.1 changed behaviour, 8.10.3 would do x (negate 123)
22:35:11 <merijn> ski: Depends, are you talking about operators or as-patterns, bangpatterns and lazy patterns? :p
22:35:29 <ski> i'm talking about the syntactical operators in patterns, yes
22:35:29 <monochrom> merijn, but I would hate to have to write "x + y" instead of "x+y".
22:35:56 × eacameron quits (uid256985@gateway/web/irccloud.com/x-gxofaafswzzfxmhg) (Quit: Connection closed for inactivity)
22:36:02 <merijn> monochrom: I already do that anyway
22:36:20 <merijn> monochrom: Embrace sane tokenization!
22:36:21 <monochrom> So instead, I think that these LexicalNegation and NegativeLiterals are the mistakes.
22:36:32 <ski> (but you could also consider e.g. `return @Maybe'. should this be required to be `return @ Maybe' ?)
22:36:39 <merijn> monochrom: I think your way of writing *and* those extensions are mistakes :)
22:36:56 <monochrom> I am more fond of SML's solution, write ~1 for negative literals.
22:36:59 <merijn> ski: Oh, but when I'm BDFL I'll delete TypeApplications
22:37:03 <merijn> ski: So that's a non issue
22:37:15 <ski> i was suspecting that could be the solutions :D
22:37:35 <monochrom> Hell OK, let me take it to the next level.
22:37:38 <merijn> -XTypeApplications Considered Harmful
22:37:42 <monochrom> Plain text file is the mistake.
22:37:51 <merijn> monochrom: Also true, but more complicated to fix
22:38:02 <monochrom> Can Programming Be Liberated From The Plain Text File?
22:38:04 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
22:38:14 <ski> clearly, GHC should accept programs in handwriting
22:38:20 <merijn> But I'm sure you're already familiar with Lamdu :p
22:38:34 ski hasn't seen Peaker for a while
22:38:44 <monochrom> handwritten Haskell = untyped lambda calculus :)
22:38:46 × haasn quits (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
22:39:03 <ski> why untyped ?
22:39:27 <monochrom> handwritten = not typed up
22:40:01 haasn joins (~nand@mpv/developer/haasn)
22:40:10 <ski> you'd feed the note to your scanner/writer, and it'd mark the offending expressions with red underline, writing the type error in the margin
22:40:11 <monochrom> This is also why untyped lambda calculus already comes with recursion. Because the handwriting is cursive.
22:40:15 <merijn> ski: I see him tweet occasionally
22:40:50 <ski> monochrom : mine isn't
22:41:01 <ski> (never was. i refused to learn it, in school)
22:41:06 <monochrom> Do you not write your lambda cursively?
22:41:16 <ski> i write block letters, by hand
22:41:54 <monochrom> OK, I'll put your handwriting on vinyl. That will round out your sharp edges.
22:42:18 <monochrom> And maybe also pass it through vacuum tubes for extra softness.
22:43:19 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
22:43:37 heatsink joins (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
22:44:04 <monochrom> Nice, arrow notation mix well with LambdaCase and BlockArguments now.
22:44:10 × Athas quits (athas@2a01:7c8:aaac:1cf:1c06:6cab:a957:ec6e) (Quit: ZNC - http://znc.sourceforge.net)
22:44:20 Athas joins (athas@sigkill.dk)
22:45:27 <ski> `proc case' ?
22:45:45 borne joins (~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de)
22:46:51 <monochrom> Haha in the release notes, changes to base are split into "2.1.2.8 base library" and "2.1.2.11 base library"
22:48:56 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
22:50:26 × borne quits (~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
22:51:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
22:51:58 borne joins (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a)
22:52:14 jpds joins (~jpds@gateway/tor-sasl/jpds)
22:53:13 <shiraeeshi> ski, what did teachers and parents do about you refusing to learn cursive writing?
22:54:31 <ski> nothing, as i recall
22:55:24 hackage hls-hlint-plugin 0.2.0.0 - Hlint integration plugin with Haskell Language Server https://hackage.haskell.org/package/hls-hlint-plugin-0.2.0.0 (jneira)
22:56:16 <shiraeeshi> hmm, interesting. you could also refuse to go to school while you're at it.
22:56:29 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:56:47 × heatsink quits (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
22:57:12 <shiraeeshi> it is boring to have to wait until the bell rings to be able to go outside, just go outside.
22:57:24 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
22:57:25 mattl1 joins (~mattl@s91904426.blix.com)
22:57:43 fendor_ joins (~fendor@178.115.130.101.wireless.dyn.drei.com)
22:57:57 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
22:59:19 <ski> nah, i was mostly interested in learning stuff
22:59:24 <shiraeeshi> idk why, but grown-ups had a way of forcing children to do things, or maybe it just seems like that.
22:59:44 <ski> i just couldn't see a reason to learn to do something that i considered bad, that i'd prefer noone did
23:00:34 <monochrom> Refusing to go to school would require parent consent.
23:01:16 × fendor quits (~fendor@178.115.130.101.wireless.dyn.drei.com) (Ping timeout: 276 seconds)
23:02:34 × DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 276 seconds)
23:02:53 × xsperry quits (~as@unaffiliated/xsperry) (Disconnected by services)
23:03:04 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:03:06 xsperry joins (~as@unaffiliated/xsperry)
23:03:40 DataComputist joins (~lumeng@50.43.26.251)
23:05:14 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:06:24 carlomagno joins (~cararell@148.87.23.9)
23:06:24 × carlomagno1 quits (~cararell@148.87.23.13) (Remote host closed the connection)
23:06:41 × nineoni__ quits (~nineonine@50.216.62.2) (Remote host closed the connection)
23:07:13 nineonine joins (~nineonine@50.216.62.2)
23:07:48 heatsink joins (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
23:09:22 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
23:09:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
23:10:58 Sheilong joins (uid293653@gateway/web/irccloud.com/x-hckhahxtjpgetknl)
23:12:53 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
23:14:16 ukari joins (~ukari@unaffiliated/ukari)
23:15:35 <koala_man> cursive as in looped cursive? I think that died in the 70s around here, and good riddance
23:18:12 <koala_man> it was replaced by a form of italic cursive that used the same letter shapes as print, just joined together for efficiency
23:21:29 × fendor_ quits (~fendor@178.115.130.101.wireless.dyn.drei.com) (Read error: Connection reset by peer)
23:21:40 <ph88^> is it possible get information about which line throw openFile: does not exist (No such file or directory) ? i already tried with +RTS -xc i get a stacktrace without line numbers
23:22:09 × Tesseraction quits (~Tesseract@unaffiliated/tesseraction) (Ping timeout: 264 seconds)
23:23:10 × Benzi-Junior quits (~BenziJuni@dsl-149-64-174.hive.is) (Ping timeout: 258 seconds)
23:23:46 <ski> koala_man : dunno
23:24:06 Benzi-Junior joins (~BenziJuni@dsl-149-67-143.hive.is)
23:24:09 <ski> i think one contributing factor was that my programmable pocket calculator (naturally) had block letters
23:25:38 <ski> i also recall changing the model digits, that you were supposed to imitate and copy, in the first-year math schoolbooks, so that the zero had a slash though it, the one had a "flag" and a "foot", and the seven a horizontal stroke through it (that last one, the calculator didn't have)
23:26:39 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
23:27:43 Tesseraction joins (~Tesseract@unaffiliated/tesseraction)
23:28:26 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8527:2d6c:6fbd:96de) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:29:57 × napping quits (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 264 seconds)
23:31:30 × chrisdotcode quits (~chrisdotc@unaffiliated/chrisdotcode) (Quit: self-rip)
23:37:46 renzhi joins (~renzhi@2607:fa49:6500:6f00::1e43)
23:38:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:39:53 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
23:44:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
23:46:59 × ransom quits (~c4264035@2a09:bac0:98::830:861e) (Quit: Textual IRC Client: www.textualapp.com)
23:47:05 × themba_ quits (~themba@bcde0474.skybroadband.com) (Ping timeout: 240 seconds)
23:54:40 writenix joins (~quassel@200.99.115.89.rev.vodafone.pt)
23:55:25 napping joins (~brandon@174-20-93-137.mpls.qwest.net)
23:55:47 × jrp quits (05501e8f@5.80.30.143) (Quit: Connection closed)
23:56:11 × Franciman quits (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
23:56:24 hackage either-list-functions 0.0.4.4 - Functions involving lists of Either https://hackage.haskell.org/package/either-list-functions-0.0.4.4 (chris_martin)
23:57:26 polyrain joins (~polyrain@124.177.21.171)
23:58:13 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)

All times are in UTC on 2021-02-04.