Home liberachat/#haskell: Logs Calendar

Logs on 2023-05-23 (liberachat/#haskell)

00:11:45 × machinedgod quits (~machinedg@84-115-230-104.cable.dynamic.surfer.at) (Ping timeout: 256 seconds)
00:27:40 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
00:32:01 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
00:36:31 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 240 seconds)
00:45:16 × td_ quits (~td@i5387092F.versanet.de) (Ping timeout: 268 seconds)
00:46:42 td_ joins (~td@i5387090A.versanet.de)
00:48:36 nate2 joins (~nate@98.45.169.16)
00:52:23 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:52:23 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:52:23 wroathe joins (~wroathe@user/wroathe)
01:03:13 <EvanR> is it broken?
01:07:32 freeside joins (~mengwong@103.252.202.151)
01:11:12 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:28 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
01:17:19 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:21 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:22:04 <Inst> EvanR: well, you can try running something that uses, ummm... hmatrix in Windows GHCI, or monomer's GHCI mode
01:23:12 × rf quits (~rf@2605:59c8:179c:f610:35bd:5aa6:7274:a262) (Ping timeout: 248 seconds)
01:23:57 <EvanR> oh oh, ghci
01:24:16 <EvanR> big sad
01:31:12 freeside joins (~mengwong@103.252.202.151)
01:32:25 <Inst> and edifice won't run on Windows, at least, not on my machine, but don't worry, Windows is now less than 50% of machines in the United States, although it has a superior market share globally
01:32:39 <Inst> In 10 years, no one will care about Windows support because no one will be using it
01:33:08 × vandita quits (~vandit@80-95-82-220.pool.digikabel.hu) (Ping timeout: 265 seconds)
01:34:28 × ctearrrrrrrrrrr^ quits (~ctearrrrr@c-71-204-38-59.hsd1.ga.comcast.net) (Remote host closed the connection)
01:34:44 vandita joins (~vandit@176-241-62-247.pool.digikabel.hu)
01:35:26 <Inst> well, it's still 53%, but it's dropping
01:35:28 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 248 seconds)
01:35:38 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
01:35:57 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360)
01:37:10 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
01:40:29 captnemo joins (~captnemo@193.32.127.232)
01:43:41 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
01:44:09 <monochrom> No, even OS/2 is taking longer than that to die.
01:44:41 <monochrom> Yes, it is still taking its time to die, no rush. So nevermind Windows "dying".
01:45:26 <monochrom> And BSD. And System V. And COBOL.
01:48:47 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
01:55:34 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 268 seconds)
02:07:01 × jero98772 quits (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 240 seconds)
02:09:01 × td_ quits (~td@i5387090A.versanet.de) (Ping timeout: 240 seconds)
02:11:13 td_ joins (~td@i53870922.versanet.de)
02:16:47 jero98772 joins (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
02:18:01 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:23:01 <hpc> it's like waiting for hamlet to die
02:23:15 <hpc> it'll always be out there somewhere, waiting for some nerd to port it to webassembly :D
02:25:44 <hammond> I know this isn't a haskell question, but is there like a good guideline for the number of lines of code file should have to promote readability and conciseness?
02:26:31 <hammond> say a module is getting to 300 lines of code, do you cut it and make a new module. or how does it all figure.
02:34:47 <sm> it's a trade-off: cost of long file vs cost of multiple short files, considering factors like readability, intended purpose and audience, current tools and developer workflows, compiler performance
02:37:23 × captnemo quits (~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
02:37:43 captnemo joins (~captnemo@193.32.127.232)
02:38:09 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
02:40:19 × ystael quits (~ystael@user/ystael) (Ping timeout: 265 seconds)
02:41:17 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:48:46 × wroathe quits (~wroathe@user/wroathe) (Quit: leaving)
02:49:47 AndreaB is now known as AmyMalik
02:51:13 × captnemo quits (~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
02:51:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:56:20 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:01:03 andreabedini joins (~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5)
03:04:25 radioredwagon joins (~radioredw@user/radioredwagon)
03:18:21 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
03:18:30 × vandita quits (~vandit@176-241-62-247.pool.digikabel.hu) (Ping timeout: 265 seconds)
03:18:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
03:19:51 vandita joins (~vandit@178-164-206-87.pool.digikabel.hu)
03:32:27 <hammond> sm no such thing as each module should be 150 to 200 lines no more?
03:32:42 <sm> no
03:33:02 <sm> unless a project wants that for some reason
03:33:23 <hammond> ok.
03:35:02 <probie> A module should be as long as it needs to be
03:37:25 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
03:39:46 <probie> GHC itself has a non-negligible number of >1000 line modules
03:45:44 nate2 joins (~nate@98.45.169.16)
03:50:53 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
03:51:27 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
03:54:22 img joins (~img@user/img)
03:59:31 × RedNifre quits (~RedNifre@dslb-002-201-038-109.002.201.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
04:00:28 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
04:03:28 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:08:25 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:09:44 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 265 seconds)
04:12:14 RedNifre joins (~RedNifre@dslb-090-186-054-065.090.186.pools.vodafone-ip.de)
04:20:05 × mei quits (~mei@user/mei) (Ping timeout: 240 seconds)
04:21:46 <sm> one big cost of small modules in haskell is increasing the proportion of of imports (and language pragmas) boilerplate
04:23:53 <sm> ie, you usually have to write a bunch of imports to get anything done, and in a new module you'll have to do that again.
04:24:22 mei joins (~mei@user/mei)
04:30:19 × radioredwagon quits (~radioredw@user/radioredwagon) (Quit: Client closed)
04:34:39 hugo joins (znc@verdigris.lysator.liu.se)
04:40:38 mbuf joins (~Shakthi@49.207.178.186)
04:52:12 <EvanR> setting my editor to disallow files over 200 lines
04:52:31 <Inst> M$ just feels like the lesser evil
04:52:48 <EvanR> now I have the functions split over N files named Utils1 through UtilN.hs
04:52:50 trillp joins (~trillp@69.233.98.238)
04:53:09 <Inst> you can either choose the dearly deceased Steve Jobs' OS, which is locked to hardware, Google's spyware OS, or M$
04:54:32 <probie> Inst: What's wrong with running GNU/Linux?
04:56:42 <ghostbuster> hmm something is wrong with my environment i think? https://termbin.com/q28i https://termbin.com/p55y
04:57:06 trev joins (~trev@user/trev)
04:58:23 <Inst> if linux were a norm that'd be fine
04:58:54 <EvanR> been running linux for 20 years now
04:58:57 <EvanR> works
04:59:40 <EvanR> GET THE FACTS
04:59:45 <probie> ghostbuster: are you on linux with a relatively new kernel? If so it's a bug in the linux kernel (which I think has been fixed)
05:00:11 <Inst> but depending on your politics, year of linux on desktop will probably be because a Chinese SOE has a decent distro of Linux, Sino-American ties are bad, and the Chinese government bans both Windows, Chrome, and OSX
05:01:33 <ghostbuster> probie: yeah how did you know?
05:02:37 <ghostbuster> 6.3.2
05:03:39 <Inst> hmm, my debian blew up recently
05:04:03 <Inst> might be worth trying ubuntu kylin?
05:04:35 <Inst> sort of wished the old BSD-based Kylin was still alive
05:05:17 <probie> ghostbuster: They broke mmap in 6.1 (if you call it with just the right args, which ghc does). An older kernel and/or a newer GHC fixes this I think?
05:08:01 <probie> Inst: why does it [running linux] have to be a norm? It works fine (ignore the recent messages about ghc blowing up due to a kernel bug)
05:08:45 <Inst> social ecosystem, as in, linux is held back because lots of hardware doesn't have drivers, a M$ or Apple-style it just works is rare
05:08:56 <Inst> IIRc, I had to hack in via WSL the Linux drivers for my wifi
05:09:16 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
05:09:35 falafel joins (~falafel@2603-8000-d700-115c-23eb-285d-1c7c-0334.res6.spectrum.com)
05:10:15 <probie> macOS doesn't work on most hardware either :p
05:10:44 <Inst> macOS at least does hardware lock-in, it's literally not intended as an option for most machines
05:10:58 <Inst> the problem with OSX is that you buy into an Apple hardware monopoly
05:11:30 <Inst> i mean, "use Kylin OS or get sent to a labor camp" is good because then if you want to sell in China, you need Linux drivers
05:12:06 <Inst> but it's pretty absurd to want an authoritarian government to mandate Linux onto the world's second largest economy just to make it usable for one's definition of usable
05:16:58 <probie> You can already buy hardware which supports linux
05:21:42 <Inst> you're paying a premium for dedicated linux hardware, it seems
05:22:23 <Inst> you can get traditional PCs that have manufacturer support for linux, on the other hand, but i'm assuming the support can be lackluster
05:26:49 × vandita quits (~vandit@178-164-206-87.pool.digikabel.hu) (Ping timeout: 256 seconds)
05:28:21 vandita joins (~vandit@80-95-82-232.pool.digikabel.hu)
05:32:34 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:34:33 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
05:34:56 × mcglk quits (~mcglk@131.191.19.145) (Read error: Connection reset by peer)
05:37:35 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
05:37:35 takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be)
05:43:51 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
05:47:32 michalz joins (~michalz@185.246.204.89)
05:47:43 machinedgod joins (~machinedg@84-115-230-104.cable.dynamic.surfer.at)
05:47:59 acidjnk joins (~acidjnk@p200300d6e7072f1980412807ae9a6e3f.dip0.t-ipconnect.de)
05:48:17 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
05:48:37 EvanR joins (~EvanR@user/evanr)
05:49:29 × falafel quits (~falafel@2603-8000-d700-115c-23eb-285d-1c7c-0334.res6.spectrum.com) (Ping timeout: 256 seconds)
05:49:53 <geekosaur> flip side Ubuntu installed onto my Lenovo ThinkPad X220 and everything just works. it's not like 20 years ago when things really were as bad as you say; Linux has made some inroads in terms of support
05:50:52 chomwitt joins (~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1)
05:54:06 falafel joins (~falafel@2603-8000-d700-115c-704a-f6ee-a054-f0ff.res6.spectrum.com)
05:57:04 freeside joins (~mengwong@122.11.248.245)
05:57:26 × byte quits (~byte@user/byte) (Quit: Quitting...)
06:00:48 × falafel quits (~falafel@2603-8000-d700-115c-704a-f6ee-a054-f0ff.res6.spectrum.com) (Ping timeout: 240 seconds)
06:01:41 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
06:02:03 byte joins (~byte@user/byte)
06:13:17 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
06:15:57 × byte quits (~byte@user/byte) (Quit: Quitting...)
06:17:09 byte joins (~byte@user/byte)
06:23:04 oo_miguel joins (~Thunderbi@77.252.47.84)
06:24:46 mmhat joins (~mmh@p200300f1c70668bcee086bfffe095315.dip0.t-ipconnect.de)
06:26:47 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
06:30:53 × byte quits (~byte@user/byte) (Quit: Quitting...)
06:31:55 byte joins (~byte@user/byte)
06:48:00 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
06:50:02 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
06:50:08 × incertia quits (~incertia@209.122.71.127) (Ping timeout: 248 seconds)
06:50:48 incertia joins (~incertia@209.122.71.127)
06:52:25 mc47 joins (~mc47@xmonad/TheMC47)
06:57:54 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
07:00:34 gurkenglas joins (~user@dynamic-046-114-168-101.46.114.pool.telefonica.de)
07:07:26 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c066:a9b9:79ee:689b)
07:07:41 finnekit4 joins (~finnekit@fsf/member/finnekit)
07:08:22 nschoe joins (~q@2a01:e0a:8e:a190:1e90:eaba:66b5:fb61)
07:10:04 × finnekit quits (~finnekit@fsf/member/finnekit) (Ping timeout: 268 seconds)
07:10:04 finnekit4 is now known as finnekit
07:10:12 × chomwitt quits (~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
07:10:34 chomwitt joins (~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1)
07:11:28 × Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 248 seconds)
07:12:00 × Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 248 seconds)
07:12:14 Noinia joins (~Frank@77-162-168-71.fixed.kpn.net)
07:17:20 × koolazer quits (~koo@user/koolazer) (Ping timeout: 248 seconds)
07:18:07 koolazer joins (~koo@user/koolazer)
07:18:47 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 264 seconds)
07:21:21 Sauvin joins (~sauvin@user/Sauvin)
07:23:15 Bocaneri joins (~sauvin@user/Sauvin)
07:23:39 Bocaneri is now known as Guest4160
07:23:44 Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi)
07:24:11 × chomwitt quits (~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds)
07:24:31 × trillp quits (~trillp@69.233.98.238) (Quit: WeeChat 3.7.1)
07:25:52 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
07:26:01 × andreabedini quits (~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5) (Ping timeout: 240 seconds)
07:26:09 chomwitt joins (~chomwitt@2a02:587:7a13:b200:1ac0:4dff:fedb:a3f1)
07:28:23 × xilo quits (~yourname@user/xilo) (Ping timeout: 240 seconds)
07:31:20 andreabedini joins (~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5)
07:32:41 mncheckm joins (~mncheck@193.224.205.254)
07:32:48 × freeside quits (~mengwong@122.11.248.245) (Ping timeout: 240 seconds)
07:33:23 × landonf quits (landonf@mac68k.info) (Ping timeout: 246 seconds)
07:33:30 landonf joins (landonf@mac68k.info)
07:33:59 × vandita quits (~vandit@80-95-82-232.pool.digikabel.hu) (Ping timeout: 240 seconds)
07:34:18 xilo joins (~yourname@84.32.165.17)
07:34:44 freeside joins (~mengwong@202.161.55.11)
07:35:52 vandita joins (~vandit@92-249-193-123.pool.digikabel.hu)
07:37:04 × Guest4160 quits (~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
07:42:29 CiaoSen joins (~Jura@dynamic-046-114-220-134.46.114.pool.telefonica.de)
07:43:23 gmg joins (~user@user/gehmehgeh)
07:43:24 Sauvin joins (~sauvin@user/Sauvin)
07:46:58 nate2 joins (~nate@98.45.169.16)
07:52:02 thegeekinside joins (~thegeekin@189.141.107.10)
07:52:27 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
07:52:38 Feuermagier joins (~Feuermagi@user/feuermagier)
07:54:02 cfricke joins (~cfricke@user/cfricke)
07:55:23 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
07:58:28 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
08:09:21 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Remote host closed the connection)
08:11:52 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:16:53 MajorBiscuit joins (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
08:20:23 × mmhat quits (~mmh@p200300f1c70668bcee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
08:22:08 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
08:29:59 × thegeekinside quits (~thegeekin@189.141.107.10) (Ping timeout: 240 seconds)
08:38:58 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
08:39:45 kuribas joins (~user@ptr-17d51eotp0ewss6x895.18120a2.ip6.access.telenet.be)
08:41:22 titibandit joins (~titibandi@user/titibandit)
08:42:11 househorse joins (~housemate@120.18.177.69)
08:43:44 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:49:13 califax_ joins (~califax@user/califx)
08:49:20 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
08:50:08 × acidjnk quits (~acidjnk@p200300d6e7072f1980412807ae9a6e3f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
08:50:19 eugenrh joins (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8)
08:50:30 califax_ is now known as califax
08:51:05 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
08:51:59 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
08:52:07 acidjnk joins (~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de)
08:53:55 Lord_of_Life_ is now known as Lord_of_Life
08:55:11 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
08:57:19 × MajorBiscuit quits (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 265 seconds)
08:57:36 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:06:34 × freeside quits (~mengwong@202.161.55.11) (Ping timeout: 250 seconds)
09:06:51 × tjnhxmzhmqgytuwt quits (~tjnhxmzhm@2001:470:69fc:105::3:70e) (Remote host closed the connection)
09:09:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
09:10:12 MajorBiscuit joins (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
09:13:38 __monty__ joins (~toonn@user/toonn)
09:14:22 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 250 seconds)
09:25:50 × househorse quits (~housemate@120.18.177.69) (Quit: Probably insane, but also not in the least. HAHA. <https://executingreality.com/> <https://methamphetamine.life/> STILL; I AM SAVING THE UNIVERSE. ROFL!)
09:37:51 × acidjnk quits (~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
09:38:30 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
09:38:52 acidjnk joins (~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de)
09:40:53 × kuribas quits (~user@ptr-17d51eotp0ewss6x895.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
09:43:09 notzmv joins (~zmv@user/notzmv)
09:44:38 × ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
09:47:32 freeside joins (~mengwong@122.11.212.99)
09:49:28 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
09:52:15 × vandita quits (~vandit@92-249-193-123.pool.digikabel.hu) (Ping timeout: 268 seconds)
09:52:56 hamzam3 joins (~hamzam3@2a01:e0a:1ee:8c60:ca85:9674:421c:1b38)
09:53:29 vandita joins (~vandit@94-21-48-57.pool.digikabel.hu)
09:56:11 titibandit joins (~titibandi@user/titibandit)
09:58:15 × chomwitt quits (~chomwitt@2a02:587:7a13:b200:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
10:05:37 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
10:08:33 × andreabedini quits (~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5) (Quit: WeeChat 3.8)
10:09:44 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
10:11:19 × mei quits (~mei@user/mei) (Remote host closed the connection)
10:13:21 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:13:45 mei joins (~mei@user/mei)
10:14:30 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-1d2b-cbea-330c-620a.rev.sfr.net)
10:17:08 × freeside quits (~mengwong@122.11.212.99) (Read error: Connection reset by peer)
10:18:43 kritzefitz joins (~kritzefit@debian/kritzefitz)
10:21:03 freeside joins (~mengwong@122.11.212.99)
10:21:59 × CiaoSen quits (~Jura@dynamic-046-114-220-134.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
10:31:12 <hamzam3> Hello everyone, I want to know if it's possible to build a library with profiling if it includes a foreign interface
10:31:15 <hamzam3> Thank you !
10:32:39 <hamzam3> Also do you have any advice with respect to debugging.
10:33:16 × freeside quits (~mengwong@122.11.212.99) (Read error: Connection reset by peer)
10:33:21 <geekosaur> certainly you can, you just won't get any profiling information from the other side of the call boundary unless that's built with C profiling, and then you'd have to use C profiling tools for that part
10:33:36 <geekosaur> debugging is probably haskell's weakest point currently
10:34:05 <hamzam3> I get the following message when compiling with profiling option
10:34:15 <hamzam3> Perhaps you haven't installed the profiling libraries for package ‘StateVar-1.2.2’?
10:34:23 <geekosaur> you can build with debugging which adds DWARF info that can be used in gdb/lldb, but it's something of a poor fit as ghc doesn't fit with C debuggers very well
10:34:51 <geekosaur> how did you install StateVar? was it done automatically by stack / cabal, or did you use an OS package?
10:35:05 <hamzam3> I installed it with the following command
10:35:09 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
10:35:28 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360)
10:35:38 <hamzam3> cabal install --only-dependencies --enable-library-profiling --overwrite-policy=always
10:36:21 <geekosaur> odd
10:36:37 <hamzam3> I deleted my .cabal folder
10:36:46 <hamzam3> and redone this command
10:36:47 <geekosaur> delete your .ghc folder as well
10:36:52 <hamzam3> ok
10:37:16 <geekosaur> otherwise you still have the old package registration but you've lost the actual package contents, which will confuse both cabal and ghc
10:37:34 <hamzam3> ok
10:37:50 <hamzam3> where is the .ghc usually ?
10:37:59 <geekosaur> cabal should detect that it needs to install profiling versions of packages automatically
10:39:21 <hamzam3> find ~ -name ".ghc" gives nothing
10:40:05 <geekosaur> right, that's the name used for old versions. where it will be for new versions depends on how you installed ghc
10:41:16 <geekosaur> oh, hm, also that won't matter since you're using cabal, so it shouldn't be writing to the ghc local package db (I would hope)
10:41:43 <geekosaur> what version of cabal? you may also need to look for ~/.local/state/cabal
10:42:05 gensyst joins (~gensyst@user/gensyst)
10:42:41 <gensyst> putStrLn "foo" >> putStrLn "bar". Can the first and second somehow end up on different threads? When/how can Haskell code move between threads?
10:42:55 <hamzam3> ok sorry I have an issue, my disk is full
10:43:05 <geekosaur> whoops 🙂
10:43:06 <hamzam3> let me fix this, thank you very much
10:43:46 <geekosaur> gensyst, i that is already on an OS thread other than the main one, it can migrate at an allocation point
10:43:57 <geekosaur> (and that isn't bound)
10:44:19 <geekosaur> note that the main OS thread is bound and also special in other ways; code on that thread will never migrate
10:45:16 <gensyst> geekosaur, i'm trying to grasp.. could the result of myThreadId suddenly (and unexpectedly) change?
10:45:20 <gensyst> in the "same code"
10:45:37 <gensyst> what's an allocation point?
10:46:04 <geekosaur> myThreadId should return the Haskell thread, not the OS thread, so it should never change
10:46:21 <gensyst> ok i see!
10:46:32 <gensyst> i've been coding haskell for yeras, why don't i know this stuff. embarrassing :(
10:46:34 <geekosaur> an allocation point is anywhere that can do an allocation
10:46:35 <gensyst> thanks
10:48:08 <juri_> gensyst: don't feel bad. haskell gets programming out of the way enough you can spend years, and not know a lot of the language. i have no idea how exceptions work, and only a rudimentary knowledge of monads, and i've been programming for 8 years now, 4 full-time.
10:53:46 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
10:53:46 <gensyst> juri_, thanks :)
10:55:03 <hamzam3> apparently my ghc is in ghcup
10:55:19 <hamzam3> and also statevar does have a profiling lib
10:55:25 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
10:55:38 <hamzam3> geekosaur:vwhat should i delete
10:58:16 __monty__ joins (~toonn@user/toonn)
10:59:18 <geekosaur> nothing, if you deleted ~/.cabal and/or ~/.local/state/cabal
10:59:45 <geekosaur> if you ran out of disk space then you probably managed to corrupt your cabal store, removing those will clean it up and cabal will repopulate it
10:59:58 <geekosaur> but you may have to clear more space to hold it
11:00:32 <geekosaur> (I have a tiny root SSD so I had to mount an external drive to hold all my cabal stuff)
11:02:37 <hamzam3> how heavy can cabal be ?
11:02:50 <hamzam3> i have nuked ghcup
11:03:33 <geekosaur> I really would not have done that
11:03:49 <geekosaur> cabal will accrue packages, sometimes it's useful to clean up
11:03:54 <geekosaur> @where cabalgc
11:03:54 <lambdabot> https://github.com/treblacy/cabalgc
11:04:43 <hamzam3> ok lol
11:04:54 <hamzam3> thank you for this
11:04:56 <geekosaur> they're working on a more complete built-in solution since cabal is in a better spot to keep track of what's in use; with cabalgc you need to manually tell it what cabal projects are "live" and need their packages to be kept
11:05:16 <hamzam3> oh ok
11:05:30 <hamzam3> i have a peripherical question if possible
11:06:00 <geekosaur> one can always ask. sometimes you'll have to wait for someone who knows more to get an answer
11:06:07 <hamzam3> do you contribute to open source project about haskell ?
11:06:22 <geekosaur> I'm a head of the xmonad project
11:06:22 <hamzam3> or using
11:06:49 <hamzam3> what is it about ?
11:06:54 <geekosaur> I also use it personally but all my stuff is personal tools of little interest to others so I haven't uploaded them to hackage
11:07:03 <geekosaur> xmonad is a tiling window manager
11:07:10 <geekosaur> https://xmonad.org
11:07:26 <hamzam3> woah nice
11:07:29 <hamzam3> is it popular ?
11:07:38 <geekosaur> I also help out with ghc, and more recently am starting to help out with cabal
11:07:57 <geekosaur> popular enough. tiling window managers aren't exactly the most popular kind
11:08:34 <geekosaur> but we always get a bump in new users when someone posts their config to /r/unixporn or Distrotube does something about an xmonad config 🙂
11:09:00 <hamzam3> interesting these posts are the way to market open source projects
11:09:53 <hamzam3> do u know what are the needs currently in the programming community ? like what would be the most relevant contribution to provide at this moment ?
11:10:11 <geekosaur> not really
11:10:13 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
11:10:15 <hamzam3> how to track open source project demand lets say
11:10:44 <geekosaur> I think — hope — the Haskell Foundation is starting to track that kind of thing; you might check on discourse.haskell.org
11:10:56 <probie> I used to use xmonad, but I had to give it up when I moved to Wayland. I think it's possibly the second most popular tiling window manager for X behind i3.
11:10:56 <juri_> open source is not moved by the big projects, but by the little changes. make something better every day.
11:11:02 <ncf> juri_++
11:11:39 <hamzam3> okay
11:11:46 barzo joins (~hd@31.223.56.119)
11:12:47 <geekosaur> most haskell projects (and indeed open source projects in general) have in their issue trackers some kind of "newcomers" or "good first issue" tag
11:12:58 <geekosaur> pick something that interests you and poke around
11:13:08 <hamzam3> yes
11:13:09 <geekosaur> that's how open source works
11:13:37 <hamzam3> do you think haskell can be improved so that it can be possible to write proofs in it
11:13:49 <hamzam3> using dependent type theory
11:13:58 <juri_> long term, i think that'll happen.
11:14:03 <probie> "improved". I'm not giving up `(a -> a) -> a`
11:14:04 <geekosaur> rich eisenberg is working on that, although getting it into ghc is proving a bit difficult
11:14:08 <juri_> or, at least, i hope. :)
11:14:26 <hamzam3> did you ever prove a program using a theorem prover
11:14:46 <geekosaur> there's a fundamental disconnect between how haskell and ghc's internal language deal with types, that makes dependent types somewhat difficult
11:14:54 <geekosaur> no, I didn't
11:15:01 <hamzam3> i think i'll try doing that this afternon
11:15:14 <geekosaur> I've played a little with agda and idris but never done anything serious with them
11:15:23 <hamzam3> oh
11:16:06 <probie> If you use Coq, you can extract Haskell code from Coq definitions
11:16:10 <hamzam3> should i try with idris or agda ?
11:16:18 <hamzam3> ah ?
11:16:18 <geekosaur> I know Wouter Swierstra ported the core of xmonad to Coq to validate it
11:16:21 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
11:16:26 <hamzam3> omg
11:16:32 <hamzam3> and its validated now ?
11:16:40 <hamzam3> like its bugless
11:16:40 <geekosaur> has been for years
11:16:51 <ncf> there is also agda2hs
11:17:08 <ncf> and i'm sure idris has a similar thing
11:17:12 <geekosaur> the StackSet is. no promises about the rest; but it's too tied up in X11 to easily feed to a proof assistant
11:18:14 <hamzam3> ok
11:18:18 <geekosaur> someone did prove correctness for the various pure layouts in -contrib at one point but the link to that disappeared and doesn't seem to be in the wayback machine
11:18:40 <hamzam3> ok but that's kind of a big deal no ?
11:18:45 <hamzam3> we can write bugless code now
11:19:08 <hamzam3> i think these techniques should be applied to browsers
11:19:26 <geekosaur> there's a relevant Knuth quote there… "Beware, I have only proven this code correct, not tested it"
11:19:38 <probie> You can write proven correct code. That doesn't mean it's free of bugs (it just means the bugs are in the spec, or possibly in the theorem prover)
11:19:44 <geekosaur> ^
11:19:50 <hamzam3> like have a browser associated with a theory that u can use to prove js code afterwards
11:19:53 <hamzam3> hu
11:19:57 <hamzam3> yes
11:20:12 <geekosaur> sounds good until you see what kind of messes you get even from "compliant" HTML, never mind JS
11:20:27 <hamzam3> do u have an example ?
11:21:50 <geekosaur> various HTML generators were perfectly happy to output start and end tags in the wrong order (think <a><b>…</a></b>)
11:22:02 <geekosaur> but that's just a simple example. they get much worse
11:22:14 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
11:22:17 <probie> back in the day, google used to omit a bunch of closing tags to send fewer bytes
11:22:34 <geekosaur> almost all "XHTML" won't pass an XHTML validator
11:22:42 <hamzam3> isnt this called forgiveness
11:22:50 <hamzam3> like it's meant to not crash on errors
11:22:57 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-1d2b-cbea-330c-620a.rev.sfr.net) (Remote host closed the connection)
11:23:19 <geekosaur> not really, it makes generation easier but parsing much harder
11:23:53 <hamzam3> ok ill have to explore this deeper then
11:24:04 <geekosaur> "tagsoup"
11:24:11 taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net)
11:24:31 <hamzam3> im trying to work on that right now
11:25:20 <hamzam3> im making a browser by hand to explore the question if you or someone wants to contribute (im not that experimented though)
11:25:36 <hamzam3> https://github.com/HamzaM3/yes-browser
11:26:41 <geekosaur> beware, the last few folks to do that in haskell disappeared into corporate NDAs never to be seen again 🙂
11:27:11 <hamzam3> why ? im not in a company
11:27:18 <geekosaur> they got hired
11:27:23 <hamzam3> ah ok lol
11:27:44 <geekosaur> but the companies that hire Haskell programmers often have very restrictive non-disclosure agreements
11:27:58 <geekosaur> so they never get to touch their code again
11:28:22 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
11:28:22 <hamzam3> do u mean that if you work under an nda u cant do open source anymore ?
11:28:27 <hpc> sometimes
11:28:27 <geekosaur> usually
11:28:45 <geekosaur> last time I was involved with one I specifically negotiated an exception for open source
11:28:52 <geekosaur> but I had to do that up front
11:28:59 <hamzam3> oh okay
11:29:08 <geekosaur> and get them to sign off on it
11:29:23 <hpc> usually you can negotiate it down to being able to do things outside the company's area of business, but even then you have to be careful
11:29:28 <geekosaur> ^
11:29:55 <hamzam3> but then open source cannot improve if all the talent is sucked
11:30:37 <hamzam3> how hard is it to find a haskell job. what should i put on my resume ? (im not searching yet)
11:31:30 <geekosaur> pretty hard. it's not like C++ or Go where there's lots of jobs around
11:32:19 <geekosaur> that said, the folks who know what they're doing will often consider Haskell experience a plus even for a non-Haskell job because it makes you a better programmer
11:32:57 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 265 seconds)
11:32:58 <geekosaur> Haskell's type system trains you to not make large classes of mistakes
11:33:20 <hpc> ^
11:33:38 <hpc> it's also a nice "proof of work"
11:33:52 <hamzam3> what is a proof of work
11:33:53 <hamzam3> ?
11:34:00 <hpc> when i am interviewing someone, it's always nice to see something like "i installed kubernetes at home so i could try out $x"
11:34:09 <hpc> basically, something that shows you're going to get the job done
11:34:14 <hpc> and not just sit there
11:35:08 <hamzam3> ok nice
11:35:11 <hpc> learning haskell (outside a classroom setting, a few people here teach it :D) takes initiative
11:35:18 <ncf> is there any way to pretty-print a circular data structure by rendering loops as <<loop>> or something?
11:35:35 <ncf> or do i have to implement my own cycle detection
11:35:54 <[exa]> ncf: I wish there was and if you found anything please ping me.
11:36:14 <ncf> heh
11:36:19 <hamzam3> anyways thank you guys for all your information !
11:37:04 <[exa]> ncf: there's methodology for that in prolog substitution-printing, the algorithm is not complex tbh, but instantiating that over haskell stuff...man.
11:38:04 <[exa]> what's worse in haskell, I'm not sure you can easily detect the loop by just e.g. marking the values that were already printed out, as there are (simple) methods to generate actual infinite data
11:39:05 <ncf> i wonder if one could just catch NonTermination
11:39:40 <[exa]> quite often you can't even detect it
11:40:03 <[exa]> most impls I've seen (even in prolog) simply put an upper bound on the depth of printed stuff
11:40:12 <[exa]> and humans are pretty good at interpreting `...`
11:41:26 <probie> If it can live in IO, and you're happy to do cycle detection yourself, you might want look into https://hackage.haskell.org/package/base-4.18.0.0/docs/System-Mem-StableName.html
11:48:42 nate2 joins (~nate@98.45.169.16)
11:51:12 ubert joins (~Thunderbi@p200300ecdf18b63ece9cf92d6fdc3292.dip0.t-ipconnect.de)
11:52:55 <jade[m]> in monadic code, is it preferred to use pure because of the deprecation on return inside the Monad class, or should you still use return which should just be equivialent to pure?
11:53:44 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
11:57:48 × hamzam3 quits (~hamzam3@2a01:e0a:1ee:8c60:ca85:9674:421c:1b38) (Ping timeout: 240 seconds)
12:00:05 × vandita quits (~vandit@94-21-48-57.pool.digikabel.hu) (Ping timeout: 256 seconds)
12:01:59 vandita joins (~vandit@84-236-10-11.pool.digikabel.hu)
12:07:09 <maralorn> jade: I really don't think it matters much. I don't expect return to disappear from the language ever. I always use pure but I can't give a convincing reason.
12:07:48 <jade[m]> fair enough, I usually use pure too. I just wanted to see other peoples opinion on it :)
12:07:50 <jade[m]> Thanks!
12:10:18 <maralorn> Now you have the opinion of one random guy on the internet. 😇
12:10:44 × MajorBiscuit quits (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 250 seconds)
12:12:06 <probie> For another data point - I prefer pure, but if working on an existing codebase that already prefers return will use that for the sake of consistency
12:15:41 <yushyin> ^ second this
12:16:37 tok joins (~user@user/tok)
12:19:00 <tok> Starting a new project in Haskell to scratch an itch, after not touching the language in some time. What is the flavour of the month for build tools? I remember using stack back then, but now I've seen quite a few projects/people going back to cabal.
12:19:47 <[exa]> tok: cabal got massively updated, fixed, standardized, and imo is currently ahead of stack except for very industrial usecases
12:19:56 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
12:21:18 __monty__ joins (~toonn@user/toonn)
12:21:38 <tok> Oh that's cool! I always preferred cabal anyway, despite all the wonkyness it used have.
12:22:10 <[exa]> the "clean" nix-style builds are default for quite some time now (post-2018ish?)
12:22:33 <[exa]> and there's cabal.project functionality if you need to group more packages together
12:23:23 <[exa]> ....and it looks like I didn't cabalnuke for like 2 years now
12:26:59 freeside joins (~mengwong@122.11.212.99)
12:29:34 <gensyst> Is it possible to "cancel" an mkWeakIORef?
12:29:43 <gensyst> (make sure it won't get called up on GC)
12:30:42 MajorBiscuit joins (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
12:32:14 <geekosaur> probably a #ghc question
12:37:09 × freeside quits (~mengwong@122.11.212.99) (Read error: Connection reset by peer)
12:47:28 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:48:40 jade[m] uploaded an image: (6KiB) < https://libera.ems.host/_matrix/media/v3/download/the-apothecary.club/mtlywVnpjYdFiDYkjdsbWdvz/image.png >
12:48:42 jade[m] uploaded an image: (8KiB) < https://libera.ems.host/_matrix/media/v3/download/the-apothecary.club/YfvTWfEBUvxCZTqdnvyIThxl/image.png >
12:49:01 <jade[m]> why is there two different messages depending on whether the first letter is capitalized
12:49:14 <jade[m]> I can assume why it happens, but is that intended behavior?
12:50:25 <ncf> are we supposed to recognise where this is from?
12:51:03 × fbytez quits (~uid@2001:bc8:2117:100::) (Quit: byte byte)
12:51:12 <jade[m]> oh sorry, it's just a random hackage page in the quickjump dialog
12:52:53 <ncf> got a third message: Left "no matches for 'GCFLA'" :: Either String (NonEmpty SearchResult)
12:53:00 <ncf> fascinating
12:53:09 fbytez joins (~uid@2001:bc8:2117:100::)
12:53:24 <ncf> (searching for that string in base)
13:13:21 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
13:17:54 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 250 seconds)
13:22:49 × acidjnk quits (~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
13:24:42 × polux quits (~polux@51-15-169-172.rev.poneytelecom.eu) (Quit: Ping timeout (120 seconds))
13:24:57 polux joins (~polux@51-15-169-172.rev.poneytelecom.eu)
13:27:21 ystael joins (~ystael@user/ystael)
13:35:16 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:35:16 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:35:16 wroathe joins (~wroathe@user/wroathe)
13:35:22 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
13:38:17 freeside joins (~mengwong@103.252.202.151)
13:41:24 hamzam3 joins (~hamzam3@2a01:e0a:1ee:8c60:91ef:2514:d13e:9327)
13:42:58 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 265 seconds)
13:43:12 darchitect666 joins (~e1211913@host86-157-65-148.range86-157.btcentralplus.com)
13:44:29 × darchitect666 quits (~e1211913@host86-157-65-148.range86-157.btcentralplus.com) (Client Quit)
13:50:23 × vandita quits (~vandit@84-236-10-11.pool.digikabel.hu) (Ping timeout: 240 seconds)
13:51:25 freeside joins (~mengwong@103.252.202.151)
13:52:14 vandita joins (~vandit@84-236-1-67.pool.digikabel.hu)
13:53:10 × hamzam3 quits (~hamzam3@2a01:e0a:1ee:8c60:91ef:2514:d13e:9327) (Quit: Leaving)
13:58:08 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
14:00:45 shriekingnoise joins (~shrieking@186.137.175.87)
14:01:21 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
14:01:25 chomwitt joins (~chomwitt@athedsl-285388.home.otenet.gr)
14:05:04 × cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
14:05:53 barcisz joins (~barcisz@83.6.194.51.ipv4.supernova.orange.pl)
14:12:44 cheater joins (~Username@user/cheater)
14:14:14 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
14:17:50 freeside joins (~mengwong@103.252.202.151)
14:21:44 gmg joins (~user@user/gehmehgeh)
14:21:48 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
14:22:46 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
14:24:12 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
14:27:15 thegeekinside joins (~thegeekin@189.141.107.10)
14:28:15 cheater_ joins (~Username@user/cheater)
14:30:59 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
14:31:00 cheater_ is now known as cheater
14:33:19 cheater_ joins (~Username@user/cheater)
14:35:25 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
14:35:34 cheater_ is now known as cheater
14:38:48 cheater_ joins (~Username@user/cheater)
14:39:38 nick_ joins (~nick@wsip-174-78-110-18.pn.at.cox.net)
14:40:10 freeside joins (~mengwong@103.252.202.151)
14:40:23 × gurkenglas quits (~user@dynamic-046-114-168-101.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
14:40:27 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
14:40:34 cheater_ is now known as cheater
14:41:16 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
14:42:56 elmklod joins (~Elm@94.25.164.115)
14:48:23 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
14:51:20 cheater_ joins (~Username@user/cheater)
14:53:29 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
14:53:45 cheater__ joins (~Username@user/cheater)
14:53:45 cheater__ is now known as cheater
14:54:28 × barcisz quits (~barcisz@83.6.194.51.ipv4.supernova.orange.pl) (Quit: Connection closed)
14:56:02 cheater__ joins (~Username@user/cheater)
14:56:16 × cheater_ quits (~Username@user/cheater) (Ping timeout: 268 seconds)
14:59:12 × elmklod quits (~Elm@94.25.164.115) (Quit: Leaving)
14:59:35 × cheater quits (~Username@user/cheater) (Ping timeout: 264 seconds)
14:59:47 cheater_ joins (~Username@user/cheater)
14:59:47 cheater_ is now known as cheater
15:00:44 barcisz joins (~barcisz@83.6.194.51.ipv4.supernova.orange.pl)
15:01:29 cheater_ joins (~Username@user/cheater)
15:01:52 × cheater__ quits (~Username@user/cheater) (Ping timeout: 248 seconds)
15:04:01 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
15:04:04 cheater_ is now known as cheater
15:07:52 Sgeo joins (~Sgeo@user/sgeo)
15:10:23 <Inst> is it meaningful to say that there's a canonical recursive type?
15:10:45 <Inst> tuple is the canonical product type, either the canonical sum type
15:11:14 <Inst> tuple has the limitation that it cannot, well, produce an infinite type :(
15:11:16 mauke joins (~mauke@user/mauke)
15:11:25 acidjnk joins (~acidjnk@p200300d6e7072f19f418e5b952ba8eeb.dip0.t-ipconnect.de)
15:12:47 × reverse quits (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 240 seconds)
15:12:50 <geekosaur> lists
15:14:01 <geekosaur> data [] a = [] | a : [] a -- you can't actually write this though
15:14:25 <geekosaur> usually written as data List a = Nil | Cons a (List a)
15:17:30 × eugenrh quits (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 250 seconds)
15:17:39 razetime joins (~quassel@117.193.6.245)
15:19:26 <ncf> it's not *as* canonical as the way in which (,) is the canonical product type and Either is the canonical sum type, of course
15:19:28 <ski> depends on what one means by "canonical recursive type"
15:19:55 <ncf> if you go for "simplest", then probably data Void = Void Void
15:20:17 <ski> one other take could be `newtype Fix f = In {out :: f (Fix f)}'
15:22:10 × drdo quits (~drdo@bl8-153-185.dsl.telepac.pt) (Ping timeout: 268 seconds)
15:22:18 <ski> (fwiw, i've sometimes used (the equivalent of) `data Void = FromVoid !Void', in SML (namely `datatype void = FromVoid of void'))
15:22:44 <ncf> i have a feeling that would ring better in latin
15:23:25 <ski> hehe
15:23:29 <ncf> (also, is there any difference between the two?)
15:23:55 <ski> (less bottoms)
15:24:06 <ncf> (right)
15:24:55 reverse joins (~inversed@bcdcac82.skybroadband.com)
15:25:13 drdo joins (~drdo@bl8-153-185.dsl.telepac.pt)
15:28:19 × barzo quits (~hd@31.223.56.119) (Remote host closed the connection)
15:28:45 barzo joins (~hd@31.223.56.119)
15:28:52 cheater_ joins (~Username@user/cheater)
15:31:11 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
15:31:18 cheater_ is now known as cheater
15:33:21 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:33:40 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
15:34:28 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
15:34:33 barzo_ joins (~hd@31.223.56.224)
15:35:16 × barzo quits (~hd@31.223.56.119) (Ping timeout: 250 seconds)
15:35:38 × barzo_ quits (~hd@31.223.56.224) (Client Quit)
15:36:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
15:36:43 cheater_ joins (~Username@user/cheater)
15:37:44 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c066:a9b9:79ee:689b) (Quit: WeeChat 2.8)
15:39:11 × cheater quits (~Username@user/cheater) (Ping timeout: 264 seconds)
15:39:18 cheater_ is now known as cheater
15:41:38 __monty__ joins (~toonn@user/toonn)
15:45:55 × barcisz quits (~barcisz@83.6.194.51.ipv4.supernova.orange.pl) (Quit: Connection closed)
15:56:41 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
15:57:27 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:00:04 × teo quits (~teo@user/teo) (Remote host closed the connection)
16:00:55 × vandita quits (~vandit@84-236-1-67.pool.digikabel.hu) (Ping timeout: 256 seconds)
16:02:42 vandita joins (~vandit@94-21-233-78.pool.digikabel.hu)
16:08:58 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Remote host closed the connection)
16:10:07 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8)
16:12:23 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
16:18:58 × pie_ quits (~pie_bnc@user/pie/x-2818909) ()
16:19:14 gurkenglas joins (~user@dynamic-046-114-181-020.46.114.pool.telefonica.de)
16:19:16 pie_ joins (~pie_bnc@user/pie/x-2818909)
16:23:52 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
16:29:03 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:31:28 econo joins (uid147250@user/econo)
16:35:25 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
16:40:33 <EvanR> Inst, that's not tuples fault. But the occurs check which is slapped onto type checking
16:41:01 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
16:41:17 <EvanR> which looks for cycles in solution of type variables
16:41:35 × ubert quits (~Thunderbi@p200300ecdf18b63ece9cf92d6fdc3292.dip0.t-ipconnect.de) (Remote host closed the connection)
16:41:46 ubert1 joins (~Thunderbi@p200300ecdf18b63e4842c57790a52cb6.dip0.t-ipconnect.de)
16:41:46 cheater joins (~Username@user/cheater)
16:42:21 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
16:43:38 EvanR joins (~EvanR@user/evanr)
16:44:03 ubert1 is now known as ubert
16:44:10 alternateved joins (~user@77-253-195-69.adsl.inetia.pl)
16:47:24 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
16:55:23 × alternateved quits (~user@77-253-195-69.adsl.inetia.pl) (Remote host closed the connection)
16:57:53 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net)
17:04:21 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
17:07:42 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:09:11 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
17:15:17 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
17:17:59 <carter> sup all!
17:20:49 titibandit joins (~titibandi@user/titibandit)
17:21:42 × razetime quits (~quassel@117.193.6.245) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:23:32 <Hecate> heya carter
17:23:33 <Hecate> o/
17:23:41 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
17:25:27 mcglk joins (~mcglk@131.191.19.145)
17:32:04 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 265 seconds)
17:32:28 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net) (Remote host closed the connection)
17:32:46 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net)
17:33:28 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
17:38:37 biberu joins (~biberu@user/biberu)
17:45:11 × mud quits (~mud@user/kadoban) (Ping timeout: 240 seconds)
17:47:12 × vandita quits (~vandit@94-21-233-78.pool.digikabel.hu) (Ping timeout: 248 seconds)
17:47:45 titibandit joins (~titibandi@user/titibandit)
17:48:49 vandita joins (~vandit@213-197-76-109.pool.digikabel.hu)
17:52:06 nate2 joins (~nate@98.45.169.16)
17:52:26 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:56:31 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
17:59:37 mud joins (~mud@user/kadoban)
18:03:52 × mbuf quits (~Shakthi@49.207.178.186) (Quit: Leaving)
18:13:02 taupiqueur1 joins (~taupiqueu@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net)
18:15:31 × taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net) (Ping timeout: 240 seconds)
18:16:03 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net) (Ping timeout: 245 seconds)
18:18:10 eugenrh joins (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8)
18:20:53 × MajorBiscuit quits (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 246 seconds)
18:23:28 × gurkenglas quits (~user@dynamic-046-114-181-020.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
18:28:15 × retropikzel quits (9d1a4f9f46@2604:bf00:561:2000::ce) (Remote host closed the connection)
18:28:15 × sm2n quits (ae95cb1267@user/sm2n) (Remote host closed the connection)
18:28:15 × chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Remote host closed the connection)
18:28:15 × filwisher_ quits (2e6936c793@2604:bf00:561:2000::170) (Remote host closed the connection)
18:28:15 × fvr quits (ef3e56ca8b@2604:bf00:561:2000::3c4) (Remote host closed the connection)
18:28:15 × whereiseveryone quits (206ba86c98@2604:bf00:561:2000::2e4) (Remote host closed the connection)
18:28:15 × b0o quits (0e4a0bf4c9@2604:bf00:561:2000::1bf) (Remote host closed the connection)
18:28:15 × shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Write error: Connection reset by peer)
18:28:16 × jleightcap quits (7bc4014b62@user/jleightcap) (Remote host closed the connection)
18:28:16 × theesm quits (2cbdf4b38a@2604:bf00:561:2000::11c8) (Write error: Connection reset by peer)
18:28:16 × arcadewise quits (52968ed80d@2604:bf00:561:2000::3df) (Remote host closed the connection)
18:28:16 × Ankhers quits (e99e97ef8e@2604:bf00:561:2000::2a2) (Remote host closed the connection)
18:28:16 × henrytill quits (e0180937c3@2604:bf00:561:2000::e8c) (Remote host closed the connection)
18:28:16 × ymherklotz quits (cb2c9cfbdd@2604:bf00:561:2000::29a) (Read error: Connection reset by peer)
18:28:16 × samhh quits (7569f027cf@2604:bf00:561:2000::e4) (Remote host closed the connection)
18:28:17 × MonsoonSecrecy quits (f78c86e960@2604:bf00:561:2000::f99) (Remote host closed the connection)
18:28:17 × JoelMcCracken quits (5ea8252fbb@2604:bf00:561:2000::10e3) (Remote host closed the connection)
18:28:17 × ggb quits (a62ffbaf4f@2604:bf00:561:2000::3ac) (Remote host closed the connection)
18:28:17 × sus quits (1b7af6299f@user/zeromomentum) (Write error: Connection reset by peer)
18:28:17 × jakzale quits (6291399afa@user/jakzale) (Remote host closed the connection)
18:28:17 × jkoshy quits (99b9359beb@user/jkoshy) (Remote host closed the connection)
18:28:18 × probie quits (cc0b34050a@user/probie) (Write error: Connection reset by peer)
18:28:18 × n1essa quits (3d621153a5@2604:bf00:561:2000::df7) (Remote host closed the connection)
18:28:18 × cpli quits (77fc530071@2604:bf00:561:2000::252) (Remote host closed the connection)
18:28:18 × bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (Remote host closed the connection)
18:28:18 × evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (Remote host closed the connection)
18:28:21 × lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (Remote host closed the connection)
18:28:22 × fluffyballoon quits (45ce440a48@2604:bf00:561:2000::e2) (Remote host closed the connection)
18:29:57 × ddellacosta quits (~ddellacos@146.70.171.176) (Quit: WeeChat 3.8)
18:30:03 ggb joins (a62ffbaf4f@2604:bf00:561:2000::3ac)
18:30:04 filwisher joins (2e6936c793@2604:bf00:561:2000::170)
18:30:04 lukec joins (9dfd4d094e@2604:bf00:561:2000::10e)
18:30:04 bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd)
18:30:14 retropikzel joins (9d1a4f9f46@2604:bf00:561:2000::ce)
18:30:14 whereiseveryone joins (206ba86c98@2604:bf00:561:2000::2e4)
18:30:14 shreyasminocha joins (51fdc93eda@user/shreyasminocha)
18:30:19 jkoshy joins (99b9359beb@user/jkoshy)
18:30:19 fluffyballoon joins (45ce440a48@2604:bf00:561:2000::e2)
18:31:01 probie joins (cc0b34050a@user/probie)
18:31:01 jleightcap joins (7bc4014b62@user/jleightcap)
18:31:01 cpli joins (77fc530071@2604:bf00:561:2000::252)
18:31:09 b0o joins (0e4a0bf4c9@2604:bf00:561:2000::1bf)
18:31:12 n1essa joins (3d621153a5@2604:bf00:561:2000::df7)
18:31:12 ymherklotz joins (cb2c9cfbdd@2604:bf00:561:2000::29a)
18:31:13 fvr joins (ef3e56ca8b@2604:bf00:561:2000::3c4)
18:31:23 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net)
18:31:24 jakzale joins (6291399afa@user/jakzale)
18:31:27 sm2n joins (ae95cb1267@user/sm2n)
18:31:27 JoelMcCracken joins (5ea8252fbb@2604:bf00:561:2000::10e3)
18:31:27 arcadewise joins (52968ed80d@2604:bf00:561:2000::3df)
18:31:28 samhh joins (7569f027cf@2604:bf00:561:2000::e4)
18:31:28 sus joins (1b7af6299f@user/zeromomentum)
18:31:33 henrytill joins (e0180937c3@2604:bf00:561:2000::e8c)
18:31:36 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
18:31:41 theesm joins (2cbdf4b38a@2604:bf00:561:2000::11c8)
18:31:43 MonsoonSecrecy joins (f78c86e960@2604:bf00:561:2000::f99)
18:31:45 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
18:31:46 chaitlatte0 joins (ea29c0bb16@user/chaitlatte0)
18:31:50 Ankhers joins (e99e97ef8e@2604:bf00:561:2000::2a2)
18:32:31 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net) (Remote host closed the connection)
18:32:50 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net)
18:34:22 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
18:34:34 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 268 seconds)
18:35:45 × chomwitt quits (~chomwitt@athedsl-285388.home.otenet.gr) (Ping timeout: 240 seconds)
18:37:04 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
18:37:23 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
18:42:40 × ubert quits (~Thunderbi@p200300ecdf18b63e4842c57790a52cb6.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
18:44:43 taupiqueur2 joins (~taupiqueu@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
18:46:28 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net) (Ping timeout: 245 seconds)
18:47:08 × taupiqueur1 quits (~taupiqueu@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net) (Ping timeout: 240 seconds)
18:47:38 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
18:50:45 ubert joins (~Thunderbi@p200300ecdf18b63e823e7c78f801aef9.dip0.t-ipconnect.de)
18:54:51 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
18:55:52 zeenk joins (~zeenk@2a02:2f04:a105:f00::7fe)
18:57:08 freeside joins (~mengwong@103.252.202.151)
19:00:00 zer0bitz_ is now known as zer0bitz
19:03:14 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
19:07:17 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 265 seconds)
19:15:10 ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de)
19:15:39 freeside joins (~mengwong@103.252.202.151)
19:17:59 × ddb quits (~ddb@tilde.club) (Quit: WeeChat 3.6)
19:21:04 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 248 seconds)
19:21:46 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
19:24:47 × nschoe quits (~q@2a01:e0a:8e:a190:1e90:eaba:66b5:fb61) (Ping timeout: 264 seconds)
19:31:51 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Remote host closed the connection)
19:33:04 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
19:33:35 gurkenglas joins (~user@dynamic-046-114-181-020.46.114.pool.telefonica.de)
19:38:09 npmania joins (~Thunderbi@121.128.226.31)
19:43:01 × npmania quits (~Thunderbi@121.128.226.31) (Ping timeout: 268 seconds)
19:43:09 × taupiqueur2 quits (~taupiqueu@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Quit: WeeChat 3.8)
19:43:20 npmania joins (~Thunderbi@138.199.21.242)
19:43:25 dsrt^ joins (~dsrt@c-71-204-38-59.hsd1.ga.comcast.net)
19:43:34 × eugenrh quits (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 250 seconds)
19:45:18 mechap joins (~mechap@user/mechap)
19:47:56 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Remote host closed the connection)
19:48:20 × thegeekinside quits (~thegeekin@189.141.107.10) (Remote host closed the connection)
19:49:16 taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
19:49:51 × vandita quits (~vandit@213-197-76-109.pool.digikabel.hu) (Ping timeout: 256 seconds)
19:51:10 vandita joins (~vandit@193-226-233-59.pool.digikabel.hu)
19:52:47 thegeekinside joins (~thegeekin@189.141.107.10)
19:53:23 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
19:53:55 <kaol> Any suggestions where to advertise a Haskell meetup? In Helsinki on 5th of June. https://www.meetup.com/helsinki-haskell-users-group/events/293405023/
19:54:14 <geekosaur> the discourse and maybe /r/haskell
19:54:26 <geekosaur> probably haskell-cafe too
19:55:09 Guest61 joins (~Guest61@2a02-a464-bc6c-1-947f-cae5-1f74-1789.fixed6.kpn.net)
19:56:59 <carter> Yeah that’s probably the right channels
19:59:04 <kaol> Ok, thanks, done to Discourse. We have a reservation for 50 people and still have room for 19.
20:01:30 freeside joins (~mengwong@103.252.202.151)
20:05:28 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
20:06:27 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
20:07:51 quarkyalice joins (~alice@199.sub-97-136-32.myvzw.com)
20:07:51 × quarkyalice quits (~alice@199.sub-97-136-32.myvzw.com) (Changing host)
20:07:51 quarkyalice joins (~alice@user/quarkyalice)
20:09:34 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:13:47 × tok quits (~user@user/tok) (Remote host closed the connection)
20:17:18 × quarkyalice quits (~alice@user/quarkyalice) (Remote host closed the connection)
20:17:44 quarkyalice joins (~alice@199.sub-97-136-32.myvzw.com)
20:17:44 × quarkyalice quits (~alice@199.sub-97-136-32.myvzw.com) (Changing host)
20:17:44 quarkyalice joins (~alice@user/quarkyalice)
20:19:20 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
20:21:10 mechap joins (~mechap@user/mechap)
20:30:05 × nick_ quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 256 seconds)
20:32:37 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
20:35:17 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds)
20:37:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 240 seconds)
20:46:02 pavonia joins (~user@user/siracusa)
20:49:37 <ghostbuster> hutton book is here, thank $deity for next-day shipping
20:52:50 × Guest61 quits (~Guest61@2a02-a464-bc6c-1-947f-cae5-1f74-1789.fixed6.kpn.net) (Quit: Client closed)
21:00:20 × trev quits (~trev@user/trev) (Quit: trev)
21:00:48 × takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:10:36 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Remote host closed the connection)
21:10:55 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
21:14:21 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:15:25 × gurkenglas quits (~user@dynamic-046-114-181-020.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
21:16:06 <ghostbuster> so.. this function works, but it has to compute fib n even if it's going to throw away most of the work
21:16:09 <ghostbuster> https://termbin.com/jilb
21:16:14 × ubert quits (~Thunderbi@p200300ecdf18b63e823e7c78f801aef9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
21:16:21 ubert1 joins (~Thunderbi@p200300ecdf18b6df36e22024a437cc27.dip0.t-ipconnect.de)
21:17:34 <jade[m]> indeed
21:17:41 <jade[m]> I'm not sure I understand fibTo
21:18:30 <ghostbuster> it's a partial solution to this challenge https://projecteuler.net/problem=2
21:18:39 ubert1 is now known as ubert
21:18:55 <[exa]> hm is there any common reason why `cabal haddock` would refuse to generate docs for an executable?
21:19:03 × michalz quits (~michalz@185.246.204.89) (Remote host closed the connection)
21:19:27 <Rembane> ghostbuster: Would you like a hint?
21:19:48 <[exa]> I think I'm forgetting something dumb, but I just wrote `cabal haddock --haddock-executables` and expected it to work, and it apparently works in general because google is silent
21:19:58 <[exa]> with -v I end up with: whenReRegister: nothing to register
21:20:51 <ghostbuster> Rembane: i'll stare at it a bit longer.. just wanted to confirm that my assumption is correct about why a small value of L does not reduce the long runtime for a large value of N
21:21:38 <Rembane> ghostbuster: Cool. What's your assumption? That it has to throw away most of its work?
21:22:06 <mauke> fibTo makes no sense. also, why does it compute fib n twice?
21:22:57 <ghostbuster> i guess i misunderstood what lazy evaluation means
21:23:43 <jade[m]> if needs to evaluate the argument in the condition to see what branch it'll take
21:23:43 <ghostbuster> i figured it would cache the result of fib n
21:23:44 <Rembane> ghostbuster: All values are still needed which is why they are evaluated.
21:24:05 <mauke> Int is "atomic" for our purposes
21:24:06 <jade[m]> ghostbuster: only if you bind it like `let result = fib n in ...`
21:24:18 <[exa]> ghostbuster: it does, but in a surprising way (it caches each "invocation" of the `fib n` separately)
21:24:29 <mauke> fib n < l will not shortcut the computation
21:24:42 <[exa]> ghostbuster: which ain't particularly useful but I guess the narrative will develop eventually
21:24:47 <mauke> so a large value of n will do exponential work, no matter what l is
21:25:00 <ghostbuster> mauke: yeah i've realized that now
21:25:18 <ghostbuster> i didn't realize it was exponential
21:25:52 <mauke> each call to fib results in two recursive calls to fib
21:25:58 <mauke> that's like 2^n runtime
21:26:14 <mauke> most of which is duplicated work
21:26:16 <[exa]> ghostbuster: otoh if you would write e.g. `myNumber = fib 20 :: Integer ` to the toplevel, that is going to get memoized
21:26:45 <ghostbuster> why is it 2^n?
21:27:02 <ghostbuster> oh i see, nvm
21:27:14 <jade[m]> because each call to fib calls fib twice again
21:27:25 <jade[m]> reducing linearly
21:27:30 <ghostbuster> yeah i won't ship this to production yet
21:27:37 <mauke> 2*2*2*..., n layers deep
21:28:15 <jade[m]> this is an interesting next step after solving the inital problem - how can you efficiently represent this computation with a datatype
21:28:40 <mauke> heh
21:28:49 <mauke> that part is a bit counterintuitive
21:29:12 <ghostbuster> i don't think it's possible to solve this challenge with a classic implementation of fib that's called by other functions
21:29:33 <jade[m]> oh, it is
21:29:49 <ghostbuster> hmm ok
21:29:52 <mauke> not if by "classic" you mean the double-recursive one
21:30:02 <mauke> because that's a stupid use of recursion
21:30:15 <ghostbuster> hmm
21:30:34 <jade[m]> even that would be possible if you used a tree that stores intermediate computations
21:30:39 ghostbuster goes back to reading his new book
21:30:41 <[exa]> (math people still love it!)
21:30:44 <jade[m]> but a linear sum is easier
21:30:47 × jero98772 quits (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 264 seconds)
21:31:36 <ghostbuster> i thought haskell programmers were math people
21:31:46 <jade[m]> this is my favorite way to write the fibonacci sequence ||fibs = 0 : 1 : zipWith (+) fibs (tail fibs)||
21:31:55 <jade[m]> ah shit, why did it not spoiler
21:32:05 <jade[m]> nevermind
21:32:10 <mauke> because this is IRC :-)
21:32:42 <mauke> > let fib n = step 1 2 n where { step a _ 0 = a; step a b n = step b (a + b) (n - 1) } in fib 11
21:32:43 <lambdabot> 233
21:32:55 <mauke> that doesn't sound right
21:33:51 <Rembane> Is 233 in the sequence at all?
21:33:59 <Rembane> > 89 + 144
21:34:00 <lambdabot> 233
21:34:04 <Rembane> It is!
21:34:05 <mauke> oh, I see. it's off by 2
21:34:17 <Rembane> Off by one error twice. The good stuff.
21:34:24 <mauke> everyone knows the 12th fibonacci number is 12²
21:34:51 <mauke> > let fib n = step 0 1 n where { step a _ 0 = a; step a b n = step b (a + b) (n - 1) } in fib 12
21:34:52 <lambdabot> 144
21:35:26 <[exa]> ghostbuster: math people tangled by finitist reality, yeah
21:35:29 <mauke> anyway, this is the functional equivalent of a loop that just adds up numbers
21:35:48 <jade[m]> > let fibs = 0 : 1 : zipWith (+) fibs (tail fibs) in fibs !! 12
21:35:49 <lambdabot> 144
21:36:14 <dminuoso> mauke: I think its not just the "equivalent" of a loop - it is a loop.
21:36:23 <mauke> which you can think of as a simulation of walking along the fibonacci sequence from the beginning, generating elements as you go
21:36:29 <dminuoso> Unless we call (+) the functional equivalent of adding numbers too.
21:36:50 <mauke> it's not a loop because it doesn't use 'while'
21:36:56 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Remote host closed the connection)
21:37:12 <dminuoso> So `for(;;) { ... }` in C is not a loop either?
21:37:20 <[exa]> int-e: quick question, did you manage to find a workaround for https://github.com/haskell/cabal/issues/5890 ?
21:37:58 <mauke> oh, in C you get three types of explicit loops: while, for, do/while
21:38:04 <mauke> but they're all kind of the same thing
21:38:19 <dminuoso> mauke: just like recursion goes into "kind of the same thing".
21:38:27 <mauke> plus two ways of implied looping, goto and longjmp
21:38:54 <dminuoso> In STG a function call is sort of a goto too.
21:39:08 <dminuoso> very much so in fact.
21:39:11 <ncf> jade[m]: coinductive fib is based
21:39:23 <mauke> that's an implementation detail
21:39:41 TMA joins (tma@twin.jikos.cz)
21:39:44 <mauke> just because C is compiled to Haskell doesn't make it a functional language
21:39:47 <dminuoso> mauke: so is the "goto" (jnz) inside for loops.
21:39:50 <dminuoso> Its a detail.
21:40:32 <dminuoso> loops are a form of control flow
21:41:00 <jade[m]> it's all just words, they don't mean anything by themselves
21:41:01 <dminuoso> And if you insist that control flow to be somehow part of a languages vocabulary, Haskell brings Data.Function.fix
21:41:07 <jade[m]> it depends on the context you put them in
21:41:17 <mauke> doesn't mean all control flow is loops
21:41:28 <dminuoso> Of course not, but recursion is loops.
21:41:44 <dminuoso> They are equivalent.
21:41:48 <jade[m]> and loops are recursion by the same reasoning
21:41:54 <jade[m]> yeah, it doesn't matter
21:41:57 <jade[m]> it's just words
21:42:05 <mauke> if they were the same, they would have no need to be equivalent
21:42:07 jero98772 joins (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
21:42:09 <jade[m]> they don't mean anything by themselves
21:42:12 <jade[m]> context matters
21:42:38 <dminuoso> mauke: The only real difference is that of structured programming.
21:43:02 <dminuoso> That is, `for/while/etc` is *structured* control flow, whereas recursion is unstructured.
21:43:15 <dminuoso> But both are loops just fine.
21:43:18 <mauke> recursion isn't even control flow
21:43:34 <mauke> it's about pronouns
21:44:10 <mauke> > let it = 0 : it in it
21:44:12 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
21:45:27 <mauke> speaking of loops, do you happen to know an algorithm that can traverse an arbitrary graph in O(1) memory?
21:45:51 <dminuoso> mauke: Recursion is as much control flow as it possibly can be. Control flow is literally about the flow of program control.
21:46:01 <dminuoso> You can visually draw the flow of control in case of recursion.
21:46:28 <mauke> I can (temporarily) mutate the nodes to detect cycles, but the obvious recursive implementation takes O(n) stack
21:47:18 <mauke> I can visually draw the flow of control in case of no recursion, too
21:47:45 <mauke> > let it = const 42 it in it -- a recursive definition
21:47:46 <lambdabot> 42
21:48:01 <jade[m]> the real control flow is the friends we made along the way
21:48:17 <dminuoso> That's just introducing ambiguous nomenclature.
21:48:40 <dminuoso> Can we agree to define `recursion` to refer to recursive function calls?
21:48:58 <mauke> no
21:49:23 <mauke> someone once told me that haskell has no function calls
21:50:02 <dminuoso> You're just arguing on word plays now. Im going to abondon this conversation.
21:50:06 freeside joins (~mengwong@103.252.202.151)
21:50:19 <mauke> I mean, you started it
21:50:30 <jade[m]> https://en.m.wikipedia.org/wiki/Semantic_discord
21:51:54 <mauke> "Semantic discord is the situation where two parties disagree on the definition of a word" ... "Such discord can lead to a semantic dispute, a disagreement that arises if the parties involved disagree about the definition of a word"
21:51:58 <mauke> what
21:52:51 <jade[m]> lmao
21:52:56 <jade[m]> peak wikipedia
21:53:07 nate2 joins (~nate@98.45.169.16)
21:54:02 × vandita quits (~vandit@193-226-233-59.pool.digikabel.hu) (Ping timeout: 265 seconds)
21:54:40 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 248 seconds)
21:55:35 vandita joins (~vandit@178-164-206-99.pool.digikabel.hu)
21:57:52 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
22:19:00 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
22:21:18 × mncheckm quits (~mncheck@193.224.205.254) (Ping timeout: 250 seconds)
22:26:12 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
22:26:52 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:40:26 × jero98772 quits (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 265 seconds)
22:45:21 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
22:46:24 <EvanR> scrolls up to see if there was an obligatory reference to "The C language is purely functional" blog post
22:47:56 <EvanR> mauke, yes. Take the memory in use by the graph, and incrementally reclaim it as you use it to remember which nodes you already saw xD
22:48:17 × acidjnk quits (~acidjnk@p200300d6e7072f19f418e5b952ba8eeb.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:49:43 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
22:51:44 jero98772 joins (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
22:57:53 × kaskal quits (~kaskal@089144220013.atnat0029.highway.webapn.at) (Ping timeout: 268 seconds)
22:58:01 kaskal- joins (~kaskal@213-147-167-98.nat.highway.webapn.at)
22:58:43 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:01:11 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
23:05:20 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
23:13:10 × xameer quits (~xameer@144.48.224.179) (Remote host closed the connection)
23:14:42 xameer joins (~xameer@144.48.225.48)
23:26:34 Pickchea joins (~private@user/pickchea)
23:26:41 mauke_ joins (~mauke@user/mauke)
23:27:29 × Pickchea quits (~private@user/pickchea) (Remote host closed the connection)
23:28:43 × mauke quits (~mauke@user/mauke) (Ping timeout: 268 seconds)
23:28:43 mauke_ is now known as mauke
23:35:45 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:36:08 × quarkyalice quits (~alice@user/quarkyalice) (Quit: Leaving)
23:36:13 × jargon quits (~jargon@184.101.78.160) (Remote host closed the connection)
23:39:28 quarkyalice joins (~alice@199.sub-97-136-32.myvzw.com)
23:39:28 × quarkyalice quits (~alice@199.sub-97-136-32.myvzw.com) (Changing host)
23:39:28 quarkyalice joins (~alice@user/quarkyalice)
23:40:01 × quarkyalice quits (~alice@user/quarkyalice) (Remote host closed the connection)
23:40:23 × thegeekinside quits (~thegeekin@189.141.107.10) (Ping timeout: 240 seconds)
23:44:16 Lycurgus joins (~juan@user/Lycurgus)
23:47:04 quarkyalice joins (~alice@199.sub-97-136-32.myvzw.com)
23:47:04 × quarkyalice quits (~alice@199.sub-97-136-32.myvzw.com) (Changing host)
23:47:04 quarkyalice joins (~alice@user/quarkyalice)
23:50:20 × npmania quits (~Thunderbi@138.199.21.242) (Remote host closed the connection)
23:55:03 <maralorn> So, apparently more and more packages are considering exposing their internals in an -internals package so that the exposed package can follow PvP. This is weird. Is their no better solution for this? How are other languages dealing with this?
23:56:09 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
23:56:22 <maralorn> I mean it kinda makes sense if you want to expose internals and version them differently. It makes less sense if you just expose internals for usage in binaries or tests.
23:57:51 <hpc> some languages don't have export control, and you just rely on users to stick to the api you want them to use
23:58:12 <hpc> sometimes the internals just aren't exposed at all, and a lot of closed-source libraries are that way
23:58:22 <c_wraith> I think it's a perfectly good strategy to just treat .Internals modules as covered by the PVP, and update versions accordingly. I don't understand why that approach gets rejected.
23:58:34 <hpc> you just get a header file and cat 'good luck' > readme.md

All times are in UTC on 2023-05-23.