Home freenode/#haskell: Logs Calendar

Logs on 2020-12-25 (freenode/#haskell)

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

All times are in UTC on 2020-12-25.