2023/05/23

2023-05-23 00:02:38 +0200mncheck(~mncheck@193.224.205.254) (Remote host closed the connection)
2023-05-23 00:03:35 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
2023-05-23 00:03:44 +0200hgolden_(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2023-05-23 00:03:56 +0200mncheck(~mncheck@193.224.205.254)
2023-05-23 00:14:28 +0200blujupiter32(~blujupite@2a0c:5bc0:40:2e31:f90c:2e75:f0e7:157b)
2023-05-23 00:15:35 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
2023-05-23 00:16:04 +0200bigLama(~alex@2001:861:4f80:4a50:e792:bb46:1a0c:b1d2) (Remote host closed the connection)
2023-05-23 00:17:16 +0200mikoto-chan(~mikoto-ch@ip-213-49-58-19.dsl.scarlet.be) (Ping timeout: 268 seconds)
2023-05-23 00:17:56 +0200oo_miguel(~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds)
2023-05-23 00:18:20 +0200 <ghostbuster> so, project euler spoiler but.. i guess pre-declaring the signature of a function with :: is optional?
2023-05-23 00:18:33 +0200 <ghostbuster> i just wrote this through trial and error in the repl `multThreeFive n = [ x | x <- [1..n-1], mod x 3 == 0 || mod x 5 == 0]`
2023-05-23 00:18:48 +0200 <monochrom> yes
2023-05-23 00:18:59 +0200 <geekosaur> yes, type inference will do it in pretty much any case you care about
2023-05-23 00:19:25 +0200 <geekosaur> the downside is if you make a type error, it will try to infer something that fits the error and you may then get an error somewhere else
2023-05-23 00:19:45 +0200 <ghostbuster> ah cool
2023-05-23 00:20:04 +0200 <ghostbuster> so the value of pre-declaring is for type safety
2023-05-23 00:20:05 +0200 <geekosaur> so it's generally good style to work out the correct type and annotate it appropriately, so the error is detected where it happens
2023-05-23 00:20:35 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 264 seconds)
2023-05-23 00:20:41 +0200 <geekosaur> (numbers in particular do this because Num and friends are pretty loose)
2023-05-23 00:21:19 +0200 <ghostbuster> [1..10] :: (Num a, Enum a) => [a]
2023-05-23 00:21:26 +0200 <ghostbuster> a list is an enum?
2023-05-23 00:21:54 +0200 <monochrom> Sometimes adding a few handwritten type improves error messages.
2023-05-23 00:21:54 +0200 <ghostbuster> i was actually thinking of a fun project that would require enums but wasn't sure how to do them yet
2023-05-23 00:21:57 +0200 <geekosaur> no, but [x..y] is shorthand for an enum 0operation (specifically `enumFromTo`)
2023-05-23 00:22:10 +0200 <monochrom> Most times it is a courtesy to other human readers.
2023-05-23 00:24:01 +0200gurkenglas(~user@dynamic-046-114-168-101.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-23 00:30:48 +0200blujupiter32(~blujupite@2a0c:5bc0:40:2e31:f90c:2e75:f0e7:157b) (Remote host closed the connection)
2023-05-23 00:34:32 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-05-23 00:34:39 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
2023-05-23 00:34:58 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360)
2023-05-23 00:37:03 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 00:39:08 +0200mikoto-chan(~mikoto-ch@85-76-32-200-nat.elisa-mobile.fi)
2023-05-23 00:40:21 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-05-23 00:41:39 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
2023-05-23 00:52:32 +0200delYsid(~user@84-115-138-74.cable.dynamic.surfer.at) (ERC 5.4.1 (IRC client for GNU Emacs 30.0.50))
2023-05-23 00:54:32 +0200 <sm> ghostbuster: nice! same as mine 10 years ago
2023-05-23 00:55:44 +0200 <jade[m]> what is a declarative/functional programmers perspective on the definition of an algorithm as a fi ite sequence of steps?
2023-05-23 00:55:50 +0200 <sm> generally you can skip type signatures when you're confident, add them if you get an unclear error or to document the code better for others/future-you
2023-05-23 00:56:32 +0200 <jade[m]> s/fi ite/finite
2023-05-23 00:57:12 +0200 <geekosaur> our steps are different 🙂
2023-05-23 00:58:00 +0200 <ghostbuster> so i have a list of integers I want to sum.. i'm guessing i need a function that takes a list and an accumulator and returns the new accumulator?
2023-05-23 00:58:39 +0200mikoto-chan(~mikoto-ch@85-76-32-200-nat.elisa-mobile.fi) (Ping timeout: 256 seconds)
2023-05-23 00:58:40 +0200 <geekosaur> and such a function exists, even. try to guess it
2023-05-23 00:58:45 +0200 <jade[m]> there is a function for that but I suggest you write it by hand using pattern matching on the list and recursion :D
2023-05-23 00:58:51 +0200 <sm> yes.. though consider this is such a common need there might be..
2023-05-23 00:59:02 +0200 <ghostbuster> i wondered if there was
2023-05-23 00:59:15 +0200 <ghostbuster> but then i thought it would not be strange if such a common function did not exist :-P
2023-05-23 00:59:48 +0200 <ghostbuster> the first search engine result for "haskell count a list" was this reddit thread asking why such a function doesn't exist in Prelude
2023-05-23 01:00:20 +0200 <jade[m]> what does "count a list" mean?
2023-05-23 01:02:57 +0200 <ghostbuster> oh i was thinking that returning the number of items in a list and returning the sum of items in a list would be solved in similar ways
2023-05-23 01:03:09 +0200 <ghostbuster> crossed wires in my brain
2023-05-23 01:03:22 +0200xff0x(~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 250 seconds)
2023-05-23 01:03:27 +0200 <jade[m]> indeed they are
2023-05-23 01:03:39 +0200 <jade[m]> very similar
2023-05-23 01:03:49 +0200 <ghostbuster> does project euler have solutions? I think I solved problem 1
2023-05-23 01:03:59 +0200 <jade[m]> try to implement both using recursion, and then attempt to see a common pattern
2023-05-23 01:05:26 +0200xff0x(~xff0x@178.255.149.135)
2023-05-23 01:10:18 +0200xff0x(~xff0x@178.255.149.135) (Ping timeout: 268 seconds)
2023-05-23 01:11:40 +0200xff0x(~xff0x@2405:6580:b080:900:e2e2:76c:3d04:5dc6)
2023-05-23 01:11:59 +0200zeenk(~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!)
2023-05-23 01:13:52 +0200 <jade[m]> anyways, I'm gonna go for the night, wish you all the best with learning haskell ghostbuster:
2023-05-23 01:19:47 +0200caryhartline(~caryhartl@168.182.58.169)
2023-05-23 01:20:49 +0200 <ghostbuster> thanks for the help, cheers
2023-05-23 01:21:27 +0200EsoAlgo8(~EsoAlgo@129.146.136.145) (Remote host closed the connection)
2023-05-23 01:22:08 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 240 seconds)
2023-05-23 01:23:00 +0200EsoAlgo8(~EsoAlgo@129.146.136.145)
2023-05-23 01:25:27 +0200 <monochrom> I think PE lets you submit your code for testing.
2023-05-23 01:28:01 +0200acidjnk(~acidjnk@p200300d6e7072f5435207693d4db5d05.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-05-23 01:28:13 +0200mauke_(~mauke@user/mauke)
2023-05-23 01:28:25 +0200vandita(~vandit@87-97-12-226.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-23 01:29:31 +0200mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-05-23 01:29:31 +0200mauke_mauke
2023-05-23 01:30:18 +0200vandita(~vandit@80-95-82-220.pool.digikabel.hu)
2023-05-23 01:33:01 +0200tessier(~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 240 seconds)
2023-05-23 01:37:14 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-05-23 01:43:35 +0200Inst(~Inst@2601:6c4:4081:2fc0:6477:2ba8:415:e790)
2023-05-23 01:43:43 +0200 <Inst> curious, why is GHCI C FFI broken in Windows?
2023-05-23 01:43:48 +0200 <Inst> I.e, it's a guaranteed segfault
2023-05-23 01:44:20 +0200 <Inst> Is it something intrinsic with the architecture that's hard to fix, or can a competent Win32 API programmer do a proper linkup?
2023-05-23 01:49:10 +0200xameer(~xameer@144.48.224.179) (Remote host closed the connection)
2023-05-23 01:50:32 +0200xameer(~xameer@144.48.224.179)
2023-05-23 01:53:14 +0200nate2(~nate@98.45.169.16)
2023-05-23 01:57:17 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-05-23 01:57:41 +0200xff0x(~xff0x@2405:6580:b080:900:e2e2:76c:3d04:5dc6) (Ping timeout: 246 seconds)
2023-05-23 01:58:04 +0200xff0x(~xff0x@ai098135.d.east.v6connect.net)
2023-05-23 01:58:24 +0200nate2(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2023-05-23 02:11:45 +0200machinedgod(~machinedg@84-115-230-104.cable.dynamic.surfer.at) (Ping timeout: 256 seconds)
2023-05-23 02:27:40 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-05-23 02:32:01 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 02:36:31 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 240 seconds)
2023-05-23 02:45:16 +0200td_(~td@i5387092F.versanet.de) (Ping timeout: 268 seconds)
2023-05-23 02:46:42 +0200td_(~td@i5387090A.versanet.de)
2023-05-23 02:48:36 +0200nate2(~nate@98.45.169.16)
2023-05-23 02:52:23 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-05-23 02:52:23 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-05-23 02:52:23 +0200wroathe(~wroathe@user/wroathe)
2023-05-23 03:03:13 +0200 <EvanR> is it broken?
2023-05-23 03:07:32 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 03:11:12 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-05-23 03:11:28 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
2023-05-23 03:17:19 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-05-23 03:17:21 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-05-23 03:22:04 +0200 <Inst> EvanR: well, you can try running something that uses, ummm... hmatrix in Windows GHCI, or monomer's GHCI mode
2023-05-23 03:23:12 +0200rf(~rf@2605:59c8:179c:f610:35bd:5aa6:7274:a262) (Ping timeout: 248 seconds)
2023-05-23 03:23:57 +0200 <EvanR> oh oh, ghci
2023-05-23 03:24:16 +0200 <EvanR> big sad
2023-05-23 03:31:12 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 03:32:25 +0200 <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
2023-05-23 03:32:39 +0200 <Inst> In 10 years, no one will care about Windows support because no one will be using it
2023-05-23 03:33:08 +0200vandita(~vandit@80-95-82-220.pool.digikabel.hu) (Ping timeout: 265 seconds)
2023-05-23 03:34:28 +0200ctearrrrrrrrrrr^(~ctearrrrr@c-71-204-38-59.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-05-23 03:34:44 +0200vandita(~vandit@176-241-62-247.pool.digikabel.hu)
2023-05-23 03:35:26 +0200 <Inst> well, it's still 53%, but it's dropping
2023-05-23 03:35:28 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 248 seconds)
2023-05-23 03:35:38 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
2023-05-23 03:35:57 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360)
2023-05-23 03:37:10 +0200hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-05-23 03:40:29 +0200captnemo(~captnemo@193.32.127.232)
2023-05-23 03:43:41 +0200kupi(uid212005@id-212005.hampstead.irccloud.com)
2023-05-23 03:44:09 +0200 <monochrom> No, even OS/2 is taking longer than that to die.
2023-05-23 03:44:41 +0200 <monochrom> Yes, it is still taking its time to die, no rush. So nevermind Windows "dying".
2023-05-23 03:45:26 +0200 <monochrom> And BSD. And System V. And COBOL.
2023-05-23 03:48:47 +0200nate2(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-05-23 03:55:34 +0200xff0x(~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 268 seconds)
2023-05-23 04:07:01 +0200jero98772(~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 240 seconds)
2023-05-23 04:09:01 +0200td_(~td@i5387090A.versanet.de) (Ping timeout: 240 seconds)
2023-05-23 04:11:13 +0200td_(~td@i53870922.versanet.de)
2023-05-23 04:16:47 +0200jero98772(~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
2023-05-23 04:18:01 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-05-23 04:23:01 +0200 <hpc> it's like waiting for hamlet to die
2023-05-23 04:23:15 +0200 <hpc> it'll always be out there somewhere, waiting for some nerd to port it to webassembly :D
2023-05-23 04:25:44 +0200 <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?
2023-05-23 04:26:31 +0200 <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.
2023-05-23 04:34:47 +0200 <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
2023-05-23 04:37:23 +0200captnemo(~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
2023-05-23 04:37:43 +0200captnemo(~captnemo@193.32.127.232)
2023-05-23 04:38:09 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 04:40:19 +0200ystael(~ystael@user/ystael) (Ping timeout: 265 seconds)
2023-05-23 04:41:17 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-05-23 04:48:46 +0200wroathe(~wroathe@user/wroathe) (Quit: leaving)
2023-05-23 04:49:47 +0200AndreaBAmyMalik
2023-05-23 04:51:13 +0200captnemo(~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
2023-05-23 04:51:50 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-05-23 04:56:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-05-23 05:01:03 +0200andreabedini(~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5)
2023-05-23 05:04:25 +0200radioredwagon(~radioredw@user/radioredwagon)
2023-05-23 05:18:21 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-05-23 05:18:30 +0200vandita(~vandit@176-241-62-247.pool.digikabel.hu) (Ping timeout: 265 seconds)
2023-05-23 05:18:57 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-05-23 05:19:51 +0200vandita(~vandit@178-164-206-87.pool.digikabel.hu)
2023-05-23 05:32:27 +0200 <hammond> sm no such thing as each module should be 150 to 200 lines no more?
2023-05-23 05:32:42 +0200 <sm> no
2023-05-23 05:33:02 +0200 <sm> unless a project wants that for some reason
2023-05-23 05:33:23 +0200 <hammond> ok.
2023-05-23 05:35:02 +0200 <probie> A module should be as long as it needs to be
2023-05-23 05:37:25 +0200caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-05-23 05:39:46 +0200 <probie> GHC itself has a non-negligible number of >1000 line modules
2023-05-23 05:45:44 +0200nate2(~nate@98.45.169.16)
2023-05-23 05:50:53 +0200nate2(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2023-05-23 05:51:27 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-05-23 05:54:22 +0200img(~img@user/img)
2023-05-23 05:59:31 +0200RedNifre(~RedNifre@dslb-002-201-038-109.002.201.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2023-05-23 06:00:28 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
2023-05-23 06:03:28 +0200kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-05-23 06:08:25 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-05-23 06:09:44 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 265 seconds)
2023-05-23 06:12:14 +0200RedNifre(~RedNifre@dslb-090-186-054-065.090.186.pools.vodafone-ip.de)
2023-05-23 06:20:05 +0200mei(~mei@user/mei) (Ping timeout: 240 seconds)
2023-05-23 06:21:46 +0200 <sm> one big cost of small modules in haskell is increasing the proportion of of imports (and language pragmas) boilerplate
2023-05-23 06:23:53 +0200 <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.
2023-05-23 06:24:22 +0200mei(~mei@user/mei)
2023-05-23 06:30:19 +0200radioredwagon(~radioredw@user/radioredwagon) (Quit: Client closed)
2023-05-23 06:34:39 +0200hugo(znc@verdigris.lysator.liu.se)
2023-05-23 06:40:38 +0200mbuf(~Shakthi@49.207.178.186)
2023-05-23 06:52:12 +0200 <EvanR> setting my editor to disallow files over 200 lines
2023-05-23 06:52:31 +0200 <Inst> M$ just feels like the lesser evil
2023-05-23 06:52:48 +0200 <EvanR> now I have the functions split over N files named Utils1 through UtilN.hs
2023-05-23 06:52:50 +0200trillp(~trillp@69.233.98.238)
2023-05-23 06:53:09 +0200 <Inst> you can either choose the dearly deceased Steve Jobs' OS, which is locked to hardware, Google's spyware OS, or M$
2023-05-23 06:54:32 +0200 <probie> Inst: What's wrong with running GNU/Linux?
2023-05-23 06:56:42 +0200 <ghostbuster> hmm something is wrong with my environment i think? https://termbin.com/q28i https://termbin.com/p55y
2023-05-23 06:57:06 +0200trev(~trev@user/trev)
2023-05-23 06:58:23 +0200 <Inst> if linux were a norm that'd be fine
2023-05-23 06:58:54 +0200 <EvanR> been running linux for 20 years now
2023-05-23 06:58:57 +0200 <EvanR> works
2023-05-23 06:59:40 +0200 <EvanR> GET THE FACTS
2023-05-23 06:59:45 +0200 <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)
2023-05-23 07:00:11 +0200 <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
2023-05-23 07:01:33 +0200 <ghostbuster> probie: yeah how did you know?
2023-05-23 07:02:37 +0200 <ghostbuster> 6.3.2
2023-05-23 07:03:39 +0200 <Inst> hmm, my debian blew up recently
2023-05-23 07:04:03 +0200 <Inst> might be worth trying ubuntu kylin?
2023-05-23 07:04:35 +0200 <Inst> sort of wished the old BSD-based Kylin was still alive
2023-05-23 07:05:17 +0200 <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?
2023-05-23 07:08:01 +0200 <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)
2023-05-23 07:08:45 +0200 <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
2023-05-23 07:08:56 +0200 <Inst> IIRc, I had to hack in via WSL the Linux drivers for my wifi
2023-05-23 07:09:16 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-05-23 07:09:35 +0200falafel(~falafel@2603-8000-d700-115c-23eb-285d-1c7c-0334.res6.spectrum.com)
2023-05-23 07:10:15 +0200 <probie> macOS doesn't work on most hardware either :p
2023-05-23 07:10:44 +0200 <Inst> macOS at least does hardware lock-in, it's literally not intended as an option for most machines
2023-05-23 07:10:58 +0200 <Inst> the problem with OSX is that you buy into an Apple hardware monopoly
2023-05-23 07:11:30 +0200 <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
2023-05-23 07:12:06 +0200 <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
2023-05-23 07:16:58 +0200 <probie> You can already buy hardware which supports linux
2023-05-23 07:21:42 +0200 <Inst> you're paying a premium for dedicated linux hardware, it seems
2023-05-23 07:22:23 +0200 <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
2023-05-23 07:26:49 +0200vandita(~vandit@178-164-206-87.pool.digikabel.hu) (Ping timeout: 256 seconds)
2023-05-23 07:28:21 +0200vandita(~vandit@80-95-82-232.pool.digikabel.hu)
2023-05-23 07:32:34 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-05-23 07:34:33 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-05-23 07:34:56 +0200mcglk(~mcglk@131.191.19.145) (Read error: Connection reset by peer)
2023-05-23 07:37:35 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
2023-05-23 07:37:35 +0200takuan_dozo(~takuan@178-116-218-225.access.telenet.be)
2023-05-23 07:43:51 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-05-23 07:47:32 +0200michalz(~michalz@185.246.204.89)
2023-05-23 07:47:43 +0200machinedgod(~machinedg@84-115-230-104.cable.dynamic.surfer.at)
2023-05-23 07:47:59 +0200acidjnk(~acidjnk@p200300d6e7072f1980412807ae9a6e3f.dip0.t-ipconnect.de)
2023-05-23 07:48:17 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-05-23 07:48:37 +0200EvanR(~EvanR@user/evanr)
2023-05-23 07:49:29 +0200falafel(~falafel@2603-8000-d700-115c-23eb-285d-1c7c-0334.res6.spectrum.com) (Ping timeout: 256 seconds)
2023-05-23 07:49:53 +0200 <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
2023-05-23 07:50:52 +0200chomwitt(~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1)
2023-05-23 07:54:06 +0200falafel(~falafel@2603-8000-d700-115c-704a-f6ee-a054-f0ff.res6.spectrum.com)
2023-05-23 07:57:04 +0200freeside(~mengwong@122.11.248.245)
2023-05-23 07:57:26 +0200byte(~byte@user/byte) (Quit: Quitting...)
2023-05-23 08:00:48 +0200falafel(~falafel@2603-8000-d700-115c-704a-f6ee-a054-f0ff.res6.spectrum.com) (Ping timeout: 240 seconds)
2023-05-23 08:01:41 +0200wiosna(~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
2023-05-23 08:02:03 +0200byte(~byte@user/byte)
2023-05-23 08:13:17 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-05-23 08:15:57 +0200byte(~byte@user/byte) (Quit: Quitting...)
2023-05-23 08:17:09 +0200byte(~byte@user/byte)
2023-05-23 08:23:04 +0200oo_miguel(~Thunderbi@77.252.47.84)
2023-05-23 08:24:46 +0200mmhat(~mmh@p200300f1c70668bcee086bfffe095315.dip0.t-ipconnect.de)
2023-05-23 08:26:47 +0200mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-05-23 08:30:53 +0200byte(~byte@user/byte) (Quit: Quitting...)
2023-05-23 08:31:55 +0200byte(~byte@user/byte)
2023-05-23 08:48:00 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
2023-05-23 08:50:02 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-05-23 08:50:08 +0200incertia(~incertia@209.122.71.127) (Ping timeout: 248 seconds)
2023-05-23 08:50:48 +0200incertia(~incertia@209.122.71.127)
2023-05-23 08:52:25 +0200mc47(~mc47@xmonad/TheMC47)
2023-05-23 08:57:54 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-05-23 09:00:34 +0200gurkenglas(~user@dynamic-046-114-168-101.46.114.pool.telefonica.de)
2023-05-23 09:07:26 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:c066:a9b9:79ee:689b)
2023-05-23 09:07:41 +0200finnekit4(~finnekit@fsf/member/finnekit)
2023-05-23 09:08:22 +0200nschoe(~q@2a01:e0a:8e:a190:1e90:eaba:66b5:fb61)
2023-05-23 09:10:04 +0200finnekit(~finnekit@fsf/member/finnekit) (Ping timeout: 268 seconds)
2023-05-23 09:10:04 +0200finnekit4finnekit
2023-05-23 09:10:12 +0200chomwitt(~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2023-05-23 09:10:34 +0200chomwitt(~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1)
2023-05-23 09:11:28 +0200Noinia(~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-05-23 09:12:00 +0200Putonlalla(~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 248 seconds)
2023-05-23 09:12:14 +0200Noinia(~Frank@77-162-168-71.fixed.kpn.net)
2023-05-23 09:17:20 +0200koolazer(~koo@user/koolazer) (Ping timeout: 248 seconds)
2023-05-23 09:18:07 +0200koolazer(~koo@user/koolazer)
2023-05-23 09:18:47 +0200Sauvin(~sauvin@user/Sauvin) (Ping timeout: 264 seconds)
2023-05-23 09:21:21 +0200Sauvin(~sauvin@user/Sauvin)
2023-05-23 09:23:15 +0200Bocaneri(~sauvin@user/Sauvin)
2023-05-23 09:23:39 +0200BocaneriGuest4160
2023-05-23 09:23:44 +0200Putonlalla(~Putonlall@it-cyan.it.jyu.fi)
2023-05-23 09:24:11 +0200chomwitt(~chomwitt@2a02:587:7a07:4f00:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds)
2023-05-23 09:24:31 +0200trillp(~trillp@69.233.98.238) (Quit: WeeChat 3.7.1)
2023-05-23 09:25:52 +0200Sauvin(~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
2023-05-23 09:26:01 +0200andreabedini(~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5) (Ping timeout: 240 seconds)
2023-05-23 09:26:09 +0200chomwitt(~chomwitt@2a02:587:7a13:b200:1ac0:4dff:fedb:a3f1)
2023-05-23 09:28:23 +0200xilo(~yourname@user/xilo) (Ping timeout: 240 seconds)
2023-05-23 09:31:20 +0200andreabedini(~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5)
2023-05-23 09:32:41 +0200mncheckm(~mncheck@193.224.205.254)
2023-05-23 09:32:48 +0200freeside(~mengwong@122.11.248.245) (Ping timeout: 240 seconds)
2023-05-23 09:33:23 +0200landonf(landonf@mac68k.info) (Ping timeout: 246 seconds)
2023-05-23 09:33:30 +0200landonf(landonf@mac68k.info)
2023-05-23 09:33:59 +0200vandita(~vandit@80-95-82-232.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-23 09:34:18 +0200xilo(~yourname@84.32.165.17)
2023-05-23 09:34:44 +0200freeside(~mengwong@202.161.55.11)
2023-05-23 09:35:52 +0200vandita(~vandit@92-249-193-123.pool.digikabel.hu)
2023-05-23 09:37:04 +0200Guest4160(~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
2023-05-23 09:42:29 +0200CiaoSen(~Jura@dynamic-046-114-220-134.46.114.pool.telefonica.de)
2023-05-23 09:43:23 +0200gmg(~user@user/gehmehgeh)
2023-05-23 09:43:24 +0200Sauvin(~sauvin@user/Sauvin)
2023-05-23 09:46:58 +0200nate2(~nate@98.45.169.16)
2023-05-23 09:52:02 +0200thegeekinside(~thegeekin@189.141.107.10)
2023-05-23 09:52:27 +0200nate2(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2023-05-23 09:52:38 +0200Feuermagier(~Feuermagi@user/feuermagier)
2023-05-23 09:54:02 +0200cfricke(~cfricke@user/cfricke)
2023-05-23 09:55:23 +0200wiosna(~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-05-23 09:58:28 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
2023-05-23 10:09:21 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Remote host closed the connection)
2023-05-23 10:11:52 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-05-23 10:16:53 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
2023-05-23 10:20:23 +0200mmhat(~mmh@p200300f1c70668bcee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-05-23 10:22:08 +0200wiosna(~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
2023-05-23 10:29:59 +0200thegeekinside(~thegeekin@189.141.107.10) (Ping timeout: 240 seconds)
2023-05-23 10:38:58 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-05-23 10:39:45 +0200kuribas(~user@ptr-17d51eotp0ewss6x895.18120a2.ip6.access.telenet.be)
2023-05-23 10:41:22 +0200titibandit(~titibandi@user/titibandit)
2023-05-23 10:42:11 +0200househorse(~housemate@120.18.177.69)
2023-05-23 10:43:44 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-05-23 10:49:13 +0200califax_(~califax@user/califx)
2023-05-23 10:49:20 +0200califax(~califax@user/califx) (Ping timeout: 240 seconds)
2023-05-23 10:50:08 +0200acidjnk(~acidjnk@p200300d6e7072f1980412807ae9a6e3f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-05-23 10:50:19 +0200eugenrh(~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8)
2023-05-23 10:50:30 +0200califax_califax
2023-05-23 10:51:05 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-05-23 10:51:59 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2023-05-23 10:52:07 +0200acidjnk(~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de)
2023-05-23 10:53:55 +0200Lord_of_Life_Lord_of_Life
2023-05-23 10:55:11 +0200elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
2023-05-23 10:57:19 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 265 seconds)
2023-05-23 10:57:36 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-05-23 11:06:34 +0200freeside(~mengwong@202.161.55.11) (Ping timeout: 250 seconds)
2023-05-23 11:06:51 +0200tjnhxmzhmqgytuwt(~tjnhxmzhm@2001:470:69fc:105::3:70e) (Remote host closed the connection)
2023-05-23 11:09:48 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 11:10:12 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
2023-05-23 11:13:38 +0200__monty__(~toonn@user/toonn)
2023-05-23 11:14:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 250 seconds)
2023-05-23 11:25:50 +0200househorse(~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!)
2023-05-23 11:37:51 +0200acidjnk(~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-05-23 11:38:30 +0200elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
2023-05-23 11:38:52 +0200acidjnk(~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de)
2023-05-23 11:40:53 +0200kuribas(~user@ptr-17d51eotp0ewss6x895.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2023-05-23 11:43:09 +0200notzmv(~zmv@user/notzmv)
2023-05-23 11:44:38 +0200ft(~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
2023-05-23 11:47:32 +0200freeside(~mengwong@122.11.212.99)
2023-05-23 11:49:28 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-05-23 11:52:15 +0200vandita(~vandit@92-249-193-123.pool.digikabel.hu) (Ping timeout: 268 seconds)
2023-05-23 11:52:56 +0200hamzam3(~hamzam3@2a01:e0a:1ee:8c60:ca85:9674:421c:1b38)
2023-05-23 11:53:29 +0200vandita(~vandit@94-21-48-57.pool.digikabel.hu)
2023-05-23 11:56:11 +0200titibandit(~titibandi@user/titibandit)
2023-05-23 11:58:15 +0200chomwitt(~chomwitt@2a02:587:7a13:b200:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
2023-05-23 12:05:37 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
2023-05-23 12:08:33 +0200andreabedini(~andreabed@2a05:dfc7:7780:1000:3997:5773:db4c:5ca5) (Quit: WeeChat 3.8)
2023-05-23 12:09:44 +0200kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2023-05-23 12:11:19 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-05-23 12:13:21 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-05-23 12:13:45 +0200mei(~mei@user/mei)
2023-05-23 12:14:30 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-1d2b-cbea-330c-620a.rev.sfr.net)
2023-05-23 12:17:08 +0200freeside(~mengwong@122.11.212.99) (Read error: Connection reset by peer)
2023-05-23 12:18:43 +0200kritzefitz(~kritzefit@debian/kritzefitz)
2023-05-23 12:21:03 +0200freeside(~mengwong@122.11.212.99)
2023-05-23 12:21:59 +0200CiaoSen(~Jura@dynamic-046-114-220-134.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-23 12:31:12 +0200 <hamzam3> Hello everyone, I want to know if it's possible to build a library with profiling if it includes a foreign interface
2023-05-23 12:31:15 +0200 <hamzam3> Thank you !
2023-05-23 12:32:39 +0200 <hamzam3> Also do you have any advice with respect to debugging.
2023-05-23 12:33:16 +0200freeside(~mengwong@122.11.212.99) (Read error: Connection reset by peer)
2023-05-23 12:33:21 +0200 <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
2023-05-23 12:33:36 +0200 <geekosaur> debugging is probably haskell's weakest point currently
2023-05-23 12:34:05 +0200 <hamzam3> I get the following message when compiling with profiling option
2023-05-23 12:34:15 +0200 <hamzam3> Perhaps you haven't installed the profiling libraries for package ‘StateVar-1.2.2’?
2023-05-23 12:34:23 +0200 <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
2023-05-23 12:34:51 +0200 <geekosaur> how did you install StateVar? was it done automatically by stack / cabal, or did you use an OS package?
2023-05-23 12:35:05 +0200 <hamzam3> I installed it with the following command
2023-05-23 12:35:09 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
2023-05-23 12:35:28 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360)
2023-05-23 12:35:38 +0200 <hamzam3> cabal install --only-dependencies --enable-library-profiling --overwrite-policy=always
2023-05-23 12:36:21 +0200 <geekosaur> odd
2023-05-23 12:36:37 +0200 <hamzam3> I deleted my .cabal folder
2023-05-23 12:36:46 +0200 <hamzam3> and redone this command
2023-05-23 12:36:47 +0200 <geekosaur> delete your .ghc folder as well
2023-05-23 12:36:52 +0200 <hamzam3> ok
2023-05-23 12:37:16 +0200 <geekosaur> otherwise you still have the old package registration but you've lost the actual package contents, which will confuse both cabal and ghc
2023-05-23 12:37:34 +0200 <hamzam3> ok
2023-05-23 12:37:50 +0200 <hamzam3> where is the .ghc usually ?
2023-05-23 12:37:59 +0200 <geekosaur> cabal should detect that it needs to install profiling versions of packages automatically
2023-05-23 12:39:21 +0200 <hamzam3> find ~ -name ".ghc" gives nothing
2023-05-23 12:40:05 +0200 <geekosaur> right, that's the name used for old versions. where it will be for new versions depends on how you installed ghc
2023-05-23 12:41:16 +0200 <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)
2023-05-23 12:41:43 +0200 <geekosaur> what version of cabal? you may also need to look for ~/.local/state/cabal
2023-05-23 12:42:05 +0200gensyst(~gensyst@user/gensyst)
2023-05-23 12:42:41 +0200 <gensyst> putStrLn "foo" >> putStrLn "bar". Can the first and second somehow end up on different threads? When/how can Haskell code move between threads?
2023-05-23 12:42:55 +0200 <hamzam3> ok sorry I have an issue, my disk is full
2023-05-23 12:43:05 +0200 <geekosaur> whoops 🙂
2023-05-23 12:43:06 +0200 <hamzam3> let me fix this, thank you very much
2023-05-23 12:43:46 +0200 <geekosaur> gensyst, i that is already on an OS thread other than the main one, it can migrate at an allocation point
2023-05-23 12:43:57 +0200 <geekosaur> (and that isn't bound)
2023-05-23 12:44:19 +0200 <geekosaur> note that the main OS thread is bound and also special in other ways; code on that thread will never migrate
2023-05-23 12:45:16 +0200 <gensyst> geekosaur, i'm trying to grasp.. could the result of myThreadId suddenly (and unexpectedly) change?
2023-05-23 12:45:20 +0200 <gensyst> in the "same code"
2023-05-23 12:45:37 +0200 <gensyst> what's an allocation point?
2023-05-23 12:46:04 +0200 <geekosaur> myThreadId should return the Haskell thread, not the OS thread, so it should never change
2023-05-23 12:46:21 +0200 <gensyst> ok i see!
2023-05-23 12:46:32 +0200 <gensyst> i've been coding haskell for yeras, why don't i know this stuff. embarrassing :(
2023-05-23 12:46:34 +0200 <geekosaur> an allocation point is anywhere that can do an allocation
2023-05-23 12:46:35 +0200 <gensyst> thanks
2023-05-23 12:48:08 +0200 <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.
2023-05-23 12:53:46 +0200xff0x(~xff0x@ai098135.d.east.v6connect.net)
2023-05-23 12:53:46 +0200 <gensyst> juri_, thanks :)
2023-05-23 12:55:03 +0200 <hamzam3> apparently my ghc is in ghcup
2023-05-23 12:55:19 +0200 <hamzam3> and also statevar does have a profiling lib
2023-05-23 12:55:25 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-05-23 12:55:38 +0200 <hamzam3> geekosaur:vwhat should i delete
2023-05-23 12:58:16 +0200__monty__(~toonn@user/toonn)
2023-05-23 12:59:18 +0200 <geekosaur> nothing, if you deleted ~/.cabal and/or ~/.local/state/cabal
2023-05-23 12:59:45 +0200 <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
2023-05-23 12:59:58 +0200 <geekosaur> but you may have to clear more space to hold it
2023-05-23 13:00:32 +0200 <geekosaur> (I have a tiny root SSD so I had to mount an external drive to hold all my cabal stuff)
2023-05-23 13:02:37 +0200 <hamzam3> how heavy can cabal be ?
2023-05-23 13:02:50 +0200 <hamzam3> i have nuked ghcup
2023-05-23 13:03:33 +0200 <geekosaur> I really would not have done that
2023-05-23 13:03:49 +0200 <geekosaur> cabal will accrue packages, sometimes it's useful to clean up
2023-05-23 13:03:54 +0200 <geekosaur> @where cabalgc
2023-05-23 13:03:54 +0200 <lambdabot> https://github.com/treblacy/cabalgc
2023-05-23 13:04:43 +0200 <hamzam3> ok lol
2023-05-23 13:04:54 +0200 <hamzam3> thank you for this
2023-05-23 13:04:56 +0200 <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
2023-05-23 13:05:16 +0200 <hamzam3> oh ok
2023-05-23 13:05:30 +0200 <hamzam3> i have a peripherical question if possible
2023-05-23 13:06:00 +0200 <geekosaur> one can always ask. sometimes you'll have to wait for someone who knows more to get an answer
2023-05-23 13:06:07 +0200 <hamzam3> do you contribute to open source project about haskell ?
2023-05-23 13:06:22 +0200 <geekosaur> I'm a head of the xmonad project
2023-05-23 13:06:22 +0200 <hamzam3> or using
2023-05-23 13:06:49 +0200 <hamzam3> what is it about ?
2023-05-23 13:06:54 +0200 <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
2023-05-23 13:07:03 +0200 <geekosaur> xmonad is a tiling window manager
2023-05-23 13:07:10 +0200 <geekosaur> https://xmonad.org
2023-05-23 13:07:26 +0200 <hamzam3> woah nice
2023-05-23 13:07:29 +0200 <hamzam3> is it popular ?
2023-05-23 13:07:38 +0200 <geekosaur> I also help out with ghc, and more recently am starting to help out with cabal
2023-05-23 13:07:57 +0200 <geekosaur> popular enough. tiling window managers aren't exactly the most popular kind
2023-05-23 13:08:34 +0200 <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 🙂
2023-05-23 13:09:00 +0200 <hamzam3> interesting these posts are the way to market open source projects
2023-05-23 13:09:53 +0200 <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 ?
2023-05-23 13:10:11 +0200 <geekosaur> not really
2023-05-23 13:10:13 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-05-23 13:10:15 +0200 <hamzam3> how to track open source project demand lets say
2023-05-23 13:10:44 +0200 <geekosaur> I think — hope — the Haskell Foundation is starting to track that kind of thing; you might check on discourse.haskell.org
2023-05-23 13:10:56 +0200 <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.
2023-05-23 13:10:56 +0200 <juri_> open source is not moved by the big projects, but by the little changes. make something better every day.
2023-05-23 13:11:02 +0200 <ncf> juri_++
2023-05-23 13:11:39 +0200 <hamzam3> okay
2023-05-23 13:11:46 +0200barzo(~hd@31.223.56.119)
2023-05-23 13:12:47 +0200 <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
2023-05-23 13:12:58 +0200 <geekosaur> pick something that interests you and poke around
2023-05-23 13:13:08 +0200 <hamzam3> yes
2023-05-23 13:13:09 +0200 <geekosaur> that's how open source works
2023-05-23 13:13:37 +0200 <hamzam3> do you think haskell can be improved so that it can be possible to write proofs in it
2023-05-23 13:13:49 +0200 <hamzam3> using dependent type theory
2023-05-23 13:13:58 +0200 <juri_> long term, i think that'll happen.
2023-05-23 13:14:03 +0200 <probie> "improved". I'm not giving up `(a -> a) -> a`
2023-05-23 13:14:04 +0200 <geekosaur> rich eisenberg is working on that, although getting it into ghc is proving a bit difficult
2023-05-23 13:14:08 +0200 <juri_> or, at least, i hope. :)
2023-05-23 13:14:26 +0200 <hamzam3> did you ever prove a program using a theorem prover
2023-05-23 13:14:46 +0200 <geekosaur> there's a fundamental disconnect between how haskell and ghc's internal language deal with types, that makes dependent types somewhat difficult
2023-05-23 13:14:54 +0200 <geekosaur> no, I didn't
2023-05-23 13:15:01 +0200 <hamzam3> i think i'll try doing that this afternon
2023-05-23 13:15:14 +0200 <geekosaur> I've played a little with agda and idris but never done anything serious with them
2023-05-23 13:15:23 +0200 <hamzam3> oh
2023-05-23 13:16:06 +0200 <probie> If you use Coq, you can extract Haskell code from Coq definitions
2023-05-23 13:16:10 +0200 <hamzam3> should i try with idris or agda ?
2023-05-23 13:16:18 +0200 <hamzam3> ah ?
2023-05-23 13:16:18 +0200 <geekosaur> I know Wouter Swierstra ported the core of xmonad to Coq to validate it
2023-05-23 13:16:21 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-05-23 13:16:26 +0200 <hamzam3> omg
2023-05-23 13:16:32 +0200 <hamzam3> and its validated now ?
2023-05-23 13:16:40 +0200 <hamzam3> like its bugless
2023-05-23 13:16:40 +0200 <geekosaur> has been for years
2023-05-23 13:16:51 +0200 <ncf> there is also agda2hs
2023-05-23 13:17:08 +0200 <ncf> and i'm sure idris has a similar thing
2023-05-23 13:17:12 +0200 <geekosaur> the StackSet is. no promises about the rest; but it's too tied up in X11 to easily feed to a proof assistant
2023-05-23 13:18:14 +0200 <hamzam3> ok
2023-05-23 13:18:18 +0200 <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
2023-05-23 13:18:40 +0200 <hamzam3> ok but that's kind of a big deal no ?
2023-05-23 13:18:45 +0200 <hamzam3> we can write bugless code now
2023-05-23 13:19:08 +0200 <hamzam3> i think these techniques should be applied to browsers
2023-05-23 13:19:26 +0200 <geekosaur> there's a relevant Knuth quote there… "Beware, I have only proven this code correct, not tested it"
2023-05-23 13:19:38 +0200 <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)
2023-05-23 13:19:44 +0200 <geekosaur> ^
2023-05-23 13:19:50 +0200 <hamzam3> like have a browser associated with a theory that u can use to prove js code afterwards
2023-05-23 13:19:53 +0200 <hamzam3> hu
2023-05-23 13:19:57 +0200 <hamzam3> yes
2023-05-23 13:20:12 +0200 <geekosaur> sounds good until you see what kind of messes you get even from "compliant" HTML, never mind JS
2023-05-23 13:20:27 +0200 <hamzam3> do u have an example ?
2023-05-23 13:21:50 +0200 <geekosaur> various HTML generators were perfectly happy to output start and end tags in the wrong order (think <a><b>…</a></b>)
2023-05-23 13:22:02 +0200 <geekosaur> but that's just a simple example. they get much worse
2023-05-23 13:22:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-05-23 13:22:17 +0200 <probie> back in the day, google used to omit a bunch of closing tags to send fewer bytes
2023-05-23 13:22:34 +0200 <geekosaur> almost all "XHTML" won't pass an XHTML validator
2023-05-23 13:22:42 +0200 <hamzam3> isnt this called forgiveness
2023-05-23 13:22:50 +0200 <hamzam3> like it's meant to not crash on errors
2023-05-23 13:22:57 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-1d2b-cbea-330c-620a.rev.sfr.net) (Remote host closed the connection)
2023-05-23 13:23:19 +0200 <geekosaur> not really, it makes generation easier but parsing much harder
2023-05-23 13:23:53 +0200 <hamzam3> ok ill have to explore this deeper then
2023-05-23 13:24:04 +0200 <geekosaur> "tagsoup"
2023-05-23 13:24:11 +0200taupiqueur(~taupiqueu@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net)
2023-05-23 13:24:31 +0200 <hamzam3> im trying to work on that right now
2023-05-23 13:25:20 +0200 <hamzam3> im making a browser by hand to explore the question if you or someone wants to contribute (im not that experimented though)
2023-05-23 13:25:36 +0200 <hamzam3> https://github.com/HamzaM3/yes-browser
2023-05-23 13:26:41 +0200 <geekosaur> beware, the last few folks to do that in haskell disappeared into corporate NDAs never to be seen again 🙂
2023-05-23 13:27:11 +0200 <hamzam3> why ? im not in a company
2023-05-23 13:27:18 +0200 <geekosaur> they got hired
2023-05-23 13:27:23 +0200 <hamzam3> ah ok lol
2023-05-23 13:27:44 +0200 <geekosaur> but the companies that hire Haskell programmers often have very restrictive non-disclosure agreements
2023-05-23 13:27:58 +0200 <geekosaur> so they never get to touch their code again
2023-05-23 13:28:22 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-05-23 13:28:22 +0200 <hamzam3> do u mean that if you work under an nda u cant do open source anymore ?
2023-05-23 13:28:27 +0200 <hpc> sometimes
2023-05-23 13:28:27 +0200 <geekosaur> usually
2023-05-23 13:28:45 +0200 <geekosaur> last time I was involved with one I specifically negotiated an exception for open source
2023-05-23 13:28:52 +0200 <geekosaur> but I had to do that up front
2023-05-23 13:28:59 +0200 <hamzam3> oh okay
2023-05-23 13:29:08 +0200 <geekosaur> and get them to sign off on it
2023-05-23 13:29:23 +0200 <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
2023-05-23 13:29:28 +0200 <geekosaur> ^
2023-05-23 13:29:55 +0200 <hamzam3> but then open source cannot improve if all the talent is sucked
2023-05-23 13:30:37 +0200 <hamzam3> how hard is it to find a haskell job. what should i put on my resume ? (im not searching yet)
2023-05-23 13:31:30 +0200 <geekosaur> pretty hard. it's not like C++ or Go where there's lots of jobs around
2023-05-23 13:32:19 +0200 <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
2023-05-23 13:32:57 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 265 seconds)
2023-05-23 13:32:58 +0200 <geekosaur> Haskell's type system trains you to not make large classes of mistakes
2023-05-23 13:33:20 +0200 <hpc> ^
2023-05-23 13:33:38 +0200 <hpc> it's also a nice "proof of work"
2023-05-23 13:33:52 +0200 <hamzam3> what is a proof of work
2023-05-23 13:33:53 +0200 <hamzam3> ?
2023-05-23 13:34:00 +0200 <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"
2023-05-23 13:34:09 +0200 <hpc> basically, something that shows you're going to get the job done
2023-05-23 13:34:14 +0200 <hpc> and not just sit there
2023-05-23 13:35:08 +0200 <hamzam3> ok nice
2023-05-23 13:35:11 +0200 <hpc> learning haskell (outside a classroom setting, a few people here teach it :D) takes initiative
2023-05-23 13:35:18 +0200 <ncf> is there any way to pretty-print a circular data structure by rendering loops as <<loop>> or something?
2023-05-23 13:35:35 +0200 <ncf> or do i have to implement my own cycle detection
2023-05-23 13:35:54 +0200 <[exa]> ncf: I wish there was and if you found anything please ping me.
2023-05-23 13:36:14 +0200 <ncf> heh
2023-05-23 13:36:19 +0200 <hamzam3> anyways thank you guys for all your information !
2023-05-23 13:37:04 +0200 <[exa]> ncf: there's methodology for that in prolog substitution-printing, the algorithm is not complex tbh, but instantiating that over haskell stuff...man.
2023-05-23 13:38:04 +0200 <[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
2023-05-23 13:39:05 +0200 <ncf> i wonder if one could just catch NonTermination
2023-05-23 13:39:40 +0200 <[exa]> quite often you can't even detect it
2023-05-23 13:40:03 +0200 <[exa]> most impls I've seen (even in prolog) simply put an upper bound on the depth of printed stuff
2023-05-23 13:40:12 +0200 <[exa]> and humans are pretty good at interpreting `...`
2023-05-23 13:41:26 +0200 <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
2023-05-23 13:48:42 +0200nate2(~nate@98.45.169.16)
2023-05-23 13:51:12 +0200ubert(~Thunderbi@p200300ecdf18b63ece9cf92d6fdc3292.dip0.t-ipconnect.de)
2023-05-23 13:52:55 +0200 <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?
2023-05-23 13:53:44 +0200nate2(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2023-05-23 13:57:48 +0200hamzam3(~hamzam3@2a01:e0a:1ee:8c60:ca85:9674:421c:1b38) (Ping timeout: 240 seconds)
2023-05-23 14:00:05 +0200vandita(~vandit@94-21-48-57.pool.digikabel.hu) (Ping timeout: 256 seconds)
2023-05-23 14:01:59 +0200vandita(~vandit@84-236-10-11.pool.digikabel.hu)
2023-05-23 14:07:09 +0200 <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.
2023-05-23 14:07:48 +0200 <jade[m]> fair enough, I usually use pure too. I just wanted to see other peoples opinion on it :)
2023-05-23 14:07:50 +0200 <jade[m]> Thanks!
2023-05-23 14:10:18 +0200 <maralorn> Now you have the opinion of one random guy on the internet. 😇
2023-05-23 14:10:44 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 250 seconds)
2023-05-23 14:12:06 +0200 <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
2023-05-23 14:15:41 +0200 <yushyin> ^ second this
2023-05-23 14:16:37 +0200tok(~user@user/tok)
2023-05-23 14:19:00 +0200 <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.
2023-05-23 14:19:47 +0200 <[exa]> tok: cabal got massively updated, fixed, standardized, and imo is currently ahead of stack except for very industrial usecases
2023-05-23 14:19:56 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-05-23 14:21:18 +0200__monty__(~toonn@user/toonn)
2023-05-23 14:21:38 +0200 <tok> Oh that's cool! I always preferred cabal anyway, despite all the wonkyness it used have.
2023-05-23 14:22:10 +0200 <[exa]> the "clean" nix-style builds are default for quite some time now (post-2018ish?)
2023-05-23 14:22:33 +0200 <[exa]> and there's cabal.project functionality if you need to group more packages together
2023-05-23 14:23:23 +0200 <[exa]> ....and it looks like I didn't cabalnuke for like 2 years now
2023-05-23 14:26:59 +0200freeside(~mengwong@122.11.212.99)
2023-05-23 14:29:34 +0200 <gensyst> Is it possible to "cancel" an mkWeakIORef?
2023-05-23 14:29:43 +0200 <gensyst> (make sure it won't get called up on GC)
2023-05-23 14:30:42 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
2023-05-23 14:32:14 +0200 <geekosaur> probably a #ghc question
2023-05-23 14:37:09 +0200freeside(~mengwong@122.11.212.99) (Read error: Connection reset by peer)
2023-05-23 14:47:28 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-05-23 14:48:40 +0200jade[m]uploaded an image: (6KiB) < https://libera.ems.host/_matrix/media/v3/download/the-apothecary.club/mtlywVnpjYdFiDYkjdsbWdvz/ima… >
2023-05-23 14:48:42 +0200jade[m]uploaded an image: (8KiB) < https://libera.ems.host/_matrix/media/v3/download/the-apothecary.club/YfvTWfEBUvxCZTqdnvyIThxl/ima… >
2023-05-23 14:49:01 +0200 <jade[m]> why is there two different messages depending on whether the first letter is capitalized
2023-05-23 14:49:14 +0200 <jade[m]> I can assume why it happens, but is that intended behavior?
2023-05-23 14:50:25 +0200 <ncf> are we supposed to recognise where this is from?
2023-05-23 14:51:03 +0200fbytez(~uid@2001:bc8:2117:100::) (Quit: byte byte)
2023-05-23 14:51:12 +0200 <jade[m]> oh sorry, it's just a random hackage page in the quickjump dialog
2023-05-23 14:52:53 +0200 <ncf> got a third message: Left "no matches for 'GCFLA'" :: Either String (NonEmpty SearchResult)
2023-05-23 14:53:00 +0200 <ncf> fascinating
2023-05-23 14:53:09 +0200fbytez(~uid@2001:bc8:2117:100::)
2023-05-23 14:53:24 +0200 <ncf> (searching for that string in base)
2023-05-23 15:13:21 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 15:17:54 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 250 seconds)
2023-05-23 15:22:49 +0200acidjnk(~acidjnk@p200300d6e7072f1929720de0b53015b2.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-05-23 15:24:42 +0200polux(~polux@51-15-169-172.rev.poneytelecom.eu) (Quit: Ping timeout (120 seconds))
2023-05-23 15:24:57 +0200polux(~polux@51-15-169-172.rev.poneytelecom.eu)
2023-05-23 15:27:21 +0200ystael(~ystael@user/ystael)
2023-05-23 15:35:16 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-05-23 15:35:16 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-05-23 15:35:16 +0200wroathe(~wroathe@user/wroathe)
2023-05-23 15:35:22 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-05-23 15:38:17 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 15:41:24 +0200hamzam3(~hamzam3@2a01:e0a:1ee:8c60:91ef:2514:d13e:9327)
2023-05-23 15:42:58 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 265 seconds)
2023-05-23 15:43:12 +0200darchitect666(~e1211913@host86-157-65-148.range86-157.btcentralplus.com)
2023-05-23 15:44:29 +0200darchitect666(~e1211913@host86-157-65-148.range86-157.btcentralplus.com) (Client Quit)
2023-05-23 15:50:23 +0200vandita(~vandit@84-236-10-11.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-23 15:51:25 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 15:52:14 +0200vandita(~vandit@84-236-1-67.pool.digikabel.hu)
2023-05-23 15:53:10 +0200hamzam3(~hamzam3@2a01:e0a:1ee:8c60:91ef:2514:d13e:9327) (Quit: Leaving)
2023-05-23 15:58:08 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-05-23 16:00:45 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-05-23 16:01:21 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
2023-05-23 16:01:25 +0200chomwitt(~chomwitt@athedsl-285388.home.otenet.gr)
2023-05-23 16:05:04 +0200cheater(~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
2023-05-23 16:05:53 +0200barcisz(~barcisz@83.6.194.51.ipv4.supernova.orange.pl)
2023-05-23 16:12:44 +0200cheater(~Username@user/cheater)
2023-05-23 16:14:14 +0200elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
2023-05-23 16:17:50 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 16:21:44 +0200gmg(~user@user/gehmehgeh)
2023-05-23 16:21:48 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2023-05-23 16:22:46 +0200elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
2023-05-23 16:24:12 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
2023-05-23 16:27:15 +0200thegeekinside(~thegeekin@189.141.107.10)
2023-05-23 16:28:15 +0200cheater_(~Username@user/cheater)
2023-05-23 16:30:59 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-05-23 16:31:00 +0200cheater_cheater
2023-05-23 16:33:19 +0200cheater_(~Username@user/cheater)
2023-05-23 16:35:25 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-05-23 16:35:34 +0200cheater_cheater
2023-05-23 16:38:48 +0200cheater_(~Username@user/cheater)
2023-05-23 16:39:38 +0200nick_(~nick@wsip-174-78-110-18.pn.at.cox.net)
2023-05-23 16:40:10 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 16:40:23 +0200gurkenglas(~user@dynamic-046-114-168-101.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2023-05-23 16:40:27 +0200cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-05-23 16:40:34 +0200cheater_cheater
2023-05-23 16:41:16 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-05-23 16:42:56 +0200elmklod(~Elm@94.25.164.115)
2023-05-23 16:48:23 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
2023-05-23 16:51:20 +0200cheater_(~Username@user/cheater)
2023-05-23 16:53:29 +0200cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-05-23 16:53:45 +0200cheater__(~Username@user/cheater)
2023-05-23 16:53:45 +0200cheater__cheater
2023-05-23 16:54:28 +0200barcisz(~barcisz@83.6.194.51.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-05-23 16:56:02 +0200cheater__(~Username@user/cheater)
2023-05-23 16:56:16 +0200cheater_(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-05-23 16:59:12 +0200elmklod(~Elm@94.25.164.115) (Quit: Leaving)
2023-05-23 16:59:35 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-05-23 16:59:47 +0200cheater_(~Username@user/cheater)
2023-05-23 16:59:47 +0200cheater_cheater
2023-05-23 17:00:44 +0200barcisz(~barcisz@83.6.194.51.ipv4.supernova.orange.pl)
2023-05-23 17:01:29 +0200cheater_(~Username@user/cheater)
2023-05-23 17:01:52 +0200cheater__(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-05-23 17:04:01 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-05-23 17:04:04 +0200cheater_cheater
2023-05-23 17:07:52 +0200Sgeo(~Sgeo@user/sgeo)
2023-05-23 17:10:23 +0200 <Inst> is it meaningful to say that there's a canonical recursive type?
2023-05-23 17:10:45 +0200 <Inst> tuple is the canonical product type, either the canonical sum type
2023-05-23 17:11:14 +0200 <Inst> tuple has the limitation that it cannot, well, produce an infinite type :(
2023-05-23 17:11:16 +0200mauke(~mauke@user/mauke)
2023-05-23 17:11:25 +0200acidjnk(~acidjnk@p200300d6e7072f19f418e5b952ba8eeb.dip0.t-ipconnect.de)
2023-05-23 17:12:47 +0200reverse(~inversed@bcdcac82.skybroadband.com) (Ping timeout: 240 seconds)
2023-05-23 17:12:50 +0200 <geekosaur> lists
2023-05-23 17:14:01 +0200 <geekosaur> data [] a = [] | a : [] a -- you can't actually write this though
2023-05-23 17:14:25 +0200 <geekosaur> usually written as data List a = Nil | Cons a (List a)
2023-05-23 17:17:30 +0200eugenrh(~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 250 seconds)
2023-05-23 17:17:39 +0200razetime(~quassel@117.193.6.245)
2023-05-23 17:19:26 +0200 <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
2023-05-23 17:19:28 +0200 <ski> depends on what one means by "canonical recursive type"
2023-05-23 17:19:55 +0200 <ncf> if you go for "simplest", then probably data Void = Void Void
2023-05-23 17:20:17 +0200 <ski> one other take could be `newtype Fix f = In {out :: f (Fix f)}'
2023-05-23 17:22:10 +0200drdo(~drdo@bl8-153-185.dsl.telepac.pt) (Ping timeout: 268 seconds)
2023-05-23 17:22:18 +0200 <ski> (fwiw, i've sometimes used (the equivalent of) `data Void = FromVoid !Void', in SML (namely `datatype void = FromVoid of void'))
2023-05-23 17:22:44 +0200 <ncf> i have a feeling that would ring better in latin
2023-05-23 17:23:25 +0200 <ski> hehe
2023-05-23 17:23:29 +0200 <ncf> (also, is there any difference between the two?)
2023-05-23 17:23:55 +0200 <ski> (less bottoms)
2023-05-23 17:24:06 +0200 <ncf> (right)
2023-05-23 17:24:55 +0200reverse(~inversed@bcdcac82.skybroadband.com)
2023-05-23 17:25:13 +0200drdo(~drdo@bl8-153-185.dsl.telepac.pt)
2023-05-23 17:28:19 +0200barzo(~hd@31.223.56.119) (Remote host closed the connection)
2023-05-23 17:28:45 +0200barzo(~hd@31.223.56.119)
2023-05-23 17:28:52 +0200cheater_(~Username@user/cheater)
2023-05-23 17:31:11 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-05-23 17:31:18 +0200cheater_cheater
2023-05-23 17:33:21 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-05-23 17:33:40 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-05-23 17:34:28 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
2023-05-23 17:34:33 +0200barzo_(~hd@31.223.56.224)
2023-05-23 17:35:16 +0200barzo(~hd@31.223.56.119) (Ping timeout: 250 seconds)
2023-05-23 17:35:38 +0200barzo_(~hd@31.223.56.224) (Client Quit)
2023-05-23 17:36:38 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 17:36:43 +0200cheater_(~Username@user/cheater)
2023-05-23 17:37:44 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:c066:a9b9:79ee:689b) (Quit: WeeChat 2.8)
2023-05-23 17:39:11 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-05-23 17:39:18 +0200cheater_cheater
2023-05-23 17:41:38 +0200__monty__(~toonn@user/toonn)
2023-05-23 17:45:55 +0200barcisz(~barcisz@83.6.194.51.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-05-23 17:56:41 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-05-23 17:57:27 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-05-23 18:00:04 +0200teo(~teo@user/teo) (Remote host closed the connection)
2023-05-23 18:00:55 +0200vandita(~vandit@84-236-1-67.pool.digikabel.hu) (Ping timeout: 256 seconds)
2023-05-23 18:02:42 +0200vandita(~vandit@94-21-233-78.pool.digikabel.hu)
2023-05-23 18:08:58 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Remote host closed the connection)
2023-05-23 18:10:07 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.8)
2023-05-23 18:12:23 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2023-05-23 18:18:58 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2023-05-23 18:19:14 +0200gurkenglas(~user@dynamic-046-114-181-020.46.114.pool.telefonica.de)
2023-05-23 18:19:16 +0200pie_(~pie_bnc@user/pie/x-2818909)
2023-05-23 18:23:52 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-05-23 18:29:03 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-05-23 18:31:28 +0200econo(uid147250@user/econo)
2023-05-23 18:35:25 +0200wiosna(~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-05-23 18:40:33 +0200 <EvanR> Inst, that's not tuples fault. But the occurs check which is slapped onto type checking
2023-05-23 18:41:01 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-05-23 18:41:17 +0200 <EvanR> which looks for cycles in solution of type variables
2023-05-23 18:41:35 +0200ubert(~Thunderbi@p200300ecdf18b63ece9cf92d6fdc3292.dip0.t-ipconnect.de) (Remote host closed the connection)
2023-05-23 18:41:46 +0200ubert1(~Thunderbi@p200300ecdf18b63e4842c57790a52cb6.dip0.t-ipconnect.de)
2023-05-23 18:41:46 +0200cheater(~Username@user/cheater)
2023-05-23 18:42:21 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-05-23 18:43:38 +0200EvanR(~EvanR@user/evanr)
2023-05-23 18:44:03 +0200ubert1ubert
2023-05-23 18:44:10 +0200alternateved(~user@77-253-195-69.adsl.inetia.pl)
2023-05-23 18:47:24 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-05-23 18:55:23 +0200alternateved(~user@77-253-195-69.adsl.inetia.pl) (Remote host closed the connection)
2023-05-23 18:57:53 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net)
2023-05-23 19:04:21 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-05-23 19:07:42 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-05-23 19:09:11 +0200mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-05-23 19:15:17 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2023-05-23 19:17:59 +0200 <carter> sup all!
2023-05-23 19:20:49 +0200titibandit(~titibandi@user/titibandit)
2023-05-23 19:21:42 +0200razetime(~quassel@117.193.6.245) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-05-23 19:23:32 +0200 <Hecate> heya carter
2023-05-23 19:23:33 +0200 <Hecate> o/
2023-05-23 19:23:41 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2023-05-23 19:25:27 +0200mcglk(~mcglk@131.191.19.145)
2023-05-23 19:32:04 +0200titibandit(~titibandi@user/titibandit) (Ping timeout: 265 seconds)
2023-05-23 19:32:28 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net) (Remote host closed the connection)
2023-05-23 19:32:46 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net)
2023-05-23 19:33:28 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-05-23 19:38:37 +0200biberu(~biberu@user/biberu)
2023-05-23 19:45:11 +0200mud(~mud@user/kadoban) (Ping timeout: 240 seconds)
2023-05-23 19:47:12 +0200vandita(~vandit@94-21-233-78.pool.digikabel.hu) (Ping timeout: 248 seconds)
2023-05-23 19:47:45 +0200titibandit(~titibandi@user/titibandit)
2023-05-23 19:48:49 +0200vandita(~vandit@213-197-76-109.pool.digikabel.hu)
2023-05-23 19:52:06 +0200nate2(~nate@98.45.169.16)
2023-05-23 19:52:26 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-05-23 19:56:31 +0200nate2(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2023-05-23 19:59:37 +0200mud(~mud@user/kadoban)
2023-05-23 20:03:52 +0200mbuf(~Shakthi@49.207.178.186) (Quit: Leaving)
2023-05-23 20:13:02 +0200taupiqueur1(~taupiqueu@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net)
2023-05-23 20:15:31 +0200taupiqueur(~taupiqueu@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net) (Ping timeout: 240 seconds)
2023-05-23 20:16:03 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-8d67-b976-d42b-090f.rev.sfr.net) (Ping timeout: 245 seconds)
2023-05-23 20:18:10 +0200eugenrh(~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8)
2023-05-23 20:20:53 +0200MajorBiscuit(~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 246 seconds)
2023-05-23 20:23:28 +0200gurkenglas(~user@dynamic-046-114-181-020.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-23 20:28:15 +0200retropikzel(9d1a4f9f46@2604:bf00:561:2000::ce) (Remote host closed the connection)
2023-05-23 20:28:15 +0200sm2n(ae95cb1267@user/sm2n) (Remote host closed the connection)
2023-05-23 20:28:15 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0) (Remote host closed the connection)
2023-05-23 20:28:15 +0200filwisher_(2e6936c793@2604:bf00:561:2000::170) (Remote host closed the connection)
2023-05-23 20:28:15 +0200fvr(ef3e56ca8b@2604:bf00:561:2000::3c4) (Remote host closed the connection)
2023-05-23 20:28:15 +0200whereiseveryone(206ba86c98@2604:bf00:561:2000::2e4) (Remote host closed the connection)
2023-05-23 20:28:15 +0200b0o(0e4a0bf4c9@2604:bf00:561:2000::1bf) (Remote host closed the connection)
2023-05-23 20:28:15 +0200shreyasminocha(51fdc93eda@user/shreyasminocha) (Write error: Connection reset by peer)
2023-05-23 20:28:16 +0200jleightcap(7bc4014b62@user/jleightcap) (Remote host closed the connection)
2023-05-23 20:28:16 +0200theesm(2cbdf4b38a@2604:bf00:561:2000::11c8) (Write error: Connection reset by peer)
2023-05-23 20:28:16 +0200arcadewise(52968ed80d@2604:bf00:561:2000::3df) (Remote host closed the connection)
2023-05-23 20:28:16 +0200Ankhers(e99e97ef8e@2604:bf00:561:2000::2a2) (Remote host closed the connection)
2023-05-23 20:28:16 +0200henrytill(e0180937c3@2604:bf00:561:2000::e8c) (Remote host closed the connection)
2023-05-23 20:28:16 +0200ymherklotz(cb2c9cfbdd@2604:bf00:561:2000::29a) (Read error: Connection reset by peer)
2023-05-23 20:28:16 +0200samhh(7569f027cf@2604:bf00:561:2000::e4) (Remote host closed the connection)
2023-05-23 20:28:17 +0200MonsoonSecrecy(f78c86e960@2604:bf00:561:2000::f99) (Remote host closed the connection)
2023-05-23 20:28:17 +0200JoelMcCracken(5ea8252fbb@2604:bf00:561:2000::10e3) (Remote host closed the connection)
2023-05-23 20:28:17 +0200ggb(a62ffbaf4f@2604:bf00:561:2000::3ac) (Remote host closed the connection)
2023-05-23 20:28:17 +0200sus(1b7af6299f@user/zeromomentum) (Write error: Connection reset by peer)
2023-05-23 20:28:17 +0200jakzale(6291399afa@user/jakzale) (Remote host closed the connection)
2023-05-23 20:28:17 +0200jkoshy(99b9359beb@user/jkoshy) (Remote host closed the connection)
2023-05-23 20:28:18 +0200probie(cc0b34050a@user/probie) (Write error: Connection reset by peer)
2023-05-23 20:28:18 +0200n1essa(3d621153a5@2604:bf00:561:2000::df7) (Remote host closed the connection)
2023-05-23 20:28:18 +0200cpli(77fc530071@2604:bf00:561:2000::252) (Remote host closed the connection)
2023-05-23 20:28:18 +0200bsima1(9d7e39c8ad@2604:bf00:561:2000::dd) (Remote host closed the connection)
2023-05-23 20:28:18 +0200evanrelf(3addc196af@2604:bf00:561:2000::f0) (Remote host closed the connection)
2023-05-23 20:28:21 +0200lukec(9dfd4d094e@2604:bf00:561:2000::10e) (Remote host closed the connection)
2023-05-23 20:28:22 +0200fluffyballoon(45ce440a48@2604:bf00:561:2000::e2) (Remote host closed the connection)
2023-05-23 20:29:57 +0200ddellacosta(~ddellacos@146.70.171.176) (Quit: WeeChat 3.8)
2023-05-23 20:30:03 +0200ggb(a62ffbaf4f@2604:bf00:561:2000::3ac)
2023-05-23 20:30:04 +0200filwisher(2e6936c793@2604:bf00:561:2000::170)
2023-05-23 20:30:04 +0200lukec(9dfd4d094e@2604:bf00:561:2000::10e)
2023-05-23 20:30:04 +0200bsima1(9d7e39c8ad@2604:bf00:561:2000::dd)
2023-05-23 20:30:14 +0200retropikzel(9d1a4f9f46@2604:bf00:561:2000::ce)
2023-05-23 20:30:14 +0200whereiseveryone(206ba86c98@2604:bf00:561:2000::2e4)
2023-05-23 20:30:14 +0200shreyasminocha(51fdc93eda@user/shreyasminocha)
2023-05-23 20:30:19 +0200jkoshy(99b9359beb@user/jkoshy)
2023-05-23 20:30:19 +0200fluffyballoon(45ce440a48@2604:bf00:561:2000::e2)
2023-05-23 20:31:01 +0200probie(cc0b34050a@user/probie)
2023-05-23 20:31:01 +0200jleightcap(7bc4014b62@user/jleightcap)
2023-05-23 20:31:01 +0200cpli(77fc530071@2604:bf00:561:2000::252)
2023-05-23 20:31:09 +0200b0o(0e4a0bf4c9@2604:bf00:561:2000::1bf)
2023-05-23 20:31:12 +0200n1essa(3d621153a5@2604:bf00:561:2000::df7)
2023-05-23 20:31:12 +0200ymherklotz(cb2c9cfbdd@2604:bf00:561:2000::29a)
2023-05-23 20:31:13 +0200fvr(ef3e56ca8b@2604:bf00:561:2000::3c4)
2023-05-23 20:31:23 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net)
2023-05-23 20:31:24 +0200jakzale(6291399afa@user/jakzale)
2023-05-23 20:31:27 +0200sm2n(ae95cb1267@user/sm2n)
2023-05-23 20:31:27 +0200JoelMcCracken(5ea8252fbb@2604:bf00:561:2000::10e3)
2023-05-23 20:31:27 +0200arcadewise(52968ed80d@2604:bf00:561:2000::3df)
2023-05-23 20:31:28 +0200samhh(7569f027cf@2604:bf00:561:2000::e4)
2023-05-23 20:31:28 +0200sus(1b7af6299f@user/zeromomentum)
2023-05-23 20:31:33 +0200henrytill(e0180937c3@2604:bf00:561:2000::e8c)
2023-05-23 20:31:36 +0200evanrelf(3addc196af@2604:bf00:561:2000::f0)
2023-05-23 20:31:41 +0200theesm(2cbdf4b38a@2604:bf00:561:2000::11c8)
2023-05-23 20:31:43 +0200MonsoonSecrecy(f78c86e960@2604:bf00:561:2000::f99)
2023-05-23 20:31:45 +0200gensyst(~gensyst@user/gensyst) (Quit: Leaving)
2023-05-23 20:31:46 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0)
2023-05-23 20:31:50 +0200Ankhers(e99e97ef8e@2604:bf00:561:2000::2a2)
2023-05-23 20:32:31 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net) (Remote host closed the connection)
2023-05-23 20:32:50 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net)
2023-05-23 20:34:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 20:34:34 +0200TMA(tma@twin.jikos.cz) (Ping timeout: 268 seconds)
2023-05-23 20:35:45 +0200chomwitt(~chomwitt@athedsl-285388.home.otenet.gr) (Ping timeout: 240 seconds)
2023-05-23 20:37:04 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:8d0b:d6b6:c02a:1360) (Remote host closed the connection)
2023-05-23 20:37:23 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-05-23 20:42:40 +0200ubert(~Thunderbi@p200300ecdf18b63e4842c57790a52cb6.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-05-23 20:44:43 +0200taupiqueur2(~taupiqueu@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
2023-05-23 20:46:28 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net) (Ping timeout: 245 seconds)
2023-05-23 20:47:08 +0200taupiqueur1(~taupiqueu@2a02-842a-8180-4601-71cd-634c-6227-daa4.rev.sfr.net) (Ping timeout: 240 seconds)
2023-05-23 20:47:38 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
2023-05-23 20:50:45 +0200ubert(~Thunderbi@p200300ecdf18b63e823e7c78f801aef9.dip0.t-ipconnect.de)
2023-05-23 20:54:51 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-05-23 20:55:52 +0200zeenk(~zeenk@2a02:2f04:a105:f00::7fe)
2023-05-23 20:57:08 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 21:00:00 +0200zer0bitz_zer0bitz
2023-05-23 21:03:14 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-05-23 21:07:17 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 265 seconds)
2023-05-23 21:15:10 +0200ft(~ft@p4fc2a88b.dip0.t-ipconnect.de)
2023-05-23 21:15:39 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 21:17:59 +0200ddb(~ddb@tilde.club) (Quit: WeeChat 3.6)
2023-05-23 21:21:04 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 248 seconds)
2023-05-23 21:21:46 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-05-23 21:24:47 +0200nschoe(~q@2a01:e0a:8e:a190:1e90:eaba:66b5:fb61) (Ping timeout: 264 seconds)
2023-05-23 21:31:51 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Remote host closed the connection)
2023-05-23 21:33:04 +0200hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2023-05-23 21:33:35 +0200gurkenglas(~user@dynamic-046-114-181-020.46.114.pool.telefonica.de)
2023-05-23 21:38:09 +0200npmania(~Thunderbi@121.128.226.31)
2023-05-23 21:43:01 +0200npmania(~Thunderbi@121.128.226.31) (Ping timeout: 268 seconds)
2023-05-23 21:43:09 +0200taupiqueur2(~taupiqueu@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Quit: WeeChat 3.8)
2023-05-23 21:43:20 +0200npmania(~Thunderbi@138.199.21.242)
2023-05-23 21:43:25 +0200dsrt^(~dsrt@c-71-204-38-59.hsd1.ga.comcast.net)
2023-05-23 21:43:34 +0200eugenrh(~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 250 seconds)
2023-05-23 21:45:18 +0200mechap(~mechap@user/mechap)
2023-05-23 21:47:56 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Remote host closed the connection)
2023-05-23 21:48:20 +0200thegeekinside(~thegeekin@189.141.107.10) (Remote host closed the connection)
2023-05-23 21:49:16 +0200taupiqueur(~taupiqueu@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
2023-05-23 21:49:51 +0200vandita(~vandit@213-197-76-109.pool.digikabel.hu) (Ping timeout: 256 seconds)
2023-05-23 21:51:10 +0200vandita(~vandit@193-226-233-59.pool.digikabel.hu)
2023-05-23 21:52:47 +0200thegeekinside(~thegeekin@189.141.107.10)
2023-05-23 21:53:23 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
2023-05-23 21:53:55 +0200 <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/
2023-05-23 21:54:14 +0200 <geekosaur> the discourse and maybe /r/haskell
2023-05-23 21:54:26 +0200 <geekosaur> probably haskell-cafe too
2023-05-23 21:55:09 +0200Guest61(~Guest61@2a02-a464-bc6c-1-947f-cae5-1f74-1789.fixed6.kpn.net)
2023-05-23 21:56:59 +0200 <carter> Yeah that’s probably the right channels
2023-05-23 21:59:04 +0200 <kaol> Ok, thanks, done to Discourse. We have a reservation for 50 people and still have room for 19.
2023-05-23 22:01:30 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 22:05:28 +0200hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-05-23 22:06:27 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
2023-05-23 22:07:51 +0200quarkyalice(~alice@199.sub-97-136-32.myvzw.com)
2023-05-23 22:07:51 +0200quarkyalice(~alice@199.sub-97-136-32.myvzw.com) (Changing host)
2023-05-23 22:07:51 +0200quarkyalice(~alice@user/quarkyalice)
2023-05-23 22:09:34 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-05-23 22:13:47 +0200tok(~user@user/tok) (Remote host closed the connection)
2023-05-23 22:17:18 +0200quarkyalice(~alice@user/quarkyalice) (Remote host closed the connection)
2023-05-23 22:17:44 +0200quarkyalice(~alice@199.sub-97-136-32.myvzw.com)
2023-05-23 22:17:44 +0200quarkyalice(~alice@199.sub-97-136-32.myvzw.com) (Changing host)
2023-05-23 22:17:44 +0200quarkyalice(~alice@user/quarkyalice)
2023-05-23 22:19:20 +0200mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-05-23 22:21:10 +0200mechap(~mechap@user/mechap)
2023-05-23 22:30:05 +0200nick_(~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 256 seconds)
2023-05-23 22:32:37 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3)
2023-05-23 22:35:17 +0200oo_miguel(~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds)
2023-05-23 22:37:01 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:6cda:5d2c:763a:75d3) (Ping timeout: 240 seconds)
2023-05-23 22:46:02 +0200pavonia(~user@user/siracusa)
2023-05-23 22:49:37 +0200 <ghostbuster> hutton book is here, thank $deity for next-day shipping
2023-05-23 22:52:50 +0200Guest61(~Guest61@2a02-a464-bc6c-1-947f-cae5-1f74-1789.fixed6.kpn.net) (Quit: Client closed)
2023-05-23 23:00:20 +0200trev(~trev@user/trev) (Quit: trev)
2023-05-23 23:00:48 +0200takuan_dozo(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-05-23 23:10:36 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Remote host closed the connection)
2023-05-23 23:10:55 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net)
2023-05-23 23:14:21 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-05-23 23:15:25 +0200gurkenglas(~user@dynamic-046-114-181-020.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-23 23:16:06 +0200 <ghostbuster> so.. this function works, but it has to compute fib n even if it's going to throw away most of the work
2023-05-23 23:16:09 +0200 <ghostbuster> https://termbin.com/jilb
2023-05-23 23:16:14 +0200ubert(~Thunderbi@p200300ecdf18b63e823e7c78f801aef9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-05-23 23:16:21 +0200ubert1(~Thunderbi@p200300ecdf18b6df36e22024a437cc27.dip0.t-ipconnect.de)
2023-05-23 23:17:34 +0200 <jade[m]> indeed
2023-05-23 23:17:41 +0200 <jade[m]> I'm not sure I understand fibTo
2023-05-23 23:18:30 +0200 <ghostbuster> it's a partial solution to this challenge https://projecteuler.net/problem=2
2023-05-23 23:18:39 +0200ubert1ubert
2023-05-23 23:18:55 +0200 <[exa]> hm is there any common reason why `cabal haddock` would refuse to generate docs for an executable?
2023-05-23 23:19:03 +0200michalz(~michalz@185.246.204.89) (Remote host closed the connection)
2023-05-23 23:19:27 +0200 <Rembane> ghostbuster: Would you like a hint?
2023-05-23 23:19:48 +0200 <[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
2023-05-23 23:19:58 +0200 <[exa]> with -v I end up with: whenReRegister: nothing to register
2023-05-23 23:20:51 +0200 <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
2023-05-23 23:21:38 +0200 <Rembane> ghostbuster: Cool. What's your assumption? That it has to throw away most of its work?
2023-05-23 23:22:06 +0200 <mauke> fibTo makes no sense. also, why does it compute fib n twice?
2023-05-23 23:22:57 +0200 <ghostbuster> i guess i misunderstood what lazy evaluation means
2023-05-23 23:23:43 +0200 <jade[m]> if needs to evaluate the argument in the condition to see what branch it'll take
2023-05-23 23:23:43 +0200 <ghostbuster> i figured it would cache the result of fib n
2023-05-23 23:23:44 +0200 <Rembane> ghostbuster: All values are still needed which is why they are evaluated.
2023-05-23 23:24:05 +0200 <mauke> Int is "atomic" for our purposes
2023-05-23 23:24:06 +0200 <jade[m]> ghostbuster: only if you bind it like `let result = fib n in ...`
2023-05-23 23:24:18 +0200 <[exa]> ghostbuster: it does, but in a surprising way (it caches each "invocation" of the `fib n` separately)
2023-05-23 23:24:29 +0200 <mauke> fib n < l will not shortcut the computation
2023-05-23 23:24:42 +0200 <[exa]> ghostbuster: which ain't particularly useful but I guess the narrative will develop eventually
2023-05-23 23:24:47 +0200 <mauke> so a large value of n will do exponential work, no matter what l is
2023-05-23 23:25:00 +0200 <ghostbuster> mauke: yeah i've realized that now
2023-05-23 23:25:18 +0200 <ghostbuster> i didn't realize it was exponential
2023-05-23 23:25:52 +0200 <mauke> each call to fib results in two recursive calls to fib
2023-05-23 23:25:58 +0200 <mauke> that's like 2^n runtime
2023-05-23 23:26:14 +0200 <mauke> most of which is duplicated work
2023-05-23 23:26:16 +0200 <[exa]> ghostbuster: otoh if you would write e.g. `myNumber = fib 20 :: Integer ` to the toplevel, that is going to get memoized
2023-05-23 23:26:45 +0200 <ghostbuster> why is it 2^n?
2023-05-23 23:27:02 +0200 <ghostbuster> oh i see, nvm
2023-05-23 23:27:14 +0200 <jade[m]> because each call to fib calls fib twice again
2023-05-23 23:27:25 +0200 <jade[m]> reducing linearly
2023-05-23 23:27:30 +0200 <ghostbuster> yeah i won't ship this to production yet
2023-05-23 23:27:37 +0200 <mauke> 2*2*2*..., n layers deep
2023-05-23 23:28:15 +0200 <jade[m]> this is an interesting next step after solving the inital problem - how can you efficiently represent this computation with a datatype
2023-05-23 23:28:40 +0200 <mauke> heh
2023-05-23 23:28:49 +0200 <mauke> that part is a bit counterintuitive
2023-05-23 23:29:12 +0200 <ghostbuster> i don't think it's possible to solve this challenge with a classic implementation of fib that's called by other functions
2023-05-23 23:29:33 +0200 <jade[m]> oh, it is
2023-05-23 23:29:49 +0200 <ghostbuster> hmm ok
2023-05-23 23:29:52 +0200 <mauke> not if by "classic" you mean the double-recursive one
2023-05-23 23:30:02 +0200 <mauke> because that's a stupid use of recursion
2023-05-23 23:30:15 +0200 <ghostbuster> hmm
2023-05-23 23:30:34 +0200 <jade[m]> even that would be possible if you used a tree that stores intermediate computations
2023-05-23 23:30:39 +0200ghostbustergoes back to reading his new book
2023-05-23 23:30:41 +0200 <[exa]> (math people still love it!)
2023-05-23 23:30:44 +0200 <jade[m]> but a linear sum is easier
2023-05-23 23:30:47 +0200jero98772(~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 264 seconds)
2023-05-23 23:31:36 +0200 <ghostbuster> i thought haskell programmers were math people
2023-05-23 23:31:46 +0200 <jade[m]> this is my favorite way to write the fibonacci sequence ||fibs = 0 : 1 : zipWith (+) fibs (tail fibs)||
2023-05-23 23:31:55 +0200 <jade[m]> ah shit, why did it not spoiler
2023-05-23 23:32:05 +0200 <jade[m]> nevermind
2023-05-23 23:32:10 +0200 <mauke> because this is IRC :-)
2023-05-23 23:32:42 +0200 <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
2023-05-23 23:32:43 +0200 <lambdabot> 233
2023-05-23 23:32:55 +0200 <mauke> that doesn't sound right
2023-05-23 23:33:51 +0200 <Rembane> Is 233 in the sequence at all?
2023-05-23 23:33:59 +0200 <Rembane> > 89 + 144
2023-05-23 23:34:00 +0200 <lambdabot> 233
2023-05-23 23:34:04 +0200 <Rembane> It is!
2023-05-23 23:34:05 +0200 <mauke> oh, I see. it's off by 2
2023-05-23 23:34:17 +0200 <Rembane> Off by one error twice. The good stuff.
2023-05-23 23:34:24 +0200 <mauke> everyone knows the 12th fibonacci number is 12²
2023-05-23 23:34:51 +0200 <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
2023-05-23 23:34:52 +0200 <lambdabot> 144
2023-05-23 23:35:26 +0200 <[exa]> ghostbuster: math people tangled by finitist reality, yeah
2023-05-23 23:35:29 +0200 <mauke> anyway, this is the functional equivalent of a loop that just adds up numbers
2023-05-23 23:35:48 +0200 <jade[m]> > let fibs = 0 : 1 : zipWith (+) fibs (tail fibs) in fibs !! 12
2023-05-23 23:35:49 +0200 <lambdabot> 144
2023-05-23 23:36:14 +0200 <dminuoso> mauke: I think its not just the "equivalent" of a loop - it is a loop.
2023-05-23 23:36:23 +0200 <mauke> which you can think of as a simulation of walking along the fibonacci sequence from the beginning, generating elements as you go
2023-05-23 23:36:29 +0200 <dminuoso> Unless we call (+) the functional equivalent of adding numbers too.
2023-05-23 23:36:50 +0200 <mauke> it's not a loop because it doesn't use 'while'
2023-05-23 23:36:56 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-c838-cb30-96bb-1347.rev.sfr.net) (Remote host closed the connection)
2023-05-23 23:37:12 +0200 <dminuoso> So `for(;;) { ... }` in C is not a loop either?
2023-05-23 23:37:20 +0200 <[exa]> int-e: quick question, did you manage to find a workaround for https://github.com/haskell/cabal/issues/5890 ?
2023-05-23 23:37:58 +0200 <mauke> oh, in C you get three types of explicit loops: while, for, do/while
2023-05-23 23:38:04 +0200 <mauke> but they're all kind of the same thing
2023-05-23 23:38:19 +0200 <dminuoso> mauke: just like recursion goes into "kind of the same thing".
2023-05-23 23:38:27 +0200 <mauke> plus two ways of implied looping, goto and longjmp
2023-05-23 23:38:54 +0200 <dminuoso> In STG a function call is sort of a goto too.
2023-05-23 23:39:08 +0200 <dminuoso> very much so in fact.
2023-05-23 23:39:11 +0200 <ncf> jade[m]: coinductive fib is based
2023-05-23 23:39:23 +0200 <mauke> that's an implementation detail
2023-05-23 23:39:41 +0200TMA(tma@twin.jikos.cz)
2023-05-23 23:39:44 +0200 <mauke> just because C is compiled to Haskell doesn't make it a functional language
2023-05-23 23:39:47 +0200 <dminuoso> mauke: so is the "goto" (jnz) inside for loops.
2023-05-23 23:39:50 +0200 <dminuoso> Its a detail.
2023-05-23 23:40:32 +0200 <dminuoso> loops are a form of control flow
2023-05-23 23:41:00 +0200 <jade[m]> it's all just words, they don't mean anything by themselves
2023-05-23 23:41:01 +0200 <dminuoso> And if you insist that control flow to be somehow part of a languages vocabulary, Haskell brings Data.Function.fix
2023-05-23 23:41:07 +0200 <jade[m]> it depends on the context you put them in
2023-05-23 23:41:17 +0200 <mauke> doesn't mean all control flow is loops
2023-05-23 23:41:28 +0200 <dminuoso> Of course not, but recursion is loops.
2023-05-23 23:41:44 +0200 <dminuoso> They are equivalent.
2023-05-23 23:41:48 +0200 <jade[m]> and loops are recursion by the same reasoning
2023-05-23 23:41:54 +0200 <jade[m]> yeah, it doesn't matter
2023-05-23 23:41:57 +0200 <jade[m]> it's just words
2023-05-23 23:42:05 +0200 <mauke> if they were the same, they would have no need to be equivalent
2023-05-23 23:42:07 +0200jero98772(~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
2023-05-23 23:42:09 +0200 <jade[m]> they don't mean anything by themselves
2023-05-23 23:42:12 +0200 <jade[m]> context matters
2023-05-23 23:42:38 +0200 <dminuoso> mauke: The only real difference is that of structured programming.
2023-05-23 23:43:02 +0200 <dminuoso> That is, `for/while/etc` is *structured* control flow, whereas recursion is unstructured.
2023-05-23 23:43:15 +0200 <dminuoso> But both are loops just fine.
2023-05-23 23:43:18 +0200 <mauke> recursion isn't even control flow
2023-05-23 23:43:34 +0200 <mauke> it's about pronouns
2023-05-23 23:44:10 +0200 <mauke> > let it = 0 : it in it
2023-05-23 23:44:12 +0200 <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...
2023-05-23 23:45:27 +0200 <mauke> speaking of loops, do you happen to know an algorithm that can traverse an arbitrary graph in O(1) memory?
2023-05-23 23:45:51 +0200 <dminuoso> mauke: Recursion is as much control flow as it possibly can be. Control flow is literally about the flow of program control.
2023-05-23 23:46:01 +0200 <dminuoso> You can visually draw the flow of control in case of recursion.
2023-05-23 23:46:28 +0200 <mauke> I can (temporarily) mutate the nodes to detect cycles, but the obvious recursive implementation takes O(n) stack
2023-05-23 23:47:18 +0200 <mauke> I can visually draw the flow of control in case of no recursion, too
2023-05-23 23:47:45 +0200 <mauke> > let it = const 42 it in it -- a recursive definition
2023-05-23 23:47:46 +0200 <lambdabot> 42
2023-05-23 23:48:01 +0200 <jade[m]> the real control flow is the friends we made along the way
2023-05-23 23:48:17 +0200 <dminuoso> That's just introducing ambiguous nomenclature.
2023-05-23 23:48:40 +0200 <dminuoso> Can we agree to define `recursion` to refer to recursive function calls?
2023-05-23 23:48:58 +0200 <mauke> no
2023-05-23 23:49:23 +0200 <mauke> someone once told me that haskell has no function calls
2023-05-23 23:50:02 +0200 <dminuoso> You're just arguing on word plays now. Im going to abondon this conversation.
2023-05-23 23:50:06 +0200freeside(~mengwong@103.252.202.151)
2023-05-23 23:50:19 +0200 <mauke> I mean, you started it
2023-05-23 23:50:30 +0200 <jade[m]> https://en.m.wikipedia.org/wiki/Semantic_discord
2023-05-23 23:51:54 +0200 <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"
2023-05-23 23:51:58 +0200 <mauke> what
2023-05-23 23:52:51 +0200 <jade[m]> lmao
2023-05-23 23:52:56 +0200 <jade[m]> peak wikipedia
2023-05-23 23:53:07 +0200nate2(~nate@98.45.169.16)
2023-05-23 23:54:02 +0200vandita(~vandit@193-226-233-59.pool.digikabel.hu) (Ping timeout: 265 seconds)
2023-05-23 23:54:40 +0200freeside(~mengwong@103.252.202.151) (Ping timeout: 248 seconds)
2023-05-23 23:55:35 +0200vandita(~vandit@178-164-206-99.pool.digikabel.hu)
2023-05-23 23:57:52 +0200nate2(~nate@98.45.169.16) (Ping timeout: 248 seconds)