2020/12/25

2020-12-25 00:00:28 +0000 <nshepperd> it's like a depth first traversal of your tree except the tree is implicit
2020-12-25 00:01:35 +0000jannee(52d18c9d@82-209-140-157.cust.bredband2.com) (Remote host closed the connection)
2020-12-25 00:03:13 +0000vexed__(~vexed__@178.162.212.214) (Ping timeout: 264 seconds)
2020-12-25 00:03:55 +0000machinedgod(~machinedg@24.105.81.50)
2020-12-25 00:07:32 +0000fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
2020-12-25 00:10:28 +0000 <glguy> I combined part 1 and 2 into the same transitive closure map: https://github.com/glguy/advent2020/blob/master/execs/Day07.hs
2020-12-25 00:12:34 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-25 00:13:31 +0000kam1(~kam1@24.231.108.143) (Ping timeout: 246 seconds)
2020-12-25 00:14:04 +0000mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
2020-12-25 00:14:10 +0000hiroaki(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-25 00:14:47 +0000Thoralf(~Thoralf__@69.162.230.96)
2020-12-25 00:15:32 +0000 <Thoralf> Has anyone here experimented with proof verification systems?
2020-12-25 00:15:37 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-25 00:16:35 +0000 <glguy> Thoralf, are you asking about Haskell?
2020-12-25 00:17:23 +0000 <Thoralf> If there are haskell related proof verification systems, yes. If not, I realize this may not be the best channel.
2020-12-25 00:19:26 +0000 <Clint> do you mean like agda?
2020-12-25 00:20:13 +0000jollygood2(~bc8165ab@217.29.117.252)
2020-12-25 00:21:39 +0000Laat(~Laat@139.28.218.148)
2020-12-25 00:22:52 +0000fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2020-12-25 00:23:04 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 272 seconds)
2020-12-25 00:24:14 +0000al3x27(~plovs@85.254.74.40) (Ping timeout: 260 seconds)
2020-12-25 00:25:27 +0000jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 00:26:00 +0000notzmv(~user@unaffiliated/zmv)
2020-12-25 00:28:07 +0000kam1(~kam1@24.231.108.143)
2020-12-25 00:28:40 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 00:31:10 +0000mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-25 00:32:24 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2020-12-25 00:32:46 +0000machinedgod(~machinedg@24.105.81.50)
2020-12-25 00:32:55 +0000 <Thoralf> Yes... basically I started learning a little Haskell so I could work more easily with algebraic data types and think about proofs about them. I have a background in math (MS) and code for a living (C#) and wanted to due some more mathy coding.
2020-12-25 00:33:22 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-12-25 00:35:16 +0000olligobber(~olligobbe@unaffiliated/olligobber) (Ping timeout: 240 seconds)
2020-12-25 00:35:52 +0000alx741(~alx741@186.178.110.248) (Ping timeout: 256 seconds)
2020-12-25 00:36:18 +0000HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
2020-12-25 00:38:18 +0000srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2020-12-25 00:40:20 +0000srk(~sorki@gateway/tor-sasl/sorki)
2020-12-25 00:43:31 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 00:45:32 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 260 seconds)
2020-12-25 00:46:19 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-25 00:46:39 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-25 00:46:52 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Remote host closed the connection)
2020-12-25 00:47:17 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-25 00:48:44 +0000alx741(~alx741@181.196.69.246)
2020-12-25 00:48:49 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-25 00:51:30 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2020-12-25 00:51:36 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2020-12-25 00:52:48 +0000dibblego(~dibblego@122-199-1-30.ip4.superloop.com)
2020-12-25 00:52:48 +0000dibblego(~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
2020-12-25 00:52:48 +0000dibblego(~dibblego@haskell/developer/dibblego)
2020-12-25 00:52:55 +0000 <__monty__> Thoralf Pierce's Software Foundations is great. Chlipala's Certified Programming with Dependent Types too.
2020-12-25 00:53:38 +0000xcmw(~textual@2601:541:4404:bb5c:383c:b842:edcb:4461) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 00:56:38 +0000Tario(~Tario@201.192.165.173)
2020-12-25 00:56:51 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-dkfzyfmbutdgutbh) (Quit: Connection closed for inactivity)
2020-12-25 01:00:23 +0000Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-25 01:00:33 +0000functional_noob(~suhas@45-30-150-65.lightspeed.dybhfl.sbcglobal.net)
2020-12-25 01:01:35 +0000err32(2d1e9641@45-30-150-65.lightspeed.dybhfl.sbcglobal.net)
2020-12-25 01:01:43 +0000kam1(~kam1@24.231.108.143) (Ping timeout: 256 seconds)
2020-12-25 01:01:48 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Remote host closed the connection)
2020-12-25 01:07:15 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-25 01:07:17 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-12-25 01:08:41 +0000kupi(uid212005@gateway/web/irccloud.com/x-luozpabxvpomtxpu)
2020-12-25 01:09:17 +0000functional_noob(~suhas@45-30-150-65.lightspeed.dybhfl.sbcglobal.net) ("Leaving")
2020-12-25 01:12:07 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 01:12:18 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 01:15:41 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-25 01:17:00 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-25 01:17:25 +0000hiroaki(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-25 01:17:32 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2020-12-25 01:17:46 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-12-25 01:18:25 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-25 01:18:27 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-25 01:19:39 +0000hiroaki(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-25 01:19:56 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-12-25 01:21:08 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 01:21:14 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-25 01:21:20 +0000xsperry(~as@unaffiliated/xsperry) (Ping timeout: 272 seconds)
2020-12-25 01:22:23 +0000jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout))
2020-12-25 01:23:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 01:24:46 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-12-25 01:25:25 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-12-25 01:25:37 +0000chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-25 01:26:24 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-25 01:27:52 +0000Tario(~Tario@201.192.165.173)
2020-12-25 01:28:02 +0000__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-12-25 01:30:18 +0000fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) ()
2020-12-25 01:31:13 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-12-25 01:36:22 +0000chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 01:38:05 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-25 01:38:12 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 01:39:52 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Remote host closed the connection)
2020-12-25 01:40:45 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-12-25 01:45:03 +0000AWizzArd(~code@unaffiliated/awizzard)
2020-12-25 01:45:34 +0000columbarius(~columbari@i5E86B3E4.versanet.de) (Ping timeout: 268 seconds)
2020-12-25 01:47:42 +0000columbarius(~columbari@87.123.198.131)
2020-12-25 01:50:42 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 01:54:47 +0000cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-25 01:55:26 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Ping timeout: 268 seconds)
2020-12-25 01:57:45 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-25 02:03:36 +0000Entertainment(~entertain@104.246.132.210) (Ping timeout: 240 seconds)
2020-12-25 02:05:42 +0000toorevitimirp(~tooreviti@117.182.181.108)
2020-12-25 02:06:22 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-25 02:07:07 +0000rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2020-12-25 02:08:01 +0000Mikagami(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-25 02:08:27 +0000Mikagami(~MOSCOS@122.54.107.175)
2020-12-25 02:08:50 +0000 <Cale> byorgey: I don't know if you have anything to do with this at this point, but the Homework 1 from your edition of CIS194 seems to be missing
2020-12-25 02:11:19 +0000jedws(~jedws@121.209.189.201)
2020-12-25 02:19:19 +0000aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-25 02:22:34 +0000acidjnk_new(~acidjnk@p200300d0c704e766c945272cf742f08c.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2020-12-25 02:23:06 +0000chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-25 02:23:49 +0000xcmw(~textual@2601:541:4404:bb5c:383c:b842:edcb:4461)
2020-12-25 02:27:14 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 02:28:04 +0000pallas(~pallas@183.193.112.99) (Ping timeout: 256 seconds)
2020-12-25 02:31:13 +0000tff^(tff@ip98-184-89-2.mc.at.cox.net) ()
2020-12-25 02:32:26 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-12-25 02:39:20 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 02:39:43 +0000fxg(~fxg@unaffiliated/fxg)
2020-12-25 02:42:43 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-25 02:42:57 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 02:44:01 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-12-25 02:45:00 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-170.cust.tzulo.com) (Ping timeout: 265 seconds)
2020-12-25 02:45:07 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 02:46:50 +0000fxg(~fxg@unaffiliated/fxg) (Quit: Leaving)
2020-12-25 02:47:51 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 02:48:12 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 02:50:00 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-25 02:50:28 +0000Thoralf(~Thoralf__@69.162.230.96) (Quit: Leaving)
2020-12-25 02:51:06 +0000machinedgod(~machinedg@24.105.81.50)
2020-12-25 02:52:51 +0000tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2020-12-25 02:53:10 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2020-12-25 02:56:20 +0000err32(2d1e9641@45-30-150-65.lightspeed.dybhfl.sbcglobal.net) (Ping timeout: 245 seconds)
2020-12-25 02:57:37 +0000xff0x_(~fox@2001:1a81:5220:8900:a71f:c669:1430:24d7) (Ping timeout: 260 seconds)
2020-12-25 02:59:29 +0000xff0x_(~fox@2001:1a81:5255:9e00:b16a:df42:6769:9124)
2020-12-25 03:03:41 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 03:04:12 +0000zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-12-25 03:06:26 +0000zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr)
2020-12-25 03:06:40 +0000jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 03:10:36 +0000theDon(~td@94.134.91.70) (Ping timeout: 240 seconds)
2020-12-25 03:12:36 +0000theDon(~td@94.134.91.122)
2020-12-25 03:12:36 +0000m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
2020-12-25 03:13:15 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 03:14:36 +0000kam1(~kam1@24.231.108.143)
2020-12-25 03:15:10 +0000Ariakenom_(~Ariakenom@2001:9b1:efb:fc00:d1a7:4f8d:6a93:cd27) (Quit: Leaving)
2020-12-25 03:16:47 +0000xirhtogal(~lagothrix@unaffiliated/lagothrix)
2020-12-25 03:16:47 +0000lagothrixGuest33303
2020-12-25 03:16:47 +0000Guest33303(~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services)))
2020-12-25 03:16:47 +0000xirhtogallagothrix
2020-12-25 03:21:04 +0000chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 03:21:30 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 03:24:59 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Remote host closed the connection)
2020-12-25 03:25:14 +0000cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-12-25 03:26:37 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-12-25 03:26:46 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 03:29:16 +0000cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds)
2020-12-25 03:30:03 +0000zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2020-12-25 03:31:12 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Ping timeout: 260 seconds)
2020-12-25 03:31:45 +0000unfixpoint(1f0a965a@31-10-150-90.cgn.dynamic.upc.ch) (Ping timeout: 245 seconds)
2020-12-25 03:33:02 +0000zaquest(~notzaques@5.128.210.178)
2020-12-25 03:37:30 +0000hackagearch-hs 0.6.1.0 - Distribute hackage packages to archlinux https://hackage.haskell.org/package/arch-hs-0.6.1.0 (berberman)
2020-12-25 03:37:42 +0000cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 03:37:54 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-25 03:38:23 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-25 03:41:20 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 03:43:54 +0000sand_dull(~theuser@62.182.99.39)
2020-12-25 03:45:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 03:46:23 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 03:50:30 +0000Saukk(~Saukk@2001:998:ec:954:1c59:9bb5:b94c:3)
2020-12-25 03:50:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 03:51:23 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 03:51:24 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 03:53:38 +0000drbean(~drbean@TC210-63-209-143.static.apol.com.tw)
2020-12-25 03:58:31 +0000cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
2020-12-25 04:00:08 +0000HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving)
2020-12-25 04:01:04 +0000nbloomf(~nbloomf@2601:285:401:7490:59cb:5937:686f:ce2a)
2020-12-25 04:01:47 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 04:06:15 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 04:06:38 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 04:07:10 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2020-12-25 04:07:14 +0000Tops2(~Tobias@dyndsl-095-033-090-086.ewe-ip-backbone.de) (Quit: Leaving.)
2020-12-25 04:11:08 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Ping timeout: 260 seconds)
2020-12-25 04:11:31 +0000electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-12-25 04:11:46 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-25 04:12:13 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
2020-12-25 04:12:51 +0000jedws(~jedws@121.209.189.201)
2020-12-25 04:13:42 +0000jedws(~jedws@121.209.189.201) (Client Quit)
2020-12-25 04:28:25 +0000Genius123(~jessiesgi@unaffiliated/sailorreality) (Read error: No route to host)
2020-12-25 04:31:14 +0000FreeBirdLjj(~freebirdl@101.87.168.174)
2020-12-25 04:31:31 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 04:35:35 +0000ransom_(~c4264035@8.47.12.52)
2020-12-25 04:35:37 +0000FreeBirdLjj(~freebirdl@101.87.168.174) (Ping timeout: 264 seconds)
2020-12-25 04:37:06 +0000solonarv(~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2020-12-25 04:38:03 +0000vicfred(~vicfred@unaffiliated/vicfred)
2020-12-25 04:38:05 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 04:39:56 +0000sand_dull(~theuser@62.182.99.39) (Read error: Connection reset by peer)
2020-12-25 04:42:04 +0000ericsagnes(~ericsagne@2405:6580:0:5100:d7e8:3126:b46e:67f2) (Ping timeout: 258 seconds)
2020-12-25 04:43:43 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Remote host closed the connection)
2020-12-25 04:43:46 +0000coot_(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-25 04:43:57 +0000ransom_(~c4264035@8.47.12.52) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 04:45:08 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-25 04:47:40 +0000kupi(uid212005@gateway/web/irccloud.com/x-luozpabxvpomtxpu) (Quit: Connection closed for inactivity)
2020-12-25 04:48:10 +0000xcmw(~textual@2601:541:4404:bb5c:383c:b842:edcb:4461) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 04:48:27 +0000pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
2020-12-25 04:49:10 +0000solonarv(~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr)
2020-12-25 04:49:22 +0000hwabyong(~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com) (Ping timeout: 260 seconds)
2020-12-25 04:50:19 +0000vancz(~vancz@unaffiliated/vancz) (Ping timeout: 260 seconds)
2020-12-25 04:50:20 +0000pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com)
2020-12-25 04:50:32 +0000vancz(~vancz@unaffiliated/vancz)
2020-12-25 04:51:26 +0000poljar(~poljar@78-3-3-62.adsl.net.t-com.hr) (Read error: Connection reset by peer)
2020-12-25 04:51:57 +0000poljar(~poljar@78-3-3-62.adsl.net.t-com.hr)
2020-12-25 04:52:26 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 04:52:33 +0000Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
2020-12-25 04:53:35 +0000hwabyong(~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com)
2020-12-25 04:54:22 +0000ericsagnes(~ericsagne@2405:6580:0:5100:59e8:11f9:1fd3:c445)
2020-12-25 04:57:06 +0000Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds)
2020-12-25 04:57:06 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 04:57:56 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2020-12-25 04:58:13 +0000electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
2020-12-25 05:01:34 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 246 seconds)
2020-12-25 05:05:14 +0000jvanbure(~jvanbure@159.65.233.183) (Ping timeout: 260 seconds)
2020-12-25 05:05:30 +0000jvanbure(~jvanbure@159.65.233.183)
2020-12-25 05:09:07 +0000hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
2020-12-25 05:11:07 +0000chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-25 05:12:15 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-25 05:14:39 +0000emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0adc.res6.spectrum.com) (Ping timeout: 258 seconds)
2020-12-25 05:21:01 +0000Fractalis(~Fractalis@2601:987:280:8d40:45d0:942f:6e60:692f)
2020-12-25 05:26:09 +0000benjamingr__(uid23465@gateway/web/irccloud.com/x-ankgvusjjrkefawj) (Quit: Connection closed for inactivity)
2020-12-25 05:26:42 +0000bandali(bandali@fsf/emeritus/bandali) (Quit: ZNC - https://znc.in)
2020-12-25 05:27:29 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 05:29:56 +0000bandali(bandali@fsf/emeritus/bandali)
2020-12-25 05:30:28 +0000howdoi(uid224@gateway/web/irccloud.com/x-sgkmaldlngsmvshg) (Quit: Connection closed for inactivity)
2020-12-25 05:31:02 +0000chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 05:31:57 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Ping timeout: 260 seconds)
2020-12-25 05:32:05 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-12-25 05:35:22 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-25 05:35:43 +0000matryoshka(~matryoshk@184.75.223.227)
2020-12-25 05:38:40 +0000iekfkk(~username@117.200.6.46) (Ping timeout: 268 seconds)
2020-12-25 05:40:27 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 05:40:39 +0000iekfkk(~username@117.200.6.46)
2020-12-25 05:43:41 +0000christo(~chris@2a02:c7f:af23:fd00:cc40:5e09:41ba:68b8)
2020-12-25 05:45:11 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 05:45:25 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-25 05:50:19 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-12-25 05:53:07 +0000Fractalis(~Fractalis@2601:987:280:8d40:45d0:942f:6e60:692f) (Quit: Have a good one all, im out!)
2020-12-25 05:54:27 +0000coot_(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot_)
2020-12-25 05:55:33 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-25 05:55:49 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-25 05:57:22 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 05:57:33 +0000wei2912(~wei2912@unaffiliated/wei2912)
2020-12-25 05:58:36 +0000electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-12-25 06:01:58 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 06:02:27 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:02:42 +0000ADG1089__(~aditya@122.163.239.116) (Read error: Connection reset by peer)
2020-12-25 06:03:05 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:03:15 +0000fengh(~haskeller@ip72-205-40-121.dc.dc.cox.net) (Ping timeout: 256 seconds)
2020-12-25 06:04:17 +0000eacameron(uid256985@gateway/web/irccloud.com/x-lhbgdftewugimdol) (Quit: Connection closed for inactivity)
2020-12-25 06:05:40 +0000vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-25 06:09:44 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492)
2020-12-25 06:10:41 +0000vicfred(~vicfred@unaffiliated/vicfred)
2020-12-25 06:12:21 +0000christo(~chris@2a02:c7f:af23:fd00:cc40:5e09:41ba:68b8) (Remote host closed the connection)
2020-12-25 06:13:30 +0000shatriff_(~vitaliish@176-52-216-242.irishtelecom.com)
2020-12-25 06:14:26 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:fd32:3392:6fff:f492) (Ping timeout: 264 seconds)
2020-12-25 06:15:12 +0000shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 272 seconds)
2020-12-25 06:15:47 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 06:16:17 +0000christo(~chris@2a02:c7f:af23:fd00:cc40:5e09:41ba:68b8)
2020-12-25 06:20:00 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 06:20:28 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:21:15 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 06:21:41 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:22:16 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 06:26:37 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 06:27:02 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:27:23 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds)
2020-12-25 06:30:31 +0000vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-25 06:32:42 +0000Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-25 06:37:24 +0000Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-25 06:37:47 +0000Tario(~Tario@201.192.165.173)
2020-12-25 06:43:04 +0000rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
2020-12-25 06:46:53 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 06:49:58 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 06:50:16 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-25 06:50:22 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:51:07 +0000kori(~kori@2804:14c:85a3:9105::1001)
2020-12-25 06:51:07 +0000kori(~kori@2804:14c:85a3:9105::1001) (Changing host)
2020-12-25 06:51:07 +0000kori(~kori@arrowheads/kori)
2020-12-25 06:51:17 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 260 seconds)
2020-12-25 06:52:03 +0000ransom_(~c4264035@8.47.12.52)
2020-12-25 06:52:09 +0000ransom_(~c4264035@8.47.12.52) (Client Quit)
2020-12-25 06:52:29 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 06:52:52 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 06:54:14 +0000fiddlerwoaroof(~fiddlerwo@unaffiliated/fiddlerwoaroof) (Remote host closed the connection)
2020-12-25 06:56:17 +0000ransom_(~c4264035@8.47.12.52)
2020-12-25 07:00:09 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 07:07:03 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 07:07:57 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2020-12-25 07:08:25 +0000ransom_(~c4264035@8.47.12.52) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 07:11:42 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 260 seconds)
2020-12-25 07:17:24 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 07:17:50 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 07:19:58 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 07:22:01 +0000urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-12-25 07:24:45 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-25 07:27:23 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 07:28:35 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 07:30:40 +0000Saukk(~Saukk@2001:998:ec:954:1c59:9bb5:b94c:3) (Remote host closed the connection)
2020-12-25 07:31:50 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 264 seconds)
2020-12-25 07:33:12 +0000qwerty(~tema@217.118.92.215)
2020-12-25 07:34:25 +0000cheater(~user@unaffiliated/cheater) (Ping timeout: 264 seconds)
2020-12-25 07:36:10 +0000ransom_(~c4264035@8.47.12.52)
2020-12-25 07:36:11 +0000matryoshka(~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-25 07:36:35 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-25 07:39:12 +0000Laat(~Laat@139.28.218.148) (Remote host closed the connection)
2020-12-25 07:47:43 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 07:48:12 +0000 <_deepfire> are there any libraries that provide secure websockets (wss) servers, that don't involve webserver stacks, like warp etc.?
2020-12-25 07:52:11 +0000xsperry(~as@unaffiliated/xsperry)
2020-12-25 07:52:32 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 260 seconds)
2020-12-25 07:57:20 +0000plutoniix(~q@ppp-27-55-66-145.revip3.asianet.co.th)
2020-12-25 07:59:43 +0000ironmarx(~ironmarx@84.39.117.57)
2020-12-25 08:11:23 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-25 08:14:36 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-25 08:23:37 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-25 08:27:03 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-25 08:29:54 +0000cheater(~user@unaffiliated/cheater)
2020-12-25 08:30:20 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 08:30:28 +0000berberman(~berberman@unaffiliated/berberman)
2020-12-25 08:30:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 08:31:15 +0000berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
2020-12-25 08:32:18 +0000nbloomf(~nbloomf@2601:285:401:7490:59cb:5937:686f:ce2a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 08:33:14 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 08:34:43 +0000Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2020-12-25 08:35:21 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 08:37:44 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-25 08:38:14 +0000pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-12-25 08:39:42 +0000al3x27(~plovs@85.254.74.40)
2020-12-25 08:43:25 +0000drbean(~drbean@TC210-63-209-143.static.apol.com.tw) (Ping timeout: 264 seconds)
2020-12-25 08:45:25 +0000jamm(~jamm@unaffiliated/jamm)
2020-12-25 08:47:26 +0000vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2020-12-25 08:49:36 +0000jamm(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2020-12-25 08:51:59 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-25 08:52:43 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-25 08:54:15 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 08:55:43 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 08:56:52 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-12-25 08:58:34 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 09:00:14 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 09:00:36 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-25 09:03:07 +0000 <siraben> (aoc day 25 spoiler) is there a better way to write the semigroup instance for B? https://github.com/siraben/haoc-2020/blob/master/day25.hs
2020-12-25 09:03:20 +0000 <siraben> if I were to do instance Semigroup (Product B) I get overlapping instances
2020-12-25 09:11:06 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 09:14:43 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-25 09:15:24 +0000zhulikas(~derp@213.239.204.108)
2020-12-25 09:15:44 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 09:16:07 +0000zhulikas(~derp@213.239.204.108) (Client Quit)
2020-12-25 09:16:16 +0000zhulikas(~derp@213.239.204.108)
2020-12-25 09:17:33 +0000cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-12-25 09:20:51 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 09:24:26 +0000fiddlerwoaroof(~fiddlerwo@unaffiliated/fiddlerwoaroof)
2020-12-25 09:25:42 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-12-25 09:29:13 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 09:29:16 +0000hnOsmium0001(uid453710@gateway/web/irccloud.com/x-gekljygtchkukcbi) (Quit: Connection closed for inactivity)
2020-12-25 09:34:11 +0000vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2020-12-25 09:40:28 +0000styledash(~styledash@157.230.173.136) (Quit: Ping timeout (120 seconds))
2020-12-25 09:40:30 +0000 <gentauro> anybody know how (where?) to change colors for the `lsp-ui`? I really can't use it :) https://imgur.com/a/bAs2SQn
2020-12-25 09:40:36 +0000L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 240 seconds)
2020-12-25 09:40:54 +0000styledash(~styledash@157.230.173.136)
2020-12-25 09:46:04 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 09:46:41 +0000 <gentauro> found it :)
2020-12-25 09:46:50 +0000 <gentauro> https://github.com/emacs-lsp/lsp-ui/issues/369#issue-544422242
2020-12-25 09:48:23 +0000 <siraben> gentauro: :D
2020-12-25 09:50:39 +0000banner(~banner@116-255-17-47.ip4.superloop.com)
2020-12-25 09:50:39 +0000banner(~banner@116-255-17-47.ip4.superloop.com) (Client Quit)
2020-12-25 09:51:55 +0000_ht(~quassel@82-169-194-8.biz.kpn.net)
2020-12-25 09:52:04 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-25 09:55:43 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-25 09:58:52 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 10:03:18 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 258 seconds)
2020-12-25 10:03:49 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2020-12-25 10:04:57 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521) (Remote host closed the connection)
2020-12-25 10:05:12 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-25 10:11:20 +0000guest1222(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2020-12-25 10:11:42 +0000son0p(~son0p@181.58.39.182)
2020-12-25 10:19:02 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 10:19:21 +0000_noblegas(uid91066@gateway/web/irccloud.com/x-aqakevzlgrrqrlmm)
2020-12-25 10:24:02 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 264 seconds)
2020-12-25 10:25:44 +0000polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-12-25 10:27:33 +0000DavidEichmann(~david@2a01:4b00:ea36:d800:7190:b601:9ea:6e3e)
2020-12-25 10:27:33 +0000olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-12-25 10:33:03 +0000kuribas(~user@ptr-25vy0ia20n5d17pacij.18120a2.ip6.access.telenet.be)
2020-12-25 10:33:17 +0000Franciman(~francesco@host-82-49-79-73.retail.telecomitalia.it)
2020-12-25 10:34:30 +0000hackagebishbosh 0.0.0.7 - Plays chess. https://hackage.haskell.org/package/bishbosh-0.0.0.7 (AlistairWard)
2020-12-25 10:35:45 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:9d10:f316:4709:bd2c)
2020-12-25 10:37:06 +0000asheshambasta(~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be)
2020-12-25 10:37:17 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 10:37:40 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 10:39:21 +0000__monty__(~toonn@unaffiliated/toonn)
2020-12-25 10:39:22 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 10:41:28 +0000christo(~chris@2a02:c7f:af23:fd00:cc40:5e09:41ba:68b8) (Remote host closed the connection)
2020-12-25 10:43:18 +0000shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:5526:7bff:8975:9331) (Ping timeout: 268 seconds)
2020-12-25 10:44:02 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 260 seconds)
2020-12-25 10:44:13 +0000knupfer(~Thunderbi@mue-88-130-61-228.dsl.tropolys.de)
2020-12-25 10:45:49 +0000acidjnk_new(~acidjnk@p200300d0c704e768908e218c407fff58.dip0.t-ipconnect.de)
2020-12-25 10:46:22 +0000Stanley00(~stanley00@unaffiliated/stanley00) (Quit: Nice weekend & Merry Christmas)
2020-12-25 10:46:42 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-25 10:49:20 +0000strawman2511(~strawman2@171.252.155.14)
2020-12-25 10:50:38 +0000 <xerox_> Merry Christmas #haskell!
2020-12-25 10:50:41 +0000 <strawman2511> I am new to programming and I really want to learn Haskell the effective way. Which book do you think I should take? This one https://haskellbook.com/
2020-12-25 10:52:16 +0000 <__monty__> Merry christmas, xerox_, peeps
2020-12-25 10:52:39 +0000 <__monty__> strawman2511: How much experience do you have with programming and functional languages?
2020-12-25 10:53:17 +0000 <strawman2511> I don't have any experience.
2020-12-25 10:53:37 +0000 <strawman2511> But I like Haskell
2020-12-25 10:53:46 +0000 <__monty__> Then that book's probably the way to go.
2020-12-25 10:53:53 +0000 <merijn> strawman2511: That one is decent. I've also heard that "Thinking Functionall With Haskell" by Richard Bird and "Programming in Haskell" by Graham Hutton are good
2020-12-25 10:54:08 +0000 <__monty__> Yeah, was going to recommend the latter too.
2020-12-25 10:55:20 +0000DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-12-25 10:55:29 +0000 <strawman2511> Are all of that book include a lastest version of Haskell?
2020-12-25 10:55:45 +0000DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-12-25 10:55:46 +0000avdb(~avdb@gateway/tor-sasl/avdb)
2020-12-25 10:55:58 +0000 <__monty__> Don't think any of them do. GHC 8.10.3 was released the day before yesterday : )
2020-12-25 10:56:11 +0000 <merijn> strawman2511: There isn't really a "latest version" (in any sense that matters) in the sense of python 2 vs 3
2020-12-25 10:56:45 +0000 <__monty__> But I wouldn't worry too much about that. This channel is a great place to ask about stuff that confuses you.
2020-12-25 10:57:03 +0000 <merijn> strawman2511: I mean, the latest Haskell spec is from 2010 and GHC's support for that has changed rather little. Of course the "standard" library has changed a bit, but not enough to worry about
2020-12-25 10:57:05 +0000 <__monty__> And you've already found it : )
2020-12-25 10:57:48 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 10:58:10 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 10:59:17 +0000berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
2020-12-25 10:59:23 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 10:59:41 +0000berberman(~berberman@unaffiliated/berberman)
2020-12-25 10:59:49 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:00:58 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:01:21 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:02:55 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:03:57 +0000strawman2511(~strawman2@171.252.155.14) (Quit: Leaving)
2020-12-25 11:05:56 +0000sgibber2018(~arch-gibb@208.85.237.137) (Ping timeout: 240 seconds)
2020-12-25 11:05:59 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:07:03 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:07:28 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:08:01 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:08:31 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:08:46 +0000rando25892(~rando2589@unaffiliated/mixfix41)
2020-12-25 11:09:11 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:09:36 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:12:39 +0000son0p(~son0p@181.58.39.182) (Quit: leaving)
2020-12-25 11:14:36 +0000asheshambasta(~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) (Ping timeout: 258 seconds)
2020-12-25 11:14:48 +0000Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-25 11:15:16 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:15:36 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:15:39 +0000 <idnar> :t traverse
2020-12-25 11:15:41 +0000 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2020-12-25 11:16:46 +0000cosimone(~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
2020-12-25 11:16:55 +0000 <idnar> @hoogle (Foldable t, Applicative f) => (a -> f b) -> t a -> f [b]
2020-12-25 11:16:56 +0000 <lambdabot> Data.Vector.Fixed.Generic mapMG :: (Vector v a, Vector w b, Dim w ~ Dim v, Monad m) => (a -> m b) -> v a -> m (w b)
2020-12-25 11:18:01 +0000 <idnar> :t (traverse .) . toList
2020-12-25 11:18:03 +0000 <lambdabot> error:
2020-12-25 11:18:03 +0000 <lambdabot> Ambiguous occurrence ‘toList’
2020-12-25 11:18:03 +0000 <lambdabot> It could refer to
2020-12-25 11:18:44 +0000 <idnar> :t (traverse .) . Data.Foldable.toList
2020-12-25 11:18:45 +0000 <lambdabot> error:
2020-12-25 11:18:45 +0000 <lambdabot> • Couldn't match type ‘[a]’ with ‘a1 -> a2 -> f b’
2020-12-25 11:18:45 +0000 <lambdabot> Expected type: t a -> a1 -> a2 -> f b
2020-12-25 11:19:20 +0000 <idnar> :t \f -> traverse f . Data.Foldable.toList
2020-12-25 11:19:22 +0000 <lambdabot> (Applicative f, Foldable t) => (a -> f b) -> t a -> f [b]
2020-12-25 11:19:54 +0000 <idnar> @pl \f -> traverse f . Data.Foldable.toList
2020-12-25 11:19:54 +0000 <lambdabot> (. Data.Foldable.toList) . traverse
2020-12-25 11:20:15 +0000 <idnar> ohh
2020-12-25 11:21:45 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 11:26:16 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-25 11:29:01 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:29:22 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:31:50 +0000quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2020-12-25 11:31:56 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 11:32:59 +0000quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2020-12-25 11:34:27 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 11:34:43 +0000roconnor(~roconnor@host-45-78-199-13.dyn.295.ca) (Quit: Konversation terminated!)
2020-12-25 11:35:25 +0000fendor(~fendor@178.115.130.212.wireless.dyn.drei.com)
2020-12-25 11:35:30 +0000drbean(~drbean@TC210-63-209-18.static.apol.com.tw)
2020-12-25 11:36:11 +0000haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 272 seconds)
2020-12-25 11:37:02 +0000haritz(~hrtz@62.3.70.206)
2020-12-25 11:37:03 +0000haritz(~hrtz@62.3.70.206) (Changing host)
2020-12-25 11:37:03 +0000haritz(~hrtz@unaffiliated/haritz)
2020-12-25 11:40:07 +0000Lscot22(~Lscot22@cpc101772-grth12-2-0-cust170.16-4.cable.virginm.net)
2020-12-25 11:41:52 +0000cosimone(~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Quit: cosimone)
2020-12-25 11:43:20 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 11:43:49 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 11:44:52 +0000ulidtko(~ulidtko@194.54.80.38)
2020-12-25 11:45:07 +0000ulidtko(~ulidtko@194.54.80.38) (Remote host closed the connection)
2020-12-25 11:45:21 +0000ulidtko(~ulidtko@194.54.80.38)
2020-12-25 11:46:05 +0000Lscot22(~Lscot22@cpc101772-grth12-2-0-cust170.16-4.cable.virginm.net) ()
2020-12-25 11:47:40 +0000 <__monty__> idnar: Hmm, thought that might be a bird but closest I can get is `cardinal' . flip` and what's the point of birds if you need flip anyway : /
2020-12-25 11:53:26 +0000acidjnk_new(~acidjnk@p200300d0c704e768908e218c407fff58.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-12-25 11:57:27 +0000ironmarx(~ironmarx@84.39.117.57) (Remote host closed the connection)
2020-12-25 11:58:02 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-25 12:03:00 +0000 <int-e> flipping birds is traditional, I suppose
2020-12-25 12:05:42 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-25 12:09:03 +0000Mikagami(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-25 12:09:27 +0000avdb(~avdb@gateway/tor-sasl/avdb) (Quit: avdb)
2020-12-25 12:09:42 +0000Mikagami(~MOSCOS@122.54.107.175)
2020-12-25 12:11:05 +0000juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 240 seconds)
2020-12-25 12:11:37 +0000 <idnar> birds?
2020-12-25 12:13:08 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 12:13:38 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 12:14:02 +0000shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:ac1c:ca8f:6bba:6ac5)
2020-12-25 12:15:42 +0000 <int-e> See https://en.wikipedia.org/wiki/To_Mock_a_Mockingbird
2020-12-25 12:16:11 +0000Entertainment(~entertain@104.246.132.210)
2020-12-25 12:19:00 +0000Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
2020-12-25 12:19:31 +0000solonarv(~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2020-12-25 12:22:13 +0000plutoniix(~q@ppp-27-55-66-145.revip3.asianet.co.th) (Quit: Leaving)
2020-12-25 12:27:40 +0000Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-25 12:27:48 +0000 <kuribas> merijn: I find the "traversal over a fold" explanation of clojure transducer not that satisfactory. Since filter comparers to filtering, which isn't a lawful traversal.
2020-12-25 12:27:53 +0000 <kuribas> :t filtering
2020-12-25 12:27:54 +0000 <lambdabot> error: Variable not in scope: filtering
2020-12-25 12:28:02 +0000 <kuribas> :t filtered
2020-12-25 12:28:04 +0000 <lambdabot> (Choice p, Applicative f) => (a -> Bool) -> Optic' p f a a
2020-12-25 12:28:23 +0000m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2020-12-25 12:30:40 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 12:30:43 +0000 <kuribas> merijn: With the streaming analogy you get: filter p = \a -> if p a then pure a else mempty
2020-12-25 12:32:14 +0000 <kuribas> however the transducer abstraction in clojure is quite *dirty*, since you need to use side-effectful state for some operations (like take), and actual short circuit termination needs to be checked in each transducer separately.
2020-12-25 12:33:37 +0000 <kuribas> Where it's automatic when using "SerialT (ExceptT IO) a" for example.
2020-12-25 12:34:13 +0000 <kuribas> it shows how the whole explanation of "dynamic types are more general since they have less restrictions" falls flat in practice.
2020-12-25 12:36:03 +0000kupi(uid212005@gateway/web/irccloud.com/x-ydcdmiqkfmdjfpug)
2020-12-25 12:36:07 +0000 <kuribas> In theory you can write more dynamic programs than statically typed programs, but in practice, without means for a language to properly create abstractions, layering and structuring abstractions becomes almost impossible.
2020-12-25 12:38:43 +0000 <kuribas> transducers in clojure seem rather easy to use, but tricky to implement properly.
2020-12-25 12:39:17 +0000 <kuribas> And the explanation is rather confusing.
2020-12-25 12:41:04 +0000berberman_(~berberman@unaffiliated/berberman)
2020-12-25 12:41:11 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:79fd:8fd5:a80e:11e2)
2020-12-25 12:42:08 +0000berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-12-25 12:42:53 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 12:44:14 +0000 <kuribas> hmm, I guess the side effects would make the type: IO (\a -> Streamly (ExceptT IO) b)
2020-12-25 12:44:31 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 12:44:37 +0000juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 264 seconds)
2020-12-25 12:44:42 +0000 <kuribas> hmm, is there a way to "hide state", without using IO and IORef?
2020-12-25 12:45:20 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 12:45:42 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 12:46:38 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 12:47:02 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 12:47:04 +0000metamod(uid478611@gateway/web/irccloud.com/x-rmjicccbfuhhydlz) (Quit: Connection closed for inactivity)
2020-12-25 12:47:57 +0000pavonia(~user@unaffiliated/siracusa)
2020-12-25 12:48:33 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 12:48:55 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 12:50:20 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 12:52:59 +0000ADG1089__(~aditya@122.163.239.116) (Remote host closed the connection)
2020-12-25 12:53:21 +0000ADG1089__(~aditya@122.163.239.116)
2020-12-25 12:54:29 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:9d10:f316:4709:bd2c) ()
2020-12-25 12:55:08 +0000tchoutri(~tchoutri@i16-les04-th2-62-35-126-255.sfr.lns.abo.bbox.fr)
2020-12-25 12:55:14 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 264 seconds)
2020-12-25 12:55:14 +0000 <tchoutri> hello there
2020-12-25 12:56:09 +0000axeman-(~axeman_@ip5f5af023.dynamic.kabel-deutschland.de)
2020-12-25 12:57:24 +0000Guest78853(~botro@178.239.168.171)
2020-12-25 12:57:49 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-25 12:58:14 +0000superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
2020-12-25 12:59:06 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 13:00:42 +0000Varis(~Tadas@unaffiliated/varis)
2020-12-25 13:01:48 +0000 <juri_> hallo!
2020-12-25 13:02:24 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-25 13:02:55 +0000 <kuribas> hey
2020-12-25 13:03:04 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-25 13:03:08 +0000 <kuribas> ah, this would hide the state: Transducer = forall s . Transducer s (a -> (\c -> Streamly (ExceptT a (StateT s IO) a)) ((s, a) -> b))
2020-12-25 13:10:40 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 13:15:04 +0000notzmv(~user@unaffiliated/zmv) (Ping timeout: 246 seconds)
2020-12-25 13:15:07 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 260 seconds)
2020-12-25 13:15:54 +0000notzmv(~user@unaffiliated/zmv)
2020-12-25 13:17:53 +0000tchoutri(~tchoutri@i16-les04-th2-62-35-126-255.sfr.lns.abo.bbox.fr) (Quit: leaving)
2020-12-25 13:19:19 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 268 seconds)
2020-12-25 13:20:40 +0000Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
2020-12-25 13:20:40 +0000olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds)
2020-12-25 13:21:27 +0000knupfer(~Thunderbi@mue-88-130-61-228.dsl.tropolys.de) (Quit: knupfer)
2020-12-25 13:23:34 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 13:24:41 +0000ADG1089_(~aditya@223.226.230.252)
2020-12-25 13:25:35 +0000dyeplexer(~lol@unaffiliated/terpin)
2020-12-25 13:27:06 +0000ADG1089__(~aditya@122.163.239.116) (Ping timeout: 256 seconds)
2020-12-25 13:28:22 +0000ADG1089_(~aditya@223.226.230.252) (Remote host closed the connection)
2020-12-25 13:28:28 +0000strawman2511(~strawman2@171.252.155.14)
2020-12-25 13:28:43 +0000todda7(~torstein@ppp-2-84-17-53.home.otenet.gr) (Ping timeout: 246 seconds)
2020-12-25 13:29:16 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 13:29:59 +0000ADG1089__(~aditya@223.226.230.252)
2020-12-25 13:30:28 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 13:30:48 +0000axeman-(~axeman_@ip5f5af023.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-25 13:32:48 +0000 <__monty__> kuribas: Isn't that what ST does?
2020-12-25 13:32:58 +0000 <kuribas> __monty__: yes
2020-12-25 13:33:07 +0000matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-25 13:33:26 +0000 <kuribas> __monty__: I suppose using ST would be more efficient
2020-12-25 13:35:29 +0000 <kuribas> __monty__: I just wanted to know if it is possible without IO or ST
2020-12-25 13:36:30 +0000 <__monty__> If the state is transitive and self-contained you can sprinkle whatever amount of unsafe you need in there : )
2020-12-25 13:37:28 +0000 <kuribas> no need, an existential quantification can do it safely.
2020-12-25 13:37:48 +0000 <kuribas> as in the type I gave above
2020-12-25 13:40:00 +0000 <kuribas> then to compose states you can tuple both states.
2020-12-25 13:40:26 +0000 <kuribas> but I think a STRef is more efficient, as you don't need to destructure the tuples.
2020-12-25 13:41:08 +0000 <strawman2511> I am think about only "Programming in Haskell" and "Haskell Programming from First Principles" but which one is more easy to learn with?
2020-12-25 13:43:28 +0000ADG1089_(~aditya@27.58.161.118)
2020-12-25 13:44:14 +0000ADG1089__(~aditya@223.226.230.252) (Ping timeout: 272 seconds)
2020-12-25 13:44:32 +0000ADG1089_(~aditya@27.58.161.118) (Remote host closed the connection)
2020-12-25 13:47:49 +0000ADG1089__(~aditya@27.58.161.118)
2020-12-25 13:50:55 +0000ADG1089__(~aditya@27.58.161.118) (Remote host closed the connection)
2020-12-25 13:51:28 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:38c4:4e36:ea6c:80a4)
2020-12-25 13:52:05 +0000drbean(~drbean@TC210-63-209-18.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-12-25 13:53:08 +0000 <superstar64> what properties does `!` from linear logic have? it forms a comonad right?
2020-12-25 13:53:19 +0000ADG1089__(~aditya@27.58.161.118)
2020-12-25 13:56:09 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:38c4:4e36:ea6c:80a4) (Ping timeout: 272 seconds)
2020-12-25 13:59:26 +0000 <dyeplexer> Can we say that interpreted haskell is dynamically typed by definition, since we are not compiling anything and about everything is done at run time?
2020-12-25 13:59:48 +0000strawman2511(~strawman2@171.252.155.14) (Quit: Leaving)
2020-12-25 14:00:08 +0000theelous3(~theelous3@unaffiliated/theelous3)
2020-12-25 14:00:17 +0000carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-25 14:00:28 +0000 <kuribas> dyeplexer: no, because even when interpreted, the types are checked before any code is run.
2020-12-25 14:00:30 +0000 <superstar64> i wouldn't say so
2020-12-25 14:00:59 +0000 <kuribas> unless you turn on defer type errors.
2020-12-25 14:01:07 +0000 <kuribas> Then it's some weird hybrid.
2020-12-25 14:01:09 +0000son0p(~son0p@181.136.122.143)
2020-12-25 14:01:09 +0000 <dyeplexer> but aren't types checked only when a statement is executed in the case of an interpreter?
2020-12-25 14:01:19 +0000 <kuribas> dyeplexer: by default no
2020-12-25 14:01:39 +0000 <hpc> ghci isn't an interpreted full program
2020-12-25 14:01:51 +0000 <hpc> think of runghc instead
2020-12-25 14:02:26 +0000 <kuribas> dyeplexer: it is if you use the flag -fdefer-type-errors Which can be used when compiling also btw.
2020-12-25 14:02:37 +0000hvr(~hvr@haskell/developer/hvr) (Read error: Connection reset by peer)
2020-12-25 14:02:39 +0000 <kuribas> it has nothing to do with being interpreted.
2020-12-25 14:03:06 +0000hvr(~hvr@haskell/developer/hvr)
2020-12-25 14:04:06 +0000kadobanana(~mud@unaffiliated/kadoban)
2020-12-25 14:04:25 +0000mud(~mud@unaffiliated/kadoban) (Ping timeout: 264 seconds)
2020-12-25 14:04:54 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Remote host closed the connection)
2020-12-25 14:05:00 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948)
2020-12-25 14:05:39 +0000ADG1089__(~aditya@27.58.161.118) (Remote host closed the connection)
2020-12-25 14:06:29 +0000elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-12-25 14:07:05 +0000 <dyeplexer> Okay, I think I realised what I was missing. Let's say in a language like python the "initial pass" only checks for syntax errors and type checking is only done when a given function is called. In Haskell, however, the function bodies will be checked for type errors immediately.
2020-12-25 14:07:50 +0000 <dyeplexer> So yes. It is deferred in one case until a given function or block is called, and not in the other.
2020-12-25 14:08:24 +0000 <kuribas> yes
2020-12-25 14:09:07 +0000 <dyeplexer> thanks
2020-12-25 14:10:25 +0000Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2020-12-25 14:11:08 +0000 <merijn> dyeplexer: Also, ghci does compile
2020-12-25 14:11:13 +0000 <merijn> dyeplexer: It compiles to bytecode and runs that
2020-12-25 14:11:34 +0000 <dyeplexer> I see
2020-12-25 14:11:45 +0000 <siraben> How do I view the GHC core for a function?
2020-12-25 14:11:59 +0000 <merijn> dyeplexer: The real issue is that ghci is kind of a weird animal
2020-12-25 14:12:20 +0000 <merijn> dyeplexer: Where it kinda pretend as if you're writing everything into some pseudo-do-block, but you can also define things
2020-12-25 14:12:35 +0000 <merijn> siraben: You want one of the -d dump flags from the user guide
2020-12-25 14:12:55 +0000 <siraben> merijn: I used -ddump-simpl but get simplified core
2020-12-25 14:12:57 +0000 <siraben> for main
2020-12-25 14:13:06 +0000avdb(~avdb@gateway/tor-sasl/avdb)
2020-12-25 14:13:28 +0000 <merijn> There's roughly 20 gazillion dump flags, so I'm sure *one* of them does what you want ;)
2020-12-25 14:14:24 +0000mud(~mud@unaffiliated/kadoban)
2020-12-25 14:14:30 +0000L29Ah(~L29Ah@unaffiliated/l29ah)
2020-12-25 14:15:02 +0000kadobanana(~mud@unaffiliated/kadoban) (Ping timeout: 256 seconds)
2020-12-25 14:15:27 +0000ericsagnes(~ericsagne@2405:6580:0:5100:59e8:11f9:1fd3:c445) (Ping timeout: 260 seconds)
2020-12-25 14:17:05 +0000 <kuribas> siraben: https://www.stephendiehl.com/posts/ghc_03.html
2020-12-25 14:17:32 +0000 <kuribas> siraben: wait, you want core before simplifying?
2020-12-25 14:17:41 +0000 <kuribas> usually you want it after...
2020-12-25 14:18:57 +0000hiroaki(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2020-12-25 14:19:03 +0000 <siraben> `ghci -ddump-simpl -dsuppress-idinfo -dsuppress-coercions -dsuppress-type-applications -dsuppress-uniques -dsuppress-module-prefixes` worked, haha
2020-12-25 14:19:41 +0000 <siraben> I was wondering why http://ix.io/2JuY typechecked
2020-12-25 14:21:18 +0000unfixpoint(1f0a965a@31-10-150-90.cgn.dynamic.upc.ch)
2020-12-25 14:22:03 +0000 <siraben> new bug report: https://gitlab.haskell.org/ghc/ghc/-/issues/19120
2020-12-25 14:22:22 +0000kenran(~kenran@mue-88-130-62-111.dsl.tropolys.de)
2020-12-25 14:25:24 +0000 <wz1000> siraben: is there some CSE going on in the core?
2020-12-25 14:26:46 +0000ericsagnes(~ericsagne@2405:6580:0:5100:ab2d:498c:8056:226d)
2020-12-25 14:28:08 +0000 <siraben> wz1000: even if there was, this should fail: http://ix.io/2Jv0
2020-12-25 14:30:20 +0000shatriff_(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2020-12-25 14:30:56 +0000shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2020-12-25 14:31:20 +0000hiroaki(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
2020-12-25 14:32:03 +0000cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
2020-12-25 14:32:34 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 14:35:11 +0000cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2020-12-25 14:38:32 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-25 14:39:55 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 14:40:02 +0000kadobanana(~mud@unaffiliated/kadoban)
2020-12-25 14:40:12 +0000bitmagie(~Thunderbi@200116b806659c0004b8d0e2566ee58f.dip.versatel-1u1.de)
2020-12-25 14:40:18 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 14:41:01 +0000mud(~mud@unaffiliated/kadoban) (Ping timeout: 264 seconds)
2020-12-25 14:41:21 +0000tick(3b639272@59.99.146.114)
2020-12-25 14:42:07 +0000tick(3b639272@59.99.146.114) (Remote host closed the connection)
2020-12-25 14:45:02 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds)
2020-12-25 14:45:25 +0000perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2020-12-25 14:47:55 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 14:48:26 +0000kish`(~oracle@unaffiliated/oracle) (Read error: Connection reset by peer)
2020-12-25 14:49:01 +0000kish`(~oracle@unaffiliated/oracle)
2020-12-25 14:50:13 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 14:51:18 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Client Quit)
2020-12-25 14:53:40 +0000kadobanana(~mud@unaffiliated/kadoban) (Ping timeout: 268 seconds)
2020-12-25 14:55:48 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 14:57:42 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 258 seconds)
2020-12-25 15:00:44 +0000perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-12-25 15:01:24 +0000p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-12-25 15:02:33 +0000toorevitimirp(~tooreviti@117.182.181.108) (Remote host closed the connection)
2020-12-25 15:02:39 +0000p8m_(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
2020-12-25 15:03:35 +0000perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit)
2020-12-25 15:04:35 +0000kupi(uid212005@gateway/web/irccloud.com/x-ydcdmiqkfmdjfpug) (Quit: Connection closed for inactivity)
2020-12-25 15:04:41 +0000kadobanana(~mud@unaffiliated/kadoban)
2020-12-25 15:05:02 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 15:07:01 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 15:07:12 +0000perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-12-25 15:08:11 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 15:08:52 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521)
2020-12-25 15:11:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-25 15:13:01 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Client Quit)
2020-12-25 15:13:50 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521) (Ping timeout: 264 seconds)
2020-12-25 15:16:59 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 15:17:50 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 15:18:22 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2020-12-25 15:18:38 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 264 seconds)
2020-12-25 15:18:45 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 15:19:01 +0000Tario(~Tario@201.192.165.173)
2020-12-25 15:20:51 +0000xcmw(~textual@2601:541:4404:bb5c:1d4c:44fb:70ff:549e)
2020-12-25 15:23:05 +0000fendor_(~fendor@77.119.130.68.wireless.dyn.drei.com)
2020-12-25 15:23:10 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2020-12-25 15:24:27 +0000 <kuribas> is this related to monadBaseControl? https://hackage.haskell.org/package/transformers-base-0.4.5.2/docs/Control-Monad-Base.html
2020-12-25 15:25:00 +0000superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Remote host closed the connection)
2020-12-25 15:25:07 +0000urodna(~urodna@unaffiliated/urodna)
2020-12-25 15:25:37 +0000fendor(~fendor@178.115.130.212.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
2020-12-25 15:27:47 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 15:30:03 +0000 <kuribas> is there a way to "map" an inner monad? Like (m a -> n a) -> t m a -> t n a
2020-12-25 15:30:06 +0000 <kuribas> ?
2020-12-25 15:30:30 +0000 <Uniaika> I see what you mean
2020-12-25 15:30:39 +0000 <Uniaika> but I don't think I could implement it
2020-12-25 15:30:46 +0000 <Uniaika> hmm
2020-12-25 15:31:12 +0000DavidEichmann(~david@2a01:4b00:ea36:d800:7190:b601:9ea:6e3e) (Remote host closed the connection)
2020-12-25 15:32:30 +0000wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-12-25 15:33:12 +0000machinedgod(~machinedg@24.105.81.50)
2020-12-25 15:33:28 +0000trafaret1(~user@178.206.114.251)
2020-12-25 15:34:58 +0000 <kuribas> maybe not even possible in general
2020-12-25 15:35:39 +0000 <MarcelineVQ> kuribas: hoist of mmorph
2020-12-25 15:36:52 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:112:182:27ad:b948) (Ping timeout: 260 seconds)
2020-12-25 15:36:56 +0000 <trafaret1> o/
2020-12-25 15:37:12 +0000 <kuribas> MarcelineVQ: neat, thanks :)
2020-12-25 15:38:34 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 15:38:35 +0000 <trafaret1> dear haskellers as a newbie want to know subtle difference between learning lisp and haskell?
2020-12-25 15:38:55 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 15:41:09 +0000son0p(~son0p@181.136.122.143) (Ping timeout: 268 seconds)
2020-12-25 15:42:31 +0000Franciman(~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving)
2020-12-25 15:43:06 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-icexdirphumbtiyv)
2020-12-25 15:43:39 +0000 <kuribas> there is nothing subtle between lisp and haskell, they are totally different.
2020-12-25 15:45:31 +0000 <trafaret1> kuribas: for military purpose which one would be prefferable lisp or haskell. i.e. i want to create models of hyper speed missles and poisones for military purpose
2020-12-25 15:46:35 +0000 <kuribas> trafaret1: sounds like you want a CAD library, instead of a programming language.
2020-12-25 15:47:26 +0000 <kuribas> trafaret1: brl-cad was actually developed by the army
2020-12-25 15:48:28 +0000 <trafaret1> kuribas: hmm It's free like in freedom
2020-12-25 15:49:01 +0000 <kuribas> though it'd be nicer to use any of those for peaceful purposes.
2020-12-25 15:49:29 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 15:49:50 +0000 <Uniaika> kuribas: I'd be interested to see your implementation of hoist of mmorph :)
2020-12-25 15:50:21 +0000 <kuribas> Uniaika: for which class?
2020-12-25 15:50:30 +0000 <kuribas> which instance better?
2020-12-25 15:53:03 +0000 <Uniaika> hmm
2020-12-25 15:53:16 +0000infinity0(~infinity0@freenet/developer/infinity0) (Ping timeout: 246 seconds)
2020-12-25 15:53:31 +0000 <Uniaika> let's do something simple? IO [a]?
2020-12-25 15:54:34 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 15:54:38 +0000computerbernd(5cdabf52@ipservice-092-218-191-082.092.218.pools.vodafone-ip.de)
2020-12-25 15:55:09 +0000knupfer(~Thunderbi@200116b8248ff600885567758ef1158c.dip.versatel-1u1.de)
2020-12-25 15:55:30 +0000 <kuribas> IO is not a transfomer...
2020-12-25 15:55:42 +0000unlink2(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de)
2020-12-25 15:56:10 +0000xcmw(~textual@2601:541:4404:bb5c:1d4c:44fb:70ff:549e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 15:56:30 +0000todda7(~torstein@ppp-2-84-17-53.home.otenet.gr)
2020-12-25 15:59:22 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-12-25 15:59:26 +0000 <kuribas> did you mean ListT?
2020-12-25 15:59:38 +0000 <kuribas> ListT is hardly simple. It's not even a proper transformer.
2020-12-25 15:59:41 +0000trafaret1(~user@178.206.114.251) ("ERC (IRC client for Emacs 26.3)")
2020-12-25 16:00:05 +0000aloiscochard[m](aloiscocha@gateway/shell/matrix.org/x-oybvygklfcvredwt) (Quit: Idle for 30+ days)
2020-12-25 16:00:29 +0000 <Uniaika> kuribas: dangit. ReaderT then?
2020-12-25 16:00:33 +0000 <Uniaika> and uh
2020-12-25 16:00:43 +0000 <Uniaika> hmm, I realise I don't stack Transformers that much
2020-12-25 16:00:57 +0000 <Uniaika> okay why not a simple WriterT + ReaderT?
2020-12-25 16:01:38 +0000 <computerbernd> heya, can anyone help me extract the Aeson Object from field "doc" and convert to type SensorData using Data.Aeson.Lens? https://pastebin.com/KFfhFe4D
2020-12-25 16:02:52 +0000kritzefitz(~kritzefit@212.86.56.80)
2020-12-25 16:03:20 +0000 <kuribas> Uniaika: instance Hoist ReaderT where hoist f (ReaderT g) = ReaderT $ f . g
2020-12-25 16:03:59 +0000HarveyPwca(~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06)
2020-12-25 16:05:25 +0000justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-25 16:05:49 +0000cheater1(~user@unaffiliated/cheater)
2020-12-25 16:05:54 +0000ransom_(~c4264035@8.47.12.52) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 16:06:09 +0000 <kuribas> Uniaika: instance Hoist (WriterT w) where hoist f (WriterT m) = WriterT $ f m
2020-12-25 16:06:12 +0000 <Uniaika> kuribas: this awfully looks like Functor ((->) r), right?
2020-12-25 16:06:58 +0000 <kuribas> yeah
2020-12-25 16:08:00 +0000cheater(~user@unaffiliated/cheater) (Ping timeout: 272 seconds)
2020-12-25 16:08:04 +0000cheater1cheater
2020-12-25 16:09:30 +0000 <kuribas> so hoist is basically fmap . unwrap?
2020-12-25 16:10:15 +0000paintcan(~user@cpe-69-206-241-99.nyc.res.rr.com)
2020-12-25 16:10:20 +0000 <kuribas> well wrap . fmap . unwrap?
2020-12-25 16:10:26 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521)
2020-12-25 16:10:48 +0000 <kuribas> shame these aren't provided by default
2020-12-25 16:11:34 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392)
2020-12-25 16:12:31 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-25 16:12:41 +0000son0p(~son0p@181.136.122.143)
2020-12-25 16:12:53 +0000Rudd0(~Rudd0@185.189.115.108)
2020-12-25 16:13:13 +0000juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 246 seconds)
2020-12-25 16:14:29 +0000hackageincremental-parser 0.5.0.1 - Generic parser library capable of providing partial results from partial input. https://hackage.haskell.org/package/incremental-parser-0.5.0.1 (MarioBlazevic)
2020-12-25 16:15:04 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521) (Ping timeout: 268 seconds)
2020-12-25 16:19:19 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-138.cust.tzulo.com)
2020-12-25 16:20:23 +0000_noblegas(uid91066@gateway/web/irccloud.com/x-aqakevzlgrrqrlmm) (Quit: Connection closed for inactivity)
2020-12-25 16:24:33 +0000santadaemonshadowdaemon
2020-12-25 16:26:06 +0000otulp(~otulp@ti0187q162-6038.bb.online.no)
2020-12-25 16:26:42 +0000 <nf> if i have a top-level m :: Nat , can i somehow use it like cyclicGroup @Integer @m ? (https://hackage.haskell.org/package/arithmoi-0.11.0.1/docs/Math-NumberTheory-Moduli-Singleton.html…)
2020-12-25 16:26:50 +0000 <nf> er, Natural
2020-12-25 16:28:39 +0000hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-12-25 16:30:27 +0000kayprish(~kayprish@cable-188-2-151-212.dynamic.sbb.rs)
2020-12-25 16:30:48 +0000son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-12-25 16:32:19 +0000jamm(~jamm@unaffiliated/jamm)
2020-12-25 16:33:09 +0000hiroaki(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2020-12-25 16:34:17 +0000bitmagie(~Thunderbi@200116b806659c0004b8d0e2566ee58f.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-25 16:35:55 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 16:38:13 +0000bitmagie(~Thunderbi@200116b806659c0004b8d0e2566ee58f.dip.versatel-1u1.de)
2020-12-25 16:39:36 +0000bitmagie(~Thunderbi@200116b806659c0004b8d0e2566ee58f.dip.versatel-1u1.de) (Client Quit)
2020-12-25 16:39:44 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-25 16:39:47 +0000hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-25 16:41:19 +0000kayprish(~kayprish@cable-188-2-151-212.dynamic.sbb.rs) (Quit: Leaving)
2020-12-25 16:42:03 +0000hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-25 16:44:11 +0000jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-25 16:44:27 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 16:44:28 +0000Franciman(~francesco@host-82-49-79-73.retail.telecomitalia.it)
2020-12-25 16:46:34 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 16:47:02 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 16:47:10 +0000 <computerbernd> hi, i got this monster to parse some aeson Value, how do i get to a Data.Aeson.Lens one liner? https://pastebin.com/gk8wirBn
2020-12-25 16:47:54 +0000 <xerox_> nf: doesn't glguy's do that
2020-12-25 16:48:19 +0000 <nf> he uses a type Modulus :: Nat directly
2020-12-25 16:49:34 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2020-12-25 16:49:52 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392) (Remote host closed the connection)
2020-12-25 16:49:56 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 16:49:58 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-25 16:50:04 +0000hiroaki(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-25 16:50:15 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392)
2020-12-25 16:50:19 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 272 seconds)
2020-12-25 16:51:32 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-12-25 16:52:37 +0000 <glguy> nf, you'll need to get it into a Some-variant
2020-12-25 16:52:48 +0000 <glguy> And then do the algorithm in a case statement
2020-12-25 16:52:53 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 16:52:58 +0000 <nf> but then can i use discreteLogarithm?
2020-12-25 16:53:52 +0000 <glguy> Yeah
2020-12-25 16:53:56 +0000 <glguy> https://hackage.haskell.org/package/base-4.12.0.0/docs/GHC-TypeNats.html#t:SomeNat
2020-12-25 16:54:50 +0000 <nf> but cyclicGroup :: forall a m. (Integral a, UniqueFactorisation a, KnownNat m) => Maybe (CyclicGroup a m)
2020-12-25 16:55:03 +0000 <nf> how do i get a KnownNat there
2020-12-25 16:56:56 +0000 <glguy> Case on the SomeNat
2020-12-25 16:57:29 +0000 <nf> oooh right, it has a KnownNat inside
2020-12-25 16:57:53 +0000 <nf> type-level stuff in haskell is so confusing *_*
2020-12-25 16:59:46 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 17:03:13 +0000 <monochrom> This is why I avoid non-trivial type-level techniques.
2020-12-25 17:03:40 +0000 <monochrom> encodings and emulations die die die.
2020-12-25 17:03:46 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 17:03:51 +0000neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-12-25 17:03:57 +0000neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2020-12-25 17:03:57 +0000neiluj(~jco@unaffiliated/neiluj)
2020-12-25 17:04:08 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 17:07:20 +0000jamm(~jamm@unaffiliated/jamm)
2020-12-25 17:08:42 +0000xff0x_(~fox@2001:1a81:5255:9e00:b16a:df42:6769:9124) (Quit: xff0x_)
2020-12-25 17:08:49 +0000xff0x(~fox@2001:1a81:5255:9e00:b16a:df42:6769:9124)
2020-12-25 17:09:05 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-12-25 17:11:08 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521)
2020-12-25 17:11:29 +0000electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
2020-12-25 17:14:59 +0000xcmw(~textual@2601:541:4404:bb5c:1d4c:44fb:70ff:549e)
2020-12-25 17:16:02 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521) (Ping timeout: 260 seconds)
2020-12-25 17:16:15 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 17:16:56 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Remote host closed the connection)
2020-12-25 17:17:17 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 17:23:40 +0000ADG1089__(~aditya@27.58.161.118)
2020-12-25 17:24:08 +0000knupfer(~Thunderbi@200116b8248ff600885567758ef1158c.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-12-25 17:24:43 +0000knupfer(~Thunderbi@200116b8248ff6009cce3efffe09a09b.dip.versatel-1u1.de)
2020-12-25 17:24:43 +0000knupfer(~Thunderbi@200116b8248ff6009cce3efffe09a09b.dip.versatel-1u1.de) (Client Quit)
2020-12-25 17:24:50 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Remote host closed the connection)
2020-12-25 17:24:59 +0000knupfer(~Thunderbi@mue-88-130-61-228.dsl.tropolys.de)
2020-12-25 17:25:13 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 17:28:03 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 17:28:41 +0000Fischmiep(~Fischmiep@149.224.226.211)
2020-12-25 17:28:44 +0000juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 258 seconds)
2020-12-25 17:29:10 +0000 <kuribas> Uniaika: considering how easy they are to write, they should have been standard, like MonadTrans...
2020-12-25 17:29:33 +0000 <Uniaika> kuribas: awaiting your MR on GHC :)
2020-12-25 17:29:34 +0000 <Uniaika> :3
2020-12-25 17:29:49 +0000 <Uniaika> (joking, I think this would warrant a libraries proposal first)
2020-12-25 17:30:22 +0000 <nf> so... this works https://github.com/ncfavier/aoc/blob/master/src/2020/Day25.hs#L14
2020-12-25 17:30:33 +0000 <nf> but if i remove @Integer i get "Could not deduce (Integral a0) arising from a use of ‘isPrimitiveRoot’"
2020-12-25 17:30:52 +0000 <nf> seems like i'm doing exactly the same thing as glguy though o_O
2020-12-25 17:31:02 +0000 <nf> maybe some language extension
2020-12-25 17:31:42 +0000 <computerbernd> what does it mean that 'join (parseMaybe A.parseJSON <$> (r ^? nth 0 ^? key "doc"))' results in "No instance for (AsValue (Maybe Value)) arising from a use of ‘key’"?
2020-12-25 17:33:32 +0000 <nf> oh god, it's the monomorphism restriction
2020-12-25 17:34:36 +0000 <nf> ok i have no idea what's happening
2020-12-25 17:35:22 +0000 <kuribas> Uniaika: I don't mean just base, also monad transformers in libraries.
2020-12-25 17:35:39 +0000 <kuribas> Uniaika: but if it's in base, then libraries are more likely to implement them :)
2020-12-25 17:36:13 +0000 <Uniaika> kuribas: awaiting your email to libraries@ then :3
2020-12-25 17:36:24 +0000 <kuribas> where is that?
2020-12-25 17:36:54 +0000 <Uniaika> https://mail.haskell.org/mailman/listinfo/libraries kuribas
2020-12-25 17:37:00 +0000 <kuribas> ok, thanks
2020-12-25 17:39:32 +0000theelous3(~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer)
2020-12-25 17:39:41 +0000 <kuribas> Ah, I see some other nice discussions, like sum and product :)
2020-12-25 17:40:56 +0000xcmw(~textual@2601:541:4404:bb5c:1d4c:44fb:70ff:549e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 17:41:06 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-25 17:41:33 +0000 <Uniaika> kuribas: always happy to bring the good stuff in base! o7
2020-12-25 17:41:59 +0000 <kuribas> it's about time...
2020-12-25 17:42:15 +0000 <alexfmpe> looking for a binary serialization library that lets me align values via padding on multi-word boundaries (e.g. left-pad to 4 bytes, right-pad to 8 bytes)
2020-12-25 17:42:15 +0000 <alexfmpe> binary and cereal have a `bytesRead :: Get Int64` but no `bytesWritten` equivalent, so it looks like I need to resort to `runPut` to look at the current size to compute padding size
2020-12-25 17:43:30 +0000 <dsal> computerbernd: do you have an example input you're trying to take apart?
2020-12-25 17:43:52 +0000 <dsal> That second ^? should probably be .
2020-12-25 17:44:38 +0000 <dsal> But it's weird that you're trying to parse json out of json
2020-12-25 17:46:09 +0000 <glguy> nf: I'll take a look, I don't know what's different. Separate issue: no.cabal project??
2020-12-25 17:46:46 +0000jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-25 17:47:44 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 17:50:05 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-25 17:51:44 +0000texasmyn_(~texasmyns@ip-148-72-133-198.ip.secureserver.net) (Ping timeout: 256 seconds)
2020-12-25 17:51:45 +0000yammy3(43ab1202@c-67-171-18-2.hsd1.wa.comcast.net)
2020-12-25 17:52:25 +0000texasmynsted(~texasmyns@99.96.221.112) (Ping timeout: 264 seconds)
2020-12-25 17:55:50 +0000 <pie_> does anyone know if the (?) hslua author (?) is on irc https://github.com/tarleb
2020-12-25 17:56:35 +0000 <Uniaika> kuribas: sometimes we need to be the change we want to see in the world
2020-12-25 18:00:28 +0000 <glguy> nf, Did you *disable* the monomorphism restriction?
2020-12-25 18:09:16 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-25 18:09:33 +0000ransom_(~c4264035@8.47.12.52)
2020-12-25 18:09:34 +0000dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-12-25 18:11:00 +0000hackageatom-conduit 0.9.0.1 - Streaming parser/renderer for the Atom 1.0 standard (RFC 4287). https://hackage.haskell.org/package/atom-conduit-0.9.0.1 (koral)
2020-12-25 18:11:34 +0000kam1(~kam1@24.231.108.143) (Ping timeout: 256 seconds)
2020-12-25 18:11:51 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521)
2020-12-25 18:12:37 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 18:12:59 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 18:16:19 +0000kam1(~kam1@24.231.108.143)
2020-12-25 18:16:23 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521) (Ping timeout: 260 seconds)
2020-12-25 18:18:13 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-12-25 18:19:40 +0000computerbernd(5cdabf52@ipservice-092-218-191-082.092.218.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
2020-12-25 18:22:10 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 18:23:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 18:25:07 +0000fendor_fendor
2020-12-25 18:25:53 +0000 <glguy> nf, you've convinced me to make the solver a bit more general: https://github.com/glguy/advent2020/blob/master/execs/Day25.hs
2020-12-25 18:26:20 +0000rando25892(~rando2589@unaffiliated/mixfix41) (Read error: Connection reset by peer)
2020-12-25 18:26:28 +0000 <nf> i don't like the monomorphism restriction
2020-12-25 18:28:50 +0000 <int-e> . o O ( pari/gp: p = 20201227; d = <door>; k = <key>; g = Mod(7,p); Mod(d,p)^znlog(Mod(k,p),g) )
2020-12-25 18:28:59 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-25 18:29:23 +0000 <glguy> nf, probably better to just learn it than introduce inefficiency avoiding it though
2020-12-25 18:29:48 +0000 <nf> i'd rather learn not to introduce inefficiency with it!
2020-12-25 18:30:12 +0000ransom_(~c4264035@8.47.12.52) (Read error: Connection reset by peer)
2020-12-25 18:30:19 +0000 <glguy> that's significantly more work
2020-12-25 18:30:28 +0000 <nf> maybe
2020-12-25 18:30:34 +0000 <glguy> and error prone
2020-12-25 18:31:57 +0000knupfer1(~Thunderbi@200116b8248ff60059cda9566e02c619.dip.versatel-1u1.de)
2020-12-25 18:31:57 +0000knupfer(~Thunderbi@mue-88-130-61-228.dsl.tropolys.de) (Read error: Connection reset by peer)
2020-12-25 18:31:57 +0000knupfer1knupfer
2020-12-25 18:32:30 +0000hackagesafe-json 1.1.1.1 - Automatic JSON format versioning https://hackage.haskell.org/package/safe-json-1.1.1.1 (nideco)
2020-12-25 18:32:40 +0000ransom_(~c4264035@2a09:bac0:72::82f:c34)
2020-12-25 18:34:17 +0000cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-25 18:34:23 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-25 18:39:53 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 18:40:34 +0000ransom_(~c4264035@2a09:bac0:72::82f:c34) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 18:42:55 +0000Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-25 18:43:56 +0000orion(~orion@unaffiliated/orion) (Ping timeout: 240 seconds)
2020-12-25 18:44:38 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 18:45:10 +0000iekfkk(~username@117.200.6.46) (Read error: Connection reset by peer)
2020-12-25 18:45:45 +0000Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2020-12-25 18:45:49 +0000Lord_of_Life_Lord_of_Life
2020-12-25 18:45:56 +0000iekfkk(~username@117.200.9.174)
2020-12-25 18:46:31 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-25 18:48:10 +0000vicfred(~vicfred@unaffiliated/vicfred)
2020-12-25 18:49:20 +0000hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lfotxvknswkvlalm)
2020-12-25 18:52:02 +0000MOSCOS(~MOSCOS@152.32.70.55)
2020-12-25 18:53:58 +0000texasmynsted(~texasmyns@138.199.52.75)
2020-12-25 18:54:01 +0000solonarv(~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr)
2020-12-25 18:54:45 +0000orion(~orion@unaffiliated/orion)
2020-12-25 18:55:03 +0000Mikagami(~MOSCOS@122.54.107.175) (Ping timeout: 256 seconds)
2020-12-25 18:55:25 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-25 18:55:30 +0000Mikagami(~MOSCOS@122.54.107.175)
2020-12-25 18:57:28 +0000MOSCOS(~MOSCOS@152.32.70.55) (Ping timeout: 265 seconds)
2020-12-25 18:58:00 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 18:59:09 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521)
2020-12-25 19:02:16 +0000texasmynsted(~texasmyns@138.199.52.75) (Ping timeout: 240 seconds)
2020-12-25 19:03:03 +0000 <gentauro> how to `mapM` (more like `mapConcurrently`) over the following type: `Either String [Guid]`?
2020-12-25 19:03:31 +0000berberman(~berberman@unaffiliated/berberman)
2020-12-25 19:03:42 +0000 <gentauro> if I use `<$>` (`fmap`) it will unwrap the `Either` type right?
2020-12-25 19:04:22 +0000 <Rembane> fmap will unwrap the Right-part of the Either.
2020-12-25 19:04:32 +0000berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-12-25 19:04:47 +0000 <Rembane> Or rather, it will let you apply a function to the Right-part of Either.
2020-12-25 19:05:10 +0000 <gentauro> Rembane: which in this case is `mapM / mapConcurrently`?
2020-12-25 19:06:19 +0000 <Rembane> gentauro: It's the Right-part too, if that's what you're asking. :)
2020-12-25 19:07:28 +0000 <gentauro> hmmm
2020-12-25 19:07:53 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392) (Remote host closed the connection)
2020-12-25 19:08:10 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-25 19:08:47 +0000 <gentauro> The following extract the unique identified from the `parsed` entities: `fmap getGuid <$> parseEntities entities`
2020-12-25 19:09:03 +0000 <gentauro> which are of the type `Either String [Bytes]`
2020-12-25 19:09:28 +0000 <gentauro> so the `<$>` unwraps the Either type and the other `fmap` applys the function over the list of entities
2020-12-25 19:09:39 +0000 <gentauro> so I need to use both `fmap` and `<$>`
2020-12-25 19:09:42 +0000 <dsal> :t fmap . mapM
2020-12-25 19:09:44 +0000 <lambdabot> (Traversable t, Monad m, Functor f) => (a -> m b) -> f (t a) -> f (m (t b))
2020-12-25 19:10:19 +0000 <dsal> :t mapM . fmap
2020-12-25 19:10:21 +0000 <lambdabot> (Traversable t, Monad m) => (a -> b) -> t (m a) -> m (t b)
2020-12-25 19:11:59 +0000hackagechessIO 0.6.0.0 - Basic chess library https://hackage.haskell.org/package/chessIO-0.6.0.0 (mlang)
2020-12-25 19:12:32 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-icexdirphumbtiyv) (Quit: Connection closed for inactivity)
2020-12-25 19:12:39 +0000 <gentauro> `lsp` is really worse tha `intero`. Gosh I miss `intero` :(
2020-12-25 19:13:18 +0000 <dsal> > (fmap . mapM) (const [5]) $ Right [1,2,3]
2020-12-25 19:13:20 +0000 <lambdabot> Right [[5,5,5]]
2020-12-25 19:13:22 +0000 <dminuoso> nf: The MMR trades the rare type error (fixable by adding a type signature) for very hard to track down lack-of-sharing bugs that are, even to experienced Haskellers, hard to spot.
2020-12-25 19:14:03 +0000 <gentauro> is it normal if the project doesn't build that `lsp` "just give up?".
2020-12-25 19:14:39 +0000 <dminuoso> We recently had this example where we tried to figure out why a particular code path wouldn't share, with I think 5 experienced Haskellers in here not figuring out for nearly 30 minutes. The MMR is good and must stay. :)
2020-12-25 19:16:18 +0000 <gentauro> dminuoso: `MMR`? are you talking `dota2` now?
2020-12-25 19:16:23 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-25 19:16:31 +0000 <gentauro> oh, it's related to nf
2020-12-25 19:17:52 +0000yammy3(43ab1202@c-67-171-18-2.hsd1.wa.comcast.net) (Remote host closed the connection)
2020-12-25 19:19:17 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-25 19:21:12 +0000 <gentauro> 19:32 * hackage safe-json 1.1.1.1 - Automatic JSON format versioning https://hackage.haskell.org/package/safe-json-1.1.1.1 (nideco)
2020-12-25 19:21:19 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392)
2020-12-25 19:21:28 +0000 <gentauro> `Safe Haskell: None` (oh gosh)
2020-12-25 19:21:29 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392) (Read error: Connection reset by peer)
2020-12-25 19:21:35 +0000Vulfe_(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392)
2020-12-25 19:22:00 +0000hackageimm 2.1.0.0 - Execute arbitrary actions for each item from RSS/Atom feeds https://hackage.haskell.org/package/imm-2.1.0.0 (koral)
2020-12-25 19:22:18 +0000 <gentauro> it reminds me of people when they try to misguide users with statements like: "Oh so you code in Haskell that is `pure`? Well this JS lib is in `pure` JS"
2020-12-25 19:22:24 +0000Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2020-12-25 19:22:24 +0000 <gentauro> what the heck is `pure` JS?
2020-12-25 19:23:57 +0000 <Rembane> pure JS is JAvascript that doesn't use jQuery
2020-12-25 19:24:22 +0000 <Rembane> ...or any other library
2020-12-25 19:24:30 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Remote host closed the connection)
2020-12-25 19:24:46 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 19:29:12 +0000ulidtko(~ulidtko@194.54.80.38) (Ping timeout: 256 seconds)
2020-12-25 19:30:54 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 19:31:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-25 19:35:43 +0000elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-12-25 19:37:38 +0000juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 272 seconds)
2020-12-25 19:38:18 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 19:40:16 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 19:42:04 +0000neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 272 seconds)
2020-12-25 19:51:42 +0000monoidcat`(~user@2001:984:35a2:1:5105:944b:675d:feb2)
2020-12-25 19:53:12 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 19:55:17 +0000xff0x(~fox@2001:1a81:5255:9e00:b16a:df42:6769:9124) (Ping timeout: 260 seconds)
2020-12-25 19:56:06 +0000monoidcat`(~user@2001:984:35a2:1:5105:944b:675d:feb2) ("ERC (IRC client for Emacs 27.1.50)")
2020-12-25 20:00:01 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:9470:bf5d:1f34:85b0)
2020-12-25 20:00:19 +0000juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 272 seconds)
2020-12-25 20:01:37 +0000xff0x(~fox@port-92-195-52-121.dynamic.as20676.net)
2020-12-25 20:06:01 +0000cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 20:07:54 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 20:08:12 +0000acidjnk_new(~acidjnk@p200300d0c704e768e5ab7a2f7255b0f1.dip0.t-ipconnect.de)
2020-12-25 20:11:07 +0000chidy(~chidy@95.145.57.166)
2020-12-25 20:11:19 +0000kenran(~kenran@mue-88-130-62-111.dsl.tropolys.de) (Quit: leaving)
2020-12-25 20:12:14 +0000chidy(~chidy@95.145.57.166) (Remote host closed the connection)
2020-12-25 20:12:30 +0000 <koz_> If I wanna draw graphs (vertices-and-edges, not charts) from Haskell, what should I use?
2020-12-25 20:12:30 +0000hackagecabal2nix 2.15.6 - Convert Cabal files into Nix build instructions. https://hackage.haskell.org/package/cabal2nix-2.15.6 (PeterSimons)
2020-12-25 20:12:49 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 20:13:25 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-25 20:13:51 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:9470:bf5d:1f34:85b0) (Remote host closed the connection)
2020-12-25 20:14:16 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:9470:bf5d:1f34:85b0)
2020-12-25 20:14:18 +0000juuandyy(~juuandyy@90.166.144.65)
2020-12-25 20:16:34 +0000kam1(~kam1@24.231.108.143) (Ping timeout: 260 seconds)
2020-12-25 20:16:58 +0000 <koz_> maerwald: I'm getting this when I try to compile GHC 8.10.3 with ghcup: https://gist.github.com/kozross/670d6aed5de76f75ea00806dcf0f6c11
2020-12-25 20:20:28 +0000Vulfe_(~vulfe@2600:1702:31b0:34e0:9542:1a54:6ed5:1392) (Remote host closed the connection)
2020-12-25 20:21:08 +0000Feuermagier(~Feuermagi@213.178.26.41)
2020-12-25 20:21:46 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:f0ca:b34:ab31:1410)
2020-12-25 20:24:40 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 20:26:12 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:f0ca:b34:ab31:1410) (Ping timeout: 260 seconds)
2020-12-25 20:27:26 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2020-12-25 20:27:47 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 20:32:41 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2020-12-25 20:33:26 +0000fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2020-12-25 20:33:42 +0000juuandyy(~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
2020-12-25 20:33:43 +0000 <fuzzypixelz> where can I learn more about monads
2020-12-25 20:34:01 +0000 <fuzzypixelz> in a rather "concise" way
2020-12-25 20:34:01 +0000DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer)
2020-12-25 20:34:06 +0000knupfer(~Thunderbi@200116b8248ff60059cda9566e02c619.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-25 20:34:13 +0000 <fuzzypixelz> preferably not a long book chapter
2020-12-25 20:34:15 +0000knupfer(~Thunderbi@200116b8248ff600b8e82c0882f29b26.dip.versatel-1u1.de)
2020-12-25 20:34:23 +0000DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-12-25 20:34:41 +0000 <fuzzypixelz> rather an example of practical use?
2020-12-25 20:35:01 +0000 <fuzzypixelz> I may be asking for too much haha
2020-12-25 20:35:52 +0000 <kuribas> fuzzypixelz: I'd say, first try to understand how IO works.
2020-12-25 20:35:58 +0000 <kuribas> and Maybe
2020-12-25 20:37:07 +0000 <kuribas> like, what does "do x <- Just 3; y <- Just 3; pure (x + y)" do?
2020-12-25 20:37:27 +0000 <kuribas> or "do x <- Just 3; y <- Nothing; pure (x + y)"
2020-12-25 20:37:58 +0000 <kuribas> fuzzypixelz: if you got an intuition for some instances, understand the whole pattern becomes trivial.
2020-12-25 20:38:05 +0000Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-12-25 20:38:19 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-138.cust.tzulo.com) (Ping timeout: 272 seconds)
2020-12-25 20:38:51 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-bguusmbctpsytvun)
2020-12-25 20:39:46 +0000ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-12-25 20:40:08 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 20:40:13 +0000Tario(~Tario@200.119.187.28)
2020-12-25 20:40:14 +0000ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-12-25 20:41:25 +0000leothrix(~leothrix@elastic/staff/leothrix) (Quit: ZNC 1.7.5 - https://znc.in)
2020-12-25 20:44:02 +0000fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar)
2020-12-25 20:44:19 +0000 <sm[m]> fuzzypixelz: just read code in some small projects
2020-12-25 20:44:34 +0000axeman-_(~axeman_@2a02:8109:86c0:1f98:1153:e96f:d711:7cc8)
2020-12-25 20:44:41 +0000gioyik(~gioyik@186.112.107.251)
2020-12-25 20:45:01 +0000 <sm[m]> Eg cli tools
2020-12-25 20:45:23 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-25 20:46:04 +0000 <kuribas> fuzzypixelz: btw, thinking of a Monad as "configurable do notation" is a good start.
2020-12-25 20:46:19 +0000 <fuzzypixelz> sm[m]: do you any in mind?
2020-12-25 20:47:24 +0000 <sm[m]> no, just small ones on hackage, I think there's a category for them
2020-12-25 20:48:15 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:9470:bf5d:1f34:85b0) (Ping timeout: 268 seconds)
2020-12-25 20:48:22 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f)
2020-12-25 20:48:37 +0000kupi(uid212005@gateway/web/irccloud.com/x-svbzcydmccffkyhg)
2020-12-25 20:49:02 +0000 <kuribas> fuzzypixelz: did you try writing some IO with do notation?
2020-12-25 20:49:39 +0000 <fuzzypixelz> btw, in IO for example, I have a difficult time understanding why people say "writing a string to stdout is a side effect", is it just because it might fail? Can't we just say "let this function write a string to stdout and return 1 if it suceeds and 0 otherwise"
2020-12-25 20:50:07 +0000 <fuzzypixelz> kuribas: oh yes, mainly with readFile and putStr
2020-12-25 20:50:43 +0000knupfer(~Thunderbi@200116b8248ff600b8e82c0882f29b26.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-12-25 20:51:07 +0000 <fuzzypixelz> I understand how the bind, anonymous bind work and return work
2020-12-25 20:51:10 +0000 <kuribas> fuzzypixelz: the idea of a side-effect is that it's some desirable outcome, but which cannot be considered a value.
2020-12-25 20:52:44 +0000knupfer(~Thunderbi@200116b8248ff600c4f4ca64117d4161.dip.versatel-1u1.de)
2020-12-25 20:52:45 +0000 <fuzzypixelz> kuribas: can't we just agree on a value to assign to it?
2020-12-25 20:53:04 +0000 <kuribas> fuzzypixelz: for example a value cannot distinguish between a value which is written to my screen, or when you redirect to file. Those are clearly different.
2020-12-25 20:53:43 +0000 <kuribas> fuzzypixelz: the value 1 or 0 have nothing to do with writing to stdout.
2020-12-25 20:54:26 +0000 <kuribas> fuzzypixelz: think about this: the effect of writing to stdout can be different everytime.
2020-12-25 20:54:37 +0000 <kuribas> it's not just binary
2020-12-25 20:54:58 +0000cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds)
2020-12-25 20:55:06 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
2020-12-25 20:55:07 +0000Tario(~Tario@200.119.187.28) (Read error: Connection reset by peer)
2020-12-25 20:55:33 +0000 <fuzzypixelz> kuribas: so how does the IO monad handle this internally?
2020-12-25 20:55:34 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-12-25 20:55:45 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-75.cust.tzulo.com)
2020-12-25 20:55:46 +0000infinity0(~infinity0@freenet/developer/infinity0)
2020-12-25 20:56:10 +0000Tario(~Tario@201.192.165.173)
2020-12-25 20:56:17 +0000 <fuzzypixelz> kuribas: when I use `putStrLn "Haskell"`, what information does the Monad I get back actually contain?
2020-12-25 20:56:33 +0000 <kuribas> fuzzypixelz: internally it's converted to a procedure.
2020-12-25 20:57:02 +0000 <kuribas> fuzzypixelz: the information you get is "write haskell to stdout".
2020-12-25 20:57:24 +0000 <kuribas> fuzzypixelz: think of it as a checklist.
2020-12-25 20:57:45 +0000 <kuribas> whatever you do with the checklist is handled somewhere else.
2020-12-25 20:58:00 +0000 <kuribas> you could throw the checklist in the bin, or go over it twice, ...
2020-12-25 20:58:15 +0000 <kuribas> or make 5000 copies of it.
2020-12-25 20:58:23 +0000 <kuribas> however the checklist itself does nothing.
2020-12-25 20:58:31 +0000 <kuribas> that's where main comes in
2020-12-25 20:58:47 +0000 <kuribas> main takes the checklist, and performs all actions in it.
2020-12-25 20:59:10 +0000 <kuribas> so, an IO action does nothing
2020-12-25 20:59:44 +0000 <kuribas> it's actually main (or the ghci repl), which does the action.
2020-12-25 20:59:56 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-75.cust.tzulo.com) (Ping timeout: 240 seconds)
2020-12-25 21:00:13 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 264 seconds)
2020-12-25 21:00:19 +0000 <fuzzypixelz> kuribas: Aha! I wasn't thinking of it that way! I thought it the monad did the action and returned something about wether it was succesfull or not
2020-12-25 21:00:57 +0000 <fuzzypixelz> kuribas: so how does main behave if some action in our checklist fails
2020-12-25 21:01:24 +0000 <fuzzypixelz> does it just throw an excetion?
2020-12-25 21:01:24 +0000 <kuribas> you mean an exception?
2020-12-25 21:01:42 +0000 <kuribas> depends on the definition of "fails"
2020-12-25 21:01:54 +0000 <kuribas> > error "foo"
2020-12-25 21:01:56 +0000 <lambdabot> *Exception: foo
2020-12-25 21:01:59 +0000 <fuzzypixelz> For example I tried to write to /etc/file
2020-12-25 21:02:31 +0000 <kuribas> that will throw an exception
2020-12-25 21:03:10 +0000 <fuzzypixelz> does the monad itself "return" an exception?
2020-12-25 21:03:27 +0000 <fuzzypixelz> no wait that doesn't make sense
2020-12-25 21:04:22 +0000kam1(~kam1@24.231.108.143)
2020-12-25 21:05:14 +0000 <fuzzypixelz> I still don't see why we need it to be a monad, is the IO monad anything more than a procedure?
2020-12-25 21:05:40 +0000ransom_(~c4264035@2a09:bac0:72::82f:c34)
2020-12-25 21:06:38 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 21:06:41 +0000cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 21:06:58 +0000 <fuzzypixelz> we certainly need bind and return so that we can work with functions returning monads, but it there anything else to it?
2020-12-25 21:07:03 +0000avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
2020-12-25 21:07:31 +0000 <kuribas> fuzzypixelz: no, main does
2020-12-25 21:07:58 +0000 <kuribas> fuzzypixelz: essentially it's just a procedure
2020-12-25 21:08:31 +0000 <kuribas> fuzzypixelz: the main reason for having monads in haskell, is so you know which action comes first and which next.
2020-12-25 21:08:43 +0000 <kuribas> pure functions are lazy, so they can be executed in any order.
2020-12-25 21:09:01 +0000 <kuribas> monads ensure the action are executed in the order you want.
2020-12-25 21:09:11 +0000fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar) (Quit: Lost terminal)
2020-12-25 21:09:14 +0000 <kuribas> And they have actually many other nice properties.
2020-12-25 21:09:39 +0000axeman-_(~axeman_@2a02:8109:86c0:1f98:1153:e96f:d711:7cc8) (Remote host closed the connection)
2020-12-25 21:09:40 +0000 <fuzzypixelz> kuribas: I thought the point was for functions to not have side effects
2020-12-25 21:10:18 +0000 <kuribas> the don't have side-effects.
2020-12-25 21:10:48 +0000 <solonarv> *side* effects are called that because they happen "on the side" and aren't called out explicitly
2020-12-25 21:11:10 +0000 <kuribas> so the only way to "observe" what a function does, is by using IO.
2020-12-25 21:11:54 +0000 <solonarv> also, the point is for *evaluating* things to not have side effects; that's still true for, say 'putStrLn "Haskell"', because evaluating that only means "figure out what all the items on the checklist say"
2020-12-25 21:12:05 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-62.cust.tzulo.com)
2020-12-25 21:12:44 +0000 <kuribas> right, evaluating a pure function that returns an action, will not actually perform the action.
2020-12-25 21:12:53 +0000 <fuzzypixelz> solonarv: what would be an example of a side effect for putStrLn
2020-12-25 21:13:00 +0000 <kuribas> hence will not perform side-effects.
2020-12-25 21:13:19 +0000nbloomf(~nbloomf@2601:285:401:7490:e08a:ffbc:d741:5f5f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 21:13:42 +0000 <exarkun> is `IO [a] -> [IO a]` possible with a big tangled mess?
2020-12-25 21:13:47 +0000 <fuzzypixelz> if performing the action is a side effect, then the main function is not pure is it??
2020-12-25 21:14:08 +0000 <exarkun> fuzzypixelz: But there is separation between the two
2020-12-25 21:14:21 +0000 <exarkun> fuzzypixelz: The main function is a pure function that *makes* the action
2020-12-25 21:14:35 +0000 <exarkun> fuzzypixelz: It does not perform the action
2020-12-25 21:14:46 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2020-12-25 21:14:47 +0000 <kuribas> fuzzypixelz: anything that alters the state of the computer or the outside world is considered a side-effect. The only side-effect that *evaluating* a pure function does, is increasin CPU load, and slighly heating up the transistors.
2020-12-25 21:15:23 +0000 <fuzzypixelz> well, at which point in my program is the action perfomed
2020-12-25 21:15:35 +0000 <exarkun> After main returns it to the runtime
2020-12-25 21:15:45 +0000 <exarkun> or when you explicitly call `unsafePerformIO` :)
2020-12-25 21:17:10 +0000neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-12-25 21:17:10 +0000 <fuzzypixelz> so the Haskell program really is absolutely pure and will only do what I typed into it
2020-12-25 21:19:08 +0000 <fuzzypixelz> or rather, the Haskell program always returns the exact same set of instructions to the run-time and then that is executed
2020-12-25 21:19:31 +0000 <fuzzypixelz> assuming we give it the exact same input
2020-12-25 21:19:32 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-25 21:19:47 +0000ransom_(~c4264035@2a09:bac0:72::82f:c34) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 21:19:47 +0000 <fuzzypixelz> right?
2020-12-25 21:20:04 +0000Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-12-25 21:20:35 +0000 <kuribas> if by Haskll program you mean a pure function, then yes.
2020-12-25 21:20:37 +0000Feuermagier(~Feuermagi@213.178.26.41)
2020-12-25 21:20:44 +0000 <kuribas> however main is considered part of a haskell program.
2020-12-25 21:21:21 +0000 <fuzzypixelz> kuribas: main is not a pure function? doesn't it just return a IO () ?
2020-12-25 21:21:28 +0000 <kuribas> main isn't a function
2020-12-25 21:22:05 +0000 <exarkun> Sorry, I said "main returns" above which was imprecise and incorrect.
2020-12-25 21:22:08 +0000 <fuzzypixelz> I mean it has type signature `main :: IO ()`
2020-12-25 21:22:33 +0000 <kuribas> the haskell runtime looks at the main IO action, and starts executing it.
2020-12-25 21:22:38 +0000 <exarkun> fuzzypixelz: Right. It _is_ the IO action.
2020-12-25 21:23:20 +0000 <kuribas> when it sees pure funtions it evaluates those (lazily, as needed), and if it finds other IO actions it performs them in order.
2020-12-25 21:24:33 +0000cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-25 21:25:17 +0000Vulfe(~vulfe@2600:1702:31b0:34e0:f0ca:b34:ab31:1410)
2020-12-25 21:26:24 +0000 <fuzzypixelz> kuribas: normaly the only IO actions are described in main right?
2020-12-25 21:26:31 +0000 <kuribas> yes
2020-12-25 21:27:07 +0000 <kuribas> you can *call* other actions from main though
2020-12-25 21:27:12 +0000 <dsal> I'm not sure IO is the easiest monad to understand, but it's important to understand different ones.
2020-12-25 21:27:43 +0000 <kuribas> I think the hard thing is to understand IO, not monads...
2020-12-25 21:27:59 +0000 <dsal> Yeah. IO is complicated for a variety of reasons.
2020-12-25 21:28:06 +0000 <dsal> Maybe is an easy Monad.
2020-12-25 21:28:15 +0000 <fuzzypixelz> kuribas: like I could make a funcion return an IO monad to print a string and then call that in main?
2020-12-25 21:28:19 +0000benjamingr__(uid23465@gateway/web/irccloud.com/x-ijdfrtykxmezfdmc)
2020-12-25 21:29:02 +0000 <dsal> % let f :: IO String; f = pure "hi" in putStrLn =<< f
2020-12-25 21:29:02 +0000 <yahb> dsal: hi
2020-12-25 21:29:14 +0000 <kuribas> fuzzypixelz: of course
2020-12-25 21:29:42 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-25 21:29:45 +0000 <fuzzypixelz> dsal: I see how maybe is useful. The Safe division problem convinced me, Maybe allows us to propagate any divisions by zero while evaluating an arbitrary expression
2020-12-25 21:30:18 +0000ADG1089__(~aditya@27.58.161.118) (Remote host closed the connection)
2020-12-25 21:30:26 +0000 <dsal> Yeah, but I mean understanding the Monad instance, not just Maybe values.
2020-12-25 21:31:43 +0000 <fuzzypixelz> dsal: by monad instance you mean Maybe + bind + return?
2020-12-25 21:32:41 +0000 <dsal> To be "A monad" a type must have an instance of the Monad class. Maybe does.
2020-12-25 21:33:39 +0000 <fuzzypixelz> dsal: what's an example use case of Maybe as a strict Monad?
2020-12-25 21:34:26 +0000 <dsal> I'm not good at coming up with examples. heh
2020-12-25 21:34:28 +0000 <dsal> > let mx = Just 2; mo = Just (*); my = Just 3 in do { x <- mx; o <- mo; y <- my; pure (x * y) }
2020-12-25 21:34:30 +0000 <lambdabot> Just 6
2020-12-25 21:34:36 +0000 <dsal> > let mx = Just 2; mo = Nothing; my = Just 3 in do { x <- mx; o <- mo; y <- my; pure (x * y) }
2020-12-25 21:34:38 +0000 <lambdabot> Nothing
2020-12-25 21:34:56 +0000axeman-(~axeman_@ip5f5af023.dynamic.kabel-deutschland.de)
2020-12-25 21:35:37 +0000axeman-(~axeman_@ip5f5af023.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-25 21:35:48 +0000 <dsal> But in general, if you have Maybe values, you can work with them like they're not Maybe values.
2020-12-25 21:36:09 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51)
2020-12-25 21:36:42 +0000 <dsal> > let mx = Right 2; mo = Right (*); my = Right 3 in do { x <- mx; o <- mo; y <- my; pure (x * y) }
2020-12-25 21:36:44 +0000 <lambdabot> Right 6
2020-12-25 21:36:49 +0000 <dsal> > let mx = Right 2; mo = Left "oh no"; my = Right 3 in do { x <- mx; o <- mo; y <- my; pure (x * y) }
2020-12-25 21:36:52 +0000 <lambdabot> Left "oh no"
2020-12-25 21:37:49 +0000DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-12-25 21:38:07 +0000ransom_(~c4264035@8.47.12.52)
2020-12-25 21:38:12 +0000 <dsal> (notice that do block didn't change. Same thing for IO or any other monad)
2020-12-25 21:40:10 +0000 <dsal> Maybe is the easiest thing to understand here. Basically bind will pass the Just value forward as a parameter to the next function, or in the case of Nothing, won't call any of the remaining code, and just return the Nothing value.
2020-12-25 21:40:26 +0000 <dsal> @undo do { x <- mx; o <- mo; y <- my; pure (x * y) }
2020-12-25 21:40:26 +0000 <lambdabot> mx >>= \ x -> mo >>= \ o -> my >>= \ y -> pure (x * y)
2020-12-25 21:40:27 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 21:40:49 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 21:41:08 +0000 <fuzzypixelz> dsal: I see what mean
2020-12-25 21:41:21 +0000 <fuzzypixelz> *you mean
2020-12-25 21:41:31 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51) (Remote host closed the connection)
2020-12-25 21:41:48 +0000 <dsal> (Just x) >>= k = k x
2020-12-25 21:41:48 +0000 <dsal> Nothing >>= _ = Nothing
2020-12-25 21:42:04 +0000 <dsal> (I just plucked that out of the source)
2020-12-25 21:42:30 +0000 <fuzzypixelz> source code for Maybe?
2020-12-25 21:43:22 +0000 <dsal> Maybe's Monad instance in particular.
2020-12-25 21:44:07 +0000 <dsal> IO would be a little harder to reason about, but it's conceptually similar. You just end up having to learn about stuff like MonadFail and other messes.
2020-12-25 21:44:13 +0000hiroaki(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
2020-12-25 21:46:31 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 21:48:00 +0000 <dsal> Hmm... I don't actually know how to find a case where I've used the Maybe monad because I did it implicitly.
2020-12-25 21:48:12 +0000bisickcor(~username@117.200.1.158)
2020-12-25 21:49:16 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51)
2020-12-25 21:49:34 +0000cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds)
2020-12-25 21:49:54 +0000 <dsal> Heh. Looking through some of my code, I'm not even sure what monad I'm in just because it doesn't really matter.
2020-12-25 21:50:01 +0000Guess59061(4e01b525@unaffiliated/guess59061)
2020-12-25 21:50:02 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net) (Remote host closed the connection)
2020-12-25 21:50:16 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 21:50:23 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 21:50:26 +0000cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 21:50:37 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 21:50:45 +0000iekfkk(~username@117.200.9.174) (Ping timeout: 240 seconds)
2020-12-25 21:51:07 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51) (Remote host closed the connection)
2020-12-25 21:51:34 +0000 <fuzzypixelz> dsal, kuribas, exarkun: thank you all!
2020-12-25 21:51:44 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51)
2020-12-25 21:52:23 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 21:52:28 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 258 seconds)
2020-12-25 21:53:36 +0000 <dsal> I don't know that I *would* write this this way, but you also get stuff like guard:
2020-12-25 21:53:37 +0000 <dsal> > let safeDiv mn md = do { n <- mn; d <- md; guard (d /= 0); pure (n `div` d) } in Just 30 `safeDiv` Just 3 `safeDiv` Just 5
2020-12-25 21:53:40 +0000 <lambdabot> Just 2
2020-12-25 21:53:41 +0000 <dsal> > let safeDiv mn md = do { n <- mn; d <- md; guard (d /= 0); pure (n `div` d) } in Just 30 `safeDiv` Just 0 `safeDiv` Just 5
2020-12-25 21:53:43 +0000 <lambdabot> Nothing
2020-12-25 21:55:01 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2020-12-25 21:55:27 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 260 seconds)
2020-12-25 21:55:46 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 21:55:48 +0000axeman-_(~axeman_@2a09:bac0:48::82b:7a05)
2020-12-25 21:57:24 +0000Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-62.cust.tzulo.com) (Quit: Leaving)
2020-12-25 21:57:36 +0000 <dsal> fuzzypixelz: Oh, I found one of the cases! https://github.com/dustin/gopro/blob/master/src/GoPro/Commands/Backup.hs#L109-L114
2020-12-25 21:57:38 +0000Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-12-25 21:57:39 +0000 <ddellacosta> so I'm reading this code that uses ContT heavily, and I think I get it, but I have a question: it's really just a syntactic convenience here, right? Otherwise we'd have to deal with piles and piles of indented withX blocks...?
2020-12-25 21:57:46 +0000 <ddellacosta> https://hackage.haskell.org/package/alsa-seq-0.6.0.7/src/examples/beat.hs
2020-12-25 21:57:53 +0000hiroaki(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
2020-12-25 21:58:00 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-25 21:58:08 +0000Feuermagier(~Feuermagi@213.178.26.41)
2020-12-25 21:58:22 +0000 <dsal> Here, I've got a JSON value and I'm extracting a bunch of values with lens to combine into something. If any of my lookups fail, then I don't have the thing I think, so I return Nothinig.
2020-12-25 21:58:36 +0000 <Guess59061> Why does `lucky 7 = "whatever"` need to have a member of the Eq typeclass as its parameter? Is it because whatever parameter is supplied, it'll internally be checked whether it's equal to 7?
2020-12-25 21:59:10 +0000aarvar(~foewfoiew@2601:602:a080:fa0:ac47:8893:80c1:4f6c)
2020-12-25 21:59:13 +0000 <dsal> Guess59061: I'm not sure what you're asking. It doesn't quite make sense.
2020-12-25 21:59:23 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51) (Ping timeout: 272 seconds)
2020-12-25 21:59:29 +0000 <dsal> > let lucky 7 = "whatever" in lucky 7
2020-12-25 21:59:31 +0000 <lambdabot> "whatever"
2020-12-25 21:59:55 +0000 <merijn> Guess59061: Well, how else would you compare 7 to anything?
2020-12-25 22:00:04 +0000 <merijn> Guess59061: Keep in mind 7 is polymorphic
2020-12-25 22:00:13 +0000 <merijn> dsal: That'll infer as (Num a, Eq a)
2020-12-25 22:00:18 +0000 <Guess59061> merijn There's some kind of internal "if" I suppose then.
2020-12-25 22:00:24 +0000 <merijn> Guess59061: Yes
2020-12-25 22:00:30 +0000natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
2020-12-25 22:00:43 +0000 <merijn> :t \7 -> ()
2020-12-25 22:00:44 +0000 <lambdabot> (Eq a, Num a) => a -> ()
2020-12-25 22:00:46 +0000 <dsal> merijn: Sure, but I think there's information missing.
2020-12-25 22:01:04 +0000 <merijn> Guess59061: The question was "why is Eq there?"
2020-12-25 22:01:08 +0000 <merijn> eh
2020-12-25 22:01:16 +0000 <merijn> s/Guess59061/dsal
2020-12-25 22:01:27 +0000nbloomf(~nbloomf@2601:285:401:7490:80b2:6d6b:6d09:280)
2020-12-25 22:01:56 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51)
2020-12-25 22:02:38 +0000 <dsal> :t let lucky 7 = "whatever" in lucky -- you mean this Eq?
2020-12-25 22:02:39 +0000 <lambdabot> (Eq a, Num a) => a -> [Char]
2020-12-25 22:03:54 +0000 <dsal> OK, I didn't parse the question that way.
2020-12-25 22:04:32 +0000nbloomf(~nbloomf@2601:285:401:7490:80b2:6d6b:6d09:280) (Client Quit)
2020-12-25 22:05:14 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 22:05:20 +0000axeman-_(~axeman_@2a09:bac0:48::82b:7a05) (Ping timeout: 268 seconds)
2020-12-25 22:05:36 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 22:06:55 +0000natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2020-12-25 22:07:06 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-12-25 22:09:37 +0000sgibber2018(~arch-gibb@208.85.237.137)
2020-12-25 22:09:38 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 272 seconds)
2020-12-25 22:09:39 +0000cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 268 seconds)
2020-12-25 22:13:02 +0000Franciman(~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving)
2020-12-25 22:15:39 +0000_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2020-12-25 22:16:06 +0000 <fuzzypixelz> what is an example of a monad where `return` is not `pure`?
2020-12-25 22:16:17 +0000 <glguy> there isn't one
2020-12-25 22:16:18 +0000 <merijn> none
2020-12-25 22:17:03 +0000 <glguy> So why does Monad have a return method? Because it predates the existence of Applicative
2020-12-25 22:18:15 +0000 <fuzzypixelz> :)
2020-12-25 22:18:25 +0000 <fuzzypixelz> glguy: beat me to it
2020-12-25 22:18:28 +0000 <merijn> By almost a decade, even
2020-12-25 22:18:38 +0000recursionIsGreat(4f81c10c@athedsl-4444444.home.otenet.gr)
2020-12-25 22:18:53 +0000 <merijn> And then another decade or something where Applicative existed, but wasn't a superclass of Monad
2020-12-25 22:18:56 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-25 22:19:13 +0000 <recursionIsGreat> https://www.reddit.com/r/haskell/comments/kk6ulv/need_some_help_with_backtracking_in_haskell/ any help would be appreciated
2020-12-25 22:19:18 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-25 22:19:51 +0000 <fuzzypixelz> merijn: glad to hear these abstractions weren't just dreamt out in a few months
2020-12-25 22:19:55 +0000 <glguy> recursionIsGreat, you'll have to re-ask here
2020-12-25 22:20:12 +0000 <fuzzypixelz> recursionIsGreat: your post is removed
2020-12-25 22:20:52 +0000recursionIsGreat(4f81c10c@athedsl-4444444.home.otenet.gr) (Remote host closed the connection)
2020-12-25 22:21:10 +0000Varis(~Tadas@unaffiliated/varis) (Quit: Leaving)
2020-12-25 22:21:18 +0000 <merijn> fuzzypixelz: The first version of Haskell didn't even have a monadic interface for IO (or even an IO type) :p
2020-12-25 22:22:08 +0000cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 22:22:09 +0000cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-25 22:22:11 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 22:22:28 +0000heatsink(~heatsink@2600:1700:bef1:5e10:49a9:d2cc:4eca:a521) (Remote host closed the connection)
2020-12-25 22:22:47 +0000Varis(~Tadas@unaffiliated/varis)
2020-12-25 22:23:54 +0000benjamingr__(uid23465@gateway/web/irccloud.com/x-ijdfrtykxmezfdmc) (Ping timeout: 258 seconds)
2020-12-25 22:23:56 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-25 22:24:02 +0000davetapley(sid666@gateway/web/irccloud.com/x-awwgmkyqubhslzoc) (Ping timeout: 260 seconds)
2020-12-25 22:24:02 +0000 <fuzzypixelz> merijn: it was because functions are lazily evaluated and they couldn't have side effects? That's why monads were introduced, yes?
2020-12-25 22:24:18 +0000ReinH__(sid179972@gateway/web/irccloud.com/x-zzaluaokazkinfvl) (Ping timeout: 260 seconds)
2020-12-25 22:24:20 +0000Guest78853(~botro@178.239.168.171) (Remote host closed the connection)
2020-12-25 22:24:26 +0000 <merijn> fuzzypixelz: Well, not really. That was already the case from the beginning
2020-12-25 22:24:27 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-12-25 22:24:32 +0000eruditass(uid248673@gateway/web/irccloud.com/x-xcgqqniunfnuqsoi) (Read error: Connection reset by peer)
2020-12-25 22:24:37 +0000natim87(sid286962@gateway/web/irccloud.com/x-vorfpnwdjimlpxrz) (Ping timeout: 260 seconds)
2020-12-25 22:24:37 +0000AndreasK(uid320732@gateway/web/irccloud.com/x-uktqzadfuhxfqwmf) (Ping timeout: 260 seconds)
2020-12-25 22:24:53 +0000joshmeredith(sid387798@gateway/web/irccloud.com/x-zkhaozfesfkitweq) (Ping timeout: 260 seconds)
2020-12-25 22:24:53 +0000totbwf(sid402332@gateway/web/irccloud.com/x-lstwvrpzhbbezavu) (Ping timeout: 260 seconds)
2020-12-25 22:25:00 +0000 <merijn> IO and it's monadic interface were introduced because the interface before it sucked and everyone agreed the current approach is infinitely better :p
2020-12-25 22:25:04 +0000banjiewen_(sid115913@gateway/web/irccloud.com/x-efwzmbigxjpyhyqn) (Ping timeout: 268 seconds)
2020-12-25 22:25:05 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 22:25:10 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-25 22:25:11 +0000ebutleriv(sid217783@gateway/web/irccloud.com/x-nsyjifznvtdwqlor) (Read error: Connection reset by peer)
2020-12-25 22:25:13 +0000neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2020-12-25 22:25:13 +0000neiluj(~jco@unaffiliated/neiluj)
2020-12-25 22:25:32 +0000 <monochrom> Laziness was actually a plus for the 1st I/O model.
2020-12-25 22:25:35 +0000ebutleriv(sid217783@gateway/web/irccloud.com/x-vuvhvprvfualywxv)
2020-12-25 22:25:35 +0000totbwf(sid402332@gateway/web/irccloud.com/x-vozoqtzcwltbknrs)
2020-12-25 22:25:37 +0000joshmeredith(sid387798@gateway/web/irccloud.com/x-fznswsrrgymxksrk)
2020-12-25 22:25:41 +0000benjamingr__(uid23465@gateway/web/irccloud.com/x-ddxcndlvmkcaysph)
2020-12-25 22:25:45 +0000ReinH__(sid179972@gateway/web/irccloud.com/x-gxvdlavauwivnxng)
2020-12-25 22:26:03 +0000benwr____(sid372383@gateway/web/irccloud.com/x-ylolloivjmxllmfb) (Ping timeout: 260 seconds)
2020-12-25 22:26:13 +0000eruditass(uid248673@gateway/web/irccloud.com/x-vskreoprzujwnjjs)
2020-12-25 22:26:18 +0000bradparker(sid262931@gateway/web/irccloud.com/x-oixqgvqtguzzzzhx) (Ping timeout: 268 seconds)
2020-12-25 22:26:18 +0000gOOgler(uid125351@gateway/web/irccloud.com/x-roypmjethenoxwzs) (Ping timeout: 268 seconds)
2020-12-25 22:26:18 +0000cemerick(sid54985@gateway/web/irccloud.com/x-jknlsyojitfopgjs) (Ping timeout: 268 seconds)
2020-12-25 22:26:38 +0000Fractalis(~Fractalis@2601:987:280:8d40:45d0:942f:6e60:692f)
2020-12-25 22:26:41 +0000davetapley(sid666@gateway/web/irccloud.com/x-twriwvvdmengoodi)
2020-12-25 22:26:43 +0000banjiewen_(sid115913@gateway/web/irccloud.com/x-cjhdsthtfayybebu)
2020-12-25 22:26:44 +0000 <monochrom> Imagine you have a simple ADT for I/O commands like "data Command = GetChar | PutChar Char | OpenFile String FileMode | ..."
2020-12-25 22:26:55 +0000cemerick(sid54985@gateway/web/irccloud.com/x-hvytxjnfgkcybten)
2020-12-25 22:26:57 +0000systemfault(sid267009@gateway/web/irccloud.com/x-dlmhkaandvmrncuu) (Ping timeout: 260 seconds)
2020-12-25 22:27:41 +0000AndreasK(uid320732@gateway/web/irccloud.com/x-hcwkkoekyeoydiqt)
2020-12-25 22:27:43 +0000 <monochrom> and you have another simple ADT for the computer's responses to your commands, "data Answer = OK | Error | HereBeChar Char | HereBeHandle Handle | ..."
2020-12-25 22:27:54 +0000benwr____(sid372383@gateway/web/irccloud.com/x-cmdybrasxgtsczal)
2020-12-25 22:28:10 +0000natim87(sid286962@gateway/web/irccloud.com/x-rsbfresybxjbdfwv)
2020-12-25 22:28:10 +0000gOOgler(uid125351@gateway/web/irccloud.com/x-vundpllovrkdofsh)
2020-12-25 22:28:27 +0000 <monochrom> Then you code up your main to this type: "main :: [Answer] -> [Command]". Important: I have no typo there.
2020-12-25 22:29:09 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 272 seconds)
2020-12-25 22:29:16 +0000 <fuzzypixelz> wait why, answer and then command?
2020-12-25 22:29:23 +0000Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-25 22:29:34 +0000davetapley(sid666@gateway/web/irccloud.com/x-twriwvvdmengoodi) (Max SendQ exceeded)
2020-12-25 22:29:34 +0000 <monochrom> The semantics: You produce a lazy list of commands, perhaps some later commands depend on some earlier answers. You receive a lazy list of answers.
2020-12-25 22:29:45 +0000 <merijn> fuzzypixelz: Well, if you read from disk you *presumably* want to be able to do something with that data, so it needs to be an input
2020-12-25 22:29:59 +0000lally(sid388228@gateway/web/irccloud.com/x-sahonvgrjrbzkxrq) (Read error: Connection reset by peer)
2020-12-25 22:30:00 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-12-25 22:30:08 +0000 <glguy> fuzzypixelz, your program generates commands and consumes answers to those commands
2020-12-25 22:30:26 +0000 <monochrom> Think about it. The computer gives you answers. You give commands to the computer. From your POV, you output commands, input answers. Hence, [Answer] -> [Command]
2020-12-25 22:30:36 +0000systemfault(sid267009@gateway/web/irccloud.com/x-gdfwilpwbdeyfdvr)
2020-12-25 22:30:39 +0000lally(sid388228@gateway/web/irccloud.com/x-tfnobvqpeuxjovei)
2020-12-25 22:30:44 +0000 <monochrom> And if [] is super lazy, it can work, you can have later commands depend on earlier answers.
2020-12-25 22:30:55 +0000benwr____(sid372383@gateway/web/irccloud.com/x-cmdybrasxgtsczal) (Read error: Connection reset by peer)
2020-12-25 22:31:02 +0000Varis(~Tadas@unaffiliated/varis)
2020-12-25 22:31:03 +0000benwr____(sid372383@gateway/web/irccloud.com/x-rfsfsfysohdtgikt)
2020-12-25 22:31:06 +0000eruditass(uid248673@gateway/web/irccloud.com/x-vskreoprzujwnjjs) (Max SendQ exceeded)
2020-12-25 22:31:09 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 22:31:14 +0000SrPx(sid108780@gateway/web/irccloud.com/x-xocntreqlornxygw) (Ping timeout: 268 seconds)
2020-12-25 22:31:41 +0000ReinH__(sid179972@gateway/web/irccloud.com/x-gxvdlavauwivnxng) (Ping timeout: 272 seconds)
2020-12-25 22:31:59 +0000son0p(~son0p@181.136.122.143)
2020-12-25 22:32:01 +0000 <monochrom> Of course if you code like "main (x:xs) = ..." that is wrong. The 1st answer isn't available until you issue your 1st command.
2020-12-25 22:32:02 +0000davetapley(sid666@gateway/web/irccloud.com/x-ionovhqqpktzqpxd)
2020-12-25 22:32:04 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51) (Read error: Connection reset by peer)
2020-12-25 22:32:08 +0000Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-25 22:32:20 +0000ReinH__(sid179972@gateway/web/irccloud.com/x-gpfwmlgqwhiukqzi)
2020-12-25 22:32:25 +0000eruditass(uid248673@gateway/web/irccloud.com/x-zzmifhezrdakvmqp)
2020-12-25 22:32:29 +0000axeman-(~axeman_@ip5f5af023.dynamic.kabel-deutschland.de)
2020-12-25 22:32:36 +0000natim87(sid286962@gateway/web/irccloud.com/x-rsbfresybxjbdfwv) (Ping timeout: 240 seconds)
2020-12-25 22:32:45 +0000 <monochrom> But this can work: "main xs = GetChar : (case xs of HereBeChar c : xt -> ...)"
2020-12-25 22:32:53 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 22:32:55 +0000SrPx(sid108780@gateway/web/irccloud.com/x-jqknpexcrnufpwgi)
2020-12-25 22:33:24 +0000 <nf> getting answers and giving commands means you're the one in control
2020-12-25 22:33:37 +0000bradparker(sid262931@gateway/web/irccloud.com/x-hkmwjhwvnriiibwj)
2020-12-25 22:34:05 +0000kam1(~kam1@24.231.108.143) (Ping timeout: 240 seconds)
2020-12-25 22:35:06 +0000Varis(~Tadas@unaffiliated/varis)
2020-12-25 22:35:07 +0000shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:ac1c:ca8f:6bba:6ac5) (Ping timeout: 260 seconds)
2020-12-25 22:35:08 +0000 <Rembane> It sounds awfully lot like an interpreter.
2020-12-25 22:35:26 +0000axeman-_(~axeman_@2a09:bac0:48::82b:7a05)
2020-12-25 22:35:32 +0000Varis(~Tadas@unaffiliated/varis) (Max SendQ exceeded)
2020-12-25 22:35:37 +0000 <nf> that would be the other way around
2020-12-25 22:35:42 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-25 22:35:43 +0000heatsink(~heatsink@2600:1700:bef1:5e10:71b2:cc28:f79:2771)
2020-12-25 22:35:46 +0000cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-12-25 22:35:49 +0000Varis(~Tadas@unaffiliated/varis)
2020-12-25 22:36:27 +0000 <merijn> The main thing is: It sucked so hard it's been dead for over a quarter century :p
2020-12-25 22:37:26 +0000axeman-__(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51)
2020-12-25 22:37:27 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 260 seconds)
2020-12-25 22:37:45 +0000matryoshka(~matryoshk@184.75.223.227)
2020-12-25 22:38:14 +0000axeman-(~axeman_@ip5f5af023.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2020-12-25 22:40:22 +0000heatsink(~heatsink@2600:1700:bef1:5e10:71b2:cc28:f79:2771) (Ping timeout: 260 seconds)
2020-12-25 22:41:13 +0000axeman-_(~axeman_@2a09:bac0:48::82b:7a05) (Ping timeout: 260 seconds)
2020-12-25 22:41:15 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 265 seconds)
2020-12-25 22:42:00 +0000axeman-__(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51) (Remote host closed the connection)
2020-12-25 22:43:21 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-25 22:43:22 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51)
2020-12-25 22:43:48 +0000shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:ac1c:ca8f:6bba:6ac5)
2020-12-25 22:44:30 +0000natim87(sid286962@gateway/web/irccloud.com/x-ryjfgihdwvppjeie)
2020-12-25 22:44:52 +0000lgedeon(~lgedeon@178.239.168.171)
2020-12-25 22:45:31 +0000kuribas(~user@ptr-25vy0ia20n5d17pacij.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-12-25 22:47:57 +0000axeman-(~axeman_@2a02:8109:86c0:1f98:7400:45ca:c351:7a51) (Ping timeout: 260 seconds)
2020-12-25 22:48:12 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2020-12-25 22:49:03 +0000kam1(~kam1@24.231.108.143)
2020-12-25 22:51:06 +0000puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Quit: killed)
2020-12-25 22:51:11 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-25 22:51:44 +0000puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
2020-12-25 22:51:55 +0000xcmw(~textual@2601:541:4404:bb5c:c568:d02b:e892:a15e)
2020-12-25 22:52:41 +0000kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-12-25 22:53:24 +0000fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar)
2020-12-25 22:53:31 +0000polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Read error: Connection reset by peer)
2020-12-25 22:53:53 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 22:54:35 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 22:55:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 22:56:01 +0000t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-25 22:56:26 +0000perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2020-12-25 22:58:55 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 272 seconds)
2020-12-25 22:59:40 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 23:00:37 +0000coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-25 23:00:53 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 23:02:03 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-12-25 23:02:52 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-12-25 23:03:36 +0000jneira(5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Ping timeout: 240 seconds)
2020-12-25 23:04:04 +0000olligobber(~olligobbe@unaffiliated/olligobber)
2020-12-25 23:04:40 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 23:04:44 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 23:05:31 +0000acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
2020-12-25 23:05:53 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 23:06:48 +0000acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-12-25 23:08:05 +0000 <fuzzypixelz> this is a really nice blog post: https://diego.codes/post/learning-monads/
2020-12-25 23:09:02 +0000Fractalis(~Fractalis@2601:987:280:8d40:45d0:942f:6e60:692f) (Ping timeout: 264 seconds)
2020-12-25 23:09:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 23:10:12 +0000__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-12-25 23:10:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-25 23:11:11 +0000paintcan(~user@cpe-69-206-241-99.nyc.res.rr.com) (Ping timeout: 256 seconds)
2020-12-25 23:11:22 +0000 <aldum> another monadtutorial? :D
2020-12-25 23:12:40 +0000 <dsal> fuzzypixelz: Your original question included: in a rather "concise" way ... preferably not a long book chapter
2020-12-25 23:13:06 +0000 <dsal> Some shortcuts take much longer than the simple direct route.
2020-12-25 23:13:10 +0000kori(~kori@arrowheads/kori) (Ping timeout: 268 seconds)
2020-12-25 23:13:37 +0000o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-12-25 23:14:52 +0000philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-25 23:15:11 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-25 23:15:31 +0000sgibber2018(~arch-gibb@208.85.237.137) (Quit: WeeChat 3.0)
2020-12-25 23:15:49 +0000sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 264 seconds)
2020-12-25 23:16:43 +0000xcmw(~textual@2601:541:4404:bb5c:c568:d02b:e892:a15e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 23:17:23 +0000 <fuzzypixelz> dsal: What do you recommend I do? :)
2020-12-25 23:18:43 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2020-12-25 23:18:53 +0000xcmw(~textual@2601:541:4404:bb5c:c568:d02b:e892:a15e)
2020-12-25 23:19:29 +0000fendor(~fendor@77.119.130.68.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-25 23:19:36 +0000cheater(~user@unaffiliated/cheater) (Ping timeout: 240 seconds)
2020-12-25 23:19:44 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2020-12-25 23:21:31 +0000 <dsal> I don't know. I learn by practice, mostly. I did like haskellbook.com for the pace. (some people hate it for the pace). But also had been writing a lot of code at the time.
2020-12-25 23:21:46 +0000heatsink(~heatsink@2600:1700:bef1:5e10:71b2:cc28:f79:2771)
2020-12-25 23:22:29 +0000 <fuzzypixelz> in this code, https://github.com/DiegoVicen/monadic-gcd/blob/master/src/MonadicGCD.hs I don't see how the log strings are passed around in each function call, isn't the "saveLog $ show ..." just discarded and then next monad is returned?
2020-12-25 23:22:59 +0000 <fuzzypixelz> dsal: by pace you mean it's slow?
2020-12-25 23:23:49 +0000 <dsal> It walks you through all the parts as if they didn't exist and you have to make them yourself, but by the time you get to a think, you've often needed it, so it basically names a thing that's been annoying you and shows you how to build it.
2020-12-25 23:24:25 +0000 <dsal> I don't have *great* intuition for a lot of the things, but most of the magic went away with that book.
2020-12-25 23:24:37 +0000xcmw(~textual@2601:541:4404:bb5c:c568:d02b:e892:a15e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 23:25:14 +0000 <int-e> dsal: Note how >>= combines the logs of the first and second actions.
2020-12-25 23:25:53 +0000 <int-e> @undo do saveLog something; call something else
2020-12-25 23:25:53 +0000 <lambdabot> <unknown>.hs:1:38:Parse error: else
2020-12-25 23:25:58 +0000 <int-e> oops
2020-12-25 23:26:01 +0000 <int-e> @undo do saveLog something; call something
2020-12-25 23:26:01 +0000 <lambdabot> saveLog something >> call something
2020-12-25 23:26:24 +0000 <fuzzypixelz> int-e: but >> isn't the same this as >>=?
2020-12-25 23:26:33 +0000 <int-e> and a >> b = a >>= \_ -> b
2020-12-25 23:26:35 +0000 <dsal> :t (>>)
2020-12-25 23:26:36 +0000cheater(~user@unaffiliated/cheater)
2020-12-25 23:26:37 +0000 <lambdabot> Monad m => m a -> m b -> m b
2020-12-25 23:26:39 +0000 <dsal> :t (>>=)
2020-12-25 23:26:40 +0000 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2020-12-25 23:26:44 +0000son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-12-25 23:26:48 +0000 <int-e> it's implemented in terms of >>=.
2020-12-25 23:27:00 +0000 <fuzzypixelz> oh!
2020-12-25 23:27:26 +0000 <fuzzypixelz> I thought people just wrote that as a property
2020-12-25 23:28:14 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Remote host closed the connection)
2020-12-25 23:28:30 +0000cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-25 23:28:35 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2)
2020-12-25 23:28:37 +0000 <int-e> fuzzypixelz: I lied. It is a property, and also the default implementation of >>.
2020-12-25 23:28:47 +0000 <ephemient> well, a monad instance can override it to do something else (e.g. (>>) = (*>))
2020-12-25 23:28:58 +0000 <ephemient> but the default implementation is defined in terms of (>>=)
2020-12-25 23:28:59 +0000 <int-e> but if you go out of your way you can write a lawless instance of Monad that violates this idea.
2020-12-25 23:30:04 +0000 <int-e> It's worth noting that <*> treats the logs in the same way.
2020-12-25 23:30:16 +0000acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-12-25 23:30:36 +0000kori(~kori@arrowheads/kori)
2020-12-25 23:31:46 +0000jmchael(~jmchael@81.174.205.210) (Ping timeout: 246 seconds)
2020-12-25 23:31:57 +0000 <fuzzypixelz> int-e: alright only the value is discarded but the strings are added on, since >>= only binds the value, rereading the implementation for >>= makes sense
2020-12-25 23:33:07 +0000 <fuzzypixelz> Cya! Love you!
2020-12-25 23:33:31 +0000dandart(~Thunderbi@2a00:23c7:f5a6:d001:6056:da77:5ae:49a2) (Ping timeout: 268 seconds)
2020-12-25 23:33:59 +0000fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) ()
2020-12-25 23:36:15 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-25 23:38:16 +0000bitmapper(uid464869@gateway/web/irccloud.com/x-prsljozdtcilczmu) (Quit: Connection closed for inactivity)
2020-12-25 23:38:38 +0000Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
2020-12-25 23:42:29 +0000acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-12-25 23:43:44 +0000jmchael(~jmchael@81.174.205.210)
2020-12-25 23:45:43 +0000cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-25 23:47:01 +0000ransom_(~c4264035@8.47.12.52) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-25 23:47:42 +0000knupfer(~Thunderbi@200116b8248ff600c4f4ca64117d4161.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-12-25 23:51:23 +0000perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-12-25 23:53:47 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-25 23:59:01 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)