Home liberachat/#haskell: Logs Calendar

Logs on 2021-12-01 (liberachat/#haskell)

00:00:02 × zopsi_ quits (zopsi@2600:3c00::f03c:91ff:fe14:551f) (Quit: Oops)
00:00:03 × jinsun quits (~quassel@user/jinsun) (*.net *.split)
00:00:03 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (*.net *.split)
00:00:03 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (*.net *.split)
00:00:03 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (*.net *.split)
00:00:03 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
00:00:03 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (*.net *.split)
00:00:03 × curiousgay quits (~curiousga@77-120-141-90.kha.volia.net) (*.net *.split)
00:00:03 × dwt_ quits (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (*.net *.split)
00:00:03 × caubert quits (~caubert@136.244.111.235) (*.net *.split)
00:00:03 × heath quits (~heath@user/heath) (*.net *.split)
00:00:03 × Patternmaster quits (~georg@li1192-118.members.linode.com) (*.net *.split)
00:00:03 × jackhill quits (~jackhill@kalessin.dragonsnail.net) (*.net *.split)
00:00:03 × Teacup_ quits (~teacup@user/teacup) (*.net *.split)
00:00:03 × oats quits (~thomas@user/oats) (*.net *.split)
00:00:03 × haskl quits (~haskl@user/haskl) (*.net *.split)
00:00:03 × dolio quits (~dolio@130.44.130.54) (*.net *.split)
00:00:03 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split)
00:00:03 × Alex_test quits (~al_test@178.34.160.14) (*.net *.split)
00:00:03 × AlexZenon quits (~alzenon@178.34.160.14) (*.net *.split)
00:00:03 × ystael quits (~ystael@user/ystael) (*.net *.split)
00:00:03 × filwisher quits (2e6936c793@2604:bf00:561:2000::170) (*.net *.split)
00:00:03 × emf quits (~emf@2620:10d:c090:400::5:d28b) (*.net *.split)
00:00:03 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (*.net *.split)
00:00:03 × ehamberg_ quits (sid18208@id-18208.hampstead.irccloud.com) (*.net *.split)
00:00:03 × yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (*.net *.split)
00:00:03 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (*.net *.split)
00:00:03 × natechan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (*.net *.split)
00:00:03 × iqubic quits (~user@2601:602:9502:c70:6765:a5f:e5b9:6c69) (*.net *.split)
00:00:03 × terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (*.net *.split)
00:00:03 × nickdaly quits (45ce440a48@2604:bf00:561:2000::e2) (*.net *.split)
00:00:04 × FragByte quits (~christian@user/fragbyte) (*.net *.split)
00:00:04 × ozzymcduff quits (~mathieu@81-234-151-21-no94.tbcn.telia.com) (*.net *.split)
00:00:04 × Logio quits (em@kapsi.fi) (*.net *.split)
00:00:04 × glider quits (~glider@user/glider) (*.net *.split)
00:00:04 × lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (*.net *.split)
00:00:04 × jkoshy quits (99b9359beb@2604:bf00:561:2000::10f) (*.net *.split)
00:00:04 × sm2n quits (ae95cb1267@user/sm2n) (*.net *.split)
00:00:04 × acidsys quits (~LSD@2.lsd.systems) (*.net *.split)
00:00:04 × sander quits (~sander@user/sander) (*.net *.split)
00:00:04 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
00:00:04 × arahael quits (~arahael@27-32-144-20.tpgi.com.au) (*.net *.split)
00:00:04 × evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (*.net *.split)
00:00:04 × zmt00 quits (~zmt00@user/zmt00) (*.net *.split)
00:00:04 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (*.net *.split)
00:00:04 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
00:00:04 × sweater quits (~sweater@206.81.18.26) (*.net *.split)
00:00:04 × carbolymer quits (~carbolyme@dropacid.net) (*.net *.split)
00:00:04 × shanemikel quits (~shanemike@desk.roadwar.net) (*.net *.split)
00:00:04 × remexre quits (~remexre@user/remexre) (*.net *.split)
00:00:04 × teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split)
00:00:04 × dyniec quits (~dyniec@mail.dybiec.info) (*.net *.split)
00:00:04 × rembo10 quits (~rembo10@remulis.com) (*.net *.split)
00:00:04 × TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
00:00:04 × cocreature quits (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split)
00:00:04 × xacktm quits (xacktm@user/xacktm) (*.net *.split)
00:00:11 lukec joins (9dfd4d094e@2604:bf00:561:2000::10e)
00:00:13 TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667)
00:00:16 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
00:00:19 dyniec joins (~dyniec@mail.dybiec.info)
00:00:20 Alex_test joins (~al_test@178.34.160.14)
00:00:20 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
00:00:21 AlexZenon joins (~alzenon@178.34.160.14)
00:00:22 teddyc joins (theodorc@cassarossa.samfundet.no)
00:00:23 sm2n joins (ae95cb1267@user/sm2n)
00:00:23 jkoshy joins (99b9359beb@2604:bf00:561:2000::10f)
00:00:26 nickdaly joins (45ce440a48@2604:bf00:561:2000::e2)
00:00:28 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
00:00:28 Logio joins (em@kapsi.fi)
00:00:28 FragByte joins (~christian@p579d2134.dip0.t-ipconnect.de)
00:00:31 caubert joins (~caubert@136.244.111.235)
00:00:35 ehamberg_ joins (sid18208@id-18208.hampstead.irccloud.com)
00:00:36 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
00:00:38 × FragByte quits (~christian@p579d2134.dip0.t-ipconnect.de) (Changing host)
00:00:38 FragByte joins (~christian@user/fragbyte)
00:00:41 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
00:00:42 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
00:00:47 Teacup joins (~teacup@user/teacup)
00:01:01 zopsi joins (~zopsi@irc.dir.ac)
00:01:14 natechan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
00:01:19 rembo10 joins (~rembo10@remulis.com)
00:01:57 yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
00:02:06 dwt_ joins (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net)
00:02:09 filwisher joins (2e6936c793@2604:bf00:561:2000::170)
00:02:11 sander joins (~sander@user/sander)
00:02:14 shanemikel joins (~shanemike@desk.roadwar.net)
00:02:15 heath joins (~heath@user/heath)
00:02:18 jinsun joins (~quassel@user/jinsun)
00:02:18 dolio joins (~dolio@130.44.130.54)
00:02:25 carbolymer joins (~carbolyme@dropacid.net)
00:02:27 xacktm joins (xacktm@user/xacktm)
00:02:29 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
00:02:34 acidsys joins (~LSD@2.lsd.systems)
00:02:35 oats joins (~thomas@user/oats)
00:02:35 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
00:02:42 haskl joins (~haskl@user/haskl)
00:02:42 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
00:02:55 curiousgay joins (~curiousga@77-120-141-90.kha.volia.net)
00:03:05 <davean> EvanR: Also, like acid-state has NOT built in recovery
00:03:05 × lbseale_ quits (~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
00:03:14 <EvanR> eh?
00:03:16 sweater joins (~sweater@206.81.18.26)
00:03:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
00:03:17 remexre joins (~remexre@user/remexre)
00:03:18 <davean> either it comes up because everything went well or you get all the peices
00:03:27 cocreature joins (~moritz@2a03:b0c0:3:d0::c8:f001)
00:03:31 <EvanR> that part I did not know
00:03:33 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
00:04:11 × jeetelongname quits (~jeet@eduroam-public-46.nat.port.ac.uk) (Ping timeout: 256 seconds)
00:04:11 × noctux quits (~noctux@user/noctux) (Ping timeout: 256 seconds)
00:04:12 <EvanR> even my shitty append-only log for my MUD server could recover
00:04:15 glider joins (~glider@user/glider)
00:04:29 noctux joins (~noctux@user/noctux)
00:05:09 <davean> I mean acid state is an operational append log with rollup
00:05:11 jackhill joins (~jackhill@kalessin.dragonsnail.net)
00:05:16 Patternmaster joins (~georg@li1192-118.members.linode.com)
00:05:22 ozzymcduff joins (~mathieu@81-234-151-21-no94.tbcn.telia.com)
00:05:24 ystael joins (~ystael@user/ystael)
00:06:08 emf joins (~emf@2620:10d:c090:400::5:d28b)
00:06:55 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
00:07:01 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
00:07:14 jeetelongname joins (~jeet@148.197.248.46)
00:07:57 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.3)
00:08:11 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
00:08:32 × sheb quits (~sheb@31.223.228.71) (Ping timeout: 240 seconds)
00:10:50 <concrete-houses> acid state!! happstack.com!! I am beginning to think that centralized databases are a huge mistake and bs of usury bankers
00:11:13 <maerwald> right... you should enjoy blockchain
00:11:23 <maerwald> it's pretty simple... look
00:11:46 <concrete-houses> I am stunned how ahrd sql adn psotgresql are to use
00:11:59 <concrete-houses> how poor the docs are
00:12:09 <concrete-houses> endless manusl
00:12:12 <concrete-houses> no howto to do x y
00:12:20 <concrete-houses> almsot as if its a distraction to keep u poor
00:12:23 <EvanR> 🤔
00:13:32 <davean> uh what?
00:13:58 <maerwald> it's a blockchain scam... wait for it :D
00:14:01 <hpc> sql adn psotgresql are ahrd :P
00:15:00 <EvanR> > sort "sql adn psotgresql are ahrd"
00:15:02 <lambdabot> " aaaddeeghllnopqqrrrssst"
00:15:13 <janus> concrete-houses: i know your struggle. you like relational algebra but sql doesn't respect it
00:15:15 <EvanR> fixed it
00:15:18 <janus> i know the project that saves the day
00:15:23 <janus> @package Project-M36
00:15:23 <lambdabot> https://hackage.haskell.org/package/Project-M36
00:15:26 <hpc> EvanR: sorted it all out, one might say
00:15:32 <janus> oh ok here it is https://github.com/agentm/project-m36
00:16:02 <janus> relational algebra built totally in haskell with much type fanciness that lets you collaborate with the compiler in harmony
00:16:29 <EvanR> but is it web scale
00:16:52 <janus> yes, it doesn't require all data to be in memory. in theory.
00:17:55 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
00:19:05 <janus> there is even an irc channel on this network, but you must be patient because Agent M doesn't use a bouncer, iirc: #project-m36
00:19:33 <EvanR> what's up with haskellDB, is that still a thing
00:19:35 <davean> Bouncers are weird
00:22:03 <janus> EvanR: haskellDB looks like it compiles to SQL, so not nearly as ambitious as Project M36
00:22:08 × jeetelongname quits (~jeet@148.197.248.46) (Remote host closed the connection)
00:22:40 <janus> but no, haskellDB doesn't seem active, no commits since 2019
00:22:47 <EvanR> that's ancient
00:22:54 <EvanR> jk
00:22:59 Feuermagier joins (~Feuermagi@user/feuermagier)
00:23:19 <EvanR> give them time to recover from the pandemic
00:23:35 <janus> the drivers havn't been touched for 9 years ;)
00:23:58 <EvanR> good that means they work with databases
00:24:07 <EvanR> that are that old
00:24:27 <EvanR> vintage drivers
00:25:03 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:26:51 × jgeerds quits (~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 256 seconds)
00:27:20 jeetelongname joins (~jeet@148.197.248.46)
00:30:17 <dsal> What's wrong with postgres docs? I've found them quite good.
00:31:07 <monochrom> Can I ban that person already?
00:32:20 <Axman6> yeah postgres has some of the best docs of any project I use regularly
00:32:36 × zava quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
00:32:57 <janus> monochrom: yes you can :)
00:32:58 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 265 seconds)
00:33:09 <monochrom> Pretty sure they just mean the entitlement attitude "the doc does not teach me SQL for free".
00:33:25 <janus> i still think it is an elaborate joke on the culture of the channel
00:33:27 ChanServ sets mode +o monochrom
00:33:30 justache is now known as totallynotjustac
00:33:32 × seanparsons quits (~seanparso@cpc158525-gill21-2-0-cust151.20-1.cable.virginm.net) (Ping timeout: 240 seconds)
00:33:34 monochrom sets mode +b *!*@209.6.150.53
00:33:34 concrete-houses is kicked by monochrom (concrete-houses)
00:33:47 pfurla joins (~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41)
00:33:59 iqubic joins (~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59)
00:34:10 totallynotjustac is now known as justache
00:34:11 <Axman6> and nothing of value was lost
00:34:31 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
00:34:35 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 268 seconds)
00:35:40 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
00:39:12 <jeetelongname> dis postgress and get the hammer /s
00:39:19 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
00:39:26 <Axman6> damn right
00:39:47 <Axman6> We can't have PHP with the first P
00:41:03 seanparsons joins (~seanparso@cpc158525-gill21-2-0-cust151.20-1.cable.virginm.net)
00:41:17 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:41:17 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
00:41:17 wroathe joins (~wroathe@user/wroathe)
00:42:06 Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
00:43:45 <maerwald> postgres keeps you poor... blockchain makes you rich
00:43:47 <maerwald> checks out
00:44:15 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
00:49:59 mvk joins (~mvk@2607:fea8:5cc1:fa00::4702)
00:50:15 pfurla_ joins (~pfurla@205-185-222-149.ipvanish.com)
00:51:37 × pfurla quits (~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41) (Ping timeout: 250 seconds)
00:54:47 lbseale joins (~ep1ctetus@user/ep1ctetus)
00:57:10 justache is now known as zoite
00:58:05 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
00:59:11 zoite is now known as z0ite
00:59:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:04:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
01:08:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds)
01:09:35 zuserm joins (~mz@71.161.92.216)
01:10:09 lbseale_ joins (~ep1ctetus@user/ep1ctetus)
01:10:19 <zuserm> can anyone help my with stack on nixos?
01:10:49 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:15 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
01:13:53 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds)
01:15:17 × acidjnk_new quits (~acidjnk@p200300d0c7271e72351a12a888efd4cb.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
01:15:23 pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
01:16:56 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:14 gentauro joins (~gentauro@user/gentauro)
01:17:30 × tinwood quits (~tinwood@canonical/tinwood) (Remote host closed the connection)
01:17:54 × pfurla_ quits (~pfurla@205-185-222-149.ipvanish.com) (Ping timeout: 256 seconds)
01:20:34 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
01:20:34 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host)
01:20:34 tinwood joins (~tinwood@canonical/tinwood)
01:21:45 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
01:23:15 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
01:25:06 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
01:25:06 allbery_b joins (~geekosaur@xmonad/geekosaur)
01:25:09 allbery_b is now known as geekosaur
01:26:43 sus joins (zero@user/zeromomentum)
01:28:20 <dsal> zuserm: possibly.
01:28:38 <dsal> Native ghc no longer works on my new laptop. heh
01:29:39 <zuserm> I'm trying to run "stack script test.hs" and I'm getting "Executable named nix-shell not found on path: ..."
01:30:06 <dsal> Not having nix-shell in your path on a nixos machine seems a bit odd.
01:30:40 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
01:30:48 <dsal> I don't do stack scripts, though. There's a bunch of indirection along the way.
01:33:34 <zuserm> alternately if I run "stack script --no-nix test.hs" "I don't know how to install GHC on your system configuration, please install manually" but I already have the same version of ghc installed as the resolver I'm trying to use
01:33:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:35:57 <geekosaur> you would also need --system-ghc
01:36:10 <geekosaur> because stack really really wants to install and manage its own ghcs
01:39:10 zero is now known as yin
01:40:32 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
01:40:55 lbseale__ joins (~ep1ctetus@user/ep1ctetus)
01:41:18 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
01:42:57 × lbseale__ quits (~ep1ctetus@user/ep1ctetus) (Client Quit)
01:43:26 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
01:44:29 × lbseale_ quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds)
01:49:39 renzhi joins (~xp@2607:fa49:6500:b100::5cef)
01:56:43 <EvanR> ghcup is awesome
01:57:31 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
01:58:03 <zuserm> geekosaur: --system-ghc doesn't help :(
01:58:44 <geekosaur> mrr, wonder if that works with stack script then
01:59:22 × DNH quits (~DNH@2a02:8108:1100:16d8:f00d:18c8:3973:574b) (Quit: Textual IRC Client: www.textualapp.com)
02:00:55 <lechner> Hi, can aeson's Generics parser handle sum types? Thanks!
02:02:19 <dsal> lechner: you mean simple enums? sure.
02:02:34 bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd)
02:03:42 <lechner> not just enum but something like Hint | PointedHint where PointedHint includes a Pointer
02:04:42 jmorris joins (uid433911@id-433911.hampstead.irccloud.com)
02:08:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
02:08:06 hiruji joins (~hiruji@user/hiruji)
02:08:43 <lechner> i think that's it https://artyom.me/aeson#types-with-many-constructors
02:11:53 sheb joins (~sheb@31.223.228.71)
02:14:04 × sheb quits (~sheb@31.223.228.71) (Remote host closed the connection)
02:14:20 sheb joins (~sheb@31.223.228.71)
02:18:29 bollu joins (uid233390@id-233390.helmsley.irccloud.com)
02:19:37 × alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds)
02:22:50 monochrom sets mode -o monochrom
02:25:12 jkaye joins (~jkaye@2601:281:8300:7530:4aac:42f1:645e:c02f)
02:25:17 wroathe joins (~wroathe@user/wroathe)
02:29:43 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
02:32:20 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
02:33:26 alzgh joins (alzgh@user/alzgh)
02:34:29 × xff0x quits (~xff0x@2001:1a81:52c5:f300:8200:618:b8e3:ab90) (Ping timeout: 252 seconds)
02:36:17 xff0x joins (~xff0x@2001:1a81:530d:ee00:3ffa:7a4c:8a0a:d168)
02:36:41 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
02:38:18 lavaman joins (~lavaman@98.38.249.169)
02:38:31 × mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds)
02:39:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:39:01 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
02:39:01 wroathe joins (~wroathe@user/wroathe)
02:44:23 × mmhat quits (~mmh@55d4269f.access.ecotel.net) (Ping timeout: 252 seconds)
02:49:20 × alzgh quits (alzgh@user/alzgh) (Remote host closed the connection)
02:50:30 Sgeo joins (~Sgeo@user/sgeo)
02:55:24 alzgh joins (~alzgh@user/alzgh)
02:56:25 × ubert quits (~Thunderbi@p200300ecdf0ba2aae6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
02:56:49 ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
02:59:19 × ubert quits (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
02:59:37 ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
02:59:39 arahael joins (~arahael@27-32-144-20.tpgi.com.au)
03:00:41 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
03:05:20 <dsal> I tried out ghcup and it seems to not work at all because clang something.
03:11:03 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
03:12:27 <sm> someone should write an accurate "set up haskell on new m1 mac" guide
03:12:33 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:12:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:12:33 finn_elija is now known as FinnElija
03:13:55 <lechner> maerwald: ^
03:16:34 <dsal> I'd never tried ghcup, but my new m1 mac doesn't build stuff my old m1 mac would build via nix. And ghcup doesn't get very close.
03:20:27 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:22:53 × td_ quits (~td@muedsl-82-207-238-126.citykom.de) (Ping timeout: 252 seconds)
03:24:46 td_ joins (~td@muedsl-82-207-238-025.citykom.de)
03:25:49 × jkaye quits (~jkaye@2601:281:8300:7530:4aac:42f1:645e:c02f) (Ping timeout: 252 seconds)
03:29:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:31:45 mbuf joins (~Shakthi@27.58.139.230)
03:35:32 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds)
03:36:41 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
03:38:21 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds)
03:38:59 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
03:39:26 stefan-_ joins (~cri@42dots.de)
03:42:39 deadmarshal joins (~deadmarsh@95.38.115.243)
03:45:53 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:45:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
03:45:53 wroathe joins (~wroathe@user/wroathe)
03:47:05 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
03:47:23 <sm> dsal: there was a recent reddit discussion on m1 setup
03:48:00 <sm> https://www.reddit.com/r/haskell/comments/qwvj0k/does_anyone_know_the_best_way_to_build_a_haskell/
03:50:17 × boxscape_ quits (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
03:52:32 <dsal> Oh yeah, I saw that. I had thing that worked on my old M1, but not my new M1.
03:52:37 <dsal> I'm not 100% sure what the difference is
03:53:00 <dsal> GHC for aarch64 from nix fails with EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
03:53:08 × renzhi quits (~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 252 seconds)
03:53:34 <dsal> From ghcup, just something about needing clang.
03:54:50 <Axman6> do you have clang installed?
03:56:40 <dsal> I don't. There's no binary release for this platform. I guess I can see if it'll build.
04:00:01 × haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
04:00:29 × bliminse quits (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) (Ping timeout: 256 seconds)
04:01:21 haasn joins (~nand@haasn.dev)
04:02:07 bliminse joins (~bliminse@host86-162-147-196.range86-162.btcentralplus.com)
04:03:03 <Axman6> surely Apple provides one
04:03:11 <Axman6> you've got Xcode installed right?
04:03:53 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
04:04:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:06:21 <dsal> Yeah. I've not used it, though. I wonder if there's a thing I have to do to activate that.
04:07:48 <dsal> I have clang, but not opt
04:08:58 × jeetelongname quits (~jeet@148.197.248.46) (Remote host closed the connection)
04:10:32 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:10:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
04:10:58 <arahael> That's odd. I'm on M1 and it works fine for me. Granted, I'm using an existing ghc, and not building that myself using nix.
04:11:31 <arahael> What's the specific error message due to that "clang something"?
04:12:16 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
04:12:40 <arahael> But yeah, that promise of nix just workign has been something that's let me down a lot. :(
04:13:24 fef joins (~thedawn@user/thedawn)
04:13:39 <arahael> dsal: ghc 9.2.1 works fine with ghcup for me. Sadly not the earlier one. And I do need to set export C_INCLUDE_PATH="`xcrun --show-sdk-path`/usr/include/ffi" as a workaround for another bug with it.
04:13:48 sproso joins (~sproso@node-1w7jr9y8y96l370tw0h9cpsrf.ipv6.telus.net)
04:15:57 zaquest joins (~notzaques@5.130.79.72)
04:17:59 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:17:59 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
04:17:59 wroathe joins (~wroathe@user/wroathe)
04:20:34 <dsal> My old M1 was fine. New M1 is less fine.
04:20:46 <dsal> This is an "M1 Max"
04:21:07 <sm> it's just too fast.
04:23:03 <dsal> My old machine had 4 performance cores and 4 efficiency cores. This one has 8 performance cores and 2 efficiency cores, so maybe it's just not efficient enough.
04:24:28 × maroloccio quits (~marolocci@151.53.155.184) (Quit: WeeChat 3.0)
04:26:44 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
04:26:45 <arahael> dsal: LLVM 13.0 broke a few things - which is what you would've gotten with the latest xcode. Which is what you would have on the new M1.
04:27:37 <dsal> Hmm... The error I get is about code signature.
04:28:08 <arahael> Notorisation requirements may well have been boosted in the new OS?
04:28:12 × bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
04:28:20 <sm> arahael: I've always had to install some optional command line component of xcode
04:29:09 <arahael> sm: That hasn't changed.
04:29:18 <arahael> sm: (The versions of the tools in that would have, though)
04:31:27 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
04:32:25 <dsal> I've got x86 working. I'll have to switch to that in the meantime.
04:33:08 <sm> dsal, tried the stack route ?
04:33:10 <arahael> A bit slower to start, but yeah, that does work nicely. However, aarch64 works fine too but you have to use 9.2.1
04:33:13 <Square> I have this function that works properly https://paste.tomsmeding.com/jE8lp78x . The case part is recurring in other places so i felt I needed some sort of reuse of it. Ie, something that that routes the "path" to a handler for each case.
04:33:27 <Square> You dont happen to see what would be practical here?
04:34:07 <dsal> sm: I'm using stack via nix. It gets ghc just like I did on my other machine, it just won't run it.
04:34:56 <sm> ack. Is the stack executable x86 or arm ? just curious
04:35:26 <arahael> dsal: Use the arch command to force a particular arch.
04:35:55 <arahael> dsal: But yeah, I've moved away from nix for various reasons. And also stack - less moving parts.
04:36:10 × sagax quits (~sagax_nb@user/sagax) (Quit: Konversation terminated!)
04:36:11 <dsal> Well, I'm actually failing a little earlier than that. Just getting home-manager to switch to arm tries to run the GHC and crashes.
04:36:14 <arahael> nix doesn't even sandbox adequately on macos.
04:36:17 <dsal> I tried the stack that came with ghcup.
04:36:25 sm seems to remember getting newer clang/llvm with homebrew
04:36:49 <arahael> sm: In this case, you're goign to want _older_ clang/llvm, I think.
04:36:51 Erutuon joins (~Erutuon@user/erutuon)
04:37:05 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:37:05 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
04:37:05 wroathe joins (~wroathe@user/wroathe)
04:37:25 <dsal> I've not used homebrew in a while. nix has done a good job of getting my tools for the most part. New install has a couple issues, but I'm not going to solve them tonight.
04:37:38 sm would try the stack binary from fpcomplete as well
04:39:17 <dsal> yeah, stack from ghcup is the path that got me the complains about missing `opt`
04:39:38 <arahael> dsal: What's the full error - what's the whole "opt" thing?
04:39:56 <arahael> dsal: I might be able to recognise some of it.
04:40:23 <dsal> Actually, different error. Earlier it was that it couldn't find `opt` from clang. Now it's just saying it can't find clang. Warning: Couldn't figure out LLVM version! Make sure you have installed LLVM between [9 and 13)
04:40:26 <dsal> It says warning, but it fails.
04:41:03 <arahael> dsal: Ah, yes. You need ghc 9.2.1, that's the same issue I have. Note [9 and 13], that's "version 9, through to but not including version 13". My guess is you have version 13.
04:41:43 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
04:41:44 <dsal> Oh, I selected 9.2.1
04:41:50 <dsal> It's seeming to do something now.
04:42:13 <arahael> dsal: That has a bug involving ffi on macos. You'll need that environment variable I showed above for the C_INCLUDE_PATH.
04:42:22 <dsal> Er, maybe not. OK. I'll try that. heh
04:43:03 <sm> arahael: wow, tricky error message there..
04:43:15 <arahael> dsal: Does stack support that yet, incidentially? I thought ghc 9.2.1 is too new for stack?
04:44:02 <dsal> Hmm... No, it still fails to compile all my deps.
04:44:32 <dsal> ghc: could not execute: opt
04:44:47 <arahael> "could not execute: opt". That's _curious_.
04:45:58 <dsal> yeah, I don't know where it's supposed to get opt. I have Apple clang version 13.0.0 (clang-1300.0.29.3)
04:46:27 <arahael> Right, that's not within the supported [9 and 13) range (except for GHC 9.2.1)
04:46:55 deadmarshal joins (~deadmarsh@95.38.115.243)
04:46:58 <arahael> dsal: Welcome to my troubles here from the past week or so. :) I recall you were there! ;)
04:47:18 <dsal> ah. Everything worked well for me on my old machine due to luck.
04:47:42 <arahael> dsal: Hmm. :)
04:47:56 <dsal> Oooh, I didn't notice the ) on 13.
04:48:24 <arahael> dsal: It's super subtle isnt' it? I only pointed it out like 3 times, and you _STILL_ missed it, it's that subtle, yes. (And not blaming you for that, either)
04:48:32 <sm> that's what I meant by "tricky error message"! Pretty bad UX
04:49:43 <dsal> Yeah. There's a fairly narrow band of tooling I care about.
04:50:04 <arahael> dsal: One thing I did not try, was installing an older xcode.
04:50:42 <arahael> dsal: But you need an apple developer account to get access to the older xcodes.
04:50:48 <dsal> Ah, that sounds painful.
04:50:53 <dsal> I think I've done that before.
04:50:59 <arahael> (I have the account, but anyways)
04:55:20 <arahael> dsal: Anyway, realise you're ultimately dealing with four layers here: nix, stack, haskell, and macos/xcode. That's a lot of moving parts.
04:55:30 <sm> +1
04:55:46 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
04:55:55 <Axman6> and Apple don't give a shit about us
04:56:53 × ubert quits (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
04:57:57 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:57:57 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
04:57:57 wroathe joins (~wroathe@user/wroathe)
04:58:35 <EvanR> advent of code... like 1 minute xd
04:58:57 <sm> agh!
04:58:59 <arahael> Oh, yeah! I'm torn between doing this in literate haskell, or rust.
04:59:19 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:59:45 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
05:00:25 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
05:00:52 ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
05:01:04 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
05:02:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
05:03:33 z0ite is now known as justache
05:06:15 × kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
05:08:40 ec_ joins (~ec@gateway/tor-sasl/ec)
05:15:29 Jing_ joins (~hedgehog@2604:a840:3::1061)
05:16:10 <dsal> I also had emacs in the layers there. It froze up on part 2. *sigh*
05:16:43 × pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
05:18:04 <arahael> That's another moving part!
05:18:32 × Jing quits (~hedgehog@125.105.11.101) (Ping timeout: 240 seconds)
05:19:33 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
05:21:13 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
05:23:10 lavaman joins (~lavaman@98.38.249.169)
05:25:28 pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
05:26:36 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
05:28:36 ees joins (~user@pool-108-18-30-46.washdc.fios.verizon.net)
05:31:03 img joins (~img@user/img)
05:39:56 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
05:40:08 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
05:41:21 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
05:41:38 × sproso quits (~sproso@node-1w7jr9y8y96l370tw0h9cpsrf.ipv6.telus.net) (Quit: Client closed)
05:45:31 × ees quits (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
05:47:37 <arahael> With literate haskell (Particularly markdown-unlit), how can I produce test cases from the same markdown file? I want to say: ... And that should produce the following outcome in the repl: ...
05:50:33 <aplainzetakind> `ghcid "--command=cabal run the-project"` exits on error, and when no-error, does not update on save. What am I doing wrong?
05:51:04 <aplainzetakind> I mean it's as if I simply issued the cabal command by itself.
05:51:38 <sm> ghcid -c 'cabal run'
05:52:07 <sm> but really I think you mean ghcid -c 'cabal repl'
05:52:14 deadmarshal joins (~deadmarsh@95.38.115.243)
05:52:41 × atwm quits (~atwm@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 256 seconds)
05:53:04 × obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:53:27 obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl)
05:54:44 fr33domlover joins (~fr33@2.53.150.205)
05:55:19 <aplainzetakind> sm: Still not updating, as if a single run (with ghcid -c 'cabal repl')
05:58:45 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
06:00:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:05:46 × pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
06:06:17 × fr33domlover quits (~fr33@2.53.150.205) (Ping timeout: 256 seconds)
06:06:42 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:07:34 pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
06:07:42 moet joins (~moet@mobile-166-170-42-127.mycingular.net)
06:07:48 puke joins (~puke@user/puke)
06:09:35 × moet quits (~moet@mobile-166-170-42-127.mycingular.net) (Client Quit)
06:10:36 × echoreply quits (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8)
06:17:51 <EvanR> how does the AoC guy know to come up with puzzles that are fun for haskell
06:19:17 <jle`> it's a conspiracy
06:19:28 chomwitt joins (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374)
06:20:05 <opqdonut> typically there are ones in the second half that aren't much fun in haskell
06:20:17 <opqdonut> "simulate this slightly ill-specified register machine"
06:20:21 × xff0x quits (~xff0x@2001:1a81:530d:ee00:3ffa:7a4c:8a0a:d168) (Ping timeout: 245 seconds)
06:20:31 <EvanR> yeah I remember that
06:20:51 <opqdonut> but in general they're purely computational puzzles that don't need maximum performance, so of course haskell is a good fit!
06:21:28 xff0x joins (~xff0x@2001:1a81:530d:ee00:3669:3c5b:65c3:3f53)
06:21:50 <EvanR> how fast it runs will be a crucial tie breaker if you and the C guy press `enter' at the same time
06:24:25 × pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
06:28:52 <dsal> I've rarely found any that weren't fun in Haskell.
06:29:17 <dsal> Just the ones that feel like labor.
06:33:24 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
06:33:40 vysn joins (~vysn@user/vysn)
06:33:43 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Remote host closed the connection)
06:34:03 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
06:34:19 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
06:34:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
06:35:11 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
06:35:22 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
06:39:09 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
06:43:05 × xff0x quits (~xff0x@2001:1a81:530d:ee00:3669:3c5b:65c3:3f53) (Ping timeout: 252 seconds)
06:43:39 xff0x joins (~xff0x@2001:1a81:530d:ee00:fdea:9bb5:abe4:a159)
06:45:48 deadmarshal joins (~deadmarsh@95.38.115.243)
06:46:27 × connrs quits (~connrs@user/connrs) (Ping timeout: 260 seconds)
06:48:06 <dmj`> An AOC CLI tool would be nice ... automatic puzzle fetching, submission, stats
06:50:43 rkrishnan joins (~user@122.171.76.46)
06:52:50 bollu joins (uid233390@id-233390.helmsley.irccloud.com)
06:53:11 <iqubic> @hackage aoc
06:53:11 <lambdabot> https://hackage.haskell.org/package/aoc
06:53:34 <iqubic> @hackage advent-of-code-api
06:53:34 <lambdabot> https://hackage.haskell.org/package/advent-of-code-api
06:53:47 <iqubic> That's a library made by jle` and it's excellent.
06:54:30 <iqubic> jle`: Does that also have an executable too, or is it just a haskell library?
06:55:06 <dmj`> jle` does write good code
06:56:32 <dmj`> this explains how he's so fast too
06:57:08 <iqubic> Yeah. I also use that library. It's good.
06:58:09 <iqubic> > (zip <*> tail) [1..10]
06:58:10 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10)]
06:58:16 <iqubic> Why does that work!?!?
07:02:46 × ubert quits (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
07:03:20 <jle`> iqubic: that's just the library :) my advent-of-code-dev repo on github has an executable for auto fetching and stuff but it's probably more of an example than something that works out of the box
07:03:26 <jle`> iqubic: (f <*> g) x = f x (g x)
07:04:06 <iqubic> Isn't that just S from the SKI combinators?
07:04:49 <iqubic> And let me guess... pure is K?
07:04:56 ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
07:05:02 <jle`> it's been a while, but that does sound familiar :)
07:05:06 <iqubic> :t pure
07:05:07 <lambdabot> Applicative f => a -> f a
07:05:28 <iqubic> https://en.wikipedia.org/wiki/SKI_combinator_calculus
07:05:40 <arahael> Really happy with how I've started advent of code: Start with a bang, end with a whimper? (It's a LOT of typing for literate haskell!) https://github.com/arafangion/super-eureka/blob/main/app/Day1.md
07:06:20 <arahael> Disclaimer: That's the *solution*.
07:07:15 <iqubic> jle`: Wikipedia gives this: I x = x, K x y = x, S x y z = x z (y z), which, after some variable renaming shows that <*> is the same as S.
07:07:45 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
07:08:47 <jle`> iqubic: looks convincing to me :)
07:09:43 cyclosa joins (~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com)
07:10:35 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:10:43 <iqubic> What exactly is pure for the Function/Reader applicative?
07:13:56 <c_wraith> const
07:14:04 <c_wraith> > pure 5 ()
07:14:06 <lambdabot> 5
07:14:23 <jle`> iqubic: there is actually only one implementation that typechecks
07:14:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
07:16:26 × caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.3)
07:16:59 <iqubic> "pure :: a -> (b -> a)" is the type signature for pure, when specialized to functions. And clearly the only thing you can do there is to ignore the b and just return the a you have. Which is exactly what const does.
07:18:26 caubert joins (~caubert@136.244.111.235)
07:18:42 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
07:23:42 <arahael> Anyone else doing advent of code using literate haskell?
07:24:11 hololeap joins (~hololeap@user/hololeap)
07:25:46 fr33domlover joins (~fr33@2.53.150.205)
07:26:16 <dmj`> that's advanced
07:27:39 <arahael> dmj`: Not really, it was surprisingly easy - the literate haskell bit. Ensuring it's *intelligent* is a separate matter!
07:28:02 monochrom joins (trebla@216.138.220.146)
07:28:13 <dmj`> arahael: hmm, intelligent in what way?
07:28:17 <arahael> The main thing that's awkward is that cabal requires the file extension to be either .hs, or .lhs, so since I need .md for... Uh... Literate reasons, I had to use symlinks.
07:28:29 <arahael> dmj`: Intelligent in that it makes sense to the reader.
07:28:52 <dmj`> arahael: ah, yea I don't use cabal files, just raw ghc
07:29:06 <arahael> dmj`: That's even easier!
07:29:10 <dmj`> might try to do AOC w/ just boot packages only
07:29:20 <dmj`> ReadP FTW
07:29:28 <arahael> dmj`: Go for it. :)
07:30:27 <dmj`> the only thing I don't like is that chunksOf and split aren't in Data.List, so I always end up rewriting them
07:31:10 <dmj`> just all maps, sets, lists, etc.
07:31:32 <arahael> Yeah. I was surprised to discover that there isn't a windowing function already in the prelude.
07:31:38 <arahael> (Am I wrong?)
07:31:54 <arahael> I had to write my own implementation in my example above.
07:32:46 dmj` looks
07:34:09 <dmj`> arahael: nothing built-in, but you can use tails
07:34:39 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
07:34:46 <dmj`> @def sliding n xs = take n <$> tails xs
07:34:47 <lambdabot> Defined.
07:35:00 <dmj`> > sliding 3 [1..5]
07:35:03 <lambdabot> [[1,2,3],[2,3,4],[3,4,5],[4,5],[5],[]]
07:35:10 chele joins (~chele@user/chele)
07:35:35 <c_wraith> I just used zipWith3
07:36:02 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
07:36:43 <arahael> Nice.
07:39:11 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
07:39:13 <dmj`> c_wraith: that was smart
07:39:46 <dmj`> > zipWith3 (\x y z -> sum [x,y,z]) [1..5] (tail [1..5]) (tail (tail [1..5]))
07:39:48 <lambdabot> [6,9,12]
07:40:09 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
07:40:16 <dmj`> c_wraith: would have been up a creek if the window size was 4 :)
07:40:36 <hololeap> what function in System.FilePath can resolve ("/var/uploads/" </> "../uploads/thing") to "/var/uploads/thing" ?
07:40:37 <arahael> That's teh thing with advent of code: It's *all* throwaway code, and you don't know the change that will happen in part 2.
07:41:04 <c_wraith> nah, I can nest zipWith :)
07:41:26 lortabac joins (~lortabac@2a01:e0a:541:b8f0:2b1a:1927:b5c5:1912)
07:41:29 <dmj`> arahael: true
07:41:39 <arahael> I think I prefer the take n <$> tails xs
07:42:06 × alx741 quits (~alx741@181.196.69.153) (Ping timeout: 256 seconds)
07:43:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:47:30 <dmj`> c_wraith: tricky :)
07:48:04 <hololeap> % canonicalizePath ("/dev/" </> "..")
07:48:04 <yahb> hololeap: "/dev/.."
07:48:12 <hololeap> shouldn't this return "/" ?
07:50:55 jakalx joins (~jakalx@base.jakalx.net)
07:51:39 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:52:48 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
07:53:08 <c_wraith> hololeap: I'm willing to bet yahb runs in a jail that doesn't have /dev
07:53:47 kennyd joins (~bc8165b6@83.167.180.121)
07:53:58 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:54:15 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:54:25 <hololeap> no, I think this is the actual reason: https://neilmitchell.blogspot.com/2015/10/filepaths-are-subtle-symlinks-are-hard.html
07:54:52 <c_wraith> on my system, it does result in "/"
07:54:59 <hololeap> wait, really?
07:55:01 alx741 joins (~alx741@181.196.69.156)
07:55:40 <hololeap> oh, I guess it does on mine too
07:55:50 <c_wraith> I think it's just the env yahb runs in
07:56:38 <c_wraith> If I ask ghci to canonicalize a "/dev2/.." I get no change, as I have no /dev2 directory
07:57:19 × cyclosa quits (~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com) (Quit: computer broke)
07:57:22 <kennyd> it works even on windows, canonicalizePath ("/dev/" </> "..") => "C:\\"
07:57:43 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:58:18 <hololeap> https://github.com/Happstack/happstack-server/blob/master/src/Happstack/Server/FileServe/BuildingBlocks.hs#L375-L394
07:58:29 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
07:59:27 <hololeap> I'm trying to submit a PR that does away with the system-filepath package, but I don't see any equivalent in the filepath or directory packages
08:00:00 <hololeap> >>> combineSafe "/var/uploads/" "../uploads/home/../etc/passwd"
08:00:08 <hololeap> Just "/var/uploads/etc/passwd"
08:00:11 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
08:04:03 cfricke joins (~cfricke@user/cfricke)
08:04:43 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
08:08:29 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
08:08:49 deadmarshal joins (~deadmarsh@95.38.115.243)
08:09:51 img joins (~img@user/img)
08:09:54 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:10:00 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
08:10:00 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:10:18 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:14:22 ub joins (~Thunderbi@p200300ecdf0ba2be089e3f14725e8432.dip0.t-ipconnect.de)
08:19:20 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
08:20:30 nschoe joins (~quassel@2a01:e0a:8e:a190:8ef1:d1b1:96b4:f9df)
08:21:02 Erutuon joins (~Erutuon@user/erutuon)
08:25:13 × iqubic quits (~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59) (Remote host closed the connection)
08:25:24 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
08:25:29 neurocyte0132889 joins (~neurocyte@45.128.183.11)
08:25:29 × neurocyte0132889 quits (~neurocyte@45.128.183.11) (Changing host)
08:25:29 neurocyte0132889 joins (~neurocyte@user/neurocyte)
08:27:24 × aarchi quits (sid486183@id-486183.uxbridge.irccloud.com) (Excess Flood)
08:27:27 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:27:33 aarchi joins (sid486183@id-486183.uxbridge.irccloud.com)
08:29:32 iqubic joins (~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59)
08:31:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:34:58 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:35:15 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:39:37 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
08:41:17 × chomwitt quits (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Quit: Leaving)
08:43:47 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:44:05 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:45:44 alzgh joins (~alzgh@user/alzgh)
08:46:28 Codaraxis_ joins (~Codaraxis@user/codaraxis)
08:46:50 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
08:48:55 × Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
08:49:29 michalz joins (~michalz@185.246.204.43)
08:52:51 kuribas joins (~user@188.188.219.184)
08:52:56 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
08:54:24 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
08:56:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:57:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:00:30 <dminuoso> Is there any documentation for `cabal build --ghc-options`? Because I cant find any..
09:03:03 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:03:21 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:03:33 jstolarek joins (~jstolarek@137.220.120.162)
09:05:13 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:05:30 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:05:57 acidjnk_new joins (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de)
09:06:05 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
09:07:19 aforemny_ is now known as aforemny
09:07:29 × nrl^ quits (~nrl@68.101.58.90) (Remote host closed the connection)
09:09:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:09:29 <merijn> dminuoso: What kinda documentation would you expect?
09:09:36 <dminuoso> Any?
09:09:40 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:09:42 <dminuoso> It's not even listed in the man page
09:09:44 <merijn> It just passes options directly to GHC
09:09:48 <dminuoso> Well only under configure
09:09:49 <dminuoso> Sure
09:09:56 <dminuoso> Is it too much to ask for a man page regardless?
09:10:01 <merijn> Probably :p
09:10:03 <dminuoso> A note of it I mean
09:10:05 <dminuoso> :p
09:10:15 <dminuoso> The thing is
09:10:26 <dminuoso> It allows for no discoverability of this option
09:10:41 <dminuoso> You know it exists because someone told you. But I couldn't even find its existence based on the man page
09:10:44 <merijn> I don't even know where the manpage is in the cabal repo, so I'm not sure anyone else does either, let alone update it :p
09:10:50 <dminuoso> Unless I happened to have read this:
09:10:52 <dminuoso> https://cabal.readthedocs.io/en/3.4/cabal-commands.html
09:10:57 <dminuoso> Under `cabal v2-configure`
09:11:01 <dminuoso> `cabal v2-configure FLAGS; cabal v2-build is roughly equivalent to cabal v2-build FLAGS`
09:11:02 <merijn> dminuoso: I was about to say, the cabal docs :p
09:11:05 <dminuoso> The thing is
09:11:32 <dminuoso> Its just highly annoying that you need to read another commands (v2-configure, it's even called v2 mind you!) documentation to know about build.
09:11:50 <dminuoso> Sort of suggesting "read the entire docs from top to bottom before you ask"
09:12:41 × kuribas quits (~user@188.188.219.184) (Ping timeout: 252 seconds)
09:14:21 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:14:39 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:15:45 <merijn> dminuoso: Complain to Hecate and her docs improvement iniative? :p
09:16:46 <dminuoso> I guess I should just fix it myself rather than complain
09:16:53 <merijn> Hecate just became cabal core contributor too, so... :p
09:16:54 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
09:16:55 <Hecate> 'sup
09:17:04 <merijn> Hecate: Throwing you under the bus :p
09:17:12 <Hecate> sure that's the point :)
09:17:35 geekosaur joins (~geekosaur@xmonad/geekosaur)
09:19:23 dsrt^ joins (~dsrt@68.101.58.90)
09:20:30 <dminuoso> But yeah, cabal-install documentation has some pretty bad parts.
09:20:56 <Hecate> yes
09:21:21 <Hecate> Gil Mizrahi is working on improving this
09:21:47 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:22:36 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:24:07 deadmarshal joins (~deadmarsh@95.38.115.243)
09:27:25 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:27:43 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:29:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:29:41 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:31:23 <arahael> dminuoso: Imagine my difficulty finding out how to disable colour output in cabal build.
09:33:39 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:33:58 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:34:47 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
09:35:00 <Hecate> arahael: NO_COLOR doesn't work?
09:36:13 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
09:36:28 <arahael> Hecate: 1) I didn't actually test that, and 2) Where's that documented?
09:40:27 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:40:42 <Hecate> hmm, nowhere
09:40:45 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:40:47 <Hecate> it doesn't work.
09:40:53 <Hecate> but it will have to
09:41:03 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
09:41:58 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
09:43:21 <merijn> Only 45 people on the Haskell leaderboard for AoC
09:43:25 <merijn> come on, slackers :p
09:44:50 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
09:45:53 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:46:52 kmein joins (~weechat@user/kmein)
09:47:08 <mniip> slackers indeed
09:48:43 <[exa]> people don't use awk for this?
09:48:57 <merijn> I mean, you can use whatever :p
09:49:12 <merijn> I use over-engineered Haskell :p
09:50:53 <merijn> My personal rule is to try and keep my code (mostly?) readable to Haskell beginners and (more importantly) no unhandled errors
09:51:15 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
09:51:32 <Hecate> arahael: what did you use for no colours in cabal, btw?
09:51:40 <Hecate> I'm gonna implement NO_COLOR
09:52:16 <arahael> Hecate: I ended up using --ghc-options=-fdiagnostics-color=never but there are other bugs preventing that from working - and it didn't fix my ultimate issue where Shake, which calls cabal, has an "fd:7: hGetContents: invalid argument (invalid byte sequence)" as a result.
09:52:45 <arahael> Hecate: Or rather, it works, but you have to recompile basically everything, and still has that result.
09:53:23 <arahael> I should find out what byte sequence it's complaining about, but not today - rather drained from everything else. *sigh*. Video conferences....
09:53:28 <Square> if i have a polymorphic function with proper signature and all. Create local version of it (providing some, but not all, arguments) it sort loses its polymorphic status and get type infered to first application. Ie. myFknWSomeParams = myFkn x y. Can invoke "myFkn x y moreArgs" but not "myFknWSomeParams moreArgs"
09:53:35 <merijn> arahael: tbh, invalid byte sequence is often "you f-ed up your locale" :p
09:53:49 <arahael> merijn: Yep, it's f'ing UTF-8. :)
09:53:51 nek0 joins (~nek0@nek0.eu)
09:53:57 <merijn> arahael: Which OS?
09:54:02 <arahael> merijn: macOS.
09:54:14 <merijn> What's the output of "locale" in your shell?
09:54:39 <arahael> merijn: Except for LC_ALL, which is unset, it's all en_AU.UTF-8.
09:55:33 <merijn> arahael: Mine is: https://paste.tomsmeding.com/deHyKqgk
09:55:52 <merijn> arahael: And I recall having issues on macOS (years ago) before fixing my environment to set a proper locale
09:56:34 <arahael> merijn: Hmm, let me try setting the LANG and LC_ALL explicitly to those, as well - that's the only thing that's different.
09:57:00 <arahael> merijn: Doing a rebuild...
09:57:41 xkuru joins (~xkuru@user/xkuru)
09:57:57 <zincy> I am doing state machine testing in hedgehog for a card game, should I use my existing player action validation function to help generate state machine actions or does this defeat the point?
09:58:05 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:58:21 <[exa]> merijn: where's the haskell leaderboard tho?
09:58:33 <merijn> [exa]: See topic
09:58:47 <[exa]> aaaaaay
09:58:49 <[exa]> thanks
09:59:26 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
10:00:11 <arahael> Oh, wow, quite a few peole on that leaderboard, has it been shared outside the IRC?
10:00:26 <merijn> arahael: It's been the same for the past 2 years
10:00:44 <arahael> I just put myself on it :D
10:01:00 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:01:48 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
10:04:11 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:04:32 <[exa]> will I get banned if I did the first aoc in R?
10:04:45 <merijn> :O
10:04:47 <merijn> Heresy
10:04:56 hololeap joins (~hololeap@user/hololeap)
10:05:24 <nek0> Hi folks, I'm having a problem using exceptions, with which I am not very familiar with. The issue I have is, that a call of "fromException" returns "Nothing" instead of "Just WhateverException". Reproducing this issue in GHCI has been unsuccessful so far...
10:05:29 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
10:05:37 deadmarshal joins (~deadmarsh@95.38.115.243)
10:05:46 <arahael> [exa]: I did one of mine last year (or was it 2019?), in QuickBASIC.
10:05:59 <[exa]> nek0: there are many types of exceptions so you might be catching the wrong one. Can we have a code sample?
10:06:25 <[exa]> arahael: now that's a honorable adventure
10:06:25 <merijn> Yeah, ENOTENOUGHINFO
10:06:48 <arahael> merijn: E_NOTENOUGHINFO.
10:07:02 Lord_of_Life_ is now known as Lord_of_Life
10:07:04 <[exa]> pls negate your error returns
10:07:07 <merijn> arahael: No underscores in E codes :p
10:07:12 <Unhammer> Hi, http://sprunge.us/3rIlhp?haskell is there some smart way to check that roundtripping works in both directions for sumtypes that can't be enum/bounded?
10:07:12 <arahael> Finally, my build completed. Now to do a re-build, with my set locale.
10:07:17 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
10:07:20 <arahael> merijn: Oh? I thought they often did!
10:07:31 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
10:07:52 mvk joins (~mvk@2607:fea8:5cc1:fa00::4702)
10:08:04 <merijn> Unhammer: 1 list of tuples and then build two maps (one in each direction)
10:08:08 <Unhammer> for all ints, I know fromStatus(toStatus n)==n, can even quickcheck that, but I can't check the other way around toStatus(fromStatus s)==s without being able to generate all possible statuses
10:08:29 <arahael> merijn: https://gist.github.com/arafangion/632f5072d56afed633e3f77d9ec44d11
10:08:38 <Unhammer> merijn, but how do I know my map is complete?
10:08:42 <arahael> merijn: I don't think it's the locale.
10:08:47 <nek0> [exa]: I tried to build a minimal working error, but it failed at failing...
10:09:03 <merijn> Unhammer: Same idea, but special case the other constructor :p
10:09:24 <Unhammer> I don't quite understand
10:09:37 <merijn> use my approach for the bounded constructor part
10:09:39 <[exa]> nek0: oh noes.
10:09:51 <merijn> Then write a wrapper function around those dictionaries handling the unbounded Other part
10:10:16 <[exa]> nek0: so at least snippets of the original code?
10:12:33 <arahael> merijn: When I find time (and energy), I intend to make my buidl system call 'cabal build' in _binary_ mode, such that it uses ByteStrings instead, I'll then be able to look at what the particular sequence is that it's choking on.
10:12:37 <hololeap> Unhammer: you could also move the Other constructor to it's own type so you can derive Enum/Bounded, then have your round trip between (Either OtherStatus Status <-> Int)
10:14:08 <Unhammer> merijn, list of pairs just means I make it a runtime error, doesn't it? http://sprunge.us/tNc1gA?haskell
10:14:23 <Unhammer> hololeap, yeah thought of that, except it complicates the use of the type :/
10:16:09 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:16:28 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:16:29 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
10:16:42 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
10:16:54 <lortabac> Unhammer: I think you should be able to enumerate the constructors with Data
10:16:58 <merijn> Unhammer: Just wrap hololeap's approach with pattern synonyms
10:17:08 <merijn> Then you can use your current syntax with his suggest type
10:17:31 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
10:17:47 <lortabac> otherwise you can make an Arbitrary instance with generic-random
10:18:47 <Franciman> at last it happened, haskell interpreter overperformed
10:18:57 <Franciman> ggwp to the haskell garbage collector
10:19:00 <Franciman> it was hard to overperform it
10:19:28 <merijn> What do you mean by that?
10:19:30 <Franciman> precise memory management and high level programming. Choose two
10:19:38 <Unhammer> ok. Was hoping there was some uncomplicated solution that I just can't see but I guess I hit a hard problem.
10:20:58 <lortabac> Unhammer: to be honest nothing beats code reviews for these problems
10:22:11 <Unhammer> that would be a nice world to live in
10:22:11 <lortabac> Unhammer: we have several data-types like that at work, and have never had a bug due to missing some integers
10:22:31 <Franciman> merijn: I was doing some tests against haskell's memory management system. I wrote a lambda calculus interpreter in haskell. And now an interpreter in zig where I can fully manage memory layout
10:22:33 <Franciman> easily
10:23:04 <Franciman> haskell manages to keep the amount of cache refs high, while keeping cache misses very low
10:23:14 mc47 joins (~mc47@xmonad/TheMC47)
10:23:15 fef joins (~thedawn@user/thedawn)
10:24:05 × Jing_ quits (~hedgehog@2604:a840:3::1061) (Remote host closed the connection)
10:24:42 Jing joins (~hedgehog@115.207.46.97)
10:25:49 <Franciman> in zig I get like 70% cache misses lol
10:25:54 <Franciman> but it is still faster
10:26:39 <Franciman> haskell also has an higher throughput
10:26:47 <Franciman> it performs a lot more instructions, in less time
10:26:50 <Franciman> but that's not enough
10:26:59 <Franciman> it performs too much
10:27:06 <arahael> Too much?
10:27:42 <Franciman> yes it has to do too many operations, that's why in the end it is slower
10:27:47 <merijn> Franciman: Ah, I know why that is
10:27:49 <Franciman> I hyperoptimized the zig version
10:28:00 <Franciman> oh curious to hear
10:28:09 <merijn> Franciman: GHC is using a copy&collect GC, which means that if you have a small liveset it's very likely to all be in cache
10:28:19 <merijn> Franciman: Because it all gets copied into a dense memory region
10:28:25 <Franciman> nice
10:28:52 <Franciman> the GHC does a really good job
10:28:54 <Franciman> GC*
10:29:06 <merijn> Franciman: Basically, the way GHC's GC works is: Create a new heap. Copy all alive data to new heap. Throw away old heap
10:29:19 <merijn> Franciman: This has several advantages (and disadvantages)
10:29:36 <merijn> Due to Haskell being lazy there are *a lot* of allocations and *a lot* of garbage
10:29:45 <Franciman> yep, that's why it's impressive
10:30:02 <merijn> Since our heap is always a dense blob, your allocator is just a pointer to the end of the heap and allocating is literally "increment a pointer and check overflow"
10:30:09 <merijn> You can't build a faster allocator than that
10:30:31 <Franciman> but my zig allocator is the same
10:30:34 <merijn> And because we copy *live* data only, the GC time scales with the amount of *live* data, not garbage
10:30:37 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
10:30:50 <Franciman> by live you mean reachable data?
10:30:55 <Franciman> or something about generations too?
10:30:58 <merijn> The downside is that if you have a large live set (see the pusher blog posts from a few years ago) you copy a lot
10:31:18 <merijn> Franciman: I meant reachable yeah. There's also generational collection, but then things get messier to explain :p
10:31:28 <Franciman> okok nvm the generational
10:32:01 <merijn> Franciman: basically there's a nursery (where new allocations happen) and if they survive 1 GC, they go into the older generation (which is GCed less frequently), iirc
10:32:28 <merijn> Franciman: But yeah, if you have 2GB reachable data, you end up copying 2 GB every GC, which can kill you (although compact regions can help reduce/eliminate that)
10:32:49 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
10:33:00 <Franciman> my test case is summing the first 10M numbers, with a recursive function
10:33:02 <Franciman> :P
10:33:10 <Franciman> so it allocates quite a bit, but they are all small values
10:33:18 <Franciman> also in haskell recursion is basically cheap
10:33:20 <merijn> yeah, that's gonna have a tiny live set (only a handful of numbers)
10:33:39 <merijn> Franciman: You might wanna run your haskell code with "+RTS -sstderr" if you wanna see GC info
10:34:06 <Franciman> thanks. merijn my problem is that I can't figure out in any way how to improve the timing
10:34:11 <Franciman> of the haskell version
10:34:28 × bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
10:34:51 <Franciman> if the GC is so effettive, it must be somewhere that I have to improve. I bet on the GC
10:35:00 <Franciman> in fact my zig version does arena allocation
10:35:07 × hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer)
10:35:14 <Franciman> I request a page of memory from the OS, and allocate without ever deallocating anything
10:35:23 <Franciman> so it does 0 memory management
10:36:11 _bo joins (~bo@217.18.216.247)
10:36:16 <arahael> Franciman: Generally you can't achieve the best general case GC.
10:36:23 hololeap joins (~hololeap@user/hololeap)
10:36:26 <arahael> Franciman: You have to optimise it for a very particular use case.
10:36:46 <Franciman> hmm I see, so for writing a programming language it's not a particularly good idea
10:37:02 <merijn> There is no best GC, no
10:37:07 <merijn> GC design is 100% trade offs
10:37:13 <Franciman> because I want the internal memory of the interpreter to be managed differently from the language GC
10:37:19 <arahael> Franciman: There is a *ton* of papers about GC's, some quite good ones out tehre.
10:37:31 <merijn> GHC's GC is optimised for lots of garbage and high throughput (small percentage of GC time compared to compute)
10:37:37 <Franciman> yes I understand
10:37:50 <Franciman> basically my problem was: let me see if memory management affects my interpreter, but it doesn't lol
10:37:51 <merijn> It is not good for large live sets or for low latency (i.e. minimising the longest possible GC pause)
10:38:12 <Franciman> so I can't get any more speed out of it
10:38:15 <Franciman> yes I understand it
10:38:51 <Hecate> arahael: can you tell me if setting LC_ALL has fixed your issues?
10:39:04 <arahael> Hecate: It did not.
10:39:08 <Franciman> well ty all
10:39:28 <Franciman> back to humiliating my haskell interpreter to hope and find out something about its performances
10:39:40 <Hecate> arahael: ok thanks :)
10:40:04 <arahael> Hecate: No worries :)
10:42:26 <sm> Franciman, have you tried profiling yet ?
10:42:33 <Franciman> I did
10:43:28 <sm> sounds like you're finding out lots
10:44:47 <Hecate> arahael: what's your GH username?
10:45:42 <Franciman> sm: I got some numbers out, but can't quite make sense of them
10:45:51 <arahael> Hecate: arafangion
10:46:03 <Franciman> I mean the most used functions are of course what make the most of the time spent
10:46:03 <arahael> Hecate: most of my repos are private, though.
10:46:11 <Franciman> but I can't optimize them more than I do now
10:46:11 × theproffesor quits (~theproffe@user/theproffesor) (Ping timeout: 245 seconds)
10:46:38 <merijn> Franciman: Have you tried playing with speedscope?
10:46:42 <merijn> https://www.speedscope.app/
10:46:55 <Franciman> I didn't know about it, so many thanks
10:46:57 <merijn> See also https://mpickering.github.io/posts/2019-11-07-hs-speedscope.html
10:48:17 theproffesor joins (~theproffe@user/theproffesor)
10:49:57 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:50:14 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:50:18 <Hecate> arahael: yeah I just ping'd you on the ticket
10:51:02 cuz joins (~user@50.235.10.194)
10:51:12 <Franciman> ty and nice font
10:51:16 × curiousgay quits (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving)
10:51:26 <arahael> Hecate: Ah, very nice! I also want it on 'cabal build' as well, not just cabal install.
10:51:49 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
10:52:16 <arahael> Hecate: I also use --ghc-options=-fdiagnostics-color=never which was suggested by someone else here, and it does disable colour for the most part, but still causes an invalid byte order for some reason.
10:54:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:54:42 <arahael> Hecate: Other, possibly related links, which were also given to me in this channel are: https://gitlab.haskell.org/ghc/ghc/-/issues/13718
10:54:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:55:21 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
10:56:02 juhp joins (~juhp@128.106.188.82)
10:56:03 <Hecate> hmm, not *that* related in the end
10:58:02 × ouro_boros quits (~ouroboros@2804:14c:65e4:93f6:a589:7295:b475:5b03) (Ping timeout: 268 seconds)
10:58:59 jakalx joins (~jakalx@base.jakalx.net)
11:00:05 __monty__ joins (~toonn@user/toonn)
11:00:36 deadmarshal joins (~deadmarsh@95.38.115.243)
11:02:11 DNH joins (~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41)
11:02:15 × DNH quits (~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41) (Client Quit)
11:04:17 Farzad joins (~FarzadBek@37.98.106.66)
11:06:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:06:18 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:08:11 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:08:29 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:09:13 × kennyd quits (~bc8165b6@83.167.180.121) (Quit: CGI:IRC (Ping timeout))
11:09:19 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:09:42 kennyd joins (~bc8165b6@cerf.good1.com)
11:12:00 <sm> Franciman: I guess next level down would be inspecting the core, there have been some how-tos on that
11:14:57 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:15:14 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:16:54 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:17:12 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:18:52 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:19:10 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:20:50 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:21:08 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:22:24 × deadmarshal quits (~deadmarsh@95.38.115.243) (Quit: ZNC 1.8.2 - https://znc.in)
11:23:32 deadmarshal joins (~deadmarsh@95.38.115.243)
11:23:41 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
11:24:39 terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de)
11:24:51 mmhat joins (~mmh@55d4c042.access.ecotel.net)
11:27:07 × kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Error))
11:27:20 Lycurgus joins (~juan@98.4.112.204)
11:27:59 kennyd joins (~bc8165b6@83.167.180.121)
11:28:49 × kennyd quits (~bc8165b6@83.167.180.121) (Client Quit)
11:29:38 kennyd joins (~bc8165b6@cerf.good1.com)
11:29:47 Guest42 joins (~Guest42@50.39.205.155)
11:32:42 × deadmarshal quits (~deadmarsh@95.38.115.243) (Quit: ZNC 1.8.2 - https://znc.in)
11:33:15 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
11:33:43 deadmarshal joins (~deadmarsh@95.38.115.243)
11:34:26 × jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
11:36:08 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
11:37:32 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
11:38:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds)
11:41:09 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:41:27 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:42:17 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
11:44:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:45:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:46:21 × cuz quits (~user@50.235.10.194) (Ping timeout: 256 seconds)
11:51:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
11:51:23 × Guest42 quits (~Guest42@50.39.205.155) (Quit: Client closed)
11:54:21 <geekosaur> arahael, have you tried LANG=C? ghc uses various Unicode characters in its errors even without color sequences
11:56:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:57:50 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
11:59:48 <yin> @pl if x then a else b
11:59:48 <lambdabot> if' x a b
12:00:05 <yin> where is lambdabt getting this if' from?
12:00:27 <kennyd> @hoogle if'
12:00:28 <lambdabot> Data.Bool.HT if' :: Bool -> a -> a -> a
12:00:28 <lambdabot> Control.Conditional if' :: ToBool bool => bool -> a -> a -> a
12:00:28 <lambdabot> GHC.SourceGen.Expr if' :: HsExpr' -> HsExpr' -> HsExpr' -> HsExpr'
12:01:16 <yin> eh. i did that and got nothing
12:01:45 <geekosaur> it's just invented
12:02:12 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
12:02:13 <geekosaur> since the @pl plugin was last updated we got bool, which is what it really should be using these days
12:02:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:02:41 <kennyd> I kind of dislike the name, and reversed arguments
12:02:45 <kennyd> (of bool)
12:03:00 <geekosaur> the arguments match maybe and either
12:03:25 <yin> what does HT stand for?
12:03:57 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
12:04:15 <arahael> geekosaur: nope but i have gone to bed, will try to remember tomorrow!
12:04:17 <kennyd> geekosaur. right. but if I'm using such a function I'm more likely to think in terms of if-then-else than maybe or either
12:04:49 <byorgey> yin: I believe it stands for Henning Thielemann
12:04:56 <byorgey> https://hackage.haskell.org/package/utility-ht-0.0.16
12:05:05 <yin> kennyd: haskell having if...then...else is the original sin
12:05:25 <kennyd> though bool might be nicer when partially implying it in some cases. so maybe there's place for both if' and bool
12:05:33 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
12:05:39 <byorgey> kennyd: I use partially applied bool on a regular basis
12:05:40 <kennyd> partially applying :P
12:07:43 <yin> byorgey: thanks
12:09:49 narendra joins (~user@2a02:8109:b63f:ff7c::56c2)
12:11:41 deadmarshal joins (~deadmarsh@95.38.115.243)
12:12:51 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
12:13:12 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
12:15:22 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
12:18:58 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
12:21:56 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:22:04 jakalx joins (~jakalx@base.jakalx.net)
12:22:13 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:25:13 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
12:28:09 arjun joins (~user@user/arjun)
12:28:46 <arjun> soo, just got around reading the 3 layered haskell cake post from here (https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html)
12:29:13 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:29:21 <arjun> what do people think of it ?
12:32:12 <dminuoso> Every time you have someone offer you a silver bullet on program design, reject it.
12:33:26 <dminuoso> I've seen this particular blog post many times, and I dislike every bit of it. I think what this is, is a representation on how the author - at that time in the past - used to structure their programs.
12:33:56 <[exa]> arjun: reminds me some of the more traditional OOP guidelines
12:34:31 <arjun> it does, doesn't it
12:35:10 <arjun> dminuoso: sure, i've seen this post several times, finally got around to reading it
12:35:19 <[exa]> would be nice if it was published as "how and why we have our internal guidelines as such", but trying to apply this universally is a monstrous mistake
12:35:55 <arjun> every place/one has/have their own tbh
12:36:07 <[exa]> or perhaps if there was a tools ecosystem that benefited from having the internals similar
12:36:12 <[exa]> yeah
12:36:38 <arjun> i was just wondering if this is a popular approach, since the blog post is popular and thus amplified
12:36:53 <dminuoso> Not given what I see around
12:36:59 <dminuoso> Some bits of it, yes.
12:37:05 <dminuoso> But the overall structure, no.
12:38:16 <arjun> i liked the readerT pattern post (linked atop this post) from fpcomplete much better
12:38:25 <dminuoso> For instance, for many of my executables I usually maintain some `newtype AppM a = AppM { runAppM :: ReaderT Env (LoggingT IO) a }`
12:38:41 <dminuoso> So I avoid transformers that are not isomorphic to ReaderT
12:39:09 <dminuoso> This I do because I want to be able to unlift IO actions without worrying about interactions between state and exceptions
12:39:41 <[exa]> arjun: you can kinda see that the post degenerates to something like database-ish transactions & data stream handling specifics later... For that usecase I'd probably think about similar structure
12:39:52 <arjun> i didn't get the last part dminuoso
12:40:08 <maerwald> I somehow always disliked 'App' transformers, but I don't know why
12:40:37 <arjun> \o
12:40:49 <dminuoso> arjun: Imagine you have a `StateT IO Int` and you want to have bracket for that
12:40:53 chomwitt joins (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
12:41:03 <dminuoso> Or `catch`
12:42:23 <dminuoso> Do you want state in an exception handler to be preserved?
12:42:34 <maerwald> hm, I think I've never seen StateT or MonadState as part of the general application architecture... people either use IORefs/TVars/etc in their ReaderT env or use StateT only locally
12:43:02 <dminuoso> maerwald: servant forces it onto you in handlers unless you hoist yourself out of it
12:43:47 <dminuoso> So far Ive seen more global StateT than IORefs in a ReaderT environment, sadly
12:44:03 <arjun> maerwald: i think state isn't cool with concurrent stuff either (race / non-determinism)
12:44:25 <dminuoso> arjun: Its perfectly cool, we have STM to deal with that.
12:44:45 <dminuoso> Of course this is yet another reason why StateT is lacking, since you cant do concurrency with it
12:44:47 pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
12:45:43 × chomwitt quits (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
12:46:33 <arjun> dminuoso: that's why we use IORefs/TVars instead of StateT ?
12:47:01 <dminuoso> Like I said, I use it because I find it way simpler to reason about in the presence of exceptions
12:47:36 <arjun> i see
12:47:39 <dminuoso> It's a coping technique because I'm not a genius.
12:47:54 chomwitt joins (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
12:48:38 <maerwald> IOHK since has shifted to freer-simple I think (in some parts of their stack)... which, amusingly, still has the same issues as any mocking: equivalence
12:49:40 <arjun> that's an effect system, right maerwald? something like polysemy ?
12:50:19 <maerwald> other parts use a configuration context (passed inte the reader env I hink) that defines functions
12:50:31 <maerwald> so I'm not sure that three-layer cake is used anywhere there anymore
12:50:54 <maerwald> arjun: yeah
12:52:12 <dminuoso> arjun: And regarding tagless final. First this creates a hefty optimization barrier, if you employ this widely in your program, chances are you will miss a lot of inlining opportunities.
12:52:32 <dminuoso> This is because writing typeclass polymorphic code ends up being represented as a function taking a dictionary
12:52:55 <maerwald> I think using custom classes instead of explicit dictionaries is unpopular
12:53:01 <dminuoso> So doing this out of a basic rudimentary design principle seems to be flawed in that you're tieng your compilers hands from the beginning.
12:53:33 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
12:53:40 <merijn> dminuoso: I like tagless final for specific logic bits, but a specific stack for the majority of actual program code
12:53:58 <arjun> hang on, let me google what this tagless final thingy is
12:53:59 <maerwald> e.g. https://git.io/JMwdD
12:54:04 <arjun> sounds like bad news : P
12:54:20 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 252 seconds)
12:54:41 <merijn> arjun: Basically "mtl style classes, but not the ones from mtl, because they're bad"
12:55:03 <maerwald> isn't that just only one interpretation of tagless final?
12:55:26 <merijn> What other interpretations exist?
12:55:39 <maerwald> I don't remember... it was discussed here once, I probably won't find it
12:55:59 × fr33domlover quits (~fr33@2.53.150.205) (Ping timeout: 252 seconds)
12:56:13 <dminuoso> maerwald: I think you were missing a single word in that sentence somewhere.
12:56:22 <dminuoso> Either a `dont` in the first half or a `not` in the second
12:56:36 <dminuoso> Ops sorry. I meant merijn
12:56:59 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
12:57:07 <merijn> dminuoso: No?
12:57:37 <dminuoso> You like tagless final for specific logic bits, *but* a specific stack for the majority of actual program code?
12:57:44 <dminuoso> Im not sure how to understand that sentence then
12:57:44 <merijn> yes
12:58:09 <merijn> dminuoso: i.e. most of the program logic *isn't* typeclass polymorphic, avoiding the lack of inlining problem you mentioned
12:58:32 <dminuoso> Ah.
12:58:36 <merijn> dminuoso: But I tend to have 3-4 different stacks (command line UI, batch job, etc.)
12:58:52 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
12:58:57 <merijn> dminuoso: And tagless final for *specific* tasks (logging, database accesses, etc.) means I can reuse those in all 3-4 stacks
12:59:36 <dminuoso> Right
13:00:02 <dminuoso> So if you do this out of code sharing, that's a very different mindset than what the three-layer cake envisions.
13:00:07 <dminuoso> Which is mostly about mockability/testability
13:00:16 <merijn> I don't believe in mockability, tbh
13:00:20 <dminuoso> Yup, neither do I.
13:00:32 <tomsmeding> maerwald: talking about this thing? https://www.foxhound.systems/blog/final-tagless/
13:00:41 <dminuoso> Because now you have to guarantee that your mock behaves the same way
13:00:42 <merijn> Mocks are a copout because you're either bad at engineering, bad at testing, or both
13:00:43 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
13:00:52 <dminuoso> There's certainly some types where you must mock for some reason or another.
13:01:06 <dminuoso> We had to mock an external API that was out of our control without access to a test API once
13:01:42 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
13:02:34 deadmarshal joins (~deadmarsh@95.38.115.243)
13:02:38 xkuru joins (~xkuru@user/xkuru)
13:03:36 <maerwald> merijn: I think mocking is fine to test the logic that has little to do with the mocked stuff... but many times people use it in other ways
13:03:53 <maerwald> then you'll end up constantly trying to figure out why your tests pass, but the real application fails
13:06:06 <dminuoso> Plus, if all you did was to test business logic, perhaps keeping it separate and running a unit test would be better?
13:06:39 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
13:06:48 <kuribas> Square: yes, put it in a let.
13:07:00 <kuribas> let poly2 = poly1 "someArg"
13:07:30 <maerwald> tomsmeding: yeah, the more I read about tagless final, the less I understand what they want from me, so I largely just ignore it
13:07:43 <kuribas> Square: unless you have MonoLocalBinds.
13:07:52 <kuribas> Square: in that case, give an explicit type signature.
13:09:32 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:09:50 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
13:10:52 <kuribas> Square: "where" should work also
13:11:21 <Square> kuribas, hmm. I seem to have no luck with that.
13:11:33 <kuribas> Square: paste some code?
13:11:47 <Square> ok, give me minute
13:12:01 <kuribas> If you are using rank-n or other extensions, you may need an explicit signature.
13:12:07 <arjun> merijn: this really does look like mtl but not mtl (https://dev.to/piq9117/haskell-look-ma-no-concrete-implementation-32p8)
13:12:20 <kuribas> I believe GADTs enables monoLocalBinds.
13:12:57 <merijn> arjun: That's because mtl are tagless final, it's just that abstraction level of mtl is bad
13:13:46 <arjun> dminuoso: so if i understood about the inlining stuff, it's to do with writing typeclass polymorphic functions/code and not getting faster optimized code?
13:14:38 <arjun> also, what are the alternatives so that we CAN get the compiler love AND write general code ?
13:15:07 <arjun> merijn: i see
13:15:26 <merijn> arjun: I the compiler knows the *exact* type (i.e. not typeclass polymorphic) it can just inline the implementation of the relevant class, instead of keeping the typeclass indirection
13:16:03 <arjun> merijn: you mean *if* ?
13:16:09 <merijn> eh, yeah
13:16:11 <dminuoso> arjun: Something like `f :: Num t => t; f = 5` is internally not implemented as an actual value, but a function that takes a dictionary of Num, and then returns a value.,
13:16:29 <dminuoso> arjun: Note how you have this sort of "function" indirection?
13:16:50 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
13:16:53 <dminuoso> Without knowing the dictionary choice/the type of t beforehand, we cannot inline its definition
13:17:16 <dminuoso> its sort of how you cant inline the body of `\x -> x + 1` without having the argument to that function
13:17:32 <arjun> dictionary of Num?
13:17:35 <Square> kuribas, i feel theres too much context involved to produce a readable example in a short while when I *really* should focus on my job. Ill play with it and might ask again at later time.
13:17:39 <arjun> what shape does that look like?
13:17:45 <dminuoso> A record of values/functions
13:17:53 <arjun> ah, i see
13:18:10 <arjun> something like dynamic method dispatch in OO polymorphism
13:18:14 <dminuoso> Yes, exactly
13:18:34 <arjun> i always wondered how that worked
13:18:49 <maerwald> arjun: see https://youtu.be/0jI-AlWEwYI
13:19:05 <merijn> arjun: Note that that's an implementation detail of GHC, though :)
13:19:14 <maerwald> there's some explanation of inlining wrt classes
13:20:07 <arjun> maerwald: brownies,i've been dragging my feet on her content for so long, that video and the post "parse dont validate", i'll just carve out and afternoon for those
13:21:21 <arjun> dminuoso: so, i get it for the values, does that works the same way for typeclass polymorphic functions too?
13:21:51 <merijn> arjun: Yes
13:21:51 <arjun> something like `f :: (MonadIO m, MonadFail m, etc..)`
13:22:06 <merijn> arjun: Effectively they function as hidden arguments taking a dictionary of class functions
13:22:34 <merijn> arjun: Except, that when GHC statically knows which *actualy* type you use, inlining those dictionaries straight into the code is trivial
13:22:49 <merijn> So a lot of typeclass overhead/indirection can be trivially optimised away at compile time
13:22:56 <arjun> so those values and functions are general, but that comes at an inlining cost?
13:23:03 <maerwald> -fspecialize-aggressively to the rescue
13:23:31 <dminuoso> It's not even enough
13:23:35 <arjun> merijn: so if i write general code and not runtime call it, it's fine?
13:23:40 <dminuoso> You usually need this in conjunction with -fexpose-all-unfoldings
13:23:48 <dminuoso> and then watch compile time and memory usage skyrocket
13:24:21 × kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
13:24:25 <merijn> arjun: So, suppose you write "2 + 2" normally all those things are typeclass polymorphic
13:24:38 <arjun> sure
13:24:42 <merijn> arjun: But as soon as it's "2 + 2 :: Int" (via type inference for some function argument, whatever)
13:25:09 <merijn> arjun: GHC can trivially see "oh, this only uses the Int dictionary" and just inline all the dictionaries function calls straight into that removing all indirection
13:25:35 <dminuoso> arjun: Yes. In fact, there's some other subtleties involved as well. If you have something polymorphic, it cant be shared. That is, if you have `let x :: Num; x = expensiveExpr in (x * 10, x * 20)`, this will unexpectedly evaluate the expression of `x` twice
13:25:37 <arjun> so, fix the type either manually or via inference, win ?
13:25:53 <merijn> Which actually applies to a large number of typeclass calls, since probably >50% of all calls deal with statically known types
13:25:56 <merijn> arjun: basically
13:26:20 <dminuoso> arjun: And because the Haskell authors antipicated this, we have the monomorphism restriction, which will try to monomorphize (make them non-polymorphic) bindings without type signatures in most situations, to avoid performance problems creeping up
13:26:31 <merijn> arjun: And due to inference this can happen through large chunks of code at once via just 1 type signature somewhere
13:26:44 <arjun> maerwald: this is what we do with the ghcup code right? there's all sort of poly functions, but they get inferred with main invocations?
13:26:49 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
13:26:59 <maerwald> uhm
13:27:23 <maerwald> you mean `runReaderT` probably
13:27:25 <maerwald> etc
13:27:30 <arjun> merijn: wouldn't the compiler need to know the types anyway for typechecking ?
13:28:20 <merijn> arjun: the runtime invocation of any specific function can't always be statically known
13:28:23 <arjun> maerwald: yea, those in the main function which fix the logger and envs etc
13:28:42 <maerwald> yes, runE, runReaderT and runLogger mostly
13:28:48 <arjun> merijn: i see
13:28:49 <maerwald> and then there's LabelOptics tricks
13:28:55 <merijn> (don't ask me to conjure up an example, because I can't think of an easy one right now :p)
13:29:12 <arjun> HasDirs and stuff right?
13:29:38 <maerwald> yeah that allows to re-use the same api across different environments
13:30:04 <dminuoso> arjun: Consider that you can simply write a module that exposes a polymorphic function. GHC must be able to compile this module on its own, irrespective of whether something else uses it or not.
13:30:21 <arjun> merijn: that's alright, you've been quite a help already; )
13:30:21 <dminuoso> So you cant know the used type(s!) beforehand
13:30:49 <dminuoso> And you cant know all possible typeclass instances either, because they might be defined somewhere else too
13:31:33 <maerwald> whole program optimization to the rescue
13:31:33 <arjun> dminuoso: THAT MAKES SO MUCH SENSE
13:33:55 <dminuoso> Sigh
13:33:57 <dminuoso> WARNING: /root/.cabal/: no matching files
13:34:28 <dminuoso> Is there a way to have cabal tell me where the cabal store is?
13:35:40 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
13:36:06 sagax joins (~sagax_nb@user/sagax)
13:36:13 <maerwald> https://hackage.haskell.org/package/cabal-install-parsers-0.4.3/docs/Cabal-Config.html
13:36:28 <dminuoso> Mmm
13:36:56 <dminuoso> Ah I think what happens is that gitlab ci cache can only operate on the current directory
13:37:04 <dminuoso> That could explain it
13:37:24 <dminuoso> Damn yes.
13:37:42 <arjun> dminuoso: just to solidify if i understood, TC polymorphic functions and values are ALWAYS compiled to ditcs redirects, but if you fix a type a compile time, the compiliers walks the redirection for you and basically kisses you on the forehead and inlines that code ?
13:38:08 <maerwald> whether something inlines or not depends on a lot more factors
13:38:33 <arjun> : P
13:38:39 <dminuoso> arjun: No.
13:38:57 <dminuoso> arjun: Honestly this is a long story and GHC has mechanisms to still inline polymorphic things.
13:40:02 <arjun> "long story" i bet, i sometimes forget haskell is older than the j word language
13:40:14 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
13:40:16 <dminuoso> But put it this way: If you make it polymorphic, you dont have a good guarantee it will get inlined. If you make it polymorphic and specialize, you have a better chance of inlining. If you make it polymorphic, specialized and inlinable, you *guarantee* that GHC *can* inline it on the oother side
13:40:43 <maerwald> it also depends how you call the function
13:41:00 <dminuoso> (specialization here means, that alongside the definition, GHC will embed a secondary definition that assumes the polymorphic code to be fixed to some type known beforehand)
13:41:18 <dminuoso> (and then GHC can, on the other side, use the specialized implementation if in that spot it knows it to be that type)
13:41:26 <maerwald> you have to supply all "arguments"
13:41:39 <dminuoso> But really, this whole discussion can only go on with "read the GHC source code" at some point
13:41:51 <maerwald> yes, until the next GHC version
13:41:57 <dminuoso> It's very complicated and requires a lot of finesse, expertise and trial-and-error to control optimization
13:42:11 <arjun> got it (pun)
13:45:20 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
13:45:56 max22- joins (~maxime@2a01cb088335980011d3732a3bb127e3.ipv6.abo.wanadoo.fr)
13:48:00 <yin> is there a usual way of getting chunks between delimiters, like `f START END [0,1,2,START,3,4,END,5,START,6,7,8,END,9] => [[3,4],[6,7,8]]` ?
13:48:12 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
13:48:19 <maerwald> arjun: https://github.com/quchen/articles/blob/master/fbut.md#f-x---is-not-f--x---
13:49:42 × narendra quits (~user@2a02:8109:b63f:ff7c::56c2) (Remote host closed the connection)
13:49:46 <arjun> maerwald: that was helpful
13:51:17 <arjun> yin: some combination of, dropWhile Start, takeWhile (not End) perhaps ?
13:51:36 <yin> yes that's what i have
13:51:57 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
13:56:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:56:52 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
13:58:53 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
14:01:03 × Farzad quits (~FarzadBek@37.98.106.66) (Quit: Leaving)
14:02:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:03:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:04:47 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:05:04 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:07:02 × max22- quits (~maxime@2a01cb088335980011d3732a3bb127e3.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
14:08:01 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
14:08:42 cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
14:11:55 × acidjnk_new quits (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
14:12:15 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:15:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:16:03 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:16:08 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:22:05 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:22:24 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:23:56 <merijn> hmmm
14:24:10 <merijn> why does incomplete-uni-patterns trigger on an explicitly lazy pattern?
14:25:21 <dminuoso> Curious, because they're even properly called irrefutable patterns.
14:25:47 <dminuoso> But I guess, add them to the long list of incomplete/incomplete-uni-patterns bugs?
14:26:24 <merijn> Well, the warning says it applies to lazy bindings too
14:26:29 <merijn> I dunno why it's on, though
14:28:19 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:28:37 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:30:17 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:30:34 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:31:27 <merijn> dminuoso: As far as I can tell it shouldn't be enabled by default (according to the docs) and it isn't on 8.0 through 9.0
14:31:38 <merijn> So I'm confused why it is on in 9.2
14:32:29 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
14:33:39 Farzad joins (~FarzadBek@37.98.106.66)
14:36:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:37:06 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:38:28 × dsrt^ quits (~dsrt@68.101.58.90) (Remote host closed the connection)
14:40:05 <yin> is there a flip (.) ?
14:41:29 <geekosaur> @index (&)
14:41:29 <lambdabot> Data.Function
14:42:44 <yin> that's flip ($)
14:43:48 <yushyin> (>>>)
14:43:52 <boxscape> yin: Data.Category.>>>
14:43:58 <boxscape> oh I'm too late
14:44:23 boxscape_ joins (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
14:44:42 <yushyin> boxscape: only by a few seconds!
14:45:39 <boxscape> I'm always a bit unsure how long the matrix bridge will take to actually send a message
14:45:46 <boxscape> (I think there's some jitter, too)
14:46:04 <yin> that was it! thank you
14:46:19 <merijn> The answer is *drumroll* someone put in a proposal to enable incomplete-uni-patterns by default and didn't bother to update *any* of the docs! Yay!
14:47:09 <yin> boxscape: a couple of weeks ago i was hitting 2 hours
14:47:25 <boxscape> oh boy
14:48:25 <yin> i'm used to 20 secs when it's good, 2 mins when it' bad and 20 min when it's really bad
14:48:45 <yin> but many get lost
14:48:48 <merijn> Well, that kinda renders irrefutable patterns useless
14:49:20 × bsima quits (~bsima@2604:a880:400:d0::19f1:7001) (Quit: ZNC 1.8.2 - https://znc.in)
14:49:48 max22- joins (~maxime@2a01cb08833598008751b1889105ced7.ipv6.abo.wanadoo.fr)
14:49:55 bsima joins (~bsima@2604:a880:400:d0::19f1:7001)
14:50:35 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
14:50:43 <boxscape> merijn: you can always turn off the warning
14:50:53 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:50:54 <geekosaur> for the whole file, yes
14:51:04 <merijn> boxscape: Yes, but you can never do that for an individual irrefutable pattern
14:51:06 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/issues/20643
14:51:19 <geekosaur> as merijn just pointed out in #ghc
14:51:33 <merijn> Also, I'm just grumpy because once *again* nobody updated the GHC flag reference
14:51:40 <boxscape> merijn: right, but it doesn't seem like adding it to -Wall made this part any worse
14:51:56 <merijn> Literally *every* *single* *time* I interact with flags someone has fucked up and not updated shit
14:52:20 <merijn> over 50% of my GHC issues are pointing out missing/undocumented flags >.>
14:52:22 <yin> when do we replace irrefutable patterns for proofs to the compiler
14:53:16 <merijn> boxscape: Well, I would've liked that problem to be solved before it got enabled unconditionally and I had to figure out how to selectively disable that flag for 1 compiler in my CI >.>
14:53:47 <boxscape> that's fair
14:54:02 <merijn> especially since I consider it a low value warning
14:54:20 shapr` joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
14:54:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:54:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:54:47 wroathe joins (~wroathe@user/wroathe)
14:56:11 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
14:57:40 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
15:00:17 shriekingnoise joins (~shrieking@186.137.144.80)
15:05:43 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:06:01 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:06:05 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:06:21 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:08:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:08:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
15:08:35 × justache quits (~justache@user/justache) (Ping timeout: 256 seconds)
15:09:27 TranquilEcho joins (~grom@user/tranquilecho)
15:12:55 × bliminse quits (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving)
15:16:14 <merijn> oh goodie
15:16:25 <merijn> someone broke operator sections for $ too
15:16:39 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
15:17:30 <boxscape> asking you if you want to enable template haskell?
15:17:42 [exa] . o O ((`id` function))
15:18:06 <merijn> boxscape: That's a warning enabled by default now, so -Werror on CI breaks on that too
15:18:17 <merijn> So far, not particularly happy with 9.2
15:19:09 <merijn> Way too many default enabled warnings that trigger on completely benign and correct haskell
15:19:37 <boxscape> I think the warning didn't exist at all before https://github.com/ghc-proposals/ghc-proposals/pull/229
15:19:46 justache joins (~justache@user/justache)
15:19:48 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
15:19:49 <merijn> boxscape: It didn't no
15:20:28 × pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
15:21:15 jakalx joins (~jakalx@base.jakalx.net)
15:22:08 MaybeJustJames joins (~jacol@2001:981:4ea3:1:a8b4:6ac6:c93b:9bcf)
15:23:01 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
15:24:30 × justache quits (~justache@user/justache) (Ping timeout: 256 seconds)
15:24:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:24:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:24:39 wroathe joins (~wroathe@user/wroathe)
15:25:01 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
15:25:23 × sheb quits (~sheb@31.223.228.71) (Quit: Leaving)
15:25:43 deadmarshal joins (~deadmarsh@95.38.115.243)
15:28:02 bliminse joins (~bliminse@host86-162-147-196.range86-162.btcentralplus.com)
15:29:08 justache joins (~justache@user/justache)
15:29:36 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
15:29:57 Vajb joins (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi)
15:35:21 × dermato quits (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) (Quit: WeeChat 3.1)
15:39:35 × arjun quits (~user@user/arjun) (Remote host closed the connection)
15:41:50 × justache quits (~justache@user/justache) (Read error: Connection reset by peer)
15:42:01 × Farzad quits (~FarzadBek@37.98.106.66) (Ping timeout: 256 seconds)
15:42:33 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Read error: Connection reset by peer)
15:42:51 justache joins (~justache@user/justache)
15:43:06 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
15:44:09 dschrempf joins (~dominik@mobiledyn-62-240-134-39.mrsn.at)
15:50:43 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
15:53:09 Guest|27 joins (~Guest|27@cpea456cc4b1ddd-cma456cc4b1ddb.cpe.net.cable.rogers.com)
15:53:57 zer0bitz joins (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
15:54:31 shapr` is now known as shapr
16:02:34 justache is now known as justSleigh
16:04:39 <eyJhb> I am not sure, if this is possible. But I am trying to play a little around with ghci, and I somewhat thought it was comman that if I wrote ie. `length`, that it would show me the definition of it, instead of an error ie. https://termbin.com/2f7i
16:04:53 nvmd joins (~nvmd@user/nvmd)
16:05:25 <merijn> eyJhb: ghci runs expressions through "show" to print them
16:05:35 <merijn> eyJhb: length is a function and there is no show isntance for functions
16:05:56 <merijn> eyJhb: That error is complaining "[a] -> Int" (the function type of length) doesn't have a show instance
16:05:59 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
16:06:43 <geekosaur> and at present there's no way for ghci to know the definition of a function. there is work on changing that via .hie files containing enough information to recover or find definitions, but it's not there yet nor does ghci know how to use it yet
16:06:44 × dschrempf quits (~dominik@mobiledyn-62-240-134-39.mrsn.at) (Quit: WeeChat 3.3)
16:06:55 gaff joins (~gaff@49.207.195.117)
16:08:10 <gaff> if a package is listed as package id in the package environment file (default), how can i remove that package?
16:08:13 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
16:08:14 <eyJhb> Okay :) Guess I just thought it wold return "the function", and show that it still accepts args, 1, 2, 3.
16:08:51 <merijn> eyJhb: Did you maybe want ":type"?
16:08:54 <merijn> :t length
16:08:55 <lambdabot> Foldable t => t a -> Int
16:09:01 <merijn> :t length []
16:09:02 <lambdabot> Int
16:09:18 <geekosaur> % :t length @[]
16:09:18 <yahb> geekosaur: [a] -> Int
16:09:22 <eyJhb> Hmm... Yeah, that's actually what I excected it to show! Thanks :)
16:09:47 <geekosaur> > length
16:09:49 <lambdabot> error:
16:09:49 <lambdabot> • No instance for (Typeable a0)
16:09:49 <lambdabot> arising from a use of ‘show_M78435480957096341498’
16:09:50 <eyJhb> Trying to do some basic advent of code using Haskell. And sorting in the Haskell learning material that I got
16:10:05 <merijn> Nice :)
16:10:08 <geekosaur> didn't think that would work, polymorphism's a bit much for ghci's show-functions hack
16:10:12 <merijn> See also the leaderboard in the topic :)
16:10:55 <geekosaur> er, lambdabot's. I don't think it's packaged in a way you could use it with ghci
16:11:14 <geekosaur> at least I couldn't find the lambdabot module when I went looking for it the other day
16:11:24 <boxscape> > ord
16:11:25 <lambdabot> <Char -> Int>
16:12:23 gehmehgeh joins (~user@user/gehmehgeh)
16:12:58 <gaff> the package id is listed in the file named "default"
16:13:25 <merijn> gaff: You used "cabal install --lib", I guess?
16:13:33 <gaff> yeah
16:13:42 <gaff> i did
16:13:50 <merijn> I think you can just nuke the line from the file, tbh
16:14:50 <tomsmeding> geekosaur: isn't it something like 'instance {-# OVERLAPPABLE #-} (Typeable a, Typeable b) => Show (a -> b) where ...'?
16:14:52 <gaff> merijn: i tried that, but GHCi still finds the package, although it complains that it is now hidden
16:15:04 <geekosaur> probably, yes
16:15:08 <merijn> gaff: Is there a .ghc.environment in your working dir?
16:15:18 <gaff> i want to get rid off the package altogether
16:15:34 <gaff> no
16:15:44 <geekosaur> but I was hoping to find the actual module and verify. sadly I could find the import in L.hs but not the module itself
16:15:49 <gaff> this "default" file is in the global location
16:16:19 <gaff> .ghc/.../environments/default
16:16:21 <merijn> gaff: tbh, there's no real convenient way to "uninstall" specific packages atm, but you also shouldn't really need to in general
16:16:45 <geekosaur> just edit the file
16:17:01 <geekosaur> or better yet, nuke it and let cabal or stack manage packages for you
16:17:01 <eyJhb> merijn: I think I have been invited to 3x leaderboards so far :D Nix community, and some from University :D
16:17:06 <gaff> ok ... i am kind of surprised
16:17:10 <merijn> geekosaur: I already said that
16:17:56 <merijn> gaff: There's some tools for "GCing" the global store, but it's surprisingly tricky to do properly
16:18:05 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:2b1a:1927:b5c5:1912) (Quit: WeeChat 2.8)
16:18:09 <gaff> merijn: where exactly would this package be? i tried a ghc-pkg find-module, but it didn't find it anywhere
16:18:23 <gaff> but strangely, GHCi, finds it
16:18:26 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
16:18:32 <merijn> tbh, I haven't used the global package db since 2016 so I kinda forgot
16:18:41 <gaff> merijn:
16:19:02 <merijn> The global store is under .cabal/store, but I don't think global installs (i.e. with --lib) use the store
16:19:15 <gaff> i don't want to use the global db either, but i was just experimenting with something
16:19:19 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
16:19:26 <geekosaur> last I checked, they did and the environment file points into the store
16:20:08 <geekosaur> last time I read through and nuked the env, which was while I was experimenting with updating cabal installation for xmonad
16:20:15 <gaff> geekosaur: you mean the "default" file where the package ids are listed?
16:20:20 <geekosaur> yes
16:20:30 <gaff> nuke the "default" file?
16:20:46 zebrag joins (~chris@user/zebrag)
16:21:31 <geekosaur> well. go through it and figure out what packages you'll need in the future. but cabal should already have them in its store, so yoou'll just have to update how you're using them to use the v2-* commands instead of v1-*
16:21:41 <geekosaur> then nuke it because it just causes pain
16:22:07 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
16:22:17 <geekosaur> also, you'll want a cabal file and cabal repl because things will stop working in plain ghci. if you really need plain ghci to work then edit the environment to remove the package(s) you don't want
16:22:35 <geekosaur> but I'd really recommend moving away from that because environment files are such a pain
16:23:01 × TranquilEcho quits (~grom@user/tranquilecho) (Ping timeout: 268 seconds)
16:23:11 ec_ joins (~ec@gateway/tor-sasl/ec)
16:23:12 <sclv> to answer the specific question you can literally delete the line from the package env file to remove the package
16:23:33 <merijn> sclv: But already said that, and that supposedly didn't work?
16:23:34 <gaff> geekosaur: yeah, i don't want to fiddle around with global stuff, i was just experimenting with something
16:23:39 × MaybeJustJames quits (~jacol@2001:981:4ea3:1:a8b4:6ac6:c93b:9bcf) (Remote host closed the connection)
16:23:46 TranquilEcho joins (~grom@user/tranquilecho)
16:23:52 <sclv> oh i see
16:24:03 <sclv> ok, i imagine that would be because there's something else that's a transitive dep on it?
16:24:15 <geekosaur> or because they didn't restart ghci afterward
16:24:25 <geekosaur> maybe
16:24:44 <gaff> sclv: even if delete the line from the denv file, GHCi still finds the package, although now it complains that the package is hidden.
16:24:56 <sclv> gaff: is there any other package that has that package as a dep?
16:24:59 × mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds)
16:25:05 <gaff> no
16:25:15 <sclv> well, then that shouldn't happen
16:26:03 <sclv> if you want to pastebin the error that could be useufl
16:26:19 <geekosaur> could it be in the old user package db, perhaps?
16:26:22 <gaff> also, GHCi suggests `:set` command to make the package visible as well
16:26:36 <geekosaur> @where paste
16:26:36 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
16:27:11 reumeth joins (~reumeth@user/reumeth)
16:27:18 <gaff> Could not load module ‘QuickCheck1’, It is a member of the hidden package ‘qcheck-original-0.1.0.0’. You can run ‘:set -package qcheck-original’ to expose it.
16:27:56 <gaff> that's the error message from GHCi
16:28:12 Farzad joins (~FarzadBek@5.234.246.252)
16:28:35 <gaff> now in the code that GHCi runs, there is an "import QuickCheck1" statement
16:28:37 <sclv> so you're trying to load a module from a package you don't have in your env file
16:28:43 <sclv> and you get an error
16:28:47 <gaff> yeah
16:28:47 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
16:28:56 <sclv> that seems like expected behavior, except the wording in the error may confuse you?
16:28:57 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
16:29:03 × alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds)
16:29:12 <sclv> like... if you try to load the module, but the package isn't in the env, you _should_ get some error
16:29:31 <EvanR> I just noticed in the ghc manual it says "If you think an error message is especially terrible, report it as a bug" xD
16:29:45 kennyd joins (~bc8165b6@cerf.good1.com)
16:30:46 <gaff> sclv: the problem here is that even though i deleted the package id from the env file, if i do the `:set` command suggested by GHCi, the package loads and things work fine. what i wanted was to delete the package completely.
16:31:00 <sclv> why
16:31:39 <gaff> because that package is installed globally by me (as an experiment) and i wanted to remove it
16:31:48 <sclv> ok well in an important sense you can't
16:31:56 <sclv> because you can't delete individual packages from the store
16:31:56 <gaff> sclv: i see
16:32:04 <sclv> you can just expose them or not in a package environment
16:32:23 <gaff> sclv: is that by design?
16:32:28 <sclv> yes, ish
16:32:31 <sclv> the store is just a cache
16:32:44 <sclv> ideally we'd have a garbage-collect for it
16:32:52 <sclv> but it would need to have gc roots and chase transitive deps, etc
16:32:52 <gaff> ok
16:33:00 <sclv> and nobody's written that
16:33:05 <gaff> i see
16:33:14 <sclv> so the store just accumulates stuff, and eventually if people really want to they nuke it on occasion
16:33:22 <sclv> but since its a cache, thats fine and it fills up again
16:33:23 <merijn> You'd also somehow have to find all packages on someone's filesystem to determine what is needed or not
16:33:40 <merijn> gaff: Personally I just nuke the global store once or twice a year (or if I upgrade GHC)
16:33:53 <gaff> sclv: another weird thing is that if i do a serach using `find-module`, ghc-pkg is unable to find that package anywhere!
16:33:54 <sclv> this is not qualitatively different from v1-build i will note
16:34:17 pfurla joins (~pfurla@201.17.118.230)
16:34:23 <sclv> ghc's never had robust support for deleting a package from a db, just for hiding it
16:34:36 <merijn> gaff: The "worst case" of nuking the global store is "every time you go to a new project after nuking the store, you will have to recompile your dependencies"
16:34:49 <merijn> But that's a pretty minor issue if you only do it once or twice a year
16:34:53 slowButPresent joins (~slowButPr@user/slowbutpresent)
16:35:03 <geekosaur> gaff, ghc-pkg is unaware of environment files. I wonder if you have another one somewhere
16:35:12 <gaff> merijn: yeah, i know ... i am not going there ... trust me. this was just an experiment
16:35:26 <merijn> gaff: So, ghc-pkg interfaces with a static "package database", but that's kinda...limiting and let to lots of issues
16:35:31 <geekosaur> (there's a ghc bug open about that iirc)
16:35:57 <merijn> gaff: In the v2-world order, there is no longer a package database for ghc-pkg, instead cabal (dynamically) generates a unique package database for each project
16:36:26 <merijn> gaff: So each project can only see the packages relevant to that specific project (allowing you to have conflicting versions, configurations, etc.) of packages installed at the same time
16:36:51 <gaff> merijn: when you say global store, the ~.cabal/store?
16:37:14 <merijn> yes
16:37:17 <gaff> ok
16:38:10 <gaff> merijn: yeah, currently i am working using cabal v2-builds on every project. not using global store at all
16:39:45 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
16:39:56 <merijn> Eh, v2 uses the global store rather heavily. There was no global store pre-v2 :p The global store, however, is different from the global package db (which was used pre-v2 and now mostly obsolete)
16:39:59 <gaff> merijn: one point ... using the nix style, it does cache the packages so that they can be shared between projects if needed. but you are right -- no conflicts whatsoever
16:40:28 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:41:54 <gaff> merijn: so the experiment i tried where i have a package id listed in the global environment file -- that is a legacy from the old style of global package db?
16:42:44 alzgh joins (alzgh@user/alzgh)
16:42:53 <merijn> gaff: That tries to mimic the global package db by having an environment that points to a few specific things in the store. Which is why nuking things in the environment file "gets rid off them"
16:43:07 <gaff> ok
16:43:26 <merijn> but because the global environment affects everything, it now messes with every individual project, iirc
16:43:36 <gaff> yeah
16:44:42 <gaff> so nuking the line in the file is enough? or do i need to nuke the entire file? or nuke the entire global store, ~/.cabal/store?
16:44:54 <merijn> just nuking the line in the file is enough
16:45:02 <gaff> merijn: cool
16:45:09 <gaff> merijn: thanks much
16:45:12 <merijn> You'll still have the package in the store, but besides a bit of disk space that shouldn't affect anything
16:45:49 <gaff> yeah, i need to remember to work using cabal projects
16:45:58 × nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.)
16:46:50 <monochrom> I think that saying "store" is less confusing than saying "global store".
16:48:26 <monochrom> This is a consideration based on Hamming distance and the human mind always trying to "auto-correct" words and phrases.
16:49:08 <c_wraith> Also, "global" used to mean "for all users of the system" in some cases.
16:49:09 <monochrom> "store" is very far from "global db", but "global store" is closer.
16:50:08 <monochrom> When the human mind reckons "eh I haven't seen the word 'store' used like this", it goes "ah but I have seen 'db', so let me just pretend you said 'db'".
16:51:29 <davean> monochrom: Some people's mind do that - I tend to dislike those people
16:51:43 <davean> This seems to very much be a personality thing
16:52:04 lbseale joins (~ep1ctetus@user/ep1ctetus)
16:53:47 <monochrom> But it also has its value. There are a large class of typos that I can make and you can auto-correct on, and your auto-correction is correct.
16:54:39 <monochrom> There are acronyms like "kthxbye" "weg" that you can guess correctly without being taught.
16:55:11 <gaff> monochrom: also the human mind can be made to believe anything ... one thing now, another thing next ... which is why you see so many contradictory views. anyway, what i am saying is unrelated to haskell ... just something general.
16:55:21 <monochrom> When comprehending a large code base, there are large chunks of code you don't carefully read but you correct guess what they're doing and you quickly move on.
16:55:53 <davean> only one of thsoe was an acronym BTW
16:56:24 <EvanR> the generalities have gone beyond haskell now
16:56:49 <EvanR> did we figure out the #haskell AoC leaderboard yet?
16:57:10 <gaff> thanks much for the help
16:57:15 × gaff quits (~gaff@49.207.195.117) ()
16:57:27 <geekosaur> see the /topic
16:58:05 <geekosaur> I saw the topic change but nothing else so I assume The Guy caught the earlier discussion and updated it
16:58:46 <EvanR> oh nice, I'm already there!
16:58:58 <merijn> It's the same as the last 2 years, yeah
17:00:41 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
17:02:39 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
17:02:42 <EvanR> to get a high score on the leaderboard, you not only have to be quick, but you have to be awake at midnight? xD
17:03:16 <monochrom> Or move to a more advantageous time zone.
17:03:21 <EvanR> oh yeah
17:04:24 <merijn> They open at 6 AM here
17:04:27 <merijn> and fuck that :p
17:04:36 <EvanR> that's even worse
17:04:53 <monochrom> "The best way to win is not to play"
17:05:17 Erutuon joins (~Erutuon@user/erutuon)
17:05:32 × td_ quits (~td@muedsl-82-207-238-025.citykom.de) (Remote host closed the connection)
17:06:25 justsomeguy joins (~justsomeg@user/justsomeguy)
17:09:29 jncraton joins (~jncraton@199.8.13.16)
17:10:16 aman joins (~aman@user/aman)
17:11:16 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:12:43 Techcable_ is now known as Techcable
17:13:02 jakalx joins (~jakalx@base.jakalx.net)
17:13:19 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:13:59 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
17:17:18 |beowulf| joins (1000@sourcemage/mage/beowulf)
17:17:26 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
17:17:36 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
17:19:37 × aman quits (~aman@user/aman) (Quit: aman)
17:22:01 × srk quits (~sorki@user/srk) (Ping timeout: 245 seconds)
17:22:11 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
17:24:31 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
17:26:29 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
17:26:44 kmein joins (~weechat@user/kmein)
17:28:17 <EvanR> doing "quick one off" haskell "scripts" is the only time I encounter the no type signatures version of haskell, very cool
17:28:38 <EvanR> and tricky, had to put (read :: String -> Int) in there
17:29:59 <EvanR> I always put signatures on everything, so I don't know how to explain monomorphism restriction to someone who encountered it xD
17:30:08 <boxscape> EvanR: shorter: read @Int
17:31:02 <EvanR> ok... but you'd have to add a language pragma right, and anyone who sees that and doesn't know haskell will increase their weird syntax defcon level by 1
17:31:49 <boxscape> possibly
17:32:02 <boxscape> I think it's enabled by default in the newest version of ghc
17:32:05 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:32:43 <EvanR> I only understand how @Int works by smashing my head on Idris so much
17:32:49 <EvanR> with implicit params
17:33:14 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
17:33:58 <yushyin> boxscape: TypeApplications is in GHC2021, yes.
17:34:21 <tomsmeding> TIL GHC2021 is actually the default language in HEAD at this point
17:35:00 <boxscape> tomsmeding: to be fair you might not even notice if you use cabal or stack since I think the default in the .cabal file is still Haskell2010
17:35:44 <tomsmeding> yeah
17:36:43 FarzadBekran_ joins (~FarzadBek@94.74.153.122)
17:37:54 <pragma-> I concur.
17:38:29 <merijn> boxscape: Haskell98 unless you use a recent cabal-version
17:38:32 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Quit: Rebooting for OS update...)
17:38:46 <boxscape> hm okay
17:39:11 <geekosaur> tomsmeding, it's also the default in 9.2.1
17:39:18 × mbuf quits (~Shakthi@27.58.139.230) (Quit: Leaving)
17:39:18 <merijn> actually, the version doesn't mention any change, so looks like Haskell98 in all cabal versions
17:39:37 deadmarshal joins (~deadmarsh@95.38.115.243)
17:39:53 × Farzad quits (~FarzadBek@5.234.246.252) (Ping timeout: 256 seconds)
17:40:25 <merijn> ah, no, in 3.4 the default-language is optional and set to the compiler's default...so that's a terrible idea
17:40:25 <sclv> right, i think that cabal init will tend to add Haskell2010 when you init, however
17:40:30 <sclv> oh wait, ugh
17:40:39 <merijn> Who thought that was a good idea
17:40:40 <tomsmeding> "default in cabal files" for me is "whatever is in the last project that I happen to copy the .cabal file from" :p
17:40:43 <sclv> well, both can be true :-)
17:41:01 <sclv> (i.e. that cabal init gives it explicitly, and also the spec has this silly floating default)
17:41:37 <davean> merijn: Not true?
17:41:39 <boxscape> cabal init sets it to Haskell2010 in cabal 3.6 for me
17:41:45 <merijn> davean: What is not true?
17:41:46 <boxscape> oh sclv said as much
17:41:51 <davean> merijn: Your claim about 3.4
17:42:07 <merijn> davean: https://cabal.readthedocs.io/en/latest/file-format-changelog.html#cabal-version-3-4
17:42:14 <merijn> davean: Well, the docs disagree with you there :p
17:42:37 <davean> Its just ... false. Thats not how cabal init behaves, it puts in default-language:
17:42:40 <davean> Haskell2010
17:42:44 <merijn> hold on
17:42:51 <boxscape> I don't think the docs are talking about cabal init
17:43:00 <merijn> cabal init and the version of your cabal executable are entirely unrelated to what I'm saying
17:43:03 <boxscape> they're talking about what the value is if your cabal file doesn't have default-language
17:43:03 <davean> They are not talking about cabal init
17:43:12 <merijn> davean: Neither was I?
17:43:12 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
17:43:20 <davean> ok
17:43:22 <merijn> Also, cabal init default to 2.4, iirc
17:43:30 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
17:43:35 <merijn> In which version the default language is not optional
17:44:11 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
17:44:30 <davean> merijn: sorry, I'd thought you were refering to the conversation around it, not making a seperate statement
17:45:06 <davean> (Specificly you'd said 'cabal', not 'Cabal' right before it)
17:47:21 <pragma-> So the cabal package manager can never be at the beginning of a sentence.
17:47:48 <davean> pragma-: why is that?
17:47:49 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
17:47:55 <merijn> davean: The capitalisation ;)
17:48:09 <davean> merijn: you just don't capitalize it at the start of a sentance
17:48:15 <geekosaur> well, you can stil refer to it as cabal-install
17:48:16 <sclv> wow you're really capitalizing on this confusion here
17:48:29 <monochrom> I violate the capitalization convention when in this kind of situations.
17:48:47 <EvanR> does Haskell2010 enable new things by default like this new "standard" does?
17:48:49 <monochrom> "t is a type variable" rather than "T is a type variable"
17:49:10 <monochrom> Also not bothering with the trick of "The t there is a type variable".
17:49:33 <EvanR> to be super proper should t be in quotes or another font xD
17:49:41 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
17:49:42 <monochrom> But I know that there are English grammatists who go out of their way to do rewording like that.
17:49:52 <davean> The only language standard I know to get the start of a sentance wrong is APA, and I don't even think they'd agree with their own rules if they thought about them
17:50:06 <Hecate> perl is also something like this
17:50:16 <Hecate> perl -> the cli tool (so really perl(1))
17:50:19 <Hecate> Perl -> the language
17:50:25 <monochrom> And sclv: haha
17:50:29 <boxscape> EvanR: differences to Haskell98: FFI, Hierarchical module names, Pattern guards, no n+k patterns. Though I believe ghc lets you use pattern guards even with Haskell98
17:50:42 <EvanR> Haskell the language, haskell the cli tool, wait that would be cool
17:50:56 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
17:51:26 <EvanR> what about FFI?
17:51:30 srk joins (~sorki@user/srk)
17:51:53 <EvanR> how does that pertain to the language
17:51:59 <monochrom> Well, "runhaskell" comes close.
17:52:16 <EvanR> runHaskell xD
17:52:21 <monochrom> haha
17:52:30 <monochrom> I hate camel case too.
17:52:35 <Franciman> run_haskell
17:52:35 <sclv> FFI was an appendix to haskell98, but incorporated in 2010
17:52:37 <Franciman> ?
17:52:47 <EvanR> caps lock everything was a simpler time
17:52:48 <boxscape> EvanR: you can write things like "foreign import" in a Haskell source file
17:52:54 <sclv> that said in GHC, h98 and h2010 both have the ffi enabled
17:52:59 <EvanR> boxscape, oooh ok
17:53:09 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:53:16 td_ joins (~td@muedsl-82-207-238-021.citykom.de)
17:53:55 <EvanR> there are too many conventions for writing multiple words as one. Obviously we can fix it all by inventing new tech that lets you just use spaces
17:54:24 <EvanR> (or reviving old old tech that had this)
17:54:30 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
17:54:30 allbery_b joins (~geekosaur@xmonad/geekosaur)
17:54:33 allbery_b is now known as geekosaur
17:54:33 <boxscape> that tech is called "not using ASCII files to represent ASTs"
17:54:41 <davean> EvanR: Just out in non-breaking spaces
17:54:45 <EvanR> lol
17:54:58 <monochrom> "Space, the final frontier"
17:55:00 <EvanR> not using text files is one way I guess but no
17:55:11 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
17:55:45 <monochrom> Can Programming Be Liberated from The Plain Text File
17:56:13 <EvanR> I didn't want to open that can
17:57:14 <pragma-> monochrom: certainly! https://www.dangermouse.net/esoteric/piet/samples.html
17:59:38 <monochrom> The Cödel Incompleteness Theorem
18:03:03 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
18:04:51 × jncraton quits (~jncraton@199.8.13.16) (Quit: leaving)
18:05:05 × vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds)
18:06:50 <EvanR> is there a Piet on a Parasail (webframework)
18:07:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds)
18:08:27 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
18:09:21 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
18:13:04 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
18:13:43 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
18:13:53 × td_ quits (~td@muedsl-82-207-238-021.citykom.de) (Ping timeout: 256 seconds)
18:13:57 gabriel joins (~gabriel@188-167-229-200.dynamic.chello.sk)
18:14:07 gabriel is now known as gabriel_sevecek
18:15:30 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
18:15:43 td_ joins (~td@94.134.91.22)
18:15:48 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
18:23:07 Guest1723 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
18:27:36 × alx741 quits (~alx741@181.196.69.156) (Quit: alx741)
18:30:02 × alzgh quits (alzgh@user/alzgh) (Remote host closed the connection)
18:30:22 alzgh joins (alzgh@user/alzgh)
18:31:11 curiousgay joins (~curiousga@77-120-141-90.kha.volia.net)
18:31:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
18:33:07 × pfurla quits (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…)
18:36:34 alx741 joins (~alx741@181.196.68.155)
18:36:57 × cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection)
18:37:21 cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
18:39:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:41:46 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
18:43:26 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
18:43:44 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
18:44:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
18:44:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:45:14 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
18:45:47 cheater joins (~Username@user/cheater)
18:46:50 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
18:48:43 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
18:50:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
18:50:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:52:05 × cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Read error: Connection reset by peer)
18:52:36 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:53:51 econo joins (uid147250@user/econo)
18:55:15 × Guest1723 quits (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
18:55:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
18:56:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:57:34 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
18:57:49 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
18:57:52 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
18:59:32 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
18:59:49 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:01:29 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:01:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:01:46 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:01:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:03:39 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:03:56 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:04:10 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
19:04:36 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:04:49 nvmd joins (~nvmd@user/nvmd)
19:05:13 × rkrishnan quits (~user@122.171.76.46) (Ping timeout: 252 seconds)
19:06:06 ec_ joins (~ec@gateway/tor-sasl/ec)
19:07:12 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:07:36 × alzgh quits (alzgh@user/alzgh) (Remote host closed the connection)
19:07:51 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
19:07:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:07:57 alzgh joins (alzgh@user/alzgh)
19:08:09 zuserm parts (~mz@71.161.92.216) ()
19:08:21 hololeap joins (~hololeap@user/hololeap)
19:09:43 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
19:09:43 × Vajb quits (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
19:10:09 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
19:10:30 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
19:12:13 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:12:30 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:12:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:13:19 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
19:13:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:14:56 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
19:15:59 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
19:17:24 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
19:18:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:19:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:19:24 jncraton joins (~jncraton@199.8.13.16)
19:19:39 WatermelonStory joins (~Watermelo@199.8.13.237)
19:21:24 WatermelonStory parts (~Watermelo@199.8.13.237) ()
19:22:05 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
19:24:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:24:43 zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
19:24:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:27:31 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:27:49 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:28:21 <maerwald> is `arch` command available on macOS by default or only if you install coreutils via brew?
19:28:27 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
19:29:09 <dsal> I don't use homebrew, but I have /usr/bin/arch
19:29:38 deadmarshal joins (~deadmarsh@95.38.115.243)
19:30:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:30:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:34:25 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
19:34:44 <maerwald> it seems uname -m behaves very different from arch under rosetta
19:36:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:36:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:38:17 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:38:35 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:41:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:41:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:42:35 × zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
19:43:36 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
19:47:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:47:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:48:02 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
19:48:39 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
19:52:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:53:08 fef joins (~thedawn@user/thedawn)
19:53:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:53:15 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
19:55:19 × alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds)
19:59:48 alzgh joins (~alzgh@user/alzgh)
19:59:54 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:00:53 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
20:02:30 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
20:03:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:03:16 jstolarek joins (~jstolarek@137.220.120.162)
20:03:31 × shriekingnoise quits (~shrieking@186.137.144.80) (Ping timeout: 252 seconds)
20:04:12 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
20:04:32 shriekingnoise joins (~shrieking@186.137.144.80)
20:04:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:05:09 deadmarshal joins (~deadmarsh@95.38.115.243)
20:05:21 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 252 seconds)
20:05:32 × jncraton quits (~jncraton@199.8.13.16) (Quit: leaving)
20:05:40 Feuermagier_ joins (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8)
20:07:20 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:07:37 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:07:38 juhp joins (~juhp@128.106.188.82)
20:08:27 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
20:08:33 mvk joins (~mvk@2607:fea8:5cc1:fa00::4702)
20:10:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:10:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:11:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
20:11:36 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:13:48 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
20:13:56 Feuermagier joins (~Feuermagi@user/feuermagier)
20:15:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:16:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:18:31 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:18:49 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:20:29 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:20:46 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:21:05 bollu joins (uid233390@id-233390.helmsley.irccloud.com)
20:21:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:21:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:22:02 × nschoe quits (~quassel@2a01:e0a:8e:a190:8ef1:d1b1:96b4:f9df) (Ping timeout: 252 seconds)
20:23:26 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
20:26:16 justsomeguy joins (~justsomeg@user/justsomeguy)
20:26:31 cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
20:26:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:27:15 × aweinstock quits (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (Ping timeout: 250 seconds)
20:27:21 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:31:33 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:31:51 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:32:09 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
20:32:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:32:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:36:31 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:37:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:38:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:40:17 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
20:43:06 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
20:44:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
20:44:07 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
20:47:17 × bliminse quits (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving)
20:49:07 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:49:25 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:51:05 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:51:23 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:53:03 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:53:21 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:57:03 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:57:21 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:58:01 pavonia joins (~user@user/siracusa)
21:01:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:01:19 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:02:25 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
21:03:21 narendraj9 joins (~user@2a02:8109:b63f:ff7c::57b2)
21:05:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:05:18 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:06:41 jgeerds joins (~jgeerds@55d45b75.access.ecotel.net)
21:07:03 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
21:08:20 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
21:09:26 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:11:19 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
21:12:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:13:56 Codaraxis__ joins (~Codaraxis@user/codaraxis)
21:15:19 × michalz quits (~michalz@185.246.204.43) (Remote host closed the connection)
21:16:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
21:17:02 × jgeerds quits (~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 252 seconds)
21:17:35 × Codaraxis_ quits (~Codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
21:19:47 × xff0x quits (~xff0x@2001:1a81:530d:ee00:fdea:9bb5:abe4:a159) (Ping timeout: 252 seconds)
21:20:52 × Feuermagier_ quits (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Ping timeout: 268 seconds)
21:21:20 acidjnk_new joins (~acidjnk@p200300d0c7271e31dccc5136b6b31647.dip0.t-ipconnect.de)
21:21:31 xff0x joins (~xff0x@2001:1a81:5339:b000:22b1:7654:f125:7b04)
21:22:13 Feuermagier_ joins (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8)
21:22:27 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
21:24:48 × FarzadBekran_ quits (~FarzadBek@94.74.153.122) (Quit: Leaving)
21:25:50 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 252 seconds)
21:27:07 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds)
21:27:22 × narendraj9 quits (~user@2a02:8109:b63f:ff7c::57b2) (Remote host closed the connection)
21:28:40 ph88 joins (~ph88@2a02:8109:9e00:71d0:54ac:14f0:5fcb:286d)
21:31:07 stefan-_ joins (~cri@42dots.de)
21:31:07 pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
21:33:53 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:34:11 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:36:07 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
21:40:02 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
21:41:07 zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
21:42:47 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:42:53 × Megant quits (~kaitsu@user/megant) (Ping timeout: 252 seconds)
21:43:04 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:44:51 Megant joins (megant@user/megant)
21:45:56 jstolarek joins (~jstolarek@137.220.120.162)
21:46:11 mestre joins (~mestre@191.177.175.57)
21:46:27 × deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
21:49:06 × Guest|27 quits (~Guest|27@cpea456cc4b1ddd-cma456cc4b1ddb.cpe.net.cable.rogers.com) (Quit: Connection closed)
21:50:22 yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
21:52:02 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:52:07 <hololeap> is there a good reference where I can see what version of e.g. filepath comes bundled with GHC-x.y.z
21:52:20 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:53:30 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history ?
21:53:31 × chomwitt quits (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
21:54:43 <hololeap> perfect, thank you
21:54:53 × yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
21:55:36 × cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1))
21:56:51 <monochrom> If you just need one x.y.z, the GHC user's guide has it in release notes.
21:57:23 <monochrom> If you have the GHC version installed, "ghc-pkg list"
21:59:04 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:01:16 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
22:01:33 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
22:02:17 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
22:03:00 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
22:03:58 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
22:04:14 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.3)
22:04:29 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
22:04:49 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
22:05:41 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
22:06:04 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Client Quit)
22:06:21 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
22:06:47 Guest1731 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
22:09:45 × kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
22:11:31 <dmj`> anyone know what this is about https://hackage.haskell.org/package/hermes "legal reasons"
22:12:14 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
22:14:07 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:14:25 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:14:55 <monochrom> I don't really know, but I guess license issues. Also, take a look at https://hackage.haskell.org/packages/search?terms=hermes
22:15:53 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
22:16:22 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
22:18:42 <hpc> ooh, it's even a 451 status
22:20:05 Alleria joins (~textual@user/alleria)
22:20:23 × zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
22:24:37 mikail joins (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303)
22:24:43 mikail_ joins (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303)
22:24:50 × mikail_ quits (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection)
22:24:50 × mikail quits (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection)
22:25:06 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
22:25:09 mikail joins (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303)
22:27:09 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:27:27 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:27:52 Lycurgus joins (~juan@98.4.112.204)
22:28:06 <hololeap> does System.IO.withFile apply `hSetEncoding h localeEncoding` by default?
22:28:36 <hololeap> on the handle it passes to the continuation
22:30:13 <boxscape> > 1 `2` 3
22:30:13 <boxscape> I feel like this should work
22:30:14 <lambdabot> <hint>:1:4: error: parse error on input ‘2’
22:30:20 <hololeap> I'm looking at how to reproduce the withTextFile function from the (deprecated) system-fileio package
22:30:21 <boxscape> what if I want to use 2 as a binary operator
22:30:23 <hololeap> https://hackage.haskell.org/package/system-fileio-0.3.16.4/docs/Filesystem.html#v:withTextFile
22:30:33 × Alleria quits (~textual@user/alleria) (Quit: Textual IRC Client: www.textualapp.com)
22:31:30 <hololeap> boxscape: that's the stinkiest code I've seen in a while
22:31:34 <monochrom> I don't know, but I know that withFile sets the same modes as openFile, which is at least text mode.
22:31:54 <boxscape> 😊
22:32:06 <geekosaur> `` wants an identifier, and 2 isn't one
22:32:12 <monochrom> withFile is literally doing a bracket over openFile and hClose
22:32:23 <boxscape_> yes, I understand *why* it doesn't work, I just think it should
22:32:36 <geekosaur> moreover I suspect you'd be bitten by the implicit fromInteger if it did
22:32:41 <int-e> dmj`: There's a Hermes package, maybe that's what you wanted? hermes had exactly one upload, https://paste.debian.net/1221574/ is the .cabal file (which is maintained in the append-only index); maybe an accidental 'cabal upload' with misconfigured upstream hackage server?
22:33:19 <boxscape_> geekosaur I want fromInteger - let's say I have a Num instance for `String -> String -> String` and I write "hello" `2` "world"
22:33:49 <monochrom> I do guess that locale encoding is the default. You have to say like openBinaryFile or withBInaryFile to get verbatim bytes.
22:34:06 <geekosaur> and I find the whole notion of wanting a number to behave as an infix weird
22:34:19 <boxscape_> (to be fair at that point the desugaring would be strange, I admit)
22:34:43 <dmj`> int-e: hmm, since there is pending legal action is this package dead in the water? Is it possible the existing lowercase "hermes" package could be removed and allow for a different package to be uploaded? Or is any use of hermes on hackage not permitted whatsoever
22:35:07 <int-e> dmj`: https://hackage.haskell.org/package/Hermes
22:35:36 <int-e> hackage is case-sensitive (even though it tries not to be these days, but that happened as an afterthought)
22:37:15 <int-e> dmj`: I don't really know anything about it, I'm just looking at links and history and hackage's index
22:38:08 <monochrom> Well, Hermes is deprecated too, if you use it you will have tech debt.
22:38:24 <monochrom> Not to say that I know what hermes is about in the first place.
22:38:27 <dmj`> int-e: Okay, maybe I'll ask on #hackage, I'd like to remove the lowercase hermes if possible.
22:38:30 × bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
22:38:44 <int-e> Oh sure, but that's a much more common situation than the suggestion of legal action
22:39:08 <monochrom> Legal drama on Hackage...
22:39:18 <dmj`> Didn't realize there was an uppercase Hermes :) the legal action notice on https://hackage.haskell.org/package/hermes is concerning.
22:39:38 <int-e> (There doesn't need to be any legal action; if it was an accidental upload, surely hackage maintainers would just erase the upload and block the index page when asked nicely.)
22:40:04 <dmj`> monochrom: billions in settlements happening I'm sure
22:40:07 <int-e> it just says "legal reasons"
22:40:55 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
22:41:04 alzgh joins (~alzgh@user/alzgh)
22:41:36 <geekosaur> and legal reasons might just be the OtherLicense
22:41:37 <dmj`> int-e: since it hasn't been touched in almost 7 years I had hoped the lawsuit was settled by now :)
22:41:59 <maerwald> still waiting for supreme court ruling
22:42:14 <monochrom> Judge Kattis is my most favourite judge. kattis.com Plus it is a lovely cat. <3
22:42:21 <int-e> (I'm basing the idea that it was an accidental upload mainly on the fact that only a single version was ever uploaded.)
22:43:33 <monochrom> On April 1st, all GHC error messages are amended to say "for legal reasons" >:)
22:43:45 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:44:20 <monochrom> Could match Int with Bool for legal reasons.
22:44:25 <monochrom> err, Couldn't!
22:44:44 <hpc> on april 1st, errors on lines containing "::" should say T_PAAMAYIM_NEKUDOTAYIM
22:44:51 <monochrom> heh
22:44:51 <Hecate> monochrom: LOL
22:44:55 <Hecate> hpc: hahahaahah
22:45:06 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
22:45:06 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
22:45:16 <boxscape> Illegal type family synonym family application in instance for legal reasons
22:45:29 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:45:36 <int-e> dmj`: It's a different package.
22:46:35 <int-e> But whatever, I shouldn't care.
22:48:20 × nvmd quits (~nvmd@user/nvmd) (Ping timeout: 252 seconds)
22:49:06 <dmj`> int-e: I think you're right though, probably just uploaded AllRightsReserved accidentally.
22:49:15 <dmj`> int-e: Different package, but different author too, so probably wasn't just a fat finger on the capitalization.
22:50:03 nvmd joins (~nvmd@user/nvmd)
22:50:47 <dmj`> I'll ask in #hackage
22:51:46 <dmj`> "typeclass action lawsuit pending"
22:52:07 <monochrom> :)
22:52:14 <dsal> This whole thing about `2` sent me down a strange rabbit hole where I was trying to make a type called `Family` where `2 Fast 2 Furious` is a valid expression. I got it working, but it's pretty stupid.
22:52:32 <monochrom> Illegal instance Num [Char] for legal reasons >:)
22:52:53 × Guest1731 quits (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
22:53:07 <monochrom> Err, would be more funny with Illegal instance Monad ZipList for legal reasons!
22:54:37 deadmarshal joins (~deadmarsh@95.38.119.167)
22:54:48 <monochrom> dsal: Does it also cover "Fast & Furious 6", especially the & and the 6?
22:55:33 <dsal> Not even type families have strong enough bonds.
22:56:05 <dsal> This is one of those things I think I could do, but every character I enter seems more stupid than the last.
22:56:12 <hpc> sysadmins prefer nfs://underground
22:56:33 <monochrom> That's just because family movies are not Bond movies. >:)
22:56:42 <dsal> ha
22:56:57 <int-e> . o O ( NFT is the successor of NFS )
22:57:21 <dsal> oh no
22:57:49 <hpc> i wonder what it would take to design a language around the principle of "you only die twice"
22:57:54 <sclv> for the record: the status is the resolution to this
22:57:56 <int-e> it's okay, they're both terrible :P
22:57:59 <sclv> there's no reason to chage or remove it
22:58:01 <sclv> its fine
22:58:10 <hpc> some kind of weird linear type system maybe?
22:58:24 <dsal> Could not impement "Die, Die, Die, my Darling"
22:58:51 <sclv> in _theory_ we could do a full rewrite and reset of the immutable index to clean out that package and one other like it, and a few spam packages
22:59:01 <sclv> in practice there's not enough reason to at this point, or really indefinitely
22:59:09 <monochrom> I think CPU hardware exceptions are designed around "you only die twice". CPUs have this notion of "double fault" when that happens and basically gives up.
22:59:09 × deadmarshal quits (~deadmarsh@95.38.119.167) (Ping timeout: 252 seconds)
22:59:12 <hpc> /usr/bin/goldfinger
23:00:00 <int-e> monochrom: oh but a triple fault gets you out of protected mode and back into real mode on 80286 :P
23:00:25 <monochrom> That's very Inception-like...
23:00:41 <hpc> i choose to believe the opposite of real mode is integer mode
23:00:47 <monochrom> haha
23:02:34 <davean> monochrom: a triple fault is how you reboot, right?
23:03:14 <int-e> monochrom: To be clear, it is a CPU reset. But PC BIOSes allowed you to hook into the initialization procedure and take over, so you could recover from that without destroying data or resetting the rest of the hardware.
23:03:17 <hpc> just fault one more time while the computer is off?
23:04:13 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
23:04:18 <monochrom> The Fault In Wordstar
23:05:04 <hpc> sometimes when i finally get all my tests to pass i think "finally everything words perfectly"
23:05:18 <monochrom> hahaha
23:05:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
23:05:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
23:10:13 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
23:14:44 × mikail quits (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Ping timeout: 252 seconds)
23:14:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:17:53 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
23:18:27 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
23:19:16 × nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.)
23:22:54 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 265 seconds)
23:24:30 Codaraxis_ joins (~Codaraxis@user/codaraxis)
23:25:35 × Flonk quits (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds))
23:25:40 renzhi joins (~xp@2607:fa49:6500:b100::5cef)
23:25:40 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
23:25:56 Flonk joins (~Flonk@vps-zap441517-1.zap-srv.com)
23:27:11 × pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
23:27:56 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
23:28:25 × _bo quits (~bo@217.18.216.247) (Quit: Leaving)
23:28:27 × Codaraxis__ quits (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
23:29:32 kritzefitz_ joins (~kritzefit@debian/kritzefitz)
23:31:47 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
23:32:30 × ph88 quits (~ph88@2a02:8109:9e00:71d0:54ac:14f0:5fcb:286d) (Quit: Leaving)
23:34:29 <hololeap> f [1,2,3,4] [1,2,6,7,8] === ([1,2], ([3,4],[6,7,8]))
23:34:38 <hololeap> is there a name for this, or something similar?
23:34:56 <Axman6> that looks very not total
23:34:59 <Axman6> f [] [] = ?
23:35:19 kritzefitz_ is now known as kritzefitz
23:35:21 <hololeap> f [] [] == ([], ([], [])) ?
23:35:30 <Axman6> hmm, yes
23:35:37 <geekosaur> and do you expect it to nest more tuples in some cases?
23:35:56 <geekosaur> oh, I see
23:36:13 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
23:36:30 <hololeap> no, I just want to find a common prefix and return it plus the different suffixes of the two lists
23:37:17 pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
23:37:23 <boxscape> I suppose you're making a trie
23:37:26 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
23:37:48 <hololeap> no, not a trie
23:38:02 <Axman6> it's literally just collecting the headfs and tails right?
23:38:22 <hololeap> let me see if I can hammer it out real quick
23:38:33 <hololeap> I'm trying to recreate this: https://hackage.haskell.org/package/system-filepath-0.4.14/docs/Filesystem-Path.html#v:stripPrefix
23:39:20 <monochrom> Data.List.stripPrefix
23:39:34 <monochrom> Err I guess not exactly.
23:39:44 <jackdk> what about https://hackage.haskell.org/package/monoid-subclasses-1.1.2/docs/Data-Monoid-GCD.html#v:stripCommonPrefix ?
23:40:07 <Axman6> oh, it's the common prefix, right, I understand now
23:40:15 <jackdk> and then some swizzling to turn the 3-tuple into the shape you actually want
23:40:16 <Axman6> that does look useful (particularly for tries)
23:40:45 <jackdk> yeah hololeap pretty sure you want stripCommonPrefix from monoid-subclasses
23:42:41 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
23:42:48 <monochrom> Go through System.FilePath.splitPath then Data.List.stripPrefix then System.FilePath.joinPath
23:42:58 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
23:45:17 <hololeap> monochrom: wait, why not just use Data.List.stripPrefix?
23:46:02 <monochrom> > stripPrefix "/myd" "/mydir/m.mov"
23:46:03 <lambdabot> Just "ir/m.mov"
23:46:11 <hololeap> oh, good point
23:46:18 <awpr> > stripPrefix "/tmp/" "/tmp//file.txt"
23:46:19 <lambdabot> Just "/file.txt"
23:46:31 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
23:46:39 <Axman6> > stripPrefix "1234" "1256"
23:46:40 <lambdabot> Nothing
23:46:49 <Axman6> I would guess that's why
23:47:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
23:47:14 vysn joins (~vysn@user/vysn)
23:48:47 × hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
23:49:30 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
23:51:10 × jeffz quits (~user@lambda.xen.prgmr.com) (Remote host closed the connection)
23:51:17 jeffz joins (~user@lambda.xen.prgmr.com)
23:56:19 × zer0bitz quits (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer)
23:57:12 kritzefitz joins (~kritzefit@debian/kritzefitz)
23:58:01 <jackdk> % import Data.Monoid.GCD
23:58:02 <yahb> jackdk: ; <no location info>: error:; Could not find module `Data.Monoid.GCD'; Perhaps you meant Data.Monoid (from base-4.15.0.0)
23:58:07 <jackdk> ah well
23:59:29 <jackdk> Prelude Data.Monoid.GCD> stripCommonPrefix [1, 2, 3, 4] [1, 2, 6, 7, 8] -- => ([1,2],[3,4],[6,7,8])
23:59:52 × max22- quits (~maxime@2a01cb08833598008751b1889105ced7.ipv6.abo.wanadoo.fr) (Remote host closed the connection)

All times are in UTC on 2021-12-01.