Home freenode/#haskell: Logs Calendar

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

00:00:07 × atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
00:00:12 <Axman6> for loops? Usually just applicatives. Null checks? Just applicatives a lot of the time too. passing around some config? Applicatives too
00:00:29 atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK)
00:00:43 <Axman6> erry day Immapplicative
00:01:45 <lechner> thanks everyone for your help!
00:01:52 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Ping timeout: 258 seconds)
00:01:55 <Axman6> lechner: also, for your second Haskell program, you're doing quite well. No haskeller would have any problems reading that
00:02:01 × jess quits (jess@freenode/staff/jess) (Quit: Lost terminal)
00:02:01 <Axman6> so nice work
00:02:27 jess joins (jess@freenode/staff/jess)
00:02:29 <koz_> Yeah, and you've definitely not picked the easiest second thing to write.
00:02:35 <koz_> So definitely nice work.
00:03:03 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
00:04:10 <lechner> please let me say that i also like your helpful channel, and the friendly tone eround here.
00:04:25 ddellacosta joins (~ddellacos@86.106.143.10)
00:04:33 <Axman6> Thanks for being more flexible than... some others :)
00:04:55 <koz_> lechner: We try.
00:05:20 <lechner> one day i'll muster the courage to drop Perl and JavaScript everywhere
00:05:34 <Axman6> D:
00:08:13 <Axman6> well, learn enough haskell, and you can make it look like Perl. using lens's Control.Lens.Operators makes that even easier
00:08:46 × ddellacosta quits (~ddellacos@86.106.143.10) (Ping timeout: 252 seconds)
00:10:24 <lechner> i watched a talk about lenses but that was totally above my my pay grade. i just worked my way through Hutton's tome but like "What I Wish I Knew ..." a lot better, plus of course "Learn you a Good ..." and a few others
00:11:39 <koz_> Typeclassopedia is also essential IMHO.
00:11:42 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
00:11:49 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
00:12:13 <lechner> yeah, it's just a bit steep for the uninitiated
00:13:14 <lechner> hey, this program takes tasks from AMQP, but execution can take an hour or more. when using a 30 second heartbeat, do i have to use a special, event-loop aware way to fork programs?
00:17:38 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
00:23:21 fiedlr joins (~fiedlr@83.148.33.254)
00:23:39 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Remote host closed the connection)
00:24:56 philderbeast joins (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
00:25:06 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
00:26:29 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
00:26:44 <Axman6> lechner: you could use threads
00:27:04 <geekosaur> threads and forkProcess don't mix
00:27:27 <geekosaur> well, you can do it but expect problems
00:27:57 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
00:28:32 <geekosaur> since other threads may have something locked but won't be replicated in the subprocess, leaving it with random things (such as Handles) locked and no way to unlock them
00:28:56 <Axman6> I've never needed to fork haskell programs, threads give me everything I've needed
00:29:02 <lechner> do i have to use threads when enabling the heartbeat in Network.AMQP, or does the driver send the heartbeat anyway?
00:29:04 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
00:29:28 <Axman6> you'd have to look that up, get some experience reading some HAskell library code
00:29:37 <lechner> yeah
00:30:06 <lechner> hackage is the best place for online reading?
00:30:12 <Axman6> sure
00:30:51 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:31:12 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
00:33:23 × safinaskar quits (6dfc5a88@109-252-90-136.nat.spd-mgts.ru) (Ping timeout: 240 seconds)
00:36:03 × ericsagnes quits (~ericsagne@2405:6580:0:5100:26cf:eb6d:4a80:182c) (Ping timeout: 260 seconds)
00:37:20 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
00:39:30 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Remote host closed the connection)
00:39:47 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
00:40:43 × vicfred quits (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
00:41:24 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Remote host closed the connection)
00:41:58 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
00:43:42 bennofs__ joins (~quassel@x4db75e90.dyn.telefonica.de)
00:46:21 nineonine joins (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849)
00:46:34 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
00:47:17 × bennofs_ quits (~quassel@x4dbf857b.dyn.telefonica.de) (Ping timeout: 260 seconds)
00:48:06 ericsagnes joins (~ericsagne@2405:6580:0:5100:c414:6b2f:3a1f:4a99)
00:48:35 elliott__ joins (~elliott@pool-108-18-30-46.washdc.fios.verizon.net)
00:49:21 <Axman6> lechner: any luck) so far?
00:50:06 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
00:50:33 × renzhi quits (~renzhi@2607:fa49:6500:bc00::e7b) (Ping timeout: 258 seconds)
00:50:56 × nineonine quits (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 258 seconds)
00:53:21 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:53:40 Guest78317 joins (~laudiacay@67.176.215.84)
00:57:11 × gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 268 seconds)
00:58:34 × philderbeast quits (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:59:20 safinaskar joins (~user@109.252.90.136)
01:00:03 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
01:00:22 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds)
01:01:24 vicfred joins (~vicfred@unaffiliated/vicfred)
01:01:27 ddellacosta joins (~ddellacos@86.106.143.157)
01:01:28 <safinaskar> Axman6: i said about this in the channel. i will repeat. "using "do" inside of "do"? this is intentional. to hide bindings. i. e. i write "do { do { a<-...; ... }; foo; }" to make sure "foo" doesn't see "a". i am inventive:) Â . i don't simply copy-paste examples, i develop my style :)"
01:02:22 <safinaskar> Axman6: "i learn haskell using "learn you haskell for a great good". very good book. but i was always frustrated from indentation-based syntax (i came from c++), so i started to use curly braces. In function "lex" i check some condition,"
01:02:41 <safinaskar> Axman6: "if it holds, i return Nothing, if it doesn't hold, i check another condition, etc. I decided to check conditions using "case" as opposed to "if ... then ... else", because "case" allows me to use curly braces. conclusion: i started from "learn you haskell for a great good" style, then started to use curly braces (because of c++), then get rid of"
01:02:56 <safinaskar> Axman6: ""if...then...else". that is"
01:03:35 <yushyin> this book does not have such a good reputation here
01:05:26 <safinaskar> yushyin: why? i think the book is perfect. the only complain i have today is that the book uses "*" instead of "Type"
01:06:00 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:06:01 <safinaskar> yushyin: and yes, it was writen before AMP and MonadFail proposal
01:06:05 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
01:06:26 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds)
01:08:04 <yushyin> I don't know never read it, I just know that people here constantly say it's one of the poorer books about teaching haskell.
01:09:48 × stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Read error: Connection reset by peer)
01:11:06 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
01:13:30 × ep1ctetus quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer)
01:14:27 × dpl quits (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds)
01:15:45 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
01:16:07 × Wizek quits (uid191769@gateway/web/irccloud.com/x-imzvaajwbwqznbhg) (Quit: Connection closed for inactivity)
01:17:01 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Remote host closed the connection)
01:18:01 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
01:22:22 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Ping timeout: 258 seconds)
01:22:57 × xff0x quits (~xff0x@2001:1a81:52bc:3c00:45ea:1449:467:f132) (Ping timeout: 250 seconds)
01:25:06 xff0x joins (~xff0x@2001:1a81:52f2:b700:a7c9:31ec:b9a1:9e16)
01:26:31 stef204 joins (~stef204@unaffiliated/stef-204/x-384198)
01:26:49 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
01:27:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
01:27:37 Tario joins (~Tario@201.192.165.173)
01:28:25 drbean_ joins (~drbean@TC210-63-209-68.static.apol.com.tw)
01:32:12 <lechner> Hi, I made a lot of progess but cannot reconcile Int <-> PortNumber in line 75. FromJSON does not like PortNumber in line 29. Do I need a cast in line 75? Also, general style reviews are welcome, and probably needed. Thanks! https://dpaste.org/NxeL#L29,75
01:33:45 <lechner> i'd like to take the port number from the YAML
01:34:03 × AkechiShiro quits (~AkechiShi@2a01:e0a:5f9:9681:1473:3dff:fe42:56a9) (Quit: WeeChat 2.9)
01:34:49 <c_wraith> PortNumber is a really weird thing the network library did
01:35:10 <c_wraith> The best way to work with it is fromIntegral
01:37:11 × dmytrish quits (~mitra@2a02:8084:a82:d900:319a:d200:a43d:3e3c) (Ping timeout: 260 seconds)
01:38:23 × viluon quits (uid453725@gateway/web/irccloud.com/x-nkzdiizrnnhacztz) (Quit: Connection closed for inactivity)
01:41:23 <lechner> c_wraith: thanks! that worked great
01:41:44 <c_wraith> you're welcome
01:42:37 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c) (Remote host closed the connection)
01:43:40 nicholasbulka joins (~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net)
01:45:08 <lechner> Hi, in a stack-managed application, should i still commit the cabal file to the repo?
01:45:27 <c_wraith> unless you're using hpack, yes
01:46:54 <lechner> c_wraith: thanks!
01:47:02 aarvar joins (~foewfoiew@2601:602:a080:fa0:5ca2:103e:3230:e6a)
01:47:13 aarvar parts (~foewfoiew@2601:602:a080:fa0:5ca2:103e:3230:e6a) ()
01:50:41 × nicholasbulka quits (~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
01:52:30 <yushyin> non-stack user will be thankful
01:55:46 Jd007 joins (~Jd007@162.156.11.151)
02:00:03 c9sloud joins (~c9sloud@185.204.1.185)
02:00:41 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds)
02:02:54 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
02:05:07 <glguy> Even if you use hpack you should be committing your .cabal files: https://www.fpcomplete.com/blog/storing-generated-cabal-files/
02:05:19 × puke quits (~vroom@217.138.252.196) (Ping timeout: 265 seconds)
02:06:25 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
02:07:33 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 240 seconds)
02:09:00 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
02:13:54 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
02:14:10 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
02:14:30 × HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
02:15:18 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:15:27 safinaskar parts (~user@109.252.90.136) ()
02:18:38 zebrag joins (~inkbottle@aaubervilliers-654-1-107-209.w86-212.abo.wanadoo.fr)
02:20:05 seven_three joins (~user@pool-96-233-64-53.bstnma.fios.verizon.net)
02:22:03 × xiinotulp quits (~q@node-umb.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
02:24:12 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
02:25:32 seven_three parts (~user@pool-96-233-64-53.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.2)")
02:26:44 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
02:28:23 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Ping timeout: 246 seconds)
02:31:16 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Remote host closed the connection)
02:31:57 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
02:33:21 reilly joins (~user@117.222.66.145)
02:34:41 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
02:36:20 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
02:36:23 aarvar joins (~foewfoiew@2601:602:a080:fa0:ad7b:fd2e:e5be:a7b9)
02:36:52 × aarvar quits (~foewfoiew@2601:602:a080:fa0:ad7b:fd2e:e5be:a7b9) (Client Quit)
02:37:41 × reilly quits (~user@117.222.66.145) (Remote host closed the connection)
02:38:43 reilly joins (~user@117.222.66.145)
02:41:18 × theDon quits (~td@94.134.91.146) (Ping timeout: 252 seconds)
02:43:03 theDon joins (~td@94.134.91.223)
02:44:36 × Guest78317 quits (~laudiacay@67.176.215.84) (Ping timeout: 260 seconds)
02:46:26 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
02:46:26 finn_elija is now known as Guest29414
02:46:26 FinnElija is now known as finn_elija
02:46:43 gnumonic joins (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
02:47:42 × reilly quits (~user@117.222.66.145) (Remote host closed the connection)
02:49:46 × geiger quits (~geiger@90.212.77.86) (Ping timeout: 252 seconds)
02:49:57 × Guest29414 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
02:51:29 Guest78317 joins (~laudiacay@67.176.215.84)
02:52:44 trexx joins (~trexx@117.222.66.145)
02:58:42 × trexx quits (~trexx@117.222.66.145) (Remote host closed the connection)
03:05:43 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
03:06:05 × ddellacosta quits (~ddellacos@86.106.143.157) (Remote host closed the connection)
03:15:58 × minoru_shiraeesh quits (~shiraeesh@109.166.56.26) (Ping timeout: 240 seconds)
03:19:13 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
03:19:18 heatsink_ joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
03:21:43 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
03:22:12 superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
03:23:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:33:57 × xkapastel quits (uid17782@gateway/web/irccloud.com/x-isdhgqaucsczyafg) (Quit: Connection closed for inactivity)
03:39:31 frozenErebus joins (~frozenEre@37.231.244.249)
03:40:20 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
03:43:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
03:43:35 × zebrag quits (~inkbottle@aaubervilliers-654-1-107-209.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
03:43:36 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:44:53 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
03:45:14 Jd007 joins (~Jd007@162.156.11.151)
03:49:29 rajivr joins (uid269651@gateway/web/irccloud.com/x-ozfaqobeqdbxwvmv)
03:53:43 <lechner> Hi, could i use a closure here to pass 'channel' and other variables to the callback? Thanks! https://dpaste.org/jEgi#L107
03:56:48 <glguy> consumeMsgs channel orderQueue Ack (orderCallback channel other variables)
03:57:11 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
03:57:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
04:06:49 <lechner> What is the new prototype for orderCallback, please, if the two extra types are Channel and Queue?
04:07:19 ddellacosta joins (~ddellacos@86.106.143.131)
04:08:01 × alx741 quits (~alx741@186.178.109.113) (Quit: alx741)
04:08:09 falafel_ joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
04:08:30 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
04:08:33 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
04:10:27 <lechner> never mind. i figured it out
04:11:23 dpl joins (~dpl@77-121-78-163.chn.volia.net)
04:12:03 × ddellacosta quits (~ddellacos@86.106.143.131) (Ping timeout: 268 seconds)
04:18:04 × stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
04:25:49 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:26:28 Tario joins (~Tario@201.192.165.173)
04:27:17 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
04:29:27 bitmapper joins (uid464869@gateway/web/irccloud.com/x-vpfgdoawvwkfbpxh)
04:33:01 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
04:36:53 × horatiohb quits (~horatiohb@45.55.40.152) (Ping timeout: 260 seconds)
04:40:43 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:40:54 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
04:42:15 ddellacosta joins (~ddellacos@86.106.143.92)
04:43:30 <petersen> Anyone know how nixpkgs distro data gets uploaded to Hackage?
04:43:56 frozenErebus joins (~frozenEre@37.231.244.249)
04:45:15 plutoniix joins (~q@184.82.212.134)
04:46:48 × ddellacosta quits (~ddellacos@86.106.143.92) (Ping timeout: 240 seconds)
04:47:04 <lechner> which way? https://hackage.haskell.org/package/distribution-nixpkgs or https://github.com/NixOS/nixpkgs/blob/release-20.03/pkgs/development/haskell-modules/hackage-packages.nix
04:49:13 × waleee-cl quits (uid373333@gateway/web/irccloud.com/x-qwacgjbsbbsicbfw) (Quit: Connection closed for inactivity)
04:50:45 <lechner> or are you looking for somehthing like this? https://repology.org/project/haskell:aeson/versions
04:52:44 Tario joins (~Tario@201.192.165.173)
04:56:20 <petersen> lechner: ah thanks - I meant the code that does the upload
04:56:27 × dpl quits (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds)
04:58:43 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Remote host closed the connection)
05:01:45 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
05:07:40 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
05:10:56 × heatsink_ quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
05:11:01 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
05:12:22 <lechner> Hi, is rawSystem from System.Cmd really better than System.Process? http://book.realworldhaskell.org/read/systems-programming-in-haskell.html
05:12:41 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
05:14:33 × Guest78317 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
05:17:06 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
05:17:27 × c9sloud quits (~c9sloud@185.204.1.185) (Remote host closed the connection)
05:19:04 kristijonas joins (~kristijon@78-56-32-39.static.zebra.lt)
05:19:16 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Remote host closed the connection)
05:19:28 <lechner> Also, what's everyone's favorite library for UTF-8, please? I decode early encode as late as possible, preferably right before printing or spewing. Thanks!
05:22:02 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
05:29:26 sord937 joins (~sord937@gateway/tor-sasl/sord937)
05:30:35 aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
05:38:24 Stanley00 joins (~stanley00@unaffiliated/stanley00)
05:40:52 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds)
05:41:55 Antimatter joins (~Antimatte@195.140.213.38)
05:42:38 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
05:45:02 × anandprabhu quits (uid495588@gateway/web/irccloud.com/x-eezubqkxedpeqasj) (Quit: Connection closed for inactivity)
05:46:29 × jao quits (~jao@pdpc/supporter/professional/jao) (Ping timeout: 246 seconds)
05:46:57 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
05:49:14 geiger joins (~geiger@90.212.77.86)
05:50:20 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
05:52:11 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
05:52:36 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
05:54:10 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
05:54:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:55:26 × Antimatter quits (~Antimatte@195.140.213.38) (Remote host closed the connection)
05:56:49 nineonine joins (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849)
05:56:52 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
06:04:14 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
06:05:55 × nineonine quits (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 250 seconds)
06:06:45 wonko7 joins (~wonko7@62.115.229.50)
06:08:07 asheshambasta joins (~user@ptr-e1lysawvmwijg2oywyl.18120a2.ip6.access.telenet.be)
06:08:13 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
06:09:33 frozenErebus joins (~frozenEre@37.231.244.249)
06:12:26 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
06:12:38 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
06:14:29 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
06:14:32 chele joins (~chele@5.53.222.202)
06:16:02 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
06:19:59 × ericsagnes quits (~ericsagne@2405:6580:0:5100:c414:6b2f:3a1f:4a99) (Ping timeout: 260 seconds)
06:21:26 <Axman6> lechner: you want Text for anything related to text. it contains functrions for decoding and encoding ByteStrings using UTF-8
06:23:25 <Axman6> lechner: Looks like System.Cmd is deprecated, keep in mind that Real World Haskell is over a decade old now (and makes me feel very old), so there are lots of things that are no longer true
06:24:18 <opqdonut> an annotated version would be nice
06:24:30 <opqdonut> I guess the RWH web version has commenting, maybe the comments have pointed out deprecations?
06:24:38 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
06:24:48 <sm[m]> lechner: the haddock for System.Process probably indicates what's new and what's old
06:24:49 <Axman6> someone started a github repo to rewrite it IIRC
06:25:24 <Axman6> https://github.com/tssm/up-to-date-real-world-haskell
06:25:38 <opqdonut> nice
06:26:21 <opqdonut> looks fairly complete already, cool
06:27:16 <Axman6> most of it hasn't been touched for a long time though
06:27:37 <opqdonut> yeah work might've fizzled out
06:28:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
06:29:46 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
06:32:58 ericsagnes joins (~ericsagne@2405:6580:0:5100:f72c:ebd9:1857:d75c)
06:33:55 × landonf quits (landonf@mac68k.info) (Excess Flood)
06:34:52 × sveit quits (~sveit@45.77.0.246) (Ping timeout: 240 seconds)
06:34:55 × thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 260 seconds)
06:35:14 landonf joins (landonf@mac68k.info)
06:35:21 × simplegauss quits (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 245 seconds)
06:35:39 Irenes joins (~irenes@NixOS/user/irenes)
06:36:05 <Irenes> hey so uh
06:36:16 <Axman6> uh oh no
06:36:25 <Irenes> I used to be a regular here but left some years ago
06:36:39 <Irenes> I'm coming to apologize for something that happened a long time ago
06:36:47 <Irenes> I don't know whether anyone still remembers - maybe some of the mods
06:37:14 thonkpod joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
06:37:18 <Irenes> this was in 2014. there was a conflict between me and someone called StoneCypher, who I did not know and don't really remember; I don't know whether they still come here.
06:37:18 <Axman6> Your name is vaguely familiar to me...
06:37:25 <Irenes> yeah likewise
06:37:35 <Irenes> at the time, I found it inexplicable
06:37:52 <Irenes> I went back and re-read those chatlogs recently and I realized that my behavior was pretty obnoxious
06:37:56 <Irenes> which, like
06:38:04 <Irenes> not a total surprise to me
06:38:14 <Irenes> I was raised to be an asshole and it took me a long time to learn better
06:38:23 simplegauss joins (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f)
06:38:23 sveit joins (~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f)
06:38:34 <Irenes> but I kind of thought I'd gotten there by 2014
06:38:46 <Irenes> anyway, to anyone who had to deal with it, especially the mods, sorry about that
06:38:49 × falafel_ quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
06:38:51 <Irenes> I know it made a lot of work for the mods
06:39:10 vchlup joins (~vchlup@nat.brnet.cz)
06:39:13 <Irenes> I'm not planning to stick around but I'll wait like half an hour or something in case anyone wants to reply, and I'm signed in to Freenode generally these days
06:39:25 <Irenes> I expect nobody has anything to say about that but I wanted to say it just in case
06:40:12 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
06:40:21 <opqdonut> I was definitely around in 2014 but I don't remember this incident, but I appreciate you taking the effort to apologize now
06:40:28 frozenErebus joins (~frozenEre@37.231.244.249)
06:40:34 <Axman6> I mean, you could do a @where ops if you want to ring their bells.
06:40:41 <[exa]> Irenes: well if you're still using haskell and in the mood of helping the community I guess you're welcome. also there are now two offtopic channels for whatever heated discussions :D
06:41:07 <Axman6> I also don't remember it, I can certainly remember incidents in other channels going back further than that though, so it can't have been too horrendous. We're all assholes on the internet sometimes
06:41:15 <MarcelineVQ> lel
06:41:38 <Irenes> I'm into Rust these days, but thank you very much :)
06:41:45 <Irenes> Axman6 that's good to hear
06:42:49 <Axman6> we need more Rust people around too. I'd love to have good integration between Haskell and Rust
06:43:27 <Irenes> heh, well, thank you then :) I might as well at least idle
06:43:49 [exa] .oO(idle for victory!!!11)
06:44:00 <Irenes> if we're going to stick around you are going to see us intermittently use plural pronouns; cf. https://pluralpride.com/playbook for an explanation
06:44:43 <Axman6> they are welcome to use whatever language can be parsed and understood
06:44:51 Varis joins (~Tadas@unaffiliated/varis)
06:45:51 nut` joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
06:45:54 <Irenes> thank you very much. really appreciated. "you" and "y'all" are both fine in second-person, they/them is for third person.
06:45:58 johannes_ joins (~johannes@mue-88-130-62-032.dsl.tropolys.de)
06:46:06 <Irenes> there was a huge controversy in the 18th century about whether "singular you" was proper English.
06:46:19 <Irenes> the outcome was that it works fine for both singular and plural ;)
06:46:28 gzj joins (~gzj@unaffiliated/gzj)
06:46:57 <[exa]> Irenes: you're in a channel full of mathematicians who write 99% of the text with 'we prove the theorem' :]
06:47:22 <Irenes> yeah tbh when we were kids we used to go out of our way to use "we" in code comments. we told ourselves it was including the reader in our process.
06:47:35 <Irenes> excellent then :)
06:49:05 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
06:49:25 gzj joins (~gzj@unaffiliated/gzj)
06:52:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
06:52:27 gzj joins (~gzj@unaffiliated/gzj)
06:53:13 <pjb> Irenes: it's not an inclusive "we", it's a majestic "we"! https://en.wikipedia.org/wiki/Royal_we
06:53:52 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 265 seconds)
06:54:18 Axman6 royal waves
06:54:19 <Irenes> hehe :3
06:54:24 idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
06:54:58 <Axman6> btw, I'm Australian, so I'm gonna use "youse"
06:56:12 × superstar64 quits (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed)
06:59:38 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
06:59:52 kuribas joins (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be)
07:01:07 Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
07:02:29 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
07:02:49 gzj joins (~gzj@unaffiliated/gzj)
07:03:03 <Irenes> "youse" works fine, thanks haha
07:03:20 <Axman6> youse're welcome
07:03:21 idhugo_ joins (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net)
07:04:40 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
07:04:59 gzj joins (~gzj@unaffiliated/gzj)
07:05:11 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
07:06:04 × idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds)
07:06:12 jespada joins (~jespada@90.254.243.187)
07:09:33 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
07:09:55 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
07:10:14 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Remote host closed the connection)
07:10:53 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 260 seconds)
07:11:34 cfricke joins (~cfricke@unaffiliated/cfricke)
07:12:33 dpl joins (~dpl@77-121-78-163.chn.volia.net)
07:13:46 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
07:15:13 berberman_ joins (~berberman@unaffiliated/berberman)
07:16:03 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 248 seconds)
07:17:04 × nut` quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
07:18:26 thc202 joins (~thc202@unaffiliated/thc202)
07:18:53 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-vpfgdoawvwkfbpxh) (Quit: Connection closed for inactivity)
07:23:14 Sornaensis joins (~Sornaensi@077213200034.dynamic.telenor.dk)
07:29:22 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
07:30:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:32:14 davidfetter1 joins (~davidfett@195.140.213.38)
07:35:50 Sorna joins (~Sornaensi@79.142.232.102)
07:35:54 <maerwald> do mods enforce pronoun compliance here?
07:35:56 jumper149 joins (~jumper149@80.240.31.34)
07:36:45 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds)
07:37:41 jb55 joins (~jb55@gateway/tor-sasl/jb55)
07:38:36 × Sornaensis quits (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 260 seconds)
07:41:20 <toppler`> One of my maths tutors said that the purpose of "we" is so that when you make a mistake, you can blame everyone.
07:42:17 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
07:44:23 <pjb> toppler`: math tutors have a good sense of humour in general.
07:46:11 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
07:46:26 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
07:47:25 <tdammers> maerwald: only if your pronouns are "xhkle/xhklim/xhkler"
07:48:11 michalz joins (~user@185.246.204.56)
07:58:15 <tdammers> though on a more serious note, singular / plural are highly messed up in most European languages, partly due to the frequent language clashes, partly due to feudalism and the habit of using singular and plural as expressions of social status
07:59:23 <pjb> tdammers: on a more serious notes, language is more sophisticated that SJW believe.
07:59:48 <pjb> tdammers: ie. the grammatical form is UNRELATED to the actual physical or biological reality!
07:59:52 <pjb> DUH!
08:00:06 <pjb> tdammers: in French, a table is female, a desk is male !!!
08:00:25 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:00:37 GZJ0X_ joins (~gzj@unaffiliated/gzj)
08:00:45 <pjb> tdammers: grammatical singular and plural, just like grammatical gender, are unrelated to number and sex.
08:01:07 <Uniaika> am French, can testify our pronouns system is fucked up
08:01:14 <pjb> It is not.
08:01:23 <Uniaika> It is
08:01:24 <pjb> Grammar works at a higher, and more symbolic level.
08:01:24 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
08:01:35 <Uniaika> then why don't we have a neutral pronoun?
08:01:46 <pjb> But we have it!
08:02:03 <pjb> "on"
08:02:29 kritzefitz joins (~kritzefit@212.86.56.80)
08:02:31 <pjb> and male is neutral as well as it covers both male and female.
08:02:43 <gnumonic> Eh we don't have a real second person plural in english. Y'all? Youse? Yinz?
08:02:50 <Uniaika> gnumonic: thy
08:02:54 <Uniaika> ah, plural
08:02:55 <Uniaika> well
08:02:58 <Uniaika> it's "you"
08:03:11 <Uniaika> but English forgot its second person singular
08:03:14 <Uniaika> which is a pity
08:03:33 × gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds)
08:03:34 <tdammers> pjb: they are not entirely unrelated, but the relationship is much more complex than a plain "equals" or "implies"
08:03:34 <pjb> If you're unstatisfied of the historic layers in natural languages, you should just start again from scratch.
08:04:37 <tdammers> but yes, it is important to recognize that grammatical gender, social gender, and biological sex, are different things that correlate to varying degrees
08:04:59 <Uniaika> tdammers: yep
08:05:05 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
08:06:26 <tdammers> for example, when it is clear from the context that I am talking about a human whom I know personally, and I use grammatically male pronouns, then in practically all European languages and their associated cultures, that implies that I consider that person as socially male
08:07:06 <maerwald> tdammers: well, in #python, they are enforced, at least partly. Just wanted to check.
08:07:19 hendursa1 joins (~weechat@gateway/tor-sasl/hendursaga)
08:08:13 <maerwald> the main issue is coming up with a default pronoun
08:08:41 <tdammers> "xhkle"
08:08:47 <maerwald> :>
08:08:54 <Uniaika> hey I know that vim binding
08:09:03 <tdammers> seriously though: it's really a cultural problem rather than a linguistic one
08:09:17 <gnumonic> I just wish we had a finite set of pronouns. I'll call anyone whatever they want to be called, but pronouns sorta cease to serve the role of pronouns if you have to remember 100 different ones for 100 people -_-
08:09:33 × hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
08:09:35 <maerwald> yeah, it's unpractical
08:09:47 <tdammers> using the wrong pronouns is a problem because our culture(s) consider misgendering someone an offense
08:10:05 <tdammers> and that, in turn, is because some genders have historically been privileged, and largely still are
08:10:41 <tdammers> which is the reason why distinguishing social genders in the language is kind of a big deal in the first place
08:10:55 <tdammers> if gender didn't matter, we wouldn't have grammatical genders
08:11:05 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
08:11:22 idhugo__ joins (~idhugo@130.225.16.16)
08:11:46 <tdammers> or maybe we would, but they'd be something completely different than "male/female/neutral"; they might be something like "anthropomorph/concrete/abstract" maybe
08:11:47 <maerwald> at any rate, it's easy to avoid them altogether, by just using the nick instead
08:12:05 <tdammers> well, at least the second person pronouns in English are gender-neutral
08:12:26 <merijn> tdammers: Fun fact: some languages do have someting like "alive/dead" as "genders" :)
08:12:45 <merijn> But that's maybe more for -offtopic :p
08:12:58 <tdammers> merijn: oh yes, human languages never cease to amaze. there are languages that have different pronunciation and grammar based on the gender of the *speaker*
08:13:22 GutsTheme joins (1b04cef3@27.4.206.243)
08:13:33 × idhugo_ quits (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
08:13:35 <GutsTheme> HI
08:13:36 <opqdonut> I'm pretty glad my native language (finnish) isn't gendered at all. I think swedish is interesting in that it has male/female gendered pronouns, but nouns are gendered arbitrarily (linguistically male/neuter, but nobody thinks of it that way)
08:14:01 <opqdonut> but err yeah this is probably better suited for the offtopic channel
08:14:10 <gnumonic> Finnish: A language with no genders but like 50 different words for getting drunk :P
08:14:11 × GZJ0X_ quits (~gzj@unaffiliated/gzj) (Ping timeout: 260 seconds)
08:15:16 <Maxdamantus> gnumonic: it's "second-person singular" that's missing, not plural, but even thinking about it like that is misleading.
08:15:42 <Maxdamantus> There's only really one "singular" in English, and that's third-person.
08:16:22 <Maxdamantus> everything other than third-person singular uses regular verbs corresponding to third-person plural.
08:16:48 <Maxdamantus> I eat, we eat, you eat, they eat, it eats
08:17:59 <toppler`> Haskell types should have a gender.
08:18:32 <toppler`> Not sure how well this would play with higher-kinding.
08:18:38 <merijn> I say this topic has now officially ran its course and is thoroughly *not* Haskell related... >.>
08:18:39 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
08:18:55 <joel135> Dialects of swedish have male/female distinctions in indefinite articles (e.g. jen/je/jett instead of en/ett).
08:19:05 <Maxdamantus> I don't think it's useful enough in Haskell.
08:20:07 <GutsTheme> I want to retain the value of a variable through replicateM_ loops, how can one do that ?
08:20:08 joel135 goes to #haskell-offtopic.
08:20:08 <Maxdamantus> The purpose of distinct agreement in natural language is probably to try to resolve some syntactic/referential ambiguities, but Haskell avoids those in other ways.
08:20:45 <GutsTheme> and if that's not possible what is the functional equivalend of a while(n--) in haskell ?
08:21:09 ddellacosta joins (~ddellacos@86.106.143.183)
08:21:17 <Taneb> :t mapAccumL
08:21:18 enoq joins (~textual@194-208-146-143.lampert.tv)
08:21:19 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
08:22:11 × oo_miguel quits (~miguel@89-72-187-203.dynamic.chello.pl) (Quit: WeeChat 2.3)
08:22:41 zariuq joins (~zar@fw1.ciirc.cvut.cz)
08:22:53 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 258 seconds)
08:22:55 kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49)
08:22:56 <Maxdamantus> (eg, you don't have referential ambiguities in Haskell, because you always refer to things by unambiguously resolvable variables, rather than having constructs like "that" or "it" which could refer to one of multiple things)
08:22:57 <Taneb> GutsTheme: you can use something like mapAccumL, or you can use the StateT monad transformer from the transformers library
08:23:15 <merijn> Maxdamantus: I suggest taking the remaining discussion to #haskell-offtopic
08:23:33 <GutsTheme> yeah idk what any of that means, let's me just give you the problem that I'm trying to solve
08:24:03 fendor joins (~fendor@178.115.130.32.wireless.dyn.drei.com)
08:25:02 <tdammers> Maxdamantus: English does have first-person singular / plural, it just so happens that the verb forms are the same for almost all verbs (however: "I am" / "we are"!@)
08:25:49 × ddellacosta quits (~ddellacos@86.106.143.183) (Ping timeout: 252 seconds)
08:27:34 <GutsTheme> https://paste.tomsmeding.com/oQtvZQW2 here, I am trying to append all the points to an array and then i'll process them but the cords arrays is empty after an "iteration"
08:29:51 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
08:30:58 <merijn> You probably don't want replicateM but just a recursive loop
08:31:08 <gnumonic> Ooh if we're talking about Haskell I have a haskell question: What's an indexed cartesian store comonad?
08:31:20 <gnumonic> You can assume I know what a regular store comonad is
08:31:56 <gnumonic> And have a vague idea about what an indexed normal monad is
08:32:32 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 240 seconds)
08:33:34 × GutsTheme quits (1b04cef3@27.4.206.243) (Quit: Connection closed)
08:36:07 × fiedlr quits (~fiedlr@83.148.33.254) (Remote host closed the connection)
08:36:23 fiedlr joins (~fiedlr@83.148.33.254)
08:36:41 <joel135> Is a store comonad something like (a, _) ?
08:37:56 <joel135> Oh I see it is this structure https://hackage.haskell.org/package/comonads-fd-4.0/docs/Control-Comonad-Store.html
08:39:34 <gnumonic> Ya. an "indexed cartesian store comonad" is... something mentioned in the lens internals. I'm trying to figure out if I didn't patch this type-level lens library right or if it just can't do what I want, but I don't really understand what the point of an indexed store comonad is exactly :-(
08:39:41 _xor joins (~xor@74.215.46.133)
08:40:39 <gnumonic> It has something to do with traversals and holes and whether there are more of them or not, and something to do with how "extend" combines with a type/kind index... i think?
08:42:50 × charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 252 seconds)
08:43:07 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
08:43:27 charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com)
08:43:47 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
08:44:16 <joel135> Ok and Env e = (e, _) and Store s = (s -> _, s) are instances...
08:47:57 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
08:48:53 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
08:49:00 bb010g_ joins (uid21050@gateway/web/irccloud.com/x-onettvptumlyxjvo)
08:49:10 × bb010g_ quits (uid21050@gateway/web/irccloud.com/x-onettvptumlyxjvo) (Client Quit)
08:49:43 bb010g joins (uid21050@gateway/web/irccloud.com/x-onrynoluckjwobrc)
08:51:20 <gnumonic> I never could figure out what the point of the Env comonad was. Store is neat though. It holds a function (s -> a) and an s and spits out an a. I've been using it to simulate "reversible" effectful functions, so s = Map k (x -> m x) and a = m x, and an accessor function that folds the map with (>=>) over some initial value
08:52:02 <gnumonic> i dunno if that made any sense :p
08:55:33 <gnumonic> Everyone wanna talk about pronouns, no one wanna talk about comonads :-(
08:56:11 <joel135> I want to talk about comonads but I have to hoogle 5 things before I understand what you mean :P
08:56:50 × drbean_ quits (~drbean@TC210-63-209-68.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
08:57:20 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
08:58:14 <trcc> In some cases, you can only implement one function and then you actually get two functions. I.e. something if simple, if it is not complex. Something is complex, if it is not simple. In such a case it is only necessary to define either complex or simple, but you do not have to define two. What is this concept called?
08:58:33 <joel135> gnumonic: Is k like the Σ of a finite automaton? Could you show me an example?
08:58:48 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
08:59:50 <joel135> trcc: contrapositive ?
09:00:07 <trcc> joel135: I will try and look it up and see if that is what I mean
09:00:07 × Cesionaut[m] quits (cesionautm@gateway/shell/matrix.org/x-sdjhygltyhtlomgg) (Quit: Idle for 30+ days)
09:00:43 <trcc> I am thinking of the haskell term of this, not necessarily the abstract logic term
09:02:39 <joel135> I am not aware that you can implement one function and get two in haskell.
09:03:38 <trcc> i.e. if you make a typeclass that subclasses Eq, then you only have to implement == or \= right?
09:03:44 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
09:03:50 <trcc> but you also get the other
09:04:02 <trcc> My terminology might be off
09:04:17 <joel135> hackage uses the term 'Minimal complete definition'
09:04:58 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
09:05:06 <trcc> perfect! thank you!
09:05:08 <joel135> for Applicative this is pure, ((<*>) | liftA2)
09:05:21 <trcc> Minimal complete definition: either == or /=.
09:05:27 <trcc> this was exactly what I was looking for
09:05:28 <merijn> trcc: "default implementations"
09:05:28 <joel135> yes
09:05:29 <trcc> https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Eq.html
09:06:21 <merijn> trcc: The minimal complete definition is the set of things you need to define for a typeclass to work. The reason why you don't have to implement them all is because some typeclasses have default implementations for functions
09:06:45 <trcc> Yes I think I understand that, I just needed the term "minimal complete definition"
09:06:54 <trcc> thank you both
09:07:11 <merijn> ok, just checking, because that wasn't quite what you asked, but if it's what you wanted, good :p
09:07:24 <trcc> hehe i agree with both :D
09:07:57 <trcc> I cannot find the time to work with haskell because of other obligations, but we have a different employee who is beginning to show some interest
09:08:11 <trcc> so I can live out my haskell wild life through him ^^
09:08:13 <gnumonic> Er in my last message k is just a key (i.e. Ord k), I was just trying to point out an application of Store. If you have a map of monadic functions in the store, and the accessor function folds the map monadically, it provides a nice interface for "looking at" the output object under various combinations of the functions in the map
09:08:13 <joel135> https://hackage.haskell.org/package/comonads-fd-4.0/docs/Control-Comonad-Trans-Identity.html LOL
09:08:34 <merijn> trcc: If you want mathier terminology there's also "necessary and sufficient"
09:09:07 <gnumonic> The concrete problem I used it to solve is is like, incredibly stupid, but Store is an order of magnitude less ugly than anything else I could come up with to solve it
09:09:41 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
09:10:43 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
09:10:57 <joel135> ok so you have one way to access m x before and one way to access it after applying a subset of the things in the map
09:11:18 Guest78317 joins (~laudiacay@67.176.215.84)
09:12:03 <gnumonic> yeah. and you can manipulate the map with seeks or peeks
09:12:17 <trcc> merijn: what is mathier terminology? not familiar iwth that
09:15:11 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Ping timeout: 240 seconds)
09:15:18 <joel135> gnumonic: is this instance of ComonadStore provided by some library ?
09:15:26 × Guest78317 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
09:16:26 <merijn> trcc: "necessary and sufficient"
09:17:06 <joel135> noun - math, adjective - mathy mathier mathiest
09:17:20 × vv8 quits (~egp_@2.95.117.163) (Remote host closed the connection)
09:17:35 <gnumonic> Exactly what I'm using with the map and whatnot? Don't think so. I wasn't sure if it was generally useful enough to make it into a library and throw on hackage. Uh gimme a sec and I'll show you the code though (it's not super pretty/highly experimental/etc)
09:17:56 <joel135> good :D
09:17:58 <merijn> trcc: in mathspeak something is "necessary" if no solution/proof/whatever of a problem can be made without it (but you might need more than just the *necessary* things). And "sufficient" means that a proof can be constructed using just what you have (although it may include unnecessary/redundant things)
09:18:15 LKoen joins (~LKoen@77.168.9.109.rev.sfr.net)
09:18:23 <merijn> trcc: So "necessary and sufficient" describes a, well, "minimal and complete" set of requirements for something
09:18:39 <trcc> ahh now I get it
09:18:56 Synthetica joins (uid199651@gateway/web/irccloud.com/x-lrjabllucnezjrom)
09:20:37 <trcc> it was the adjective thing I did not get. "mathier" I was looking it up in dictionaries and stuff hehe
09:21:07 × forell quits (~forell@unaffiliated/forell) (Quit: ZNC - https://znc.in)
09:21:14 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
09:21:51 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:22:30 <merijn> ah :D
09:22:59 forell joins (~forell@unaffiliated/forell)
09:24:34 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:25:17 <gnumonic> https://github.com/gnumonik/refractor/blob/main/src/Control/Refractor/Refractor.hs (again that's kind of a mess / dunno how useful it'll be but it might communicate the idea)
09:25:30 <tdammers> I've always rolled with "necessary" = "if this is not met, then the answer is definitely 'no'"; "sufficient" = "if this is met, then the answer is definitely 'yes'"; and in between the two, you have "maybe, maybe not"
09:25:46 <gnumonic> The RMap thing is just a hacked-together ordered map that I made because I thought I wanted a Control.Lens.At instance and a regular OMap violates a lens law, or something
09:27:56 <gnumonic> q is necessary for p = p -> q = ~q -> ~p (the latter seems more intuitive for some reason)
09:32:18 <joel135> I am not seeing a ComonadStore instance anywhere.
09:33:12 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:34:41 <gnumonic> Er crap I forgot I changed it to the GADT version that doesn't have one, oops. Nevermind :-(
09:34:44 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
09:34:52 heatsink_ joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:35:03 ddellacosta joins (~ddellacos@86.106.143.10)
09:36:37 <joel135> ok
09:39:12 × ddellacosta quits (~ddellacos@86.106.143.10) (Ping timeout: 240 seconds)
09:39:21 × heatsink_ quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
09:43:02 vv8 joins (~egp_@2.95.117.163)
09:43:06 × todda7 quits (~torstein@athedsl-4519432.home.otenet.gr) (Ping timeout: 240 seconds)
09:43:11 × bennofs__ quits (~quassel@x4db75e90.dyn.telefonica.de) (Ping timeout: 240 seconds)
09:45:13 DavidEichmann joins (~david@147.136.46.217.dyn.plus.net)
09:46:55 bennofs_ joins (~quassel@x4db75e90.dyn.telefonica.de)
09:52:53 × bennofs_ quits (~quassel@x4db75e90.dyn.telefonica.de) (Ping timeout: 246 seconds)
09:56:54 malumore joins (~malumore@151.62.117.103)
09:57:29 <jumper149> I just added GHC 9.0.1 to my CI and noticed some problem: https://travis-ci.com/github/jumper149/blucontrol/jobs/499336792#L486
09:57:40 <jumper149> Are problems with the monad-control library expected?
09:58:59 nicholasbulka joins (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c)
10:02:56 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
10:03:23 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c) (Ping timeout: 250 seconds)
10:03:28 todda7 joins (~torstein@ppp-2-85-110-156.home.otenet.gr)
10:03:33 nineonine joins (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849)
10:05:07 slaterr joins (~bc8134e3@217.29.117.252)
10:05:48 guy25 joins (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net)
10:06:08 <slaterr> hi. I like to pass this page around to show the usefulness of monad abstraction, but taking a closer look, code in the list monad seems to be wrong? last expression in do block prints, instead of returning a list. https://philipnilsson.github.io/Badness10k/escaping-hell-with-monads/
10:06:34 <slaterr> actually, all the examples print
10:06:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:06:42 <slaterr> so the are all using IO monad :-O
10:06:50 <guy25> I know this is a bit of an oxymoron, but can we ask general help questions here
10:07:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:09:01 × nineonine quits (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 250 seconds)
10:09:37 <guy25> would anyone mind installing a package with cabal for me?
10:10:04 <guy25> it keeps failing and I have a feeling it's not my end
10:10:57 philderbeast joins (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
10:11:40 Rudd0 joins (~Rudd0@185.189.115.108)
10:12:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:13:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:13:44 ddellacosta joins (~ddellacos@86.106.143.222)
10:14:19 × guy25 quits (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net) (Quit: Connection closed)
10:15:34 <olligobber> what package? and they're gone
10:15:53 <jumper149> slaterr: Yeah I think you are right with that one. Monad transformers can still provide the same thing with `lift print d` for example. The `ListT` monad transformer is a weird thing though. Better use a streaming library.
10:17:21 <olligobber> if you replace print d with pure $ print d, and then put a fold at the start, it works
10:17:52 × quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
10:18:16 <olligobber> well, maybe not for all of them, but fold will do Maybe (IO ()) -> IO () and [IO ()] -> IO ()
10:18:21 × ddellacosta quits (~ddellacos@86.106.143.222) (Ping timeout: 268 seconds)
10:19:37 <olligobber> the state one has like runState or evalState or execState to get the return value out
10:19:46 <olligobber> I don't know how continuations work
10:20:22 × sdx32 quits (~sdx23@unaffiliated/sdx23) (Ping timeout: 252 seconds)
10:23:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:24:26 <slaterr> :t fold
10:24:27 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
10:24:28 <lambdabot> (Foldable t, Monoid m) => t m -> m
10:24:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:24:48 <olligobber> % fold [print 1, print 2, print 4]
10:24:49 <yahb> olligobber: 1; 2; 4
10:25:04 <olligobber> % fold Nothing :: IO ()
10:25:04 <yahb> olligobber:
10:25:14 <olligobber> % fold (Just (print 1))
10:25:14 <yahb> olligobber: 1
10:25:35 <slaterr> so it is like sequence_
10:25:59 <olligobber> probably does the same thing actually
10:26:13 <olligobber> :t sequence_
10:26:14 <lambdabot> (Foldable t, Monad m) => t (m a) -> m ()
10:26:24 <slaterr> just more general
10:26:27 Wo[m] joins (lykos-2021@gateway/shell/matrix.org/x-tfamvfkpyyipdlgr)
10:26:56 <olligobber> sequence_ is for monads, fold is for monoids, IO () is both
10:28:56 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
10:29:17 usr25 joins (~usr25@unaffiliated/usr25)
10:29:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:30:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:31:04 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
10:36:12 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:36:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:36:42 dyeplexer joins (~lol@unaffiliated/terpin)
10:39:46 × plutoniix quits (~q@184.82.212.134) (Ping timeout: 240 seconds)
10:41:10 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
10:42:36 Sorny joins (~Sornaensi@077213200034.dynamic.telenor.dk)
10:43:42 × idhugo__ quits (~idhugo@130.225.16.16) (Read error: Connection reset by peer)
10:45:07 nineonine joins (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a)
10:45:20 idhugo__ joins (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net)
10:46:04 × Sorna quits (~Sornaensi@79.142.232.102) (Ping timeout: 252 seconds)
10:46:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:47:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:48:21 ddellacosta joins (~ddellacos@83.143.246.110)
10:49:34 × nineonine quits (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a) (Ping timeout: 245 seconds)
10:50:40 thblt joins (~thblt@unaffiliated/thblt)
10:50:54 thblt parts (~thblt@unaffiliated/thblt) ("ERC (IRC client for Emacs 28.0.50)")
10:52:25 zebrag joins (~inkbottle@aaubervilliers-654-1-107-209.w86-212.abo.wanadoo.fr)
10:52:44 × ddellacosta quits (~ddellacos@83.143.246.110) (Ping timeout: 246 seconds)
10:52:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
10:53:10 × zebrag quits (~inkbottle@aaubervilliers-654-1-107-209.w86-212.abo.wanadoo.fr) (Client Quit)
10:53:12 __monty__ joins (~toonn@unaffiliated/toonn)
10:53:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:01:48 minoru_shiraeesh joins (~shiraeesh@109.166.57.43)
11:08:59 HannaM joins (~quassel@p54849510.dip0.t-ipconnect.de)
11:13:55 aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
11:14:41 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
11:14:42 ashesham` joins (~user@d8d87d1b0.access.telenet.be)
11:16:19 × asheshambasta quits (~user@ptr-e1lysawvmwijg2oywyl.18120a2.ip6.access.telenet.be) (Ping timeout: 260 seconds)
11:18:44 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
11:22:06 × minoru_shiraeesh quits (~shiraeesh@109.166.57.43) (Ping timeout: 240 seconds)
11:24:41 Guest81955 joins (b3d906da@179.217.6.218)
11:25:43 × Guest81955 quits (b3d906da@179.217.6.218) (Client Quit)
11:25:46 raichoo joins (~raichoo@dslb-178-009-065-077.178.009.pools.vodafone-ip.de)
11:26:06 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
11:26:12 puke joins (~vroom@217.138.252.184)
11:29:04 minoru_shiraeesh joins (~shiraeesh@109.166.57.43)
11:30:26 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
11:31:08 Sornaensis joins (~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
11:31:18 nicholasbulka joins (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c)
11:33:41 × Sorny quits (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 240 seconds)
11:36:43 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:36:48 frozenErebus joins (~frozenEre@37.231.244.249)
11:38:57 aveltras joins (uid364989@gateway/web/irccloud.com/x-muzwlbtiuimflysf)
11:39:24 CiaoSen joins (~Jura@p200300c9574e1e00229f455a1e4eecce.dip0.t-ipconnect.de)
11:40:59 × todda7 quits (~torstein@ppp-2-85-110-156.home.otenet.gr) (Ping timeout: 268 seconds)
11:41:13 chele_ joins (~chele@5.53.222.202)
11:41:27 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
11:42:46 × chele quits (~chele@5.53.222.202) (Disconnected by services)
11:42:50 chele_ is now known as chele
11:44:51 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
11:48:01 × bb010g quits (uid21050@gateway/web/irccloud.com/x-onrynoluckjwobrc) (Quit: Connection closed for inactivity)
11:51:33 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
11:53:58 dmytrish joins (~mitra@2a02:8084:a82:d900:319a:d200:a43d:3e3c)
11:54:14 × vv8 quits (~egp_@2.95.117.163) (Quit: EXIT)
11:54:36 vv8 joins (~egp_@2.95.117.163)
11:54:52 Alleria joins (~textual@mskresolve-a.mskcc.org)
11:55:15 Alleria is now known as Guest70321
11:56:38 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
12:00:42 ddellacosta joins (~ddellacos@86.106.143.248)
12:01:49 urodna joins (~urodna@unaffiliated/urodna)
12:02:48 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
12:04:36 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
12:04:42 × dmytrish quits (~mitra@2a02:8084:a82:d900:319a:d200:a43d:3e3c) (Quit: Konversation terminated!)
12:04:50 × ddellacosta quits (~ddellacos@86.106.143.248) (Ping timeout: 246 seconds)
12:05:02 × dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 268 seconds)
12:05:35 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c) (Ping timeout: 250 seconds)
12:07:07 dmytrish joins (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9)
12:08:20 todda7 joins (~torstein@athedsl-4519432.home.otenet.gr)
12:11:59 jakalx parts (~jakalx@base.jakalx.net) ()
12:13:59 × MrMobius quits (~MrMobius@208.58.206.154) (Read error: Connection reset by peer)
12:14:51 wmacmil joins (~wmacmil@c83-248-72-252.bredband.comhem.se)
12:15:01 MrMobius joins (~MrMobius@208.58.206.154)
12:15:13 <infinisil> :t sequenceA
12:15:15 <lambdabot> (Traversable t, Applicative f) => t (f a) -> f (t a)
12:15:35 malumore_ joins (~malumore@151.62.117.103)
12:16:19 × ericsagnes quits (~ericsagne@2405:6580:0:5100:f72c:ebd9:1857:d75c) (Ping timeout: 248 seconds)
12:18:25 × malumore quits (~malumore@151.62.117.103) (Ping timeout: 260 seconds)
12:19:32 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
12:20:37 knupfer joins (~Thunderbi@200116b82b68a200a5742d391fae1c41.dip.versatel-1u1.de)
12:21:39 × CiaoSen quits (~Jura@p200300c9574e1e00229f455a1e4eecce.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:23:22 CiaoSen joins (~Jura@p5dcc163c.dip0.t-ipconnect.de)
12:24:02 rodriga joins (~quassel@134.204.25.66)
12:27:03 drbean_ joins (~drbean@TC210-63-209-146.static.apol.com.tw)
12:27:18 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:28:28 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
12:28:39 ericsagnes joins (~ericsagne@2405:6580:0:5100:7417:4794:7820:3adc)
12:30:34 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 276 seconds)
12:30:57 ddellacosta joins (~ddellacos@86.106.143.40)
12:33:02 × wmacmil quits (~wmacmil@c83-248-72-252.bredband.comhem.se) (Read error: Connection reset by peer)
12:33:14 adiosf6f[m] joins (adiosf6fma@gateway/shell/matrix.org/x-sxrfngbhrelkblkw)
12:33:23 wmacmil joins (~wmacmil@c83-248-72-252.bredband.comhem.se)
12:33:54 adiosf6f[m] parts (adiosf6fma@gateway/shell/matrix.org/x-sxrfngbhrelkblkw) ("User left")
12:34:32 × wmacmil quits (~wmacmil@c83-248-72-252.bredband.comhem.se) (Remote host closed the connection)
12:34:47 wmacmil joins (~wmacmil@c83-248-72-252.bredband.comhem.se)
12:37:29 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:38:36 × slaterr quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (EOF))
12:41:20 × knupfer quits (~Thunderbi@200116b82b68a200a5742d391fae1c41.dip.versatel-1u1.de) (Remote host closed the connection)
12:41:46 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
12:41:59 bitmapper joins (uid464869@gateway/web/irccloud.com/x-uwdxggeqquhliznf)
12:42:33 knupfer joins (~Thunderbi@200116b82b68a2004db076fcee496007.dip.versatel-1u1.de)
12:46:06 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
12:47:50 jakalx joins (~jakalx@base.jakalx.net)
12:51:33 × minoru_shiraeesh quits (~shiraeesh@109.166.57.43) (Ping timeout: 260 seconds)
12:53:21 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
12:53:26 × dpl quits (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 240 seconds)
12:53:51 alx741 joins (~alx741@186.178.109.113)
12:58:26 minoru_shiraeesh joins (~shiraeesh@109.166.57.43)
12:58:39 Tario joins (~Tario@201.192.165.173)
12:59:05 × alx741 quits (~alx741@186.178.109.113) (Ping timeout: 246 seconds)
13:00:49 × hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 252 seconds)
13:03:01 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds)
13:03:49 Tario joins (~Tario@201.192.165.173)
13:05:04 × shailangsa quits (~shailangs@host86-185-98-61.range86-185.btcentralplus.com) (Ping timeout: 265 seconds)
13:07:44 × fiedlr quits (~fiedlr@83.148.33.254) (Remote host closed the connection)
13:07:49 son0p joins (~ff@181.136.122.143)
13:08:03 fiedlr joins (~fiedlr@83.148.33.254)
13:11:41 nicholasbulka joins (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c)
13:11:42 Guest78317 joins (~laudiacay@67.176.215.84)
13:12:07 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c) (Remote host closed the connection)
13:12:38 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
13:14:02 × wmacmil quits (~wmacmil@c83-248-72-252.bredband.comhem.se) (Remote host closed the connection)
13:14:15 wmacmil joins (~wmacmil@c83-248-72-252.bredband.comhem.se)
13:15:46 × Guest78317 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
13:16:09 ddellac__ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
13:16:54 idhugo_ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
13:17:50 waleee-cl joins (uid373333@gateway/web/irccloud.com/x-pqcbjjfbbjmsxwwn)
13:18:11 bor0 joins (~boro@unaffiliated/boro/x-000000001)
13:18:56 × loller_ quits (uid358106@gateway/web/irccloud.com/x-uyikepdymdnjzedf) (Quit: Connection closed for inactivity)
13:19:32 × wmacmil quits (~wmacmil@c83-248-72-252.bredband.comhem.se) (Remote host closed the connection)
13:19:34 × idhugo__ quits (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
13:19:44 wmacmil joins (~wmacmil@c83-248-72-252.bredband.comhem.se)
13:21:02 × wmacmil quits (~wmacmil@c83-248-72-252.bredband.comhem.se) (Remote host closed the connection)
13:21:46 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
13:22:59 × ddellac__ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
13:25:14 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:28:43 ddellac__ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
13:33:37 carlomagno joins (~cararell@148.87.23.8)
13:34:22 × ddellacosta quits (~ddellacos@86.106.143.40) (Ping timeout: 252 seconds)
13:38:05 × ddellac__ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
13:38:06 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:40:05 × minoru_shiraeesh quits (~shiraeesh@109.166.57.43) (Ping timeout: 260 seconds)
13:41:22 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
13:42:12 alx741 joins (~alx741@186.178.109.113)
13:42:31 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
13:44:01 × drbean_ quits (~drbean@TC210-63-209-146.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
13:44:38 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
13:45:54 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
13:47:17 barzo joins (~sosal@159.146.53.142)
13:49:36 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
13:54:26 × bor0 quits (~boro@unaffiliated/boro/x-000000001) (Quit: Leaving)
13:55:58 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 252 seconds)
13:57:39 <lechner> Hi, is it now possible to build multiple executables in a stack project? How? Thanks!
13:58:12 frozenErebus joins (~frozenEre@37.231.244.249)
13:58:17 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 260 seconds)
13:58:43 × dmytrish quits (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds)
13:59:21 wonko7 joins (~wonko7@62.115.229.50)
14:00:33 Jd007 joins (~Jd007@162.156.11.151)
14:01:29 hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube)
14:02:05 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
14:04:11 × elliott__ quits (~elliott@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
14:06:21 × johannes_ quits (~johannes@mue-88-130-62-032.dsl.tropolys.de) (Quit: leaving)
14:06:46 <raehik> I want to contact the Hackage maintainers regarding a pkg issue, is this wiki page up to date? https://wiki.haskell.org/Taking_over_a_package
14:07:06 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
14:07:27 <raehik> last update from 2015, and the hackage.haskell.org email doesn't match with other contact I've had with the maintainers
14:07:53 × jess quits (jess@freenode/staff/jess) (Ping timeout: 622 seconds)
14:14:35 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
14:14:54 × unyu quits (~pyon@unaffiliated/pyon) (Quit: Reboot.)
14:16:40 unyu joins (~pyon@unaffiliated/pyon)
14:18:38 × aveltras quits (uid364989@gateway/web/irccloud.com/x-muzwlbtiuimflysf) (Quit: Connection closed for inactivity)
14:19:44 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:23:42 shailangsa joins (~shailangs@host86-186-132-20.range86-186.btcentralplus.com)
14:24:27 <edwardk> raehik: usually i'd start with an email to the libraries@ mailing list to see if the author will respond, then gradually escalate rather than dive straight into emailing the trustees
14:25:30 <raehik> edwardk: Thanks. It's a bit of a specific problem, the pkg seems to have orphaned itself. I work with the maintainer, they somehow have lost their upload rights and we can't find anyone who can upload
14:25:40 <merijn> edwardk: admins and trustees are different, trustees can't take over anything anyhow :p
14:26:04 <merijn> raehik: Then the maintainer should just mail hackage admins
14:26:27 <merijn> They should be able to see what happened, who (if anyone) has upload rights and/or restore rights
14:26:28 <raehik> I ended up emailing the trustees and that admin email on the wiki
14:26:33 <edwardk> merijn: indeed
14:26:54 <merijn> raehik: trustees can't do anything besides publish revisions (i.e. new bounds)
14:26:56 <edwardk> raehik: then in that case yeah, contacting the admins off that link looks to be the right way to fix it
14:27:19 <raehik> right thanks merijn and edwardk -- was mostly curious if that email was correct. doesn't match the other Hackage ones
14:27:41 <edwardk> raehik my understanding is it hasn't changed. if it doesn't get through you can always ping tapas here
14:27:49 <edwardk> and try to get things rolling another way
14:29:06 <raehik> Fab, I'll wait a while and keep that in mind. Cheers for the help
14:30:22 ClaudiusMaximus joins (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
14:30:40 × ClaudiusMaximus quits (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host)
14:30:40 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
14:31:17 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:33:32 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
14:33:35 × p3n quits (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Remote host closed the connection)
14:33:41 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
14:35:47 viluon joins (uid453725@gateway/web/irccloud.com/x-ftnuqxhuphmmdyvk)
14:35:49 jamm_ joins (~jamm@unaffiliated/jamm)
14:36:45 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
14:38:08 × davidfetter1 quits (~davidfett@195.140.213.38) (Remote host closed the connection)
14:38:08 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
14:38:32 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
14:38:49 × zariuq quits (~zar@fw1.ciirc.cvut.cz) (Quit: Leaving)
14:41:36 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
14:43:46 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:46:38 nineonine joins (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a)
14:47:00 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
14:48:13 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
14:49:34 ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
14:50:52 Sheilong joins (uid293653@gateway/web/irccloud.com/x-fxkopagyhurwlxby)
14:51:03 × coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
14:51:42 × enoq quits (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
14:51:59 × nineonine quits (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a) (Ping timeout: 250 seconds)
14:53:05 rj joins (~x@gateway/tor-sasl/rj)
14:53:14 × hexfive quits (~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
14:53:15 p3n joins (~p3n@217.198.124.246)
14:54:07 Barras2 joins (~Barras2@139.28.218.148)
14:56:44 dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-tozcupusvmlxhyii)
14:57:57 jao joins (~jao@pdpc/supporter/professional/jao)
14:57:58 × hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 252 seconds)
14:59:52 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
15:00:05 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
15:00:34 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
15:00:45 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
15:04:52 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Ping timeout: 240 seconds)
15:06:11 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
15:06:46 hiroaki_ joins (~hiroaki@2a02:8108:8c40:2bb8:32e1:d1a7:8b3e:afc2)
15:07:04 barakkleyman_ joins (~barakkley@2.55.141.207)
15:09:43 ddellacosta joins (~ddellacos@86.106.143.183)
15:10:15 dpl joins (~dpl@77-121-78-163.chn.volia.net)
15:10:48 × xsperry quits (~as@unaffiliated/xsperry) ()
15:14:26 × ddellacosta quits (~ddellacos@86.106.143.183) (Ping timeout: 252 seconds)
15:19:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
15:19:17 × ashesham` quits (~user@d8d87d1b0.access.telenet.be) (Ping timeout: 268 seconds)
15:23:38 × CiaoSen quits (~Jura@p5dcc163c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
15:24:28 rj joins (~x@gateway/tor-sasl/rj)
15:24:45 × idhugo_ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
15:27:28 dyeplexer joins (~lol@unaffiliated/terpin)
15:29:38 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
15:29:42 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Read error: Connection reset by peer)
15:29:56 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
15:30:51 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
15:32:51 × barakkleyman_ quits (~barakkley@2.55.141.207) (Ping timeout: 268 seconds)
15:37:59 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:40:35 hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube)
15:40:44 barakkl1993 joins (~barakkley@2.55.141.207)
15:43:50 × kuribas quits (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer)
15:45:37 Guest78317 joins (~laudiacay@67.176.215.84)
15:46:49 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
15:49:01 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
15:50:22 × Guest78317 quits (~laudiacay@67.176.215.84) (Ping timeout: 265 seconds)
15:50:41 × hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 240 seconds)
15:50:51 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
15:51:09 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
15:51:27 kuribas joins (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be)
15:51:56 nineonine joins (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a)
15:52:06 xsperry joins (~as@unaffiliated/xsperry)
15:52:39 mctpyt joins (~mctpyt@unaffiliated/mctpyt)
15:52:39 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:52:50 × nineonine quits (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a) (Remote host closed the connection)
15:53:04 nineonine joins (~nineonine@2604:3d08:7785:9600:e0d9:4197:14e4:81a)
15:54:54 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:55:13 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
15:56:07 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 250 seconds)
15:57:28 ADG1089 joins (~aditya@223.236.174.241)
15:57:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
15:58:05 kenanmarasli joins (1fdf0934@31.223.9.52)
15:58:11 <ADG1089> where can i read up on how to write comments to functions, guards, chained calls, etc.? I have been only using "-- comments" and "{- comment -}" till now
15:58:24 hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube)
15:58:34 <monochrom> That is all.
15:59:14 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:59:30 <ADG1089> there is ^-- |-- $-- like comments that I've seen
15:59:40 <monochrom> Those are for haddock.
15:59:43 <ski> @where Haddock
15:59:43 <lambdabot> http://www.haskell.org/haddock/
15:59:55 <monochrom> And still none for guards or chained calls.
16:00:24 Rudd0 joins (~Rudd0@185.189.115.108)
16:01:16 <monochrom> And still within the framework of -- and {- -}
16:01:17 <ski> (there's also `{-# ... #-}' for pragmas)
16:01:28 <maerwald> I wish there was a way to import haddock from another module
16:02:34 <maerwald> hugely annoying if you have wrapping APIs
16:02:45 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
16:03:08 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:03:27 <c_wraith> there is, to some extent.
16:03:57 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
16:04:02 <monochrom> There is. I forgot how. But when you see, for example, some module's doc reciting part or even all of Control.Exception's doc, this is it.
16:04:18 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
16:04:26 <monochrom> Something about re-exporting.
16:04:28 <c_wraith> you can tell haddock that a particular module isn't the documentation home for things it defines. So they get documented in other modules that export them.
16:04:45 <c_wraith> It's limited in granularity, but it serves that purpose
16:05:02 pengjiz joins (~user@2601:547:902:6d00::2)
16:06:05 <c_wraith> Checking one of my packages that uses it... Looks like {-# OPTIONS_HADDOCK not-home #-}
16:06:07 × ericsagnes quits (~ericsagne@2405:6580:0:5100:7417:4794:7820:3adc) (Ping timeout: 260 seconds)
16:06:09 <monochrom> And for example Control.Monad.Writer.Lazy (package mtl) reciting stuff from Control.Monad.Trans.Writer.Lazy (package transformers)
16:07:26 × kuribas quits (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer)
16:08:23 Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-ktsmcyuxlppyzjzb)
16:09:23 cfricke joins (cfricke@gateway/vpn/mullvad/cfricke)
16:09:40 × dolio quits (~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.2 - https://znc.in)
16:11:23 rj joins (~x@gateway/tor-sasl/rj)
16:12:33 kuribas joins (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be)
16:14:25 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 252 seconds)
16:14:34 dolio joins (~dolio@haskell/developer/dolio)
16:14:44 × cfricke quits (cfricke@gateway/vpn/mullvad/cfricke) (Ping timeout: 246 seconds)
16:15:52 × barakkl1993 quits (~barakkley@2.55.141.207) (Ping timeout: 240 seconds)
16:17:54 cohn parts (~noone@unaffiliated/cohn) ()
16:18:37 ericsagnes joins (~ericsagne@2405:6580:0:5100:82c:fa7c:5833:ee7a)
16:20:43 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:21:05 barakkl1993 joins (~barakkley@2.55.190.28)
16:21:32 × kuribas quits (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer)
16:23:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:26:16 cohn joins (~noone@unaffiliated/cohn)
16:27:28 minoru_shiraeesh joins (~shiraeesh@109.166.57.43)
16:28:08 cfricke joins (~cfricke@unaffiliated/cfricke)
16:28:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
16:28:54 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
16:29:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:30:20 jamm_ joins (~jamm@unaffiliated/jamm)
16:30:46 v01d4lph4 joins (~v01d4lph4@27.57.103.213)
16:32:45 Kaeipi is now known as Kaiepi
16:32:46 × kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
16:33:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
16:34:21 morkessa joins (~kelsey@096-033-168-208.res.spectrum.com)
16:34:58 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 276 seconds)
16:35:19 × v01d4lph4 quits (~v01d4lph4@27.57.103.213) (Ping timeout: 265 seconds)
16:35:46 × mctpyt quits (~mctpyt@unaffiliated/mctpyt) (Ping timeout: 240 seconds)
16:37:34 basenode joins (~user@gateway/tor-sasl/basenode)
16:37:39 <basenode> hello?
16:37:42 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
16:37:42 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
16:38:02 mctpyt joins (~mctpyt@unaffiliated/mctpyt)
16:38:20 <sm[m]> hello
16:39:15 × hiroaki_ quits (~hiroaki@2a02:8108:8c40:2bb8:32e1:d1a7:8b3e:afc2) (Ping timeout: 260 seconds)
16:39:19 <basenode> hi, i have a quick question: is it possible to convert a (previously nested) flattened (ordered) list to a nested structure with O(n) complexity recursively?
16:41:19 <basenode> i.e. [{id: 1, parent_id: nil}, {id: 2, parent_id: 1}, {id: 3: parent_id: nil}] to [{id: 1, children: [{id: 2}]}, {id: 2, children: []}]
16:41:55 × minoru_shiraeesh quits (~shiraeesh@109.166.57.43) (Ping timeout: 252 seconds)
16:42:19 <sm[m]> I don't know if this will help, but did you know it's possible to have a flat list that is also a nested tree ?
16:42:53 morkessa parts (~kelsey@096-033-168-208.res.spectrum.com) ()
16:43:20 <sm[m]> sorry, I don't know the answer to your q
16:43:57 <basenode> sm[m]: no problem, thanks anyway
16:43:58 <sm[m]> but I'll guess yes
16:44:11 <basenode> i feel like its yes too, but i just don't know how to do it
16:45:30 frozenErebus joins (~frozenEre@37.231.244.249)
16:47:17 gitgood joins (~gitgood@80-44-9-246.dynamic.dsl.as9105.com)
16:47:37 <sm[m]> maybe https://hackage.haskell.org/package/hledger-lib-1.21/docs/src/Hledger.Utils.Tree.html gives ideas
16:48:04 <wroathe> basenode: It would be O(n) for iterating the source array, but inserting into the target tree will likely require an O(log(n)) lookup
16:48:08 geiger_ joins (~geiger@90.212.77.86)
16:48:21 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
16:48:36 howdoi joins (uid224@gateway/web/irccloud.com/x-pwqigqguzpkhpeqf)
16:49:18 × mctpyt quits (~mctpyt@unaffiliated/mctpyt) (Quit: WeeChat 3.1)
16:49:33 <wroathe> basenode: You'll be looking up nodes by parent id in the target tree
16:50:13 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
16:50:56 idhugo_ joins (~idhugo@87.49.147.45)
16:51:25 × geiger quits (~geiger@90.212.77.86) (Ping timeout: 260 seconds)
16:51:58 rj joins (~x@gateway/tor-sasl/rj)
16:52:27 × Techcable quits (~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in)
16:55:09 Techcable joins (~Techcable@168.235.93.147)
16:55:43 <basenode> wroathe: ah ok, i thought i might be able to iterate over each element only once
16:56:08 minoru_shiraeesh joins (~shiraeesh@109.166.57.43)
16:56:51 <wroathe> basenode: Oh, I missed the detail where you said they were sorted
16:56:58 <wroathe> basenode: If they're sorted you can
16:57:01 <basenode> ah
16:57:16 <basenode> yeah that's quite an important detail i think ;)
16:57:46 × gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
17:03:18 <basenode> wroathe: any idea what the general algorithm for this would look like?
17:04:32 frozenErebus joins (~frozenEre@37.231.244.249)
17:07:22 unlink_ joins (~unlink2@p57b8541f.dip0.t-ipconnect.de)
17:08:13 × unlink2 quits (~unlink2@p57b853bf.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:08:55 × ADG1089 quits (~aditya@223.236.174.241) (Quit: Konversation terminated!)
17:09:06 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
17:10:26 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:11:32 <wroathe> basenode: The basic idea is just to leverage the call stack to store a reference to the current parent node and to iterate while the child's parent id matches the current parent
17:13:20 × coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
17:14:30 × kenanmarasli quits (1fdf0934@31.223.9.52) (Quit: Connection closed)
17:15:20 kritzefitz joins (~kritzefit@212.86.56.80)
17:16:58 <basenode> wroathe: been trying to do that for the last few hours to not much success :P
17:17:13 × idhugo_ quits (~idhugo@87.49.147.45) (Ping timeout: 240 seconds)
17:17:19 × kristijonas quits (~kristijon@78-56-32-39.static.zebra.lt) (Remote host closed the connection)
17:17:52 kristijonas joins (~kristijon@78-56-32-39.static.zebra.lt)
17:18:13 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
17:18:16 <wroathe> uno momento
17:19:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:20:19 × kristijonas quits (~kristijon@78-56-32-39.static.zebra.lt) (Remote host closed the connection)
17:20:47 kristijonas joins (~kristijon@78-56-32-39.static.zebra.lt)
17:21:52 <basenode> sure
17:22:18 × kristijonas quits (~kristijon@78-56-32-39.static.zebra.lt) (Max SendQ exceeded)
17:22:39 <basenode> im wondering, i was initially using 2 parameters in my recursion function, initial and final (where initial is the flat array, and final the nestd array)
17:22:56 <basenode> but maybe i need a 3 parameter to keep track of a particular tree?
17:23:17 kuribas joins (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be)
17:23:28 <barakkl1993> hey, I just can't see how to change this list comprehension to map and filter, [x | x <- [1..],x % 3 == 0|| x % 5 == 0, x < 1000]
17:24:11 kristijonas joins (~kristijon@78-56-32-39.static.zebra.lt)
17:24:33 × rajivr quits (uid269651@gateway/web/irccloud.com/x-ozfaqobeqdbxwvmv) (Quit: Connection closed for inactivity)
17:24:42 × kristijonas quits (~kristijon@78-56-32-39.static.zebra.lt) (Max SendQ exceeded)
17:25:23 × xff0x quits (~xff0x@2001:1a81:52f2:b700:a7c9:31ec:b9a1:9e16) (Ping timeout: 250 seconds)
17:26:14 xff0x joins (~xff0x@2001:1a81:52f2:b700:d92:ea7f:92b1:dda)
17:27:49 × barakkl1993 quits (~barakkley@2.55.190.28) (Ping timeout: 260 seconds)
17:30:53 × barzo quits (~sosal@159.146.53.142) (Read error: Connection reset by peer)
17:31:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
17:33:32 ski . o O ( "ParentTree.hs" <https://paste.tomsmeding.com/7DyPxjR6> )
17:36:08 <wroathe> basenode: Yeah, use ski's link. I'm too distracted by this Chauvin trial to be any use.
17:36:12 rj joins (~x@gateway/tor-sasl/rj)
17:36:15 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
17:36:28 <tomsmeding> n log n though
17:37:35 <tomsmeding> basenode: are you fine with ST and mutable vectors? :p
17:37:35 <ski> you could use an array/vector, and map over it
17:38:01 <ski> (assuming you can use your IDs as indices)
17:39:28 ski idly notes that the paste on the page doesn't display the form feed
17:39:36 × hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 265 seconds)
17:40:02 <tomsmeding> ski: the form feed is there in the html, your browser just doesn't do anything with it :p
17:40:13 <tomsmeding> in fact I'm not sure what it _should_ do
17:40:27 <ski> yea, i noticed it in the raw form
17:40:43 <ski> i'm not sure if it should do anything special, either .. just noticed it
17:41:04 <tomsmeding> where did the form feed come from
17:41:15 <ski> i entered it into the source, as a section separation
17:41:58 <ski> (you can navigate to previous/next page, in Emacs, using `C-x [' / `C-x ]')
17:43:40 <ski> (i tend to sometimes enter those, trying to keep pages under sixtysix lines, per the suggestion under `*** Pagination' at Riastradh's <https://mumble.net/~campbell/scheme/style.txt>)
17:44:10 <unyu> ski: `C-x [` seems to go to the top of the buffer, not just the previous page.
17:44:22 <ski> if you're already on the first page, sure
17:44:48 <unyu> I'm nowhere near the first page on this very buffer.
17:45:11 × Geekingfrog quits (geekingfro@2a01:7e01::f03c:92ff:fe48:8bdf) (Quit: ZNC 1.8.2 - https://znc.in)
17:45:20 <ski> `C-x [' is bound to `backward-page', here. perhaps you have some other binding
17:45:32 <ski> (and `C-x ]' to `forward-page')
17:45:35 <unyu> Ah...
17:45:59 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
17:46:38 jamm_ joins (~jamm@unaffiliated/jamm)
17:47:00 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
17:48:49 Geekingfrog joins (~geekingfr@li2156-64.members.linode.com)
17:51:07 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
17:51:34 frozenErebus joins (~frozenEre@37.231.244.249)
17:51:51 rond_ joins (5940206b@89-64-32-107.dynamic.chello.pl)
17:52:31 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:52:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:00:16 MrFantastik joins (~user@rrcs-184-74-43-235.nys.biz.rr.com)
18:00:53 safinaskar joins (~user@109.252.90.136)
18:01:03 <MrFantastik> is it possible to explain a monad to someone who has never programmed in haskell and doesn't know category theory?
18:01:12 <Rembane> MrFantastik: Yes!
18:01:31 <safinaskar> monochrom: Axman6: hi. you said yesterday that SPJ uses {}, show me some code, please :)
18:01:44 <tomsmeding> MrFantastik: by teaching them haskell :p
18:01:46 <MrFantastik> how would that go? that person is me lol
18:01:56 <MrFantastik> lmao
18:02:29 <MrFantastik> https://i.kym-cdn.com/entries/icons/original/000/011/656/sophiscated_cat.PNG
18:02:29 <monochrom> line 1: "do {". line 2: align with the "{" above, "; s <- getLine"
18:02:31 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
18:02:35 <MrFantastik> i should learn haskell
18:02:37 <tomsmeding> I learned monads by playing around with them in haskell, and I believe for someone without a very strong mathematical background, that's the best way
18:03:11 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:03:19 × fiedlr quits (~fiedlr@83.148.33.254) (Ping timeout: 268 seconds)
18:03:40 <monochrom> err actuall no
18:04:05 <tomsmeding> I'd say the first statement is before the first ;
18:04:12 <monochrom> line 1: "do { s <- getLine". line 2: align with the "{" above, "; putStrLn s".
18:04:18 vicfred joins (~vicfred@unaffiliated/vicfred)
18:04:22 <tomsmeding> beautiful
18:05:01 <monochrom> And at the end, "}" on its own line, aligning with that column of "{" and ";"s
18:05:44 <Cale> MrFantastik: I suppose I could try -- are you familiar with parametric data types? The most common example would be things like container data types which have a parameter for which type of elements they'd have.
18:06:17 <yushyin> safinaskar: just look at some commit from spj?
18:06:28 <yushyin> safinaskar: https://gitlab.haskell.org/ghc/ghc/-/commit/c71b220491a6ae46924cc5011b80182bcc773a58 https://gitlab.haskell.org/ghc/ghc/-/commit/0a8c14bd5a5438b1d042ad279b8ffff1bc867e7e
18:07:38 <Cale> MrFantastik: I will also say, it's probably not very useful to know much about the monad abstraction if you're not programming in a language that makes it usable. If at the end of the day, you can't really write code which would work in an arbitrary monad, then the abstraction buys you very little.
18:08:19 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 248 seconds)
18:08:24 <basenode> tomsmeding: not really honestly, i don't really know any haskell
18:08:37 <MrFantastik> Cale I'm reading https://en.wikipedia.org/wiki/Parametric_polymorphism in regards to the parameteric data types
18:08:52 <MrFantastik> your second comment is reassuring
18:08:58 <tomsmeding> basenode: I'm trying to make a fully linear version, but it involves a mutable vector somewhere :p
18:09:00 <MrFantastik> monads give me a weird sense of fomo
18:09:07 <tomsmeding> not sure you can do without if you won't accept n log n
18:09:17 <basenode> tomsmeding: as in non-recursive?
18:09:41 <wroathe> MrFantastik: They're not really that magic. They're sort of a solution to a problem that Haskell imposes on itself. Because there's no concept of a "statement" or a "step" in the computation there's no way to sequence that x should come before y. One of the things that monads do, then, is to establish sequencing by saying that some value is a _dependency_ of a computation.
18:09:55 <tomsmeding> basenode: what do you mean with recursive? that the function that builds the result should be recursive?
18:10:06 <basenode> tomsmeding: exactly
18:10:12 <tomsmeding> why do you want that? :p
18:10:18 <Cale> wroathe: I'm not sure I'd classify all monads that way
18:10:19 <basenode> tomsmeding: purity lol
18:10:39 <tomsmeding> I'm not sure what being recursive has to do with being pure, to be honest :p
18:10:41 <Cale> One particular monad is a solution to the problem that functions can't do IO, the IO monad
18:10:59 <basenode> tomsmeding: it's functional
18:10:59 <Cale> But the monad abstraction itself is useful because there are more monads than that.
18:11:09 <basenode> no mutation of state
18:11:12 <Cale> For example...
18:11:12 <tomsmeding> basenode: lots of non-recursive things are also functional :p
18:11:15 <basenode> = amazeballs
18:11:29 <tomsmeding> basenode: you can encapsulate usage of mutable state within a pure function
18:11:31 <Cale> > do x <- [1,2,3]; y <- [4,5]; return (x,y) -- lists are a monad
18:11:33 <lambdabot> [(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)]
18:11:44 <basenode> tomsmeding: isn't that a type of function though?
18:11:45 <wroathe> Cale: What would be an example of a monad that doesn't follow that pattern?
18:11:59 <monochrom> Instead of asking "is it possible?", I ask "is it necessary?".
18:12:05 <tomsmeding> basenode: a function that allocates an array, does some weird stuff with it, and finally returns a pure result is a completely pure function, but it still uses mutable things inside
18:12:16 <wroathe> Cale: The old saying with IO is that there's an implicit "real world" value that comes before the next "real world" value in the sequence
18:12:23 × kuribas quits (~user@ptr-25vy0i8idggkot642u8.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
18:12:40 <basenode> tomsmeding: ok, then i meant to say immutable(?) pure function
18:13:22 <tomsmeding> basenode: if you want to add the restriction that no mutation can be used in the function, then I don't think it's possible to do it in linear time, but not sure
18:13:33 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
18:13:38 <monochrom> It is unnecessary to learn monads outside Haskell unless you're interested in at least one of: C# LINQ, digging deeper into callback-style programming
18:13:48 <tomsmeding> or, hmm
18:14:38 <tomsmeding> no the paste posted earlier is not linear time when converted from maps to lists
18:15:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
18:15:16 <tomsmeding> basenode: lots of things get log factors when converted to a purely functional algorithm
18:15:47 <basenode> tomsmeding: ok, i guess i'm flexible on the linear time requirement, i think the immutable state is probably more important to me
18:16:15 <tomsmeding> basenode: then the paste by ski is an answer :)
18:16:20 <Cale> wroathe: Well, the bit that I was taking issue with was saying that it's a problem that Haskell imposed on itself. Most programming languages don't have a built-in notion of parsers, or nondeterminism for example
18:17:04 <Cale> wroathe: Monad captures a pattern that is common to many libraries in a particular style of functional programming, and lets us write some common control-structure-like combinators once and share that work between all the libraries.
18:18:36 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:18:37 <basenode> tomsmeding: i just have to convert it to my daily language, i can't read haskell lol
18:18:46 <tomsmeding> basenode: which is? :p
18:18:47 rj joins (~x@gateway/tor-sasl/rj)
18:18:49 <basenode> tomsmeding: elixir
18:19:02 <MrFantastik> its funny that lisp is the alien logo
18:19:13 <MrFantastik> because haskell is much more alien language like
18:19:19 <wroathe> Cale: That's the interface component of the Monad typeclass. ski and I were having a good conversation about this the other day. We landed on a few different angles for explaining monads to beginners: 1. Monads as a "box" (the most hand-wavy level), 2. Monads as programmable semicolons (the angle I was just tackling) and 3. The Monad typeclass as an interface like you might think of in any language that
18:19:25 <wroathe> supports interfaces
18:19:32 <tomsmeding> basenode: ski's solution uses haskell's laziness quite crucially though
18:19:59 <wroathe> I think ski might have mentioned one more angle
18:20:01 <basenode> tomsmeding: ah, then it that case it probably won't be too useful, otherwise i can't translate it
18:20:23 <tomsmeding> wroathe: perhaps monads as a computation? or is that nr. 1?
18:20:39 <monochrom> that's 2
18:20:56 <monochrom> programmable semicolon
18:21:00 <tomsmeding> I guess
18:21:01 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
18:21:33 <monochrom> Moggi would prefer programmable let-in but meh
18:21:39 <tomsmeding> though you can see the list monad [a] also as a computation that produces an a nondeterminstically, with a bit of squinting
18:21:42 <Cale> MrFantastik: I think it helps to have some examples, because "monad" is an abstraction, and if you don't already know any examples of the kind of thing it's abstracting over, it's not going to make sense, even though the actual content of what it is, is quite simple.
18:22:04 hiroaki_ joins (~hiroaki@2a02:8108:8c40:2bb8:bd38:fd76:9bf:a5f)
18:22:05 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
18:22:06 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
18:22:11 <MrFantastik> i've looked at some examples and have still very little understanding
18:22:34 <MrFantastik> i think they will impossible for me to understand until I need to use one
18:22:37 <tomsmeding> MrFantastik: play around with the idea, with only reading I estimate the chance very small that you'll get real understanding
18:22:45 <Cale> MrFantastik: So, my favourite example is parsers. It's possible in Haskell (and other typed functional programming languages) to define a type Parser t for things that try to consume some portion of a string, and if successful, will produce a result of type t
18:23:12 <tomsmeding> MrFantastik: and that holds for all "you", not only MrFantastik in particular :p
18:23:12 fiedlr joins (~fiedlr@83.148.33.254)
18:23:49 <tomsmeding> (unless, that is, you understand what a monoid in the category of endofunctors is -- some do)
18:23:54 <monochrom> Yeah I leverage Maybe and [] playing dual roles of being data and being simple models of non-functions, when I teach functor, applicative, monad.
18:24:06 <Cale> MrFantastik: There are a fair number of parsing libraries in Haskell which basically set out by defining a type like that, and some basic parsers for consuming a single character, or trying to match a particular string, or things like that, and then ways of combining simple parsers together to make more complicated ones
18:24:24 <safinaskar> yushyin: thanks
18:24:29 <monochrom> non-function programs
18:24:34 <MrFantastik> Cale: that sounds interesting
18:25:00 <Cale> A very basic primitive type of parser is the one which consumes none of its input, but succeeds, and produces a given result. We'll have a function:
18:25:06 <Cale> return :: t -> Parser t
18:25:08 <monochrom> Oh generally it is true that you never understand something until you need to use it.
18:25:31 <Cale> which given a value, constructs that "do nothing, successfully" sort of parser
18:25:46 <monochrom> This is why I still don't sweat myself to learn lens or Day convolutions or...
18:26:33 <Cale> MrFantastik: Okay so far?
18:27:04 <Cale> return is one of the two functions that we need to define to make Parser into a monad.
18:27:50 Deide joins (~Deide@217.155.19.23)
18:28:08 <Cale> The other, is pronounced "bind" and written (>>=) and its type might be a bit of a mouthful at first:
18:28:16 <Cale> (>>=) :: Parser a -> (a -> Parser b) -> Parser b
18:28:45 <Cale> This function takes a parser x, and some function f that's capable of consuming the results of the first parser, and producing a second parser
18:28:54 <tomsmeding> basenode: a general recipe to do your thing without laziness is: construct a map (id => parent id); construct a map (id => child id's); perform a topological sort on that last map to get a list of ids; iterate over that list in reverse, building a map (id => Node) where 'data Node = Node id [Node]'; pick the roots from that map
18:29:24 <tomsmeding> though that does still require sharing, but every purely functional language should have that
18:29:31 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:29:33 <Cale> and it stitches them together to make a parser which, when you run it on some string, will try to consume the initial portion of the input with x, and if it succeeds with some result v, will parse the remainder of the input with f v
18:30:00 <MrFantastik> and if Parser a fails?
18:30:09 <Cale> Then the combined parser fails
18:30:20 frozenErebus joins (~frozenEre@37.231.244.249)
18:30:21 <MrFantastik> what would it return then?
18:30:34 <MrFantastik> or would there be some sort of exception raised?
18:30:36 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
18:30:41 safinaskar parts (~user@109.252.90.136) ()
18:31:16 <ski> tomsmeding : i mentioned topologically sorting, then building bottom-up, in ##programming, to basenode, before
18:31:27 <Cale> It's similar to an exception, even if it's not *technically* one -- generally it's built into the definition of Parser t that it's possible for a parser to produce zero results, or fail with some error
18:32:04 <Cale> To make that more concrete, one possible implementation for a type like this (even if it's a little inefficient, it's simple) looks like:
18:32:21 <basenode> tomsmeding: yeah ski also mentioned that, i just have no experience with topological sort :P
18:32:30 <basenode> but i'll do some research, thanks for the help guys
18:32:34 <tomsmeding> you can look up algorithms for that :p
18:32:42 <Cale> data Parser t = MkParser (String -> [(t, String)])
18:32:59 <tomsmeding> I think you cannot get around a topsort; isn't this problem basically _equivalent_ to a topsort
18:33:00 <Cale> That is, a parser for things, is a function from strings to lists of pairs of things and strings :D
18:33:16 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
18:33:20 <Cale> The idea being that the parser may fail, and produce an empty list in that case
18:33:34 <Cale> Or it may succeed in a unique way, returning a list of length 1
18:33:56 <Cale> Or it might succeed in multiple ways (if the parse is ambiguous), returning a longer list
18:34:09 <Cale> and in each case, the pairs in the list are the parsed result, and the remaining portion of the input
18:34:10 <tomsmeding> basenode: if you manage to implement your problem without a topsort, then you can define a topsort function in terms of your solution
18:34:10 <ski> the cyclic construction of the table of trees effectively (implicitely) does toposort, yea
18:34:17 <tomsmeding> so if you want it or not, you're going to do a topsort :p
18:34:52 <basenode> topsort it is then!
18:34:54 ski idly recalls first hearing of toposort, in BASIC (with line numbers)
18:35:06 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
18:35:39 <wroathe> MrFantastik: Cale: You asked about exceptions. It might be illustrative to look at the definition for the "Either" monad to illustrate one way this is handled.
18:35:42 <wroathe> MrFantastik: https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/Data/Either.hs#L157-159
18:36:20 <wroathe> MrFantastik: That "interface" I was referring to was the ability to define "return" (aka "pure", above). and >>=
18:36:57 <Cale> Oh, right, it's worth pointing out that we can define a monad that simulates exceptions :)
18:37:06 <wroathe> MrFantastik: An Either value is either a Left or a Right. It's a tagged union, if you're familiar with those in other languages. If the value is a left, it's an error state, and if it's a right, it's a value state
18:37:33 <wroathe> MrFantastik: So if the Either value on the left hand side of >>= is a Left, we just "skip" the computation that would've otherwise been performed
18:37:50 <wroathe> MrFantastik: And if it's a Right, we perform the computation like normal
18:37:53 × chele quits (~chele@5.53.222.202) (Remote host closed the connection)
18:37:58 <ski> wroathe : yea .. i was circumambulating around the concepts, trying to set the context a bit more clearly, dispelling some misconceptions, and give some hopefully useful clues to get a better handle on them (it wasn't really intended as a tutorial)
18:38:28 × lambdaman quits (~lambdaman@s66-183-152-156.bc.hsia.telus.net) (Remote host closed the connection)
18:40:42 <wroathe> ski: In what context? Are you saying that none of what we discussed was a good way to help a beginner understand monads?
18:40:56 <wroathe> ski: I thought we landed on some good models for explanation there
18:41:07 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
18:41:20 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
18:41:56 <MrFantastik> so as i understand it
18:42:07 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
18:42:29 <wroathe> MrFantastik: So with that Either monad, if you were to do something like (Left "oh noes, this is an error" >>= addThree >>= timesTwo) the result of this expression would be Left "oh noes, this is an error" (ignoring the second and third terms).
18:42:35 <MrFantastik> a monad can help assign a type to a value that's type is unkown, but later will be known after the result of some function?
18:42:40 <wroathe> MrFantastik: But if you did Left "oh noes, this is an error" >>= addThree >>= timesTwo
18:42:43 <wroathe> Ignore that
18:42:48 <wroathe> mispaste
18:43:07 <wroathe> But if you did Right 3 >>= addThree >>= timesTwo the value would be Right 12
18:43:47 <Cale> MrFantastik: Well, yeah, quite often, the type that our monad is parameterised by will be the type of the eventual result of some computation.
18:44:06 <Cale> (In fact, it's always possible to think of it that way)
18:44:47 <ski> wroathe : i think (hope) that the discussion would be of some use to (a) people trying to talk about and explain monads to others; (b) people trying to get a better grip on what monad's for. (those are overlapping). however, i wasn't really trying to aim at explaining monads (people seem to agree that you (or most people, anyway) most likely really need to see more specific examples of monads, and how
18:44:54 <ski> they're used)
18:46:21 <wroathe> ski: Well, I suppose I disagree and think that the discussion was helpful for explaining monads. The interface part is a very tangible thing that people who have programmed in other languages can easily grasp.
18:46:35 <ski> i was more aiming at attempting to clarify some surrounding concepts, dispel some confusion, that i don't that often see ventilated, that could serve to help someone make more sense of it, in adjunction with additional material
18:47:26 <wroathe> ski: And then if you tackle the problem of sequencing in a lazy functional language you start getting close to an explanation for 1. what they are and 2. why they're used
18:47:37 <ski> wroathe : and yea, it was intended to be helpful. but if i were aiming to explain monads (in a more self-contained way, not relying on external sources), i'd have to walk through a lot more examples that i managed to do, there
18:48:06 <wroathe> ski: Well, that latter point is why we have books
18:48:20 <wroathe> ski: There's plenty of monad tutorials out there that tackle one monad definition at a time
18:48:26 <ski> yea. and some on-line resources
18:48:45 <ski> (unfortunately, most monad tutorials out there seem to range from bad to worse)
18:48:46 × haritz quits (~hrtz@unaffiliated/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
18:48:51 Pickchea joins (~private@unaffiliated/pickchea)
18:48:51 <wroathe> ski: But trying to explain them one monad at a time I still think leaves people confused about what all of these things have in common
18:48:58 Guest_70 joins (8a26aed7@138-38-174-215.eduroam.bath.ac.uk)
18:49:03 <monochrom> Yeah too much armchair philosophy out there.
18:50:00 <Cale> I think the examples kind of have to come first though, regardless of whether we mention that they're monads or not
18:50:17 <Cale> You can explain the abstraction without the examples, but it will seem pointless
18:50:44 <Cale> But you *do* actually need to get to the abstraction
18:50:53 <MrFantastik> I think that's the hard part
18:50:58 <ski> "What the hell are Monads?" by Noel Winstanley in 1999-02 at <https://www-users.mat.uni.torun.pl//~fly/materialy/fp/haskell-doc/Monads.html> is probably my favorite initial monad tutorial (also happens to be the first one, attempting to explain monads in general, that's not in a paper)
18:51:23 <Guest_70> Hey everyone, I am trying to install haskell on my Mac OS X El capitan latest version. I get an error message on the second confirmation of pressing enter. Here is the error message: [ Info ] verifying digest of: ghc-8.10.4-x86_64-apple-darwin.tar.xz
18:51:24 <Guest_70> [ Info ] Unpacking: ghc-8.10.4-x86_64-apple-darwin.tar.xz to /var/folders/vb/xw21l2391q90s22qq8qgxh7c0000gp/T/ghcup-ALt2jn
18:51:24 <Guest_70> dyld: lazy symbol binding failed: Symbol not found: _futimens
18:51:25 <Guest_70>   Referenced from: /Users/JoeHall/.ghcup/bin/ghcup (which was built for Mac OS X 10.13)
18:51:25 <Guest_70>   Expected in: /usr/lib/libSystem.B.dylib
18:51:26 <Guest_70> dyld: Symbol not found: _futimens
18:51:26 <Guest_70>   Referenced from: /Users/JoeHall/.ghcup/bin/ghcup (which was built for Mac OS X 10.13)
18:51:27 <Guest_70>   Expected in: /usr/lib/libSystem.B.dylib
18:51:27 <ski> it focuses on practical examples, and doing away with boilerplate repetition, by abstraction
18:51:27 <Guest_70> sh: line 45: 1008 Trace/BPT trap: 5 ghcup "$@"
18:51:28 <Guest_70> "_eghcup --cache install ghc recommended" failed!
18:51:33 <xsperry> :-O
18:51:35 <wroathe> Holy spam, batman
18:51:44 <Guest_70> sorry xD
18:51:45 <ski> Guest_70 : please don't paste many lines of text into the channel
18:51:48 <ski> @where paste
18:51:48 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
18:51:51 <Cale> I've seen a lot of "Monads in language X" posts where they translate a bunch of examples of things that would be monads in Haskell into language X, but they don't do it in such a way that you could write any code that would be shared between all the examples
18:52:13 <geekosaur> I think older OS X is no longer supported?
18:52:37 <ski> wroathe : "But trying to explain them one monad at a time .." -- yes, and so i attempted a more general, conceptual, discussion, despite being aware of pitfalls
18:52:45 <tomsmeding> yeah that error says that the executable is built for osx 10.13, whereas el capitan is 10.11
18:53:16 Sorna joins (~Sornaensi@077213200034.dynamic.telenor.dk)
18:53:17 <wroathe> ski: Cale: I just think there's low hanging fruit there to be plucked by comparing the Monad typeclass to a plain old interface in another language. Most people can immediately understand that if you can implement the interface you may have a type of monad on your hands. Then it's just a matter of determining whether it satisfied the laws and whether you may have some duplication
18:53:44 <Cale> Well, type classes are like interfaces, and Monad is a type class
18:53:50 <Cale> sure
18:54:02 <MrFantastik> screw it I'm just going to learn category theory
18:54:09 <tomsmeding> MrFantastik: be careful
18:54:10 <monochrom> Plain old interfaces in another language do not have the *->* kind. There is no translation.
18:54:12 <ski> MrFantastik : you're interested in math ?
18:54:17 <MrFantastik> I do like math a lot
18:54:20 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
18:54:34 <MrFantastik> I'm haven't learned a lot of math yet though
18:54:36 × Guest_70 quits (8a26aed7@138-38-174-215.eduroam.bath.ac.uk) (Quit: Connection closed)
18:54:57 <monochrom> But I cast type classes as operator overloading anyway, not as interfaces.
18:54:58 <tomsmeding> and realise that knowing what a monad is, mathematically, allows you to _deduce_ how to use it, but it doesn't give you any skill in using it :p
18:55:03 <ski> MrFantastik : be aware that learning CT in general probably won't have that large an effect on learning or programming in Haskell (or other languages (maybe with Charity as an exception))
18:55:21 <wroathe> monochrom: You get close enough to that with generics
18:55:27 <monochrom> And functions of type MyClass t => ..., template methods.
18:55:33 <ski> MrFantastik : that said, i'd suggest "Conceptual Mathematics: A first introduction to categories" by Lawvere & Schanuel
18:55:42 <MrFantastik> i see the language of category theory all over the haskell source code
18:55:49 haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
18:55:49 × haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
18:55:49 haritz joins (~hrtz@unaffiliated/haritz)
18:55:57 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
18:56:20 <tomsmeding> and most haskell programmers just understand those concepts in terms of what they mean operationally, not necessarily what they mean categorically in mathematics
18:56:26 × Sornaensis quits (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds)
18:56:42 <ski> monochrom : i guess, "interfaces", in the sense of module interfaces/signatures, rather than method interfaces of objects (i.e. object types) ..
18:57:01 <ski> @where Charity
18:57:01 <lambdabot> http://pll.cpsc.ucalgary.ca/charity1/www/home.html
18:57:19 lordcirth joins (~lordcirth@2607:f2c0:95b3:4400:f95c:f5c5:5660:38cf)
18:57:53 <monochrom> Associated type classes would be module interfaces.
18:58:05 <ski> MrFantastik : the specific ways in which they're being used in Haskell can, for the most part, be understood in a Haskell-internal (or programming-internal) sense, not requiring to grasp the full abstract generality of CT
18:58:12 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
18:58:20 <ski> associated ?
18:58:27 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer)
18:58:32 <monochrom> err, associated type families
18:59:08 <ski> i suppose you mean, for a type exported by a module
18:59:21 <lordcirth> I'm trying to use record dot syntax with a stack project. This is my stack.yaml: https://termbin.com/u38k "unit.hp" is treated as function composition. What am I missing? Thanks
18:59:28 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
18:59:29 <lordcirth> package.yaml* sorry
18:59:57 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
18:59:58 <monochrom> A module sig can declare both types and values. A Haskell-2010 class can only declare values.
19:00:14 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
19:00:36 <monochrom> A Haskell-2010 class falls short of being a module sig.
19:00:57 <monochrom> s/being a/covering/
19:03:02 <ski> yea. a module type parameter is not quite the same thing as a type declared in the module
19:03:02 <iphy> can you use a test from a dependent package to measure coverage of the dependency package?
19:03:49 <iphy> I have pkg1 that defines a bunch of stuff, and pkg2 that defines more stuff based on pkg1 that makes it much easier to use. I'd like to use the stuff from pkg2 to write tests for pkg1
19:04:12 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
19:04:40 <iphy> I don't want pkg2's stuff to be in pkg1 because it doesn't belong there and because of dependencies I don't want to have in pkg1
19:05:02 rj joins (~x@gateway/tor-sasl/rj)
19:17:14 Fran_ joins (~Fran@181.28.16.4)
19:17:32 <Fran_> @pl
19:17:32 <lambdabot> (line 1, column 1):
19:17:32 <lambdabot> unexpected end of input
19:17:32 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
19:17:41 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
19:21:21 <ski> @help pl
19:21:21 <lambdabot> pointless <expr>. Play with pointfree code.
19:21:48 __minoru__shirae joins (~shiraeesh@5.101.59.44)
19:22:09 × minoru_shiraeesh quits (~shiraeesh@109.166.57.43) (Ping timeout: 260 seconds)
19:22:46 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:23:07 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
19:25:51 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
19:28:34 lambdaman joins (~lambdaman@s66-183-152-156.bc.hsia.telus.net)
19:29:31 <maerwald> geekosaur: that old OS X was never supported
19:29:58 <maerwald> I think even cabal-install doesn't, but I didn't test
19:35:36 × puke quits (~vroom@217.138.252.184) (Quit: puke)
19:35:52 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
19:39:21 Sorny joins (~Sornaensi@191.96.108.77)
19:39:35 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
19:39:54 Kaiepi joins (~Kaiepi@47.54.252.148)
19:40:14 Sornaens1 joins (~Sornaensi@85.203.36.21)
19:41:56 × blankhart quits (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Ping timeout: 246 seconds)
19:42:31 × Sorna quits (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 260 seconds)
19:43:15 × Fran_ quits (~Fran@181.28.16.4) (Quit: Leaving)
19:43:22 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
19:43:41 × Sorny quits (~Sornaensi@191.96.108.77) (Ping timeout: 240 seconds)
19:44:14 × pengjiz quits (~user@2601:547:902:6d00::2) (Quit: ERC (IRC client for Emacs 27.2))
19:44:21 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
19:44:26 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
19:45:55 puke joins (~vroom@217.138.252.184)
19:46:21 rj joins (~x@gateway/tor-sasl/rj)
19:49:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:49:58 basenode parts (~user@gateway/tor-sasl/basenode) ()
19:50:26 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
19:53:59 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:55:54 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
19:55:58 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
19:57:58 × viluon quits (uid453725@gateway/web/irccloud.com/x-ftnuqxhuphmmdyvk) ()
19:58:33 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
19:58:42 viluon joins (uid453725@gateway/web/irccloud.com/x-iaenozwsdlvnenzz)
19:59:00 Lord_of_Life_ is now known as Lord_of_Life
20:01:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
20:02:11 tlgl^nix joins (~damien@S0106008ef25e98fb.su.shawcable.net)
20:03:05 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
20:05:05 dmytrish joins (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9)
20:06:02 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 268 seconds)
20:06:59 × rj quits (~x@gateway/tor-sasl/rj) (Remote host closed the connection)
20:07:04 × danso quits (~dan@23-233-111-52.cpe.pppoe.ca) (Quit: WeeChat 3.0)
20:07:16 × dpl quits (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds)
20:07:18 rj joins (~x@gateway/tor-sasl/rj)
20:07:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:07:54 petersen joins (~petersen@redhat/juhp)
20:08:21 hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube)
20:12:23 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
20:12:34 <justsomeguy> Hey, alright, haskellbook has a new revision and they're going to do a print version!
20:12:54 <Rembane> \œ/
20:13:21 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection)
20:13:38 <justsomeguy> :D
20:14:17 <justsomeguy> Hopefully I can finish the book this year. It was even one of my new years resolutions.
20:16:47 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
20:19:45 Codaraxis_ joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
20:20:14 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
20:21:35 × Codaraxis quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
20:22:47 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
20:23:20 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
20:23:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
20:26:45 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
20:28:42 × rond_ quits (5940206b@89-64-32-107.dynamic.chello.pl) (Ping timeout: 240 seconds)
20:32:05 rj joins (~x@gateway/tor-sasl/rj)
20:32:44 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
20:33:33 vchlup joins (~vchlup@nat.brnet.cz)
20:33:50 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
20:33:59 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
20:35:23 cole-k joins (~cole-k@172.56.30.51)
20:36:11 × alx741 quits (~alx741@186.178.109.113) (Ping timeout: 240 seconds)
20:36:45 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
20:37:00 × cole-k quits (~cole-k@172.56.30.51) (Remote host closed the connection)
20:37:47 × PoliticsII______ quits (sid193551@gateway/web/irccloud.com/x-xczsjbruunvdnrpf) (Ping timeout: 250 seconds)
20:37:47 × heyj quits (sid171370@gateway/web/irccloud.com/x-ztdmvfaxkruzhawl) (Ping timeout: 250 seconds)
20:37:47 × angerman quits (sid209936@gateway/web/irccloud.com/x-vwzrxwwqpznmvfzd) (Ping timeout: 250 seconds)
20:37:47 × liquorice quits (sid267884@gateway/web/irccloud.com/x-txviedjixtylumvd) (Ping timeout: 250 seconds)
20:37:47 × trevorriles quits (sid469656@gateway/web/irccloud.com/x-ztfsmauikpdgmwtj) (Ping timeout: 250 seconds)
20:37:47 × iphy quits (sid67735@gateway/web/irccloud.com/x-tamdzevqynwsuesn) (Ping timeout: 250 seconds)
20:37:47 × alinab quits (sid468903@gateway/web/irccloud.com/x-mmgxfjoejzkoptwj) (Ping timeout: 250 seconds)
20:37:47 × teehemkay quits (sid14792@gateway/web/irccloud.com/x-iudjigrpyzwwyvyh) (Ping timeout: 250 seconds)
20:37:51 × drupol quits (sid117588@gateway/web/irccloud.com/x-yunocidhqntsjvsp) (Ping timeout: 245 seconds)
20:37:51 × kip quits (sid71464@gateway/web/irccloud.com/x-xjxqpwkisgbviywm) (Ping timeout: 245 seconds)
20:37:51 × cbarrett quits (sid192934@adium/cbarrett) (Ping timeout: 245 seconds)
20:37:52 × travv0 quits (sid293381@gateway/web/irccloud.com/x-bmnsmvdukydxzojl) (Ping timeout: 245 seconds)
20:37:52 × enemeth79 quits (sid309041@gateway/web/irccloud.com/x-iokskzkzdpngtftb) (Ping timeout: 245 seconds)
20:37:55 × ProofTechnique quits (sid79547@gateway/web/irccloud.com/x-icnhdahhvfdpvqrx) (Ping timeout: 246 seconds)
20:37:56 × edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 258 seconds)
20:38:07 × conjunctive quits (sid433686@gateway/web/irccloud.com/x-ywvgcymrsekezwdb) (Ping timeout: 258 seconds)
20:38:07 × Adeon quits (sid418992@gateway/web/irccloud.com/x-wguwowrrdxqwnndk) (Ping timeout: 258 seconds)
20:38:07 × ibloom quits (sid350277@gateway/web/irccloud.com/x-klvmqrdqeclehwqf) (Ping timeout: 258 seconds)
20:38:11 × affinespaces quits (sid327561@gateway/web/irccloud.com/x-uzfjyzvrqoqxacwx) (Ping timeout: 260 seconds)
20:38:11 × higherorder__ quits (sid185221@gateway/web/irccloud.com/x-tccblcishfrqasvs) (Ping timeout: 260 seconds)
20:38:11 × lally quits (sid388228@gateway/web/irccloud.com/x-csadwvaszxoveiqd) (Ping timeout: 260 seconds)
20:38:11 × wpcarro quits (sid397589@gateway/web/irccloud.com/x-ecuoponltgnpdqvt) (Ping timeout: 260 seconds)
20:38:11 × ReinH quits (sid179972@gateway/web/irccloud.com/x-tsenbknuiamuoknp) (Ping timeout: 260 seconds)
20:38:11 × mcfilib quits (sid302703@gateway/web/irccloud.com/x-juvammsyvplemvln) (Ping timeout: 260 seconds)
20:38:11 × alanz quits (sid110616@gateway/web/irccloud.com/x-hohhkiqzyqaiuisr) (Ping timeout: 260 seconds)
20:38:11 × natim87 quits (sid286962@gateway/web/irccloud.com/x-kcrciituhyzojhiq) (Ping timeout: 248 seconds)
20:38:13 × alexknvl quits (sid259568@gateway/web/irccloud.com/x-fhebzczzstiwcpzq) (Ping timeout: 250 seconds)
20:38:13 × pent quits (sid313808@gateway/web/irccloud.com/x-zehtvlxjhkwmhhgc) (Ping timeout: 250 seconds)
20:38:13 × rodlogic__ quits (sid214676@gateway/web/irccloud.com/x-qnsaereppjlefdxr) (Ping timeout: 250 seconds)
20:38:13 × edmundnoble quits (sid229620@gateway/web/irccloud.com/x-acqjqzoxhelmlagr) (Ping timeout: 250 seconds)
20:38:15 teehemkay joins (sid14792@gateway/web/irccloud.com/x-aozhbjqwwkaxnioe)
20:38:16 × caasih quits (sid13241@gateway/web/irccloud.com/x-agadrzqzqvqjptgo) (Ping timeout: 246 seconds)
20:38:16 × aizen_s quits (sid462968@gateway/web/irccloud.com/x-qnkvehkmfuwvulmd) (Ping timeout: 245 seconds)
20:38:16 × wildsebastian quits (sid324688@gateway/web/irccloud.com/x-cunhkwlmpyymftve) (Ping timeout: 245 seconds)
20:38:16 × mudri quits (sid317655@gateway/web/irccloud.com/x-bcigdzdisjxobsht) (Ping timeout: 245 seconds)
20:38:16 × carter quits (sid14827@gateway/web/irccloud.com/x-cxyihhqsuqfqchre) (Ping timeout: 245 seconds)
20:38:16 × nh2 quits (sid309956@gateway/web/irccloud.com/x-uenbkrwkbbfqagmn) (Ping timeout: 245 seconds)
20:38:19 × thi quits (sid97277@gateway/web/irccloud.com/x-eqfjkudsamsuuqbt) (Ping timeout: 258 seconds)
20:38:20 angerman joins (sid209936@gateway/web/irccloud.com/x-vkbiyhlbxhfghaep)
20:38:24 PoliticsII______ joins (sid193551@gateway/web/irccloud.com/x-yxyceemvbzkrgcna)
20:38:30 × pepeiborra quits (sid443799@gateway/web/irccloud.com/x-smlzoyfyppguwjck) (Ping timeout: 258 seconds)
20:38:37 × b20n quits (sid115913@gateway/web/irccloud.com/x-pctinassjooigaew) (Ping timeout: 246 seconds)
20:38:37 × moobar quits (sid171730@gateway/web/irccloud.com/x-tmumveujckzntgio) (Ping timeout: 246 seconds)
20:38:39 × howdoi quits (uid224@gateway/web/irccloud.com/x-pwqigqguzpkhpeqf) (Ping timeout: 260 seconds)
20:38:39 × sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds)
20:38:39 × entel quits (uid256215@botters/entel) (Ping timeout: 260 seconds)
20:38:39 × darthThorik quits (sid39589@gateway/web/irccloud.com/x-ovxmffqjkmnhvkwx) (Ping timeout: 260 seconds)
20:38:39 × newhoggy quits (sid198874@gateway/web/irccloud.com/x-fjgkldqbnqjnndba) (Ping timeout: 260 seconds)
20:38:39 × joshmeredith quits (sid387798@gateway/web/irccloud.com/x-deyyeanvffjutikl) (Ping timeout: 260 seconds)
20:38:39 × verlet64_ quits (sid261276@gateway/web/irccloud.com/x-qzcgtsnaanuchemn) (Ping timeout: 260 seconds)
20:38:41 × rizary quits (sid220347@gateway/web/irccloud.com/x-jeeizrlvvntrkymr) (Ping timeout: 245 seconds)
20:38:41 × parisienne quits (sid383587@gateway/web/irccloud.com/x-wdxmldhahujvwtgt) (Ping timeout: 245 seconds)
20:38:41 × liszt quits (sid336875@gateway/web/irccloud.com/x-agbwjiobfjspjplf) (Ping timeout: 245 seconds)
20:38:41 × idnar quits (sid12240@gateway/web/irccloud.com/x-zpnhxxgbwuvypcql) (Ping timeout: 245 seconds)
20:38:43 × dgpratt quits (sid193493@gateway/web/irccloud.com/x-lgrpkenjgojrepjw) (Ping timeout: 248 seconds)
20:38:43 × d0liver quits (sid363046@gateway/web/irccloud.com/x-vlrurtoubbzrlqmk) (Ping timeout: 248 seconds)
20:38:44 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
20:39:06 liquorice joins (sid267884@gateway/web/irccloud.com/x-gifxlxspxpkuruyr)
20:39:06 edmundnoble joins (sid229620@gateway/web/irccloud.com/x-emmrpthgulpebvrs)
20:39:07 × tapas quits (sid467876@gateway/web/irccloud.com/x-mdchyvtgigopdvnp) (Ping timeout: 245 seconds)
20:39:07 × jonrh quits (sid5185@gateway/web/irccloud.com/x-ysuvrbtwdxclmwmm) (Ping timeout: 245 seconds)
20:39:07 × simony quits (sid226116@gateway/web/irccloud.com/x-kqfdecpcfpxqodld) (Ping timeout: 260 seconds)
20:39:07 alexknvl joins (sid259568@gateway/web/irccloud.com/x-wdxobfzstmpkvclf)
20:39:08 joshmeredith joins (sid387798@gateway/web/irccloud.com/x-uxsrlglojomperah)
20:39:08 ibloom joins (sid350277@gateway/web/irccloud.com/x-yhokoaaxqmoudodu)
20:39:08 ProofTechnique joins (sid79547@gateway/web/irccloud.com/x-uvtkxtknhyjkpohz)
20:39:09 lally joins (sid388228@gateway/web/irccloud.com/x-jtlutemywqmachbj)
20:39:09 cbarrett joins (sid192934@adium/cbarrett)
20:39:10 pepeiborra joins (sid443799@gateway/web/irccloud.com/x-nirrncfqraegkpgk)
20:39:10 alanz joins (sid110616@gateway/web/irccloud.com/x-ephuaztzuzimomxa)
20:39:13 b20n joins (sid115913@gateway/web/irccloud.com/x-lrxmhixuzcmcfdhe)
20:39:13 wpcarro joins (sid397589@gateway/web/irccloud.com/x-xnngigwekxregdfs)
20:39:16 travv0 joins (sid293381@gateway/web/irccloud.com/x-hoivuatisyqixyit)
20:39:19 dgpratt joins (sid193493@gateway/web/irccloud.com/x-vbszyjrhlyidsuhn)
20:39:19 parisienne joins (sid383587@gateway/web/irccloud.com/x-aiygzsqhowxpopox)
20:39:19 idnar joins (sid12240@gateway/web/irccloud.com/x-pvawekuiulmnefkg)
20:39:21 kip joins (sid71464@gateway/web/irccloud.com/x-urjbgtyvyzgxzumc)
20:39:22 sclv joins (sid39734@haskell/developer/sclv)
20:39:22 × yogani quits (sid42623@gateway/web/irccloud.com/x-qazwmxvjoakhfcrd) (Ping timeout: 276 seconds)
20:39:23 liszt joins (sid336875@gateway/web/irccloud.com/x-aonselplhnbmouys)
20:39:23 aizen_s joins (sid462968@gateway/web/irccloud.com/x-gzlgfjzfpthijryy)
20:39:26 nh2 joins (sid309956@gateway/web/irccloud.com/x-vqylohvjgsiigvkd)
20:39:26 d0liver joins (sid363046@gateway/web/irccloud.com/x-bijzbspzjskqwcir)
20:39:28 darthThorik joins (sid39589@gateway/web/irccloud.com/x-agxewrbiyijpmjiw)
20:39:30 rizary joins (sid220347@gateway/web/irccloud.com/x-zmjqapjzsmflqwgm)
20:39:30 trevorriles joins (sid469656@gateway/web/irccloud.com/x-xdsdtxtxrbrxnitq)
20:39:31 higherorder__ joins (sid185221@gateway/web/irccloud.com/x-koiygmjzeszehzrt)
20:39:32 alinab joins (sid468903@gateway/web/irccloud.com/x-kxduedlnkmrjymym)
20:39:32 mudri joins (sid317655@gateway/web/irccloud.com/x-tkftihyrhfadzkvn)
20:39:32 newhoggy joins (sid198874@gateway/web/irccloud.com/x-odbcefoglogukgog)
20:39:33 iphy joins (sid67735@gateway/web/irccloud.com/x-svcckheboicsfdfm)
20:39:36 rodlogic__ joins (sid214676@gateway/web/irccloud.com/x-jsfobhdzpplfsdpe)
20:39:37 enemeth79 joins (sid309041@gateway/web/irccloud.com/x-vaiujncapfeaexzk)
20:39:37 Adeon joins (sid418992@gateway/web/irccloud.com/x-gymdfseqxtsglqmg)
20:39:40 heyj joins (sid171370@gateway/web/irccloud.com/x-wookyduvyhmgjxsv)
20:39:40 wildsebastian joins (sid324688@gateway/web/irccloud.com/x-huuoejtmpgsbomho)
20:39:43 conjunctive joins (sid433686@gateway/web/irccloud.com/x-veifezvsdidztgvo)
20:39:44 howdoi joins (uid224@gateway/web/irccloud.com/x-lfqvebqbrutpzvro)
20:39:46 drupol joins (sid117588@gateway/web/irccloud.com/x-gsnwinbjioyhnadu)
20:39:51 pent joins (sid313808@gateway/web/irccloud.com/x-mamwukyavontcbfs)
20:39:59 carter joins (sid14827@gateway/web/irccloud.com/x-velgelprbzzboucb)
20:39:59 entel joins (uid256215@botters/entel)
20:40:09 caasih joins (sid13241@gateway/web/irccloud.com/x-uqzvpjpcsslwgwfl)
20:40:09 tapas joins (sid467876@gateway/web/irccloud.com/x-dpxzueexrqylgrju)
20:40:10 edwardk joins (sid47016@haskell/developer/edwardk)
20:40:18 ReinH joins (sid179972@gateway/web/irccloud.com/x-nocjtzmybziqzfuj)
20:40:19 natim87 joins (sid286962@gateway/web/irccloud.com/x-zjxraovaekqnvloq)
20:40:20 thi joins (sid97277@gateway/web/irccloud.com/x-mwvssirlkplfqvqk)
20:40:32 yogani joins (sid42623@gateway/web/irccloud.com/x-diwllcjriwggxbhg)
20:40:34 mcfilib joins (sid302703@gateway/web/irccloud.com/x-qgurzruyjowxqkfb)
20:40:35 moobar joins (sid171730@gateway/web/irccloud.com/x-mfdnwzlgpjfftngj)
20:40:36 simony joins (sid226116@gateway/web/irccloud.com/x-uimvkkhkkjmffmgk)
20:40:40 jonrh joins (sid5185@gateway/web/irccloud.com/x-wzkchmmanupyucfa)
20:40:40 verlet64_ joins (sid261276@gateway/web/irccloud.com/x-pbadcyendmqwahig)
20:40:44 affinespaces joins (sid327561@gateway/web/irccloud.com/x-zprmbywljksowyax)
20:41:07 × fendor quits (~fendor@178.115.130.32.wireless.dyn.drei.com) (Remote host closed the connection)
20:41:45 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
20:42:32 × rodriga quits (~quassel@134.204.25.66) (Ping timeout: 240 seconds)
20:45:41 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
20:48:37 usr25 joins (~usr25@unaffiliated/usr25)
20:48:57 × raichoo quits (~raichoo@dslb-178-009-065-077.178.009.pools.vodafone-ip.de) (Read error: Connection reset by peer)
20:49:09 alx741 joins (~alx741@181.196.68.199)
20:54:05 raichoo joins (~raichoo@dslb-178-009-065-077.178.009.pools.vodafone-ip.de)
20:54:52 × Sornaens1 quits (~Sornaensi@85.203.36.21) (Ping timeout: 265 seconds)
20:56:21 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
20:58:12 quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
21:00:05 nicholasbulka joins (~nicholasb@2601:900:4301:da0:5d1c:812e:1a75:163c)
21:00:53 jneira joins (501e65b6@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.182)
21:01:11 × knupfer quits (~Thunderbi@200116b82b68a2004db076fcee496007.dip.versatel-1u1.de) (Ping timeout: 250 seconds)
21:04:20 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
21:04:47 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
21:06:21 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
21:06:49 × fiedlr quits (~fiedlr@83.148.33.254) (Read error: Connection reset by peer)
21:07:26 dpl joins (~dpl@77-121-78-163.chn.volia.net)
21:07:32 × usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 240 seconds)
21:09:30 barakkl1993 joins (~barakkley@2.55.141.207)
21:09:33 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:12:21 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
21:13:24 fiedlr joins (~fiedlr@83.148.33.254)
21:14:21 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
21:14:58 rj joins (~x@gateway/tor-sasl/rj)
21:16:21 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
21:17:32 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:17:33 × coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:18:13 Lycurgus joins (~niemand@98.4.118.65)
21:19:02 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
21:20:04 fiedlr_ joins (~fiedlr@83.148.33.254)
21:23:40 × fiedlr quits (~fiedlr@83.148.33.254) (Ping timeout: 252 seconds)
21:24:06 × michalz quits (~user@185.246.204.56) (Remote host closed the connection)
21:24:47 Sgeo_ joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
21:24:59 guy9 joins (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net)
21:25:46 × MrFantastik quits (~user@rrcs-184-74-43-235.nys.biz.rr.com) (Ping timeout: 240 seconds)
21:25:52 <guy9> is anyone there
21:25:52 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 252 seconds)
21:26:03 <lechner> yes
21:26:13 <ski> no
21:26:28 <guy9> I have a question about installing a package with cabal
21:26:34 <guy9> is this the right place to ask
21:26:47 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
21:26:56 <ski> yes, this is an appropriate channel for such a question
21:27:07 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
21:27:07 <guy9> okay, thanks
21:27:12 <ski> (try asking, and someone might take it up and try to answer)
21:27:46 × fiedlr_ quits (~fiedlr@83.148.33.254) (Read error: Connection reset by peer)
21:28:28 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 252 seconds)
21:28:59 <guy9> I had installed a package using cabal previously and it had worked just fine. I have no idea what I could have done differently this time around, but the package fails to install. It seems like there is a constraint for cabal versions >=1.7 && <1.25
21:29:17 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
21:29:21 fiedlr joins (~fiedlr@83.148.33.254)
21:29:21 <guy9> checking the .cabal file of the package shows no such constraint, though
21:29:38 slack1256 joins (~slack1256@200-112-79-98.baf.movistar.cl)
21:31:10 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:31:18 <slack1256> On `Katip` given the `MonadIO` constaint on the class, how could a define a dummy unefectful instance for testing?
21:31:21 <geekosaur> that means it found an old option in the cabal file that is no longer supported by modern cabal
21:31:57 <geekosaur> I should say Cabal, the library, rather than cabal the program
21:32:34 <geekosaur> so what has changed is Cabal and cabal-install are probably version 3.x instead of 1.x
21:32:44 <guy9> it seems like it is trying to use cabal-install version 3.2.1, though when I do cabal --version it says I have 3.4.0
21:34:36 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
21:35:00 <monochrom> It is a really tall order to write your own uneffectful instance of MonadIO.
21:36:13 <guy9> I have a feeling that reinstalling cabal may be something to try
21:36:33 <guy9> although I think I've been unsuccessful ateven  that so far
21:37:01 <sclv> guy9 i would check for a package environment file
21:37:39 <monochrom> I would think it is more worth your time to allow IO to happen, but run your exe in a container or virtual machine, complete with various redirection and emulation techniques at that level, if you're trying to achieve mock testing.
21:38:08 <guy9> I'm not even sure when to look to be honest
21:38:21 <guy9> or what exactly I would be looking for
21:39:22 × fiedlr quits (~fiedlr@83.148.33.254) (Read error: Connection reset by peer)
21:39:57 <slack1256> monochrom: Mmmm that also seems like a tall order. But at least is more "honest".
21:40:56 tatsumaru joins (~tatsumaru@85.196.189.103)
21:41:23 × {abby} quits (~{abby}@unaffiliated/demhydraz) (Quit: Ping timeout (120 seconds))
21:41:33 fiedlr joins (~fiedlr@83.148.33.254)
21:41:34 st8less joins (~st8less@2603:a060:11fd:0:f652:5ff0:83f7:3be7)
21:41:41 {abby} joins (~{abby}@unaffiliated/demhydraz)
21:41:55 ludi49 joins (~hryhorij@ip595.t15.ds.pwr.wroc.pl)
21:42:02 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:42:05 <tatsumaru> hey guys, new to haskell, is haskell good for the implementation of complex systems concepts such as ant colony optimization algorithms and adaptive networks etc?
21:42:08 zeenk joins (~zeenk@2a02:2f04:a10b:af00:91ba:3645:1cdb:9a75)
21:43:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
21:44:37 <dmj`> might be a dumb question, but can someone explain to me why these two stable names are not equal?
21:44:37 <dmj`> (==) <$> (makeStableName $! m) <*> (makeStableName (let !x = m in x)
21:44:43 <guy9> I see one big place where I was going wrong
21:44:48 <guy9> I'm pretty new to this
21:44:57 <sm[m]> tatsumaru:
21:44:58 <monochrom> slack1256, both are tall orders, but I say that mocking MonadIO is taller because IO is not a free monad, it's opague, if I give you "foo :: IO Int" you can't examine foo to even begin to mock it, not to mention IRL I give you "foo :: IO X" for a type X you've never seen before. Whereas, in docker or a VM at least you can use stdio redirection, fake files, etc.
21:44:58 <sm[m]> yes
21:44:59 <guy9> I was trying to diagnose several errors at once
21:45:36 <tatsumaru> sm[m]: can you briefly elaborate please, why do you think so
21:46:39 <sm[m]> tatsumaru: it is an expressive language with good support for abstraction and modelling with types, so can be good for complex/unclear domains
21:46:59 <sm[m]> also it's quite fast, which can be useful
21:47:10 <ski> dmj` : `let !x = m in x' is equal to `m'
21:47:14 <slack1256> monochrom++
21:47:16 <guy9> geekosaur, do you think I should try to install a 1.x version of cabal and try that way?
21:47:22 <tatsumaru> sm[m] "fast" as in good for number crunching?
21:47:42 × Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt)
21:48:19 rj joins (~x@gateway/tor-sasl/rj)
21:48:31 <geekosaur> guy9, that's not really recommended either, cabal 3 changed things for good reason. (look up "cabal hell" sometime, although it was really ghc's fault)
21:48:54 <dmj`> ski: yea but its forced
21:48:55 <sm[m]> generally fast. It's not the best for number crunching, not the worst. It's among the best for knowing that you're crunching the right numbers though
21:49:03 <sclv> guy9 what package? Is it in hackage?
21:49:08 <dmj`> ski: StableNames will check pointer equality
21:49:20 <tatsumaru> sm[m] i see, thank you
21:49:28 <guy9> I am definitely learning the meaning of cabal hell
21:49:35 <dmj`> ski: I think the let is performing an allocation and its pointer differs
21:49:37 × __minoru__shirae quits (~shiraeesh@5.101.59.44) (Ping timeout: 260 seconds)
21:49:38 <guy9> sclv it's Euterpea
21:49:55 <guy9> yes it's in Hackage
21:49:55 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
21:51:04 <sclv> yeah its got busts because it needs to be updated https://matrix.hackage.haskell.org/#/package/Euterpea/2.0.7/ghc-8.10.1@1591706735
21:51:25 <sm[m]> guy9: general info: you may not be doing anything differently.. cabal's installations depend on the current state of hackage and of your local machine, by default
21:51:41 <guy9> does that mean there's not much I can do and it's not my fault?
21:52:01 <sclv> its not your fault, but that doesn't mean it can't be fixed
21:52:32 <ski> dmj` : `makeStableName $! m' should be equal to `let !x = m in makeStableName x'. `do !x <- return m; makeStableName x' / `makeStableName =<< evaluate m' is slightly different, only forcing when the action is executed (rather than merely forced)
21:52:48 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
21:52:53 <dmj`> ski: (\f v -> let !v = x in f v) should be equivalent to (\f v -> f $! v)
21:53:07 <sclv> you can `cabal unpack` the package, then apply instructions here, then install it from the unpacked source, for example https://github.com/Euterpea/Euterpea2/issues/35
21:53:24 <ski> dmj` : yes. but `f (let !v = x in f v)' is different
21:53:49 <sclv> that ticket also suggests just calling `v1-install` may work but idk if thats true
21:54:11 <guy9> wow
21:54:13 <guy9> that worked
21:54:17 <guy9> you are a wizard
21:54:33 <guy9> thanks for showing me all of this stuff
21:54:38 <dmj`> ski: how does (\f v -> f (let !v = m in v)) not equal (\f v -> let !v = m in f v)
21:54:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:54:46 <guy9> I'm super new to this and there is so much to learn
21:55:06 <ski> dmj` : the former won't force `m', unless `f' is strict. the latter will
21:55:14 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
21:55:22 <guy9> okay v1 failed somewhere else but I know I'm going in the right direction
21:55:29 <dmj`> ski: so makeStableName isn't strict then
21:55:31 <sclv> guy9: glad it worked! its just me digging into their issue tracker to see if it was fixed :-)
21:55:51 <sclv> you could also just try to clone the repo, which is reputedly more up too date than the hackage release
21:55:55 <guy9> honestly I didn't even know there were issue trackers
21:55:55 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
21:56:08 <guy9> I have tried cloning it and it fails at the same place
21:56:27 <sclv> sadly it seems relatively unmaintained :-/
21:56:43 <sclv> donya is very nice but she's more a musician than a hacker
21:56:55 <sclv> (i saw her perform and it was brilliant!)
21:57:23 <sclv> with paul hudak's group, a lot of the stuff he worked on is maintained only partially as labors of love
21:57:39 <sclv> or rather with his group gone following his death
21:58:17 <ski> dmj` : "Note in particular that `makeStableName' may return a different `StableName' after an object is evaluated." <https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base-4.15.0.0/System-Mem-StableName.html>
21:58:34 <guy9> you seem so knowledgeable on all of this
21:58:45 <guy9> I'm just some guy who picked up the book for the first time
21:59:32 <ski> (conceptually, you could think of this as `makeStableName' also reading and writing some other state (or, if you prefer, you can "explain it away" using indeterminacy) in the `IO', making it possibly give different results, when invoked (not called) on equal objects)
21:59:35 <dmj`> ski: that's super tricky
22:00:22 <guy9> what does your name mean, by the way, sclv
22:01:03 dave_uy5 is now known as dave_uy
22:01:24 <ski> i agree it's not really that easy to reason about the precise behaviour. however, at least it's possible to "explain away", like this (meaning it doesn't interfere, per se, with equational reasoning. it just makes it hard to get useful results when attempting to reason about it)
22:02:02 <sclv> its just a nick, means nothing
22:02:26 × malumore_ quits (~malumore@151.62.117.103) (Ping timeout: 240 seconds)
22:02:44 tatsumaru parts (~tatsumaru@85.196.189.103) ()
22:03:02 <guy9> interesting
22:03:05 <ski> (in that, it's similar to e.g. `unsafeInterleaveIO' (as opposed to `unsafeInterleaveST',`unsafePerformIO',`reallyUnsafePtrEquality#'))
22:03:22 <guy9> the issue tracker is really helpful
22:05:03 × slack1256 quits (~slack1256@200-112-79-98.baf.movistar.cl) (Ping timeout: 268 seconds)
22:05:09 ski . o O ( PyCon Keynote by K. Lars Lohn in 2016 at <https://www.youtube.com/watch?v=bSfe5M_zG2s> )
22:05:15 <ski> (apropos music and hackers)
22:06:48 pavonia joins (~user@unaffiliated/siracusa)
22:07:46 <guy9> thanks ski ill watch that
22:10:32 × fiedlr quits (~fiedlr@83.148.33.254) (Read error: Connection reset by peer)
22:10:47 <guy9> I feel so much better after that, thank you sclv
22:11:04 <guy9> I feel like I know how to better troubleshoot now
22:11:13 <dmj`> ski: GHCJS implements makeStableName strictly
22:11:59 × st8less quits (~st8less@2603:a060:11fd:0:f652:5ff0:83f7:3be7) (Ping timeout: 260 seconds)
22:12:11 ski . o O ( specification indeterminacy )
22:13:44 <dmj`> where's the GHC spec, couldn't find it :P
22:13:48 st8less joins (~st8less@inet-167-224-197-181.isp.ozarksgo.net)
22:20:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:23:52 × LKoen quits (~LKoen@77.168.9.109.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.”)
22:24:31 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:24:40 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:25:41 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:27:33 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
22:29:22 × s00pcan quits (~chris@107.181.165.217) (Read error: Connection reset by peer)
22:29:31 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
22:29:41 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
22:31:03 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
22:31:04 rj joins (~x@gateway/tor-sasl/rj)
22:32:00 elliott__ joins (~elliott@pool-108-18-30-46.washdc.fios.verizon.net)
22:33:33 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:34:01 s00pcan joins (~chris@075-133-056-178.res.spectrum.com)
22:34:33 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
22:36:19 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:36:40 vicfred joins (~vicfred@unaffiliated/vicfred)
22:40:02 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
22:40:29 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
22:40:33 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:46:29 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
22:50:06 × HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
22:50:30 × Lowl3v3l quits (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Quit: Leaving.)
22:54:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
22:56:11 × dpl quits (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 260 seconds)
22:56:19 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:56:59 <guy9> I finally got what I needed up and running! Thank you everybody! Have a good day
23:00:18 × raichoo quits (~raichoo@dslb-178-009-065-077.178.009.pools.vodafone-ip.de) (Quit: Lost terminal)
23:00:19 × DavidEichmann quits (~david@147.136.46.217.dyn.plus.net) (Ping timeout: 252 seconds)
23:01:41 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
23:03:31 × guy9 quits (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net) (Quit: Connection closed)
23:06:06 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
23:07:09 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
23:07:22 xkapastel joins (uid17782@gateway/web/irccloud.com/x-dagvmnchyestqbjc)
23:08:21 × zeenk quits (~zeenk@2a02:2f04:a10b:af00:91ba:3645:1cdb:9a75) (Quit: Konversation terminated!)
23:10:01 chenin joins (bab7243e@186.183.36.62)
23:10:59 fiedlr joins (~fiedlr@83.148.33.254)
23:12:52 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:13:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
23:14:33 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
23:15:58 × fiedlr quits (~fiedlr@83.148.33.254) (Ping timeout: 268 seconds)
23:16:10 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
23:18:24 rj joins (~x@gateway/tor-sasl/rj)
23:18:42 p0a joins (~user@unaffiliated/p0a)
23:19:21 <p0a> Hell does megaparsec look a bit like boost::spirit? I've never learned megaparsec but I'm currently learning the C++ library and I'm getting the feeling that they have a similar design
23:19:29 <p0a> Hello*
23:19:55 <geekosaur> parser combinator libraries will all look fairly similar
23:20:47 <p0a> alright, thanks. I thought that they had a similar approach to things, good to know it's called 'parser combinator'. There's also the type system involved
23:21:41 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
23:22:49 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:23:15 × sqrt2_ quits (~ben@unaffiliated/sqrt2) (Ping timeout: 265 seconds)
23:23:38 jesystani joins (~thorn@2404:4404:17f1:4900:ec8c:5f5b:2c7a:5e7)
23:23:42 <xsperry> IIRC boost::spirit was inspired by original parsec. even some of the operators they use are the same, for example >>
23:24:22 tatsumaru joins (~tatsumaru@85.196.189.103)
23:25:05 <jesystani> hello, i have a structure built up of lists, and im displaying a subset of those lists after transforming the larger structure. is there a way i can force evaluation of the entire structure? i believe my transformations are stacking up at the "edges" where im not printing
23:25:10 <tatsumaru> hey guys, what's the difference between ['h', 'e', 'l', 'l', 'o'] and ["h", "e", "l", "l", "o"] ?
23:25:10 mason_ joins (~bc8134e3@217.29.117.252)
23:25:35 <tatsumaru> the first one evaluates as a string list and the second one as a collection of strings in a list
23:25:39 <geekosaur> the former is a list of Char, the latter a list of String (aka [Char])
23:25:50 <xsperry> ['h', 'e', 'l', 'l', 'o'] is the same as "hello", ie, a list of chars, or String
23:26:15 <p0a> xsperry: oh! very interesting! I thought it went the other way around
23:26:19 <geekosaur> as it turns out Haskell's String type is just a list of Char, and the Show instance accordingly assumes any such list of Char is a String
23:26:23 <mason_> :t ['h', 'e', 'l', 'l', 'o']
23:26:25 <lambdabot> [Char]
23:26:28 <mason_> :t ["h", "e", "l", "l", "o"]
23:26:29 <lambdabot> [[Char]]
23:26:59 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
23:27:49 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
23:28:03 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
23:28:22 chenin parts (bab7243e@186.183.36.62) ()
23:28:34 <tatsumaru> so the first one is list of chars and the second one is a list of list of chars?
23:28:41 <mason_> yes
23:28:58 <tatsumaru> i see, thanks
23:29:02 <koz_> Is there a way to use an OPTIONS_GHC pragma to _disable_ the use of a plugin?
23:29:02 <mason_> also, String is type alias for [Char]
23:29:07 <geekosaur> > ['h', 'e', 'l', 'l', 'o']
23:29:09 <lambdabot> "hello"
23:29:16 <geekosaur> same thing
23:29:56 × Synthetica quits (uid199651@gateway/web/irccloud.com/x-lrjabllucnezjrom) (Quit: Connection closed for inactivity)
23:30:33 <jesystani> ive got a ! pattern going, but it seems like it doesnt go recursively?
23:30:44 p0a parts (~user@unaffiliated/p0a) ("bye")
23:31:04 <geekosaur> !, or seq, only evaluates to the first constructor, not recursively
23:31:21 <geekosaur> if you truly want to evaluate an entire structure, consider deepseq and friends
23:31:33 <geekosaur> you may need NFData instances for your types
23:32:26 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
23:33:39 × dmytrish quits (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 248 seconds)
23:34:27 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
23:34:54 sqrt2 joins (~ben@unaffiliated/sqrt2)
23:36:05 <mason_> /join #electronics
23:36:08 <mason_> woops!
23:38:13 <jesystani> geekosaur: how easy is it to write an NFData instance?
23:38:43 × barakkl1993 quits (~barakkley@2.55.141.207) (Ping timeout: 265 seconds)
23:38:48 <geekosaur> fairly easy, you're just telling it which fields to evaluate (you cannot, for example, do much with a function)
23:40:08 <mason_> when I used NFData I just did instance NFData MyType where rnf = genericRnf
23:40:34 <mason_> I think you need DeriveGeneric for that
23:40:36 <tatsumaru> if b is a list and I do 4:b to add 4 at the beginning the list with 4 at the beginning is actually a new list right, and not b?
23:41:13 <geekosaur> it is a list cell whose head contains the new list item and whose tail is the original b
23:41:45 <tatsumaru> i am just asking because if I then do b !! 2 the 4 won't be counted
23:41:53 <jesystani> wheres the best place to find info on defining that instance?
23:42:02 <mason_> yep, tail is shared. because b is immutable, new list can just reuse it without worrying that it may change in the future
23:42:41 <tatsumaru> i see, thank you
23:42:42 <monochrom> b is reused, not cloned. A new cell is made to point to 4 and point to b.
23:43:12 <tatsumaru> so it's like a symlink?
23:43:21 aVikingTrex joins (2be74510@43.231.69.16)
23:43:26 <monochrom> "new list" is ambiguous unless you really mean it literally, in which case "obviously yes but obviously not what you have in mind"
23:43:28 pthariensflame joins (~pthariens@2600:6c52:727f:4200:e9eb:b23:a363:a349)
23:44:05 Jd007 joins (~Jd007@162.156.11.151)
23:44:08 <monochrom> as new as "4+1 is a newer number than 4"
23:44:23 × hiroaki_ quits (~hiroaki@2a02:8108:8c40:2bb8:bd38:fd76:9bf:a5f) (Ping timeout: 260 seconds)
23:45:12 <geekosaur> tatsumaru, they are the same pointer
23:45:25 × pthariensflame quits (~pthariens@2600:6c52:727f:4200:e9eb:b23:a363:a349) (Client Quit)
23:46:55 tatsumaru parts (~tatsumaru@85.196.189.103) ()
23:47:21 jamm_ joins (~jamm@unaffiliated/jamm)
23:49:45 × ericsagnes quits (~ericsagne@2405:6580:0:5100:82c:fa7c:5833:ee7a) (Ping timeout: 250 seconds)
23:50:48 × sqrt2 quits (~ben@unaffiliated/sqrt2) (Ping timeout: 265 seconds)
23:51:30 loller_ joins (uid358106@gateway/web/irccloud.com/x-lstrgyekfcdepwsa)
23:52:25 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 276 seconds)
23:52:32 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
23:52:47 × jesystani quits (~thorn@2404:4404:17f1:4900:ec8c:5f5b:2c7a:5e7) (Ping timeout: 260 seconds)
23:53:28 jesystani joins (~thorn@2404:4404:17f1:4900:4d97:c743:fd22:2bfd)
23:55:11 × xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection)
23:55:29 dpl joins (~dpl@77-121-78-163.chn.volia.net)
23:56:09 xsperry joins (~as@unaffiliated/xsperry)
23:59:33 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
23:59:53 fiedlr joins (~fiedlr@83.148.33.254)

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