2023/02/17

2023-02-17 00:01:33 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 255 seconds)
2023-02-17 00:04:06 +0100kupper(~kupper@2a02:ab88:7609:4700:31a8:9d0c:ebbe:24d9) (Quit: Client closed)
2023-02-17 00:06:05 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-02-17 00:10:09 +0100mei(~mei@user/mei) (Remote host closed the connection)
2023-02-17 00:12:30 +0100mei(~mei@user/mei)
2023-02-17 00:15:54 +0100jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-02-17 00:16:48 +0100ystael(~ystael@user/ystael) (Ping timeout: 248 seconds)
2023-02-17 00:20:14 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 00:24:57 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-17 00:26:59 +0100caryhartline(~caryhartl@cpe-76-184-187-103.tx.res.rr.com)
2023-02-17 00:31:58 +0100king_gs(~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a)
2023-02-17 00:32:15 +0100kee(~~kee@user/wizzwizz4) (Read error: Connection reset by peer)
2023-02-17 00:32:23 +0100 <azure_vermilion> you can make your own Data.Map.insertWith with the type I gave in a few lines actually
2023-02-17 00:32:56 +0100kee(~~kee@user/wizzwizz4)
2023-02-17 00:47:05 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-02-17 00:51:34 +0100zeenk(~zeenk@2a02:2f04:a214:1e00::7fe)
2023-02-17 00:55:59 +0100the_proffesor(~theproffe@2601:282:8880:20:cbd6:9442:3ec7:7047)
2023-02-17 00:55:59 +0100the_proffesor(~theproffe@2601:282:8880:20:cbd6:9442:3ec7:7047) (Changing host)
2023-02-17 00:55:59 +0100the_proffesor(~theproffe@user/theproffesor)
2023-02-17 00:56:00 +0100falafel(~falafel@2607:fb91:143f:e47f:1ba3:5839:e59a:9486) (Ping timeout: 260 seconds)
2023-02-17 01:00:05 +0100theproffesor(~theproffe@user/theproffesor) (Ping timeout: 260 seconds)
2023-02-17 01:00:58 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 246 seconds)
2023-02-17 01:01:43 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-17 01:16:42 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 01:17:03 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 248 seconds)
2023-02-17 01:21:12 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-17 01:21:25 +0100mauke_(~mauke@user/mauke)
2023-02-17 01:22:33 +0100mauke(~mauke@user/mauke) (Ping timeout: 255 seconds)
2023-02-17 01:22:33 +0100mauke_mauke
2023-02-17 01:24:56 +0100stackdroid18(14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
2023-02-17 01:46:23 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-02-17 01:49:15 +0100tomboy64(~tomboy64@user/tomboy64)
2023-02-17 01:52:09 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-02-17 01:52:09 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-02-17 01:52:09 +0100wroathe(~wroathe@user/wroathe)
2023-02-17 02:00:14 +0100tomboy64(~tomboy64@user/tomboy64) (Quit: Off to see the wizard.)
2023-02-17 02:01:33 +0100king_gs(~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a) (Remote host closed the connection)
2023-02-17 02:01:52 +0100king_gs(~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a)
2023-02-17 02:02:08 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-02-17 02:04:10 +0100califax(~califax@user/califx)
2023-02-17 02:04:49 +0100gpncarl(~gpncarl@210.12.195.6) (Read error: Connection reset by peer)
2023-02-17 02:05:12 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 02:05:14 +0100gpncarl(~gpncarl@210.12.195.6)
2023-02-17 02:07:28 +0100caryhartline(~caryhartl@cpe-76-184-187-103.tx.res.rr.com) (Quit: caryhartline)
2023-02-17 02:09:15 +0100zeenk(~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!)
2023-02-17 02:10:56 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-02-17 02:13:04 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-17 02:13:51 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 02:14:53 +0100tomboy64(~tomboy64@user/tomboy64)
2023-02-17 02:17:04 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-02-17 02:18:21 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-17 02:18:49 +0100tomboy64(~tomboy64@user/tomboy64) (Read error: Connection reset by peer)
2023-02-17 02:18:50 +0100tomboy65(~tomboy64@user/tomboy64)
2023-02-17 02:24:52 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-02-17 02:37:35 +0100xff0x(~xff0x@2405:6580:b080:900:9a0c:738d:f5ce:fcbe) (Ping timeout: 252 seconds)
2023-02-17 02:37:56 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-17 02:43:06 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-17 02:44:11 +0100king_gs(~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a) (Ping timeout: 252 seconds)
2023-02-17 02:45:57 +0100king_gs(~Thunderbi@187.201.41.239)
2023-02-17 02:56:13 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8)
2023-02-17 02:57:14 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-02-17 03:04:38 +0100king_gs1(~Thunderbi@2806:103e:29:1779:adfe:a3a2:67c6:583e)
2023-02-17 03:04:46 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-02-17 03:04:46 +0100king_gs1king_gs
2023-02-17 03:08:45 +0100Sinbad(~Sinbad@user/sinbad) (WeeChat 3.8)
2023-02-17 03:12:07 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 03:16:46 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-17 03:22:42 +0100rettahcay(~kaushikv@c-24-20-37-193.hsd1.or.comcast.net)
2023-02-17 03:23:13 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.8)
2023-02-17 03:23:36 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-02-17 03:24:22 +0100bilegeek(~bilegeek@2600:1008:b00e:a774:6a7c:cc22:f7ac:e202)
2023-02-17 03:25:10 +0100gehmehgeh(~user@user/gehmehgeh)
2023-02-17 03:27:52 +0100ddellacosta(~ddellacos@146.70.171.157)
2023-02-17 03:28:32 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-02-17 03:31:58 +0100lackita(~user@73.114.250.252)
2023-02-17 03:35:43 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-02-17 03:39:10 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-02-17 03:40:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-17 03:45:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds)
2023-02-17 03:48:46 +0100cheater_(~Username@user/cheater)
2023-02-17 03:50:22 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 246 seconds)
2023-02-17 03:51:30 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-02-17 03:51:40 +0100cheater_cheater
2023-02-17 03:56:19 +0100khumba(~khumba@user/khumba)
2023-02-17 03:59:33 +0100lackita`(~user@73.114.250.252)
2023-02-17 04:01:20 +0100lackita(~user@73.114.250.252) (Ping timeout: 248 seconds)
2023-02-17 04:01:48 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2023-02-17 04:04:51 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-02-17 04:21:09 +0100lackita``(~user@73.114.250.252)
2023-02-17 04:23:33 +0100lackita`(~user@73.114.250.252) (Ping timeout: 268 seconds)
2023-02-17 04:30:05 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-02-17 04:35:02 +0100 <sm> how do you get a stack trace for a bad head or printf call again... ? build with profiling and -rtsopts, then +RTS -Xc or something ?
2023-02-17 04:35:11 +0100burnsidesLlama(~burnsides@119247164140.ctinets.com)
2023-02-17 04:39:26 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-17 04:39:39 +0100opticblast(~Thunderbi@172.58.82.191) (Ping timeout: 255 seconds)
2023-02-17 04:42:30 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2023-02-17 04:42:49 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 04:42:59 +0100lackita``(~user@73.114.250.252) (Ping timeout: 252 seconds)
2023-02-17 04:43:53 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2023-02-17 04:44:09 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-17 04:46:50 +0100opticblast(~Thunderbi@172.58.82.191)
2023-02-17 04:47:45 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-17 04:49:27 +0100 <sm> no
2023-02-17 04:51:16 +0100td_(~td@i5387092D.versanet.de) (Ping timeout: 246 seconds)
2023-02-17 04:51:16 +0100king_gs(~Thunderbi@2806:103e:29:1779:adfe:a3a2:67c6:583e) (Ping timeout: 252 seconds)
2023-02-17 04:52:01 +0100 <sm> boom! stack exec --profile -- hledger test +RTS -xc -RTS -- -p '/one space/'
2023-02-17 04:52:12 +0100razetime(~Thunderbi@117.193.4.84)
2023-02-17 04:53:11 +0100 <sm> but it shows nothing below Test.Tasty.CmdLine.defaultMainWithIngredients. Disappointing, haskell....
2023-02-17 04:53:17 +0100td_(~td@i53870917.versanet.de)
2023-02-17 04:54:35 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-17 04:55:40 +0100 <sm> oops, my mistake. It has printed about 50 stack traces. lol
2023-02-17 04:56:06 +0100 <sm> man it's a good thing bugs are rare
2023-02-17 04:57:02 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-02-17 04:57:02 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-02-17 04:57:02 +0100finn_elijaFinnElija
2023-02-17 04:57:49 +0100 <albet70> what's the relationship between foldr and foldr1?
2023-02-17 04:58:41 +0100 <albet70> foldr isn't natural, reduce is natural
2023-02-17 04:59:01 +0100 <albet70> foldl1 I mean
2023-02-17 05:03:32 +0100bilegeek(~bilegeek@2600:1008:b00e:a774:6a7c:cc22:f7ac:e202) (Quit: Leaving)
2023-02-17 05:16:03 +0100 <jackdk> foldr1 is partial on standard lists
2023-02-17 05:16:28 +0100 <[Leary]> azure_vermilion: The signature would need to be `(a -> b -> b) -> b -> [(k, a)] -> Map k b`. However, we don't need to consider the case of "folding down zero duplicates", so it's natural to "do `foldr1` rather than `foldr`". If this were for total-map instead, the `foldr` version would make sense and the supplied `b` would become the fallback value of the Map.
2023-02-17 05:16:40 +0100 <[Leary]> Oh, I didn't notice I was scrolled.
2023-02-17 05:17:15 +0100burnsidesLlama(~burnsides@119247164140.ctinets.com) ()
2023-02-17 05:18:57 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-17 05:19:00 +0100ddellacosta(~ddellacos@146.70.171.157) (Quit: WeeChat 3.8)
2023-02-17 05:19:55 +0100freeside(~mengwong@103.252.202.170)
2023-02-17 05:26:35 +0100mbuf(~Shakthi@49.205.81.25)
2023-02-17 05:26:36 +0100Everything(~Everythin@46.185.124.65) (Quit: leaving)
2023-02-17 05:50:45 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 255 seconds)
2023-02-17 05:54:36 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-17 05:59:45 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-02-17 06:05:16 +0100falafel(~falafel@2607:fb91:143f:e47f:8a0c:7c12:4cf9:ecf7)
2023-02-17 06:07:50 +0100EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-02-17 06:08:11 +0100EvanR(~EvanR@user/evanr)
2023-02-17 06:12:28 +0100thegeekinside(~thegeekin@189.180.66.126) (Ping timeout: 246 seconds)
2023-02-17 06:16:50 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-02-17 06:21:43 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net)
2023-02-17 06:25:08 +0100codaraxis(~codaraxis@user/codaraxis)
2023-02-17 06:36:32 +0100falafel(~falafel@2607:fb91:143f:e47f:8a0c:7c12:4cf9:ecf7) (Ping timeout: 255 seconds)
2023-02-17 06:37:03 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2023-02-17 06:53:38 +0100ormaaj(~ormaaj@user/ormaaj) (Quit: Reconnecting)
2023-02-17 06:54:02 +0100ormaaj(~ormaaj@user/ormaaj)
2023-02-17 07:04:06 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-02-17 07:10:58 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 252 seconds)
2023-02-17 07:11:02 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-02-17 07:12:22 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-02-17 07:18:02 +0100rburkholder(~blurb@96.45.2.121) (Remote host closed the connection)
2023-02-17 07:21:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-02-17 07:28:04 +0100tomboy65(~tomboy64@user/tomboy64) (Ping timeout: 246 seconds)
2023-02-17 07:28:05 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-02-17 07:32:45 +0100jespada(~jespada@77.98.179.16) (Ping timeout: 252 seconds)
2023-02-17 07:34:27 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-02-17 07:34:40 +0100Vajb(~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686) (Ping timeout: 248 seconds)
2023-02-17 07:35:31 +0100Vajb(~Vajb@85-76-71-140-nat.elisa-mobile.fi)
2023-02-17 07:39:55 +0100king_gs(~Thunderbi@187.201.41.239)
2023-02-17 07:41:42 +0100tomboy65(~tomboy64@user/tomboy64)
2023-02-17 07:41:42 +0100Vajb(~Vajb@85-76-71-140-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2023-02-17 07:42:14 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2023-02-17 07:46:18 +0100mbuf(~Shakthi@49.205.81.25) (Quit: Leaving)
2023-02-17 07:48:09 +0100trev_(~trev@109-252-35-99.nat.spd-mgts.ru)
2023-02-17 07:49:48 +0100Guest47(~Guest47@180.150.112.145)
2023-02-17 07:51:28 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2023-02-17 07:52:44 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-02-17 07:53:46 +0100Vajb(~Vajb@2001:999:502:6a4f:9704:5f5a:6e8e:4cd2)
2023-02-17 07:54:04 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-02-17 07:55:17 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-17 07:59:27 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-02-17 07:59:43 +0100king_gs(~Thunderbi@2806:103e:29:1779:51d4:7b92:8f3c:afa1)
2023-02-17 08:02:07 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds)
2023-02-17 08:03:02 +0100michalz(~michalz@185.246.207.203)
2023-02-17 08:06:13 +0100Vajb(~Vajb@2001:999:502:6a4f:9704:5f5a:6e8e:4cd2) (Ping timeout: 246 seconds)
2023-02-17 08:06:21 +0100Vajb(~Vajb@2001:999:484:9db9:7ff5:c370:5511:7e1c)
2023-02-17 08:06:33 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-02-17 08:07:52 +0100gehmehgeh(~user@user/gehmehgeh)
2023-02-17 08:10:30 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2023-02-17 08:12:32 +0100sefidel(~sefidel@user/sefidel)
2023-02-17 08:13:14 +0100tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2023-02-17 08:15:03 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-02-17 08:21:11 +0100phma_(~phma@2001:5b0:211c:dd68:d177:f289:9796:1bf1) (Read error: Connection reset by peer)
2023-02-17 08:22:24 +0100opticblast(~Thunderbi@172.58.82.191) (Ping timeout: 255 seconds)
2023-02-17 08:23:47 +0100phma_(~phma@host-67-44-208-65.hnremote.net)
2023-02-17 08:25:27 +0100Lycurgus(~juan@user/Lycurgus)
2023-02-17 08:25:48 +0100kenran(~user@user/kenran)
2023-02-17 08:33:23 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-02-17 08:38:28 +0100akegalj(~akegalj@78.3.33.72)
2023-02-17 08:40:45 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f)
2023-02-17 08:43:13 +0100mncheckm(~mncheck@193.224.205.254)
2023-02-17 08:44:08 +0100andrewboltachev(~andrey@178.141.125.176)
2023-02-17 08:46:47 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-02-17 08:59:30 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-02-17 09:01:29 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::dfd9)
2023-02-17 09:02:40 +0100razetime(~Thunderbi@117.193.4.84) (Ping timeout: 248 seconds)
2023-02-17 09:03:16 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-02-17 09:04:15 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
2023-02-17 09:05:47 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-02-17 09:09:11 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-02-17 09:12:40 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-17 09:18:35 +0100rburkholder(~blurb@96.45.2.121)
2023-02-17 09:18:55 +0100razetime(~Thunderbi@117.193.4.84)
2023-02-17 09:21:23 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::dfd9) (Quit: Where is it)
2023-02-17 09:22:23 +0100czy(~user@50.30.140.22) (Ping timeout: 252 seconds)
2023-02-17 09:24:19 +0100codaraxis__(~codaraxis@user/codaraxis)
2023-02-17 09:24:29 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2023-02-17 09:25:19 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-02-17 09:26:51 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 248 seconds)
2023-02-17 09:27:26 +0100tomsmeding(~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-17 09:28:07 +0100tomsmeding(~tomsmedin@static.21.109.88.23.clients.your-server.de)
2023-02-17 09:28:16 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 248 seconds)
2023-02-17 09:30:03 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::9fd1)
2023-02-17 09:30:24 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::9fd1) (Remote host closed the connection)
2023-02-17 09:32:21 +0100ircbrowse_tom(~ircbrowse@2a01:4f8:1c1c:9319::1)
2023-02-17 09:32:27 +0100Server+Cnt
2023-02-17 09:34:23 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
2023-02-17 09:34:49 +0100yahb2(~yahb2@static.56.27.47.78.clients.your-server.de)
2023-02-17 09:36:38 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-02-17 09:37:01 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-02-17 09:40:17 +0100Guest47(~Guest47@180.150.112.145) (Quit: Client closed)
2023-02-17 09:43:07 +0100 <hololeap> I think I finally just got this and I want to check to see if I understand it correctly: logic :: (forall r. (a -> r -> r) -> r -> r) -> Logic a
2023-02-17 09:44:15 +0100 <hololeap> you would use this as: logic $ \(f :: a -> r -> r) (e :: r) -> ...
2023-02-17 09:44:59 +0100 <hololeap> f is a function that takes any value (x :: a) and some r and will return another r
2023-02-17 09:45:18 +0100 <hololeap> e is basically the r that signifies an early error state
2023-02-17 09:46:32 +0100 <hololeap> and f signifies continuing the computation which may continue or fail but it's out of your control if that's what you choose to return
2023-02-17 09:46:50 +0100 <hololeap> damn this is tricky
2023-02-17 09:51:51 +0100 <hololeap> I understand that it is essentially a list, but I'm trying to understand this other way of looking at it
2023-02-17 09:53:25 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-02-17 09:54:10 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de) (Quit: leaving)
2023-02-17 09:55:47 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-02-17 09:57:01 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-17 09:59:37 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-17 10:02:39 +0100nihonium(~nihonium@46.148.105.76)
2023-02-17 10:11:14 +0100MajorBiscuit(~MajorBisc@c-001-018-019.client.tudelft.eduvpn.nl)
2023-02-17 10:19:02 +0100thongpv(~thongpv87@2402:9d80:3aa:dcd6:977e:e11f:15c9:9293)
2023-02-17 10:19:11 +0100zeenk(~zeenk@2a02:2f04:a214:1e00::7fe)
2023-02-17 10:28:59 +0100cfricke(~cfricke@user/cfricke)
2023-02-17 10:39:40 +0100chele(~chele@user/chele)
2023-02-17 10:48:33 +0100akegalj(~akegalj@78.3.33.72) (Ping timeout: 252 seconds)
2023-02-17 10:51:04 +0100ubert(~Thunderbi@2a02:8109:abc0:6434:f290:bfbc:97a0:5afc)
2023-02-17 10:54:55 +0100yoneda(~mike@193.206.102.122)
2023-02-17 10:55:56 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::9fd1)
2023-02-17 11:00:19 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-02-17 11:03:30 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2023-02-17 11:04:22 +0100thib(~Thunderbi@2a00:8a60:c000:1:8a13:bf74:b2:8d47)
2023-02-17 11:04:31 +0100thibGuest9909
2023-02-17 11:07:56 +0100akegalj(~akegalj@lns01-0595.dsl.iskon.hr)
2023-02-17 11:09:04 +0100king_gs(~Thunderbi@2806:103e:29:1779:51d4:7b92:8f3c:afa1) (Ping timeout: 248 seconds)
2023-02-17 11:09:37 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2023-02-17 11:10:04 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-02-17 11:11:04 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::9fd1) (Quit: Where is it)
2023-02-17 11:13:34 +0100myxokeph(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com)
2023-02-17 11:13:36 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-02-17 11:32:53 +0100amano(~amano@45.8.223.209)
2023-02-17 11:33:56 +0100 <amano> Check out brick-tabular-list on hackage. It contains two tabular list widgets for brick terminal UI library. It is suitable for a list of different kinds of items that have different columns or a uniform spreadsheet.
2023-02-17 11:34:42 +0100amano(~amano@45.8.223.209) (Client Quit)
2023-02-17 11:48:09 +0100Guest9909(~Thunderbi@2a00:8a60:c000:1:8a13:bf74:b2:8d47) (Quit: Guest9909)
2023-02-17 11:52:06 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
2023-02-17 11:53:54 +0100jespada(~jespada@148.252.128.104)
2023-02-17 11:54:48 +0100dtman34(~dtman34@76.156.89.180) (Ping timeout: 255 seconds)
2023-02-17 11:57:04 +0100dtman34(~dtman34@76.156.89.180)
2023-02-17 11:58:42 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2023-02-17 11:59:45 +0100 <jonathanx> I want to learn how to handle persistent database migrations properly. Right now the goal is a simple migration, but in the future I might need more complex ones. I noticed that there's a dedicated library for persistent migrations here: https://hackage.haskell.org/package/persistent-migration
2023-02-17 12:00:09 +0100 <jonathanx> Is the lib good, or should I go with defining migrations using the migration support in persistent?
2023-02-17 12:00:39 +0100 <jonathanx> (technically not a dichotomy, but any takes/recommendations would be appreciated)
2023-02-17 12:01:55 +0100phma_(~phma@host-67-44-208-65.hnremote.net) (Read error: Connection reset by peer)
2023-02-17 12:08:02 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-02-17 12:10:32 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-17 12:10:50 +0100phma_(~phma@host-67-44-208-191.hnremote.net)
2023-02-17 12:12:43 +0100 <Hecate> jonathanx: I usually put migrations in their own folder like this: https://github.com/flora-pm/flora-server/tree/development/migrations
2023-02-17 12:15:00 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds)
2023-02-17 12:17:36 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-02-17 12:19:50 +0100 <[exa]> jonathanx: migrations are hard™
2023-02-17 12:20:51 +0100 <[exa]> I had luck with these given by selda, not totally optimal but worked well.
2023-02-17 12:33:50 +0100nihonium(~nihonium@46.148.105.76) (Remote host closed the connection)
2023-02-17 12:36:38 +0100codaraxis(~codaraxis@user/codaraxis)
2023-02-17 12:38:54 +0100codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 255 seconds)
2023-02-17 12:42:57 +0100akegalj(~akegalj@lns01-0595.dsl.iskon.hr) (Ping timeout: 255 seconds)
2023-02-17 12:51:40 +0100king_gs(~Thunderbi@2806:103e:29:1779:8e16:45ff:feeb:cfcf)
2023-02-17 12:51:55 +0100razetime(~Thunderbi@117.193.4.84) (Remote host closed the connection)
2023-02-17 12:54:54 +0100elevenkb(~elevenkb@105.225.107.107)
2023-02-17 13:00:19 +0100xff0x(~xff0x@2405:6580:b080:900:1ef3:42f8:594a:9997)
2023-02-17 13:02:47 +0100elevenkb(~elevenkb@105.225.107.107) (Quit: Client closed)
2023-02-17 13:20:34 +0100akegalj(~akegalj@213.202.86.88)
2023-02-17 13:31:01 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2023-02-17 13:33:55 +0100lyle(~lyle@104.246.145.237)
2023-02-17 13:34:31 +0100gpncarl(~gpncarl@210.12.195.6) (Ping timeout: 246 seconds)
2023-02-17 13:34:34 +0100 <merijn> jonathanx: I think the best way to handle them is not letting persistent handle them xD
2023-02-17 13:35:02 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-17 13:35:15 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) (Quit: use-value)
2023-02-17 13:35:23 +0100 <merijn> jonathanx: Alternately, you can be inspired by the giant atrocity I've built, I guess
2023-02-17 13:35:33 +0100 <merijn> 'https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Migration.hs
2023-02-17 13:43:22 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f)
2023-02-17 13:46:50 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-02-17 13:48:46 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) (Quit: use-value)
2023-02-17 13:51:16 +0100king_gs(~Thunderbi@2806:103e:29:1779:8e16:45ff:feeb:cfcf) (Remote host closed the connection)
2023-02-17 13:51:36 +0100king_gs(~Thunderbi@2806:103e:29:1779:b9af:9316:97a3:301e)
2023-02-17 13:51:58 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f)
2023-02-17 13:54:28 +0100cheater(~Username@user/cheater) (Read error: Connection timed out)
2023-02-17 13:57:04 +0100cheater(~Username@user/cheater)
2023-02-17 14:08:05 +0100king_gs(~Thunderbi@2806:103e:29:1779:b9af:9316:97a3:301e) (Quit: king_gs)
2023-02-17 14:08:13 +0100king_gs1(~Thunderbi@187.201.41.239)
2023-02-17 14:10:31 +0100king_gs1king_gs
2023-02-17 14:27:30 +0100ft_(~ft@p3e9bc443.dip0.t-ipconnect.de)
2023-02-17 14:29:15 +0100jespada(~jespada@148.252.128.104) (Read error: Connection reset by peer)
2023-02-17 14:31:13 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-17 14:34:47 +0100jespada(~jespada@77.98.179.16)
2023-02-17 14:36:23 +0100king_gs(~Thunderbi@187.201.41.239) (Quit: king_gs)
2023-02-17 14:37:02 +0100ft_ft
2023-02-17 14:42:29 +0100 <dminuoso_> [exa]: They arent hard.
2023-02-17 14:42:57 +0100 <dminuoso_> Between all the problems a software developer may be required to solve, migrations tends to be one of the simpler things.
2023-02-17 14:43:48 +0100 <dminuoso_> I just have a migration table in which I keep a counter, and each schema change becomes appended to `[Connection -> IO ()]`
2023-02-17 14:44:03 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-02-17 14:44:03 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Write error: Broken pipe)
2023-02-17 14:44:04 +0100 <dminuoso_> It's super easy, and has a very simple hook for facilitating data migrations too
2023-02-17 14:44:37 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-02-17 14:44:40 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-02-17 14:44:45 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2023-02-17 14:45:05 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-17 14:45:05 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-02-17 14:47:04 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2023-02-17 14:50:17 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-02-17 14:51:28 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-17 14:52:07 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:74f8:d485:92d1:ab7d)
2023-02-17 14:54:48 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 255 seconds)
2023-02-17 14:56:55 +0100cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-02-17 14:57:39 +0100cheater(~Username@user/cheater)
2023-02-17 14:59:07 +0100rlj(~rlj@c-5eea659e-74736162.cust.telenor.se)
2023-02-17 15:04:27 +0100__monty__(~toonn@user/toonn)
2023-02-17 15:06:48 +0100mbuf(~Shakthi@49.205.81.25)
2023-02-17 15:11:49 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 246 seconds)
2023-02-17 15:20:09 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2023-02-17 15:20:15 +0100califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-17 15:20:36 +0100mbuf(~Shakthi@49.205.81.25) (Quit: Leaving)
2023-02-17 15:21:46 +0100califax(~califax@user/califx)
2023-02-17 15:22:14 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-02-17 15:22:48 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-02-17 15:24:05 +0100rettahcay(~kaushikv@c-24-20-37-193.hsd1.or.comcast.net) ()
2023-02-17 15:24:06 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-02-17 15:24:31 +0100thegeekinside(~thegeekin@189.180.66.126)
2023-02-17 15:28:29 +0100megaTherion(~therion@unix.io) (Remote host closed the connection)
2023-02-17 15:28:53 +0100xkuru(~xkuru@user/xkuru)
2023-02-17 15:29:03 +0100x_kuru(~xkuru@user/xkuru)
2023-02-17 15:29:03 +0100x_kuru(~xkuru@user/xkuru) (Client Quit)
2023-02-17 15:29:24 +0100xkuru(~xkuru@user/xkuru) (Max SendQ exceeded)
2023-02-17 15:29:52 +0100xkuru(~xkuru@user/xkuru)
2023-02-17 15:30:13 +0100megaTherion(~therion@unix.io)
2023-02-17 15:30:50 +0100ystael(~ystael@user/ystael)
2023-02-17 15:34:01 +0100megaTherion(~therion@unix.io) (Client Quit)
2023-02-17 15:35:40 +0100megaTherion(~therion@unix.io)
2023-02-17 15:37:18 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2023-02-17 15:37:20 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-02-17 15:38:29 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2023-02-17 15:38:33 +0100mbuf(~Shakthi@49.205.81.25)
2023-02-17 15:39:08 +0100zmt00(~zmt00@user/zmt00)
2023-02-17 15:39:20 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-02-17 15:39:34 +0100chexum_(~quassel@gateway/tor-sasl/chexum)
2023-02-17 15:39:47 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2023-02-17 15:40:14 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-02-17 15:40:14 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-02-17 15:40:35 +0100zmt01(~zmt00@user/zmt00) (Ping timeout: 255 seconds)
2023-02-17 15:40:40 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-02-17 15:41:46 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-17 15:42:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-17 15:42:56 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2023-02-17 15:43:32 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-02-17 15:43:40 +0100xkuru(~xkuru@185.218.108.33)
2023-02-17 15:43:43 +0100x_kuru(~xkuru@185.218.108.33)
2023-02-17 15:43:54 +0100x_kuru(~xkuru@185.218.108.33) (Remote host closed the connection)
2023-02-17 15:44:02 +0100xkuru(~xkuru@185.218.108.33) (Remote host closed the connection)
2023-02-17 15:44:22 +0100xkuru(~xkuru@185.218.108.33)
2023-02-17 15:44:41 +0100xkuru(~xkuru@185.218.108.33) (Changing host)
2023-02-17 15:44:41 +0100xkuru(~xkuru@user/xkuru)
2023-02-17 15:45:08 +0100x_kuru(~xkuru@185.218.108.33)
2023-02-17 15:45:26 +0100x_kuru(~xkuru@185.218.108.33) (Remote host closed the connection)
2023-02-17 15:45:46 +0100x_kuru(~xkuru@185.218.108.33)
2023-02-17 15:46:07 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 246 seconds)
2023-02-17 15:46:34 +0100x_kuru(~xkuru@185.218.108.33) (Remote host closed the connection)
2023-02-17 15:46:46 +0100x_kuru(~xkuru@user/xkuru)
2023-02-17 15:50:13 +0100acidjnk(~acidjnk@p200300d6e715c461502375bc0f0db245.dip0.t-ipconnect.de)
2023-02-17 15:53:38 +0100x_kuru(~xkuru@user/xkuru) (Quit: Unvirtualizing)
2023-02-17 15:53:54 +0100x_kuru(~xkuru@user/xkuru)
2023-02-17 15:55:05 +0100x_kuru(~xkuru@user/xkuru) (Remote host closed the connection)
2023-02-17 15:55:28 +0100xkuru(~xkuru@user/xkuru) (Quit: Unvirtualizing)
2023-02-17 15:55:49 +0100xkuru(~xkuru@185.218.108.33)
2023-02-17 15:56:53 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-02-17 15:56:58 +0100xkuru(~xkuru@185.218.108.33) (Remote host closed the connection)
2023-02-17 15:57:08 +0100xkuru(~xkuru@user/xkuru)
2023-02-17 15:57:30 +0100mikoto-chan(~mikoto-ch@2001:999:480:87eb:9899:52f3:d50e:9bff)
2023-02-17 15:58:15 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-02-17 16:00:12 +0100xkuru(~xkuru@user/xkuru) (Client Quit)
2023-02-17 16:00:30 +0100xkuru(~xkuru@user/xkuru)
2023-02-17 16:02:30 +0100 <kaol> Cool, Vty is fine with opening a second instance on fds passed via unix socket. Just the thing I'd need for a multi-terminal roguelike.
2023-02-17 16:04:14 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
2023-02-17 16:04:15 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-17 16:08:52 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2023-02-17 16:08:52 +0100 <[exa]> kaol: oh wow pls elaborate
2023-02-17 16:08:52 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-17 16:09:04 +0100tiny_user_(~tiny_user@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3)
2023-02-17 16:09:08 +0100tiny_user_(~tiny_user@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3) (Client Quit)
2023-02-17 16:09:49 +0100 <kaol> It could have a permanent inventory window or a list of objects in view or something like that.
2023-02-17 16:10:25 +0100infty(~infty@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3)
2023-02-17 16:11:05 +0100 <merijn> kaol: Don't you want something like brick to just have that be the same UI?
2023-02-17 16:11:31 +0100 <kaol> Not that I have started with anything yet. Just trying out random stuff.
2023-02-17 16:13:07 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-17 16:13:24 +0100 <[exa]> kaol: how do you actually connect the terminals to that?
2023-02-17 16:13:37 +0100jespada(~jespada@77.98.179.16) (Remote host closed the connection)
2023-02-17 16:14:15 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-02-17 16:15:56 +0100 <kaol> The way I did was that the new process bind&connects to the socket and sends 0 and 1 to the master process and it grabs them in mkVty config. The slave process can stick around waiting on socket read.
2023-02-17 16:16:31 +0100ddellacosta(~ddellacos@146.70.165.157)
2023-02-17 16:16:42 +0100mimmy_(~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b)
2023-02-17 16:16:43 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-17 16:16:53 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Client Quit)
2023-02-17 16:17:11 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001) (Killed (NickServ (GHOST command used by mimmy_!~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b)))
2023-02-17 16:17:20 +0100mimmy_mimmy
2023-02-17 16:17:41 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Remote host closed the connection)
2023-02-17 16:18:03 +0100mimmy_(~mimmy@2604:a880:cad:d0::3e:1001)
2023-02-17 16:18:05 +0100 <geekosaur> xterm and several others have a special mode for it, among other possibilities (see the -S option)
2023-02-17 16:18:21 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-02-17 16:24:39 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-02-17 16:24:53 +0100 <kaol> I think I'll use a hexagonal grid. Two characters horizontally would be one cell and each other row would be offset by one column. It'd be a change.
2023-02-17 16:24:58 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2023-02-17 16:26:49 +0100 <geekosaur> it exists but isn't that common https://www.reddit.com/r/roguelikes/comments/25vufz/any_idea_why_hexagonal_roguelikes_are_not_so/
2023-02-17 16:27:27 +0100mimmy(~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b) (Quit: WeeChat 3.8)
2023-02-17 16:27:27 +0100mimmy_mimmy
2023-02-17 16:27:49 +0100 <merijn> kaol: brick is a higher level UI widget framework on top of vty
2023-02-17 16:28:04 +0100 <merijn> kaol: It's the successor to the now deprecated vty-ui
2023-02-17 16:28:41 +0100 <merijn> Should be much easier than using vty directly
2023-02-17 16:28:42 +0100 <maerwald> and still no windows support
2023-02-17 16:29:25 +0100 <merijn> maerwald: of course not, because windows developers don't care to work on windows support in vty and none windows devs don't care about doing it for them
2023-02-17 16:29:41 +0100 <kaol> Via WSL? Well, not my cup of tea anyhow.
2023-02-17 16:29:49 +0100 <maerwald> no, native
2023-02-17 16:30:29 +0100 <maerwald> merijn: I think that's rather a problem of early design decisions of the library
2023-02-17 16:30:37 +0100 <merijn> possibly
2023-02-17 16:30:53 +0100 <merijn> but the early design decisions were probably made for "not windows" :p
2023-02-17 16:31:58 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 246 seconds)
2023-02-17 16:32:29 +0100infty(~infty@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3) (Ping timeout: 252 seconds)
2023-02-17 16:33:33 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-02-17 16:35:32 +0100ddellacosta(~ddellacos@146.70.165.157) (Ping timeout: 268 seconds)
2023-02-17 16:36:06 +0100 <kaol> Speaking of roguelikes, I did this thing: https://gitlab.com/kaol/titityy Because people don't agree what SGR 1 does. More low level stuff.
2023-02-17 16:37:56 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-02-17 16:44:55 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-02-17 16:47:12 +0100hal[m](~halfosswt@2001:470:69fc:105::2:e0ae) ()
2023-02-17 16:54:25 +0100vglfr(~vglfr@145.224.100.62)
2023-02-17 16:54:40 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-02-17 16:56:10 +0100mikoto-chan(~mikoto-ch@2001:999:480:87eb:9899:52f3:d50e:9bff) (Ping timeout: 252 seconds)
2023-02-17 16:56:18 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001) (Killed (NickServ (GHOST command used by mimmy_!~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b)))
2023-02-17 16:56:35 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001)
2023-02-17 17:02:11 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2023-02-17 17:05:17 +0100Sgeo(~Sgeo@user/sgeo)
2023-02-17 17:09:43 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001) (Quit: ZNC 1.9.x-git-187-32d4a4d5 - https://znc.in)
2023-02-17 17:10:00 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001)
2023-02-17 17:11:39 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-02-17 17:16:54 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001) (WeeChat 3.8)
2023-02-17 17:20:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-02-17 17:21:19 +0100mbuf(~Shakthi@49.205.81.25) (Quit: Leaving)
2023-02-17 17:22:50 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2023-02-17 17:22:58 +0100p0lyph3m(~polyphem@2a02:810d:840:8754:ad77:3864:324d:fcd8)
2023-02-17 17:27:54 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-02-17 17:28:34 +0100 <raehik> I want to write a generic deriver that uses a method from a typeclass internally, but I want to be able to swap that typeclass out
2023-02-17 17:29:01 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-02-17 17:29:35 +0100 <raehik> I can apparently do this by adding that inner typeclass as a typevar `cxt` in my generic typeclass, and threading a function `(forall a. cxt a => r)` through the term level
2023-02-17 17:30:03 +0100 <raehik> is this all sound and fine for performance? might it fall apart in weird ways?
2023-02-17 17:31:28 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-02-17 17:31:28 +0100razetime(~Thunderbi@117.193.4.84)
2023-02-17 17:33:16 +0100 <raehik> some clippings from my code to illustrate what I mean https://paste.tomsmeding.com/9FWPaGSB
2023-02-17 17:36:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-02-17 17:36:32 +0100 <sm> we need to find an urgent business use case for brick on windows so that someone will throw money at it
2023-02-17 17:39:42 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-02-17 17:41:37 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-02-17 17:41:58 +0100maukethrows brick at windows instead
2023-02-17 17:43:59 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2023-02-17 17:45:29 +0100 <maerwald> lol
2023-02-17 17:46:15 +0100ec(~ec@gateway/tor-sasl/ec)
2023-02-17 17:46:20 +0100 <tomsmeding> mauke++
2023-02-17 17:46:39 +0100 <tomsmeding> sm: wouldn't that be fixing vty? Or is there some part of brick itself that's platform-dependent
2023-02-17 17:46:43 +0100 <monochrom> hololeap: (forall r. (a -> r -> r) -> r -> r)) is CPSed [a]. The "forall r" uses parametricity to ensure that you get nothing more than [a]. It is how you have [a] in System F. Equivalently, given xs::[a], (\op z -> foldr op z xs) has that type too, so you're looking at foldr or catamorphism. Probably Oleg loves CPSing for speed.
2023-02-17 17:48:38 +0100 <monochrom> But by the time you go to LogicT, this kind of CPS also helps gain streaming behaviour.
2023-02-17 17:49:07 +0100 <monochrom> LogicT would then be "ListT done right" CPSed.
2023-02-17 17:50:36 +0100czy(~user@50.30.140.23)
2023-02-17 17:53:54 +0100thongpv(~thongpv87@2402:9d80:3aa:dcd6:977e:e11f:15c9:9293) (Read error: Connection reset by peer)
2023-02-17 17:54:47 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-02-17 17:54:48 +0100dcoutts_(~duncan@host86-167-90-212.range86-167.btcentralplus.com) (Ping timeout: 255 seconds)
2023-02-17 17:55:39 +0100chele(~chele@user/chele) (Remote host closed the connection)
2023-02-17 17:57:33 +0100czy(~user@50.30.140.23) (Ping timeout: 252 seconds)
2023-02-17 17:58:21 +0100merijn(~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl)
2023-02-17 17:58:47 +0100 <hololeap> monochrom, I thought the "done right" was referring to the CPS
2023-02-17 18:00:46 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-17 18:01:10 +0100 <[exa]> dminuoso_: I'd argue they aren't hard if you have 10 years of sql practice and know how to build the database for the product right away. but yeah, it's not a super complex engineering problem
2023-02-17 18:02:35 +0100 <hololeap> but I have stared at it more and played around with it in ghci. I think I'm finally getting an intuition for it, especially realizing you can just use the Alternative api in many cases and the MonadLogic api in many others
2023-02-17 18:06:23 +0100 <geekosaur> "done right" has to do with ListT not being a proper monad transformer over e.g. IO, iirc
2023-02-17 18:11:06 +0100razetime(~Thunderbi@117.193.4.84) (Ping timeout: 252 seconds)
2023-02-17 18:11:27 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-02-17 18:11:54 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 255 seconds)
2023-02-17 18:13:41 +0100akegalj(~akegalj@213.202.86.88) (Ping timeout: 252 seconds)
2023-02-17 18:14:36 +0100merijn(~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-02-17 18:15:18 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-17 18:15:24 +0100 <sm> true tomsmeding I should say vty
2023-02-17 18:20:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds)
2023-02-17 18:20:54 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-02-17 18:20:59 +0100gurkenglas(~gurkengla@dynamic-046-114-182-119.46.114.pool.telefonica.de)
2023-02-17 18:23:39 +0100falafel(~falafel@2607:fb91:143f:e47f:bde1:ba1c:68af:958a)
2023-02-17 18:27:58 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-02-17 18:28:33 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-02-17 18:31:35 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-02-17 18:32:31 +0100 <glguy> kaol: I used the ability to connect vty to an arbitrary tty to make a stand-alone ssh server that presented a vty interface to clients upon connect once
2023-02-17 18:36:13 +0100gurkenglas(~gurkengla@dynamic-046-114-182-119.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2023-02-17 18:37:40 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-02-17 18:38:02 +0100ec(~ec@gateway/tor-sasl/ec)
2023-02-17 18:38:16 +0100gurkenglas(~gurkengla@82.113.98.93)
2023-02-17 18:41:04 +0100merijn(~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl)
2023-02-17 18:41:49 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-17 18:42:52 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-02-17 18:44:18 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-02-17 18:51:29 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-02-17 18:52:08 +0100MajorBiscuit(~MajorBisc@c-001-018-019.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.6)
2023-02-17 18:52:11 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds)
2023-02-17 18:55:20 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-02-17 18:55:51 +0100ubert(~Thunderbi@2a02:8109:abc0:6434:f290:bfbc:97a0:5afc) (Quit: ubert)
2023-02-17 18:56:37 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-17 18:57:04 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow)
2023-02-17 19:02:15 +0100echoone(~echoone@2a02:8109:a1c0:5d05:8d6f:39bb:827f:c033)
2023-02-17 19:02:34 +0100econo(uid147250@user/econo)
2023-02-17 19:08:23 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-02-17 19:08:44 +0100mauke[m](~mauke@user/mauke) ()
2023-02-17 19:09:15 +0100akegalj(~akegalj@lns01-0595.dsl.iskon.hr)
2023-02-17 19:10:24 +0100merijn(~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-02-17 19:11:08 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2023-02-17 19:12:44 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2023-02-17 19:15:31 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-02-17 19:18:58 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-02-17 19:20:16 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-02-17 19:20:43 +0100rlj(~rlj@c-5eea659e-74736162.cust.telenor.se) (Ping timeout: 260 seconds)
2023-02-17 19:22:03 +0100infty(~infty@2a01:cb1d:2d9:1100:cd1:c82a:937a:471b)
2023-02-17 19:23:59 +0100zeenk(~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!)
2023-02-17 19:24:41 +0100 <dminuoso_> [exa]: I think there's generally an overreliance on libraries to solve relatively simple problems, which can often masquerade these ideas as something "complicated"
2023-02-17 19:25:04 +0100 <dminuoso_> You especially begin to lose an understanding of underlying machinery, since "its just a library problem"
2023-02-17 19:25:19 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::ccfa)
2023-02-17 19:26:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-02-17 19:29:09 +0100 <[exa]> yeah that doesn't help at all, very true
2023-02-17 19:29:12 +0100falafel(~falafel@2607:fb91:143f:e47f:bde1:ba1c:68af:958a) (Ping timeout: 255 seconds)
2023-02-17 19:31:55 +0100 <gqplox[m]> hello
2023-02-17 19:33:31 +0100 <gqplox[m]> i see in data.Bits there is xor
2023-02-17 19:33:33 +0100 <gqplox[m]> i want to make this xor function also work on chars, how can I do that?
2023-02-17 19:34:25 +0100ph88(~ph88@ip5b426553.dynamic.kabel-deutschland.de)
2023-02-17 19:35:01 +0100 <ph88> what is the latest ghc/haskell edition ? was there something that enables some extensions by default ?
2023-02-17 19:35:13 +0100 <Hecate> gqplox[m]: turn Char into Int, use xor on Int, gqplox[m]
2023-02-17 19:35:22 +0100 <Hecate> ph88: GHC2021
2023-02-17 19:36:50 +0100 <ph88> how do i set that in my configuration file ?
2023-02-17 19:37:13 +0100 <oats> gqplox[m], what Hecate said, use `fromEnum :: Char -> Int` and use the Bits instance of Int
2023-02-17 19:37:26 +0100 <oats> but now I'm wondering why Char doesn't have a Bits instance
2023-02-17 19:37:28 +0100 <Hecate> ph88: https://github.com/haskell-text/text-display/blob/main/text-display.cabal#L28-L29 that's how I do it
2023-02-17 19:37:48 +0100 <ph88> thanks Hecate
2023-02-17 19:37:55 +0100 <Hecate> oats: good question, sometimes people just are lazy
2023-02-17 19:38:12 +0100 <ph88> i think if you set it to Haskell2010 explicitly then you turn off GHC2021 language extensions
2023-02-17 19:38:26 +0100 <ph88> > GHC2021 is used by GHC if neither Haskell98 nor Haskell2010 is turned on explicitly.
2023-02-17 19:38:28 +0100 <lambdabot> <hint>:1:85: error:
2023-02-17 19:38:28 +0100 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2023-02-17 19:38:29 +0100 <ph88> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html
2023-02-17 19:38:51 +0100 <gqplox[m]> I can do this... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/2e6116175fbf47e1bd0a5e4ca94b9fb9891d…>)
2023-02-17 19:39:08 +0100 <Hecate> yeah, in my library I am still compatible with 8.10.7 ph88, but you want to replace Haskell2010 with GHC2021
2023-02-17 19:39:16 +0100 <ph88> ok thanks
2023-02-17 19:40:00 +0100 <Hecate> gqplox[m]: https://stackoverflow.com/questions/59361341/xoring-strings-in-haskell
2023-02-17 19:40:25 +0100 <Hecate> https://wiki.haskell.org/Dealing_with_binary_data
2023-02-17 19:42:31 +0100OscarZ(~oscarz@95.175.104.39)
2023-02-17 19:42:51 +0100 <gqplox[m]> hmm sorry I think i'm not explaining myself properly. i am looking for a way to make a custom version of the built in xor that will work for any type i want, instead of calling it stringXor in that example. so then if I make other functions, e.g. function which returns true I cna do something similar to `Xorable a => a -> Bool`
2023-02-17 19:43:21 +0100 <gqplox[m]> as shown in that example*
2023-02-17 19:46:05 +0100 <geekosaur> https://hackage.haskell.org/package/AC-Boolean/docs/Data-Boolean.html ?
2023-02-17 19:46:06 +0100 <Hecate> gqplox[m]: looks to me like you'd have to define Bits instances
2023-02-17 19:46:54 +0100 <gqplox[m]> ah ok
2023-02-17 19:47:12 +0100 <gqplox[m]> how would i be able to do that? would you be able to show me a short example please?
2023-02-17 19:53:34 +0100acidjnk(~acidjnk@p200300d6e715c461502375bc0f0db245.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-02-17 19:57:42 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-17 19:58:08 +0100czy(~user@host-140-23.ilcub310.champaign.il.us.clients.pavlovmedia.net)
2023-02-17 19:58:47 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-17 20:01:28 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-02-17 20:03:18 +0100acidjnk(~acidjnk@p200300d6e715c424f48fc920b5a5fc6d.dip0.t-ipconnect.de)
2023-02-17 20:03:43 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 252 seconds)
2023-02-17 20:03:59 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-02-17 20:05:48 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-02-17 20:08:22 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Remote host closed the connection)
2023-02-17 20:15:43 +0100hueso(~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
2023-02-17 20:19:26 +0100 <gqplox[m]> nvm, i got it... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/8056a6918d77674fd2581ee7d1f7a447dbe0…>)
2023-02-17 20:22:41 +0100 <gqplox[m]> its cool though, less typing in ghci 😎... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/e6aa04b028a6e421a3ff6a2e740125ace294…>)
2023-02-17 20:24:00 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2023-02-17 20:24:56 +0100 <akegalj> I am going through linear base and can't wrap my head around how to think about linear compisition. Why doesn't (##.) :: (b -> c) -> (a %1-> b) -> (a %1-> c) typecheck? (from https://github.com/tweag/linear-base/blob/master/examples/Simple/Pure.hs#L206)
2023-02-17 20:28:30 +0100 <[exa]> akegalj: AFAIK, the result would be a linear function that would need to call a non-linear function
2023-02-17 20:28:40 +0100 <geekosaur> because the composition a %1-> c is not guaranteed to be linear if either component is not linear
2023-02-17 20:29:17 +0100 <geekosaur> so both a %1-> b and b %1-> c are required, aiui
2023-02-17 20:29:37 +0100czy(~user@host-140-23.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
2023-02-17 20:30:49 +0100 <tomsmeding> yeah
2023-02-17 20:31:01 +0100 <geekosaur> the "other direction" isn't a problem: the composition a -> c is valid even if one of the component functions is linear, because %Many doesn't care
2023-02-17 20:31:30 +0100 <tomsmeding> akegalj: if you write 'g ##. f = \a -> g (f a)' with thattype signature, then you must use the 'a' exactly once, which f does, but then g promises nothing about how it uses the result of calling f on a
2023-02-17 20:31:47 +0100 <tomsmeding> so you violate the contract of using 'a' exactly once by passing it indirectly to g
2023-02-17 20:33:03 +0100 <akegalj> got it, thanks all
2023-02-17 20:33:55 +0100 <akegalj> I think this arrow notation is a bit confusing (compared to rust which anotates values)
2023-02-17 20:35:02 +0100 <[exa]> rust doesn't need to deal with functions so they are okay with annotating the values
2023-02-17 20:35:19 +0100 <tomsmeding> [exa]: rust does deal with functions?
2023-02-17 20:35:26 +0100falafel(~falafel@2607:fb91:143f:e47f:e7bf:6161:2d4d:85e6)
2023-02-17 20:35:28 +0100 <[exa]> really?
2023-02-17 20:35:31 +0100 <tomsmeding> furthermore, rust even has to deal with functions having mutable closures
2023-02-17 20:35:46 +0100 <gqplox[m]> why can't i do this?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/bca44d9aca8c37b2594b07ebbdfbe87f180d…>)
2023-02-17 20:35:52 +0100 <[exa]> so these are still decidable values basically?
2023-02-17 20:35:54 +0100 <tomsmeding> [exa]: Fn / FnOnce / FnMut?
2023-02-17 20:36:58 +0100 <tomsmeding> gqplox[m]: Prelude's (^) is just a top-level function
2023-02-17 20:37:15 +0100 <tomsmeding> so after you've defined your class, there are now two (^) declarations in scope: one from Prelude, and one from you
2023-02-17 20:37:21 +0100 <tomsmeding> haskell doesn't disambiguate between those based on types
2023-02-17 20:37:46 +0100 <tomsmeding> the only "type-based disambiguation" (in some sense) that haskell does is when you have one declaration, in a type class, and you have multiple instances of that type class
2023-02-17 20:37:57 +0100 <tomsmeding> gqplox[m]: quick fix: put 'import Prelude hiding ((^))' at the top of your file
2023-02-17 20:38:47 +0100 <gqplox[m]> ah, thank you
2023-02-17 20:39:17 +0100 <gqplox[m]> also, how come haskell doesn't disambiguate? as it knows everything necessary in order to right?
2023-02-17 20:40:21 +0100 <tomsmeding> :t (^)
2023-02-17 20:40:22 +0100 <lambdabot> (Integral b, Num a) => a -> b -> a
2023-02-17 20:40:48 +0100 <tomsmeding> gqplox[m]: if you'd add Integral and Num instances to Char, then the Prelude one would also apply
2023-02-17 20:41:07 +0100son0p(~ff@181.136.122.143) (Ping timeout: 252 seconds)
2023-02-17 20:41:13 +0100 <tomsmeding> sure, Char currently doesn't have such instances, but ghc in general does not draw conclusions from type class instances _not_ existing
2023-02-17 20:41:15 +0100 <[exa]> gqplox[m]: you'd basically get an ad-hoc overloading if you'd allow it to disambiguate these things, which is very fragile
2023-02-17 20:41:44 +0100 <tomsmeding> because the point of (simple) type classes is confluence, i.e. by adding more definitions your program is only going to get more defined, without any ambiguity
2023-02-17 20:42:03 +0100 <c_wraith> at a practical level, it forces whole-program compilation, because instances can always be added later. No pre-compiled libraries, no module-at-a-time compilation, etc...
2023-02-17 20:42:08 +0100 <tomsmeding> now with MultiParamTypeClasses, or FlexibleInstances, or the variety of ghc extensions to plain Haskell2010 type classes, that's not quite true any more, but it's the idea
2023-02-17 20:42:15 +0100 <tomsmeding> also that
2023-02-17 20:42:32 +0100 <[exa]> gqplox[m]: btw there's a paper somewhere that proves that adhoc overloading is either np-complete or plain out undecidable in haskell-style inference
2023-02-17 20:43:35 +0100 <gqplox[m]> c_wraith: ah good point
2023-02-17 20:43:39 +0100 <gqplox[m]> thanks guys :)
2023-02-17 20:44:51 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-02-17 20:46:52 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::ccfa) (Remote host closed the connection)
2023-02-17 20:49:43 +0100hgolden_(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2023-02-17 20:52:08 +0100hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-02-17 20:53:59 +0100 <gqplox[m]> also how can i simplify this?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/4f5826edca8f74c1861daebea92bb94d683f…>)
2023-02-17 20:54:35 +0100charukiewicz[m](~charukiew@2001:470:69fc:105::ded4)
2023-02-17 20:54:39 +0100motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
2023-02-17 21:00:36 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-17 21:02:13 +0100trev_(~trev@109-252-35-99.nat.spd-mgts.ru) (Remote host closed the connection)
2023-02-17 21:05:29 +0100 <akegalj> when I define in ghci `data LinearHolder2 where LinearHolder2 :: a %1 -> b -> LinearHolder2" and ask its type it gives me "LinearHolder2 :: a -> b -> LinearHolder2" , where did multiplicity on a var dissapear? (ghc 9.2.4)
2023-02-17 21:05:36 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-17 21:05:48 +0100 <kaol> gqplox[m]: That'd require xor to be defined for all Integrals.
2023-02-17 21:07:13 +0100motherfsck(~motherfsc@user/motherfsck)
2023-02-17 21:08:10 +0100falafel(~falafel@2607:fb91:143f:e47f:e7bf:6161:2d4d:85e6) (Ping timeout: 260 seconds)
2023-02-17 21:08:29 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-02-17 21:08:29 +0100infty(~infty@2a01:cb1d:2d9:1100:cd1:c82a:937a:471b) (Remote host closed the connection)
2023-02-17 21:08:52 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-17 21:09:17 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-02-17 21:09:41 +0100 <gqplox[m]> i thought integral only has int + integer + word and they all support xor?
2023-02-17 21:10:02 +0100 <tomsmeding> gqplox[m]: until someone writes 'instance Integral String where'
2023-02-17 21:10:16 +0100 <kaol> Doesn't matter, it's open for arbitrary new instances.
2023-02-17 21:10:18 +0100 <gqplox[m]> oh right
2023-02-17 21:10:21 +0100 <tomsmeding> or until you import a package that happens to somewhere defined some instance like that
2023-02-17 21:10:21 +0100lyle(~lyle@104.246.145.237) (Quit: WeeChat 3.8)
2023-02-17 21:10:24 +0100 <gqplox[m]> i see
2023-02-17 21:10:28 +0100 <tomsmeding> unbeknownst to you
2023-02-17 21:10:51 +0100echoone(~echoone@2a02:8109:a1c0:5d05:8d6f:39bb:827f:c033) (Quit: Client closed)
2023-02-17 21:12:21 +0100 <tomsmeding> akegalj: I think that's only an artifact of printing
2023-02-17 21:13:25 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds)
2023-02-17 21:13:40 +0100 <tomsmeding> akegalj: https://play-haskell.tomsmeding.com/saved/Doigv7Mi
2023-02-17 21:13:47 +0100 <tomsmeding> oh bad test
2023-02-17 21:14:28 +0100 <geekosaur> "some instance like that" <-- see acme-php 🙂
2023-02-17 21:15:26 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-17 21:15:46 +0100 <tomsmeding> akegalj: actually relevant test https://play-haskell.tomsmeding.com/saved/NVrgVJNB
2023-02-17 21:16:19 +0100 <tomsmeding> no still not
2023-02-17 21:16:20 +0100 <tomsmeding> I give up
2023-02-17 21:17:25 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-02-17 21:18:01 +0100 <tomsmeding> akegalj: sorry for the noise, this is an actually working example https://play-haskell.tomsmeding.com/saved/1Abckwst
2023-02-17 21:18:30 +0100 <tomsmeding> as you can see, with the %1 on the -> in LinearHolder2 it contains the a linearly and makes my f typecheck, but without, f doesn't typecheck
2023-02-17 21:18:53 +0100 <tomsmeding> because f must use x linearly in producing its output, but LinearHolder2' contains the a unrestrictedly
2023-02-17 21:18:54 +0100kenran(~user@user/kenran)
2023-02-17 21:19:11 +0100 <tomsmeding> so indeed the %1 is respected, it's just not printed when using :t
2023-02-17 21:20:16 +0100 <akegalj> tomsmeding: thanks for the example. Yes I figured there is no bug in typechecking
2023-02-17 21:20:42 +0100 <akegalj> tomsmeding: by the way, that service play-haskell is really nice. Good job!
2023-02-17 21:20:51 +0100 <tomsmeding> :)
2023-02-17 21:22:19 +0100 <akegalj> tomsmeding: also I like clean simple design
2023-02-17 21:22:31 +0100 <tomsmeding> me too
2023-02-17 21:23:42 +0100 <tomsmeding> akegalj: problem is that there are a couple of features (unimplemented) that would need additional UI elements, such as ghc flags for configuring the Core output, or running a code formatter, or version info of available packages, etc
2023-02-17 21:24:05 +0100 <tomsmeding> and I'm bad at UI design so not sure how to incorporate that in the UI without making the UI sucky :p
2023-02-17 21:24:16 +0100 <tomsmeding> I could just add buttons to the top bar but that doesn't really scale
2023-02-17 21:24:48 +0100 <tomsmeding> if you have UI suggestions, https://github.com/tomsmeding/play-haskell/issues :)
2023-02-17 21:25:32 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-02-17 21:25:55 +0100son0p(~ff@181.136.122.143)
2023-02-17 21:26:33 +0100pwug(~pwug@user/pwug)
2023-02-17 21:27:56 +0100 <akegalj> tomsmeding: hm, let me think. I didn't do any web frontend for a while (5y) so I am not sure what is even norm today
2023-02-17 21:28:41 +0100 <geekosaur> side menus with some opener widget at top left
2023-02-17 21:28:48 +0100 <darkling> Forget _normal_. What _works_? The two seem to be distressingly far apart much of the time...
2023-02-17 21:28:52 +0100 <geekosaur> not that I'm recommending it
2023-02-17 21:28:56 +0100ec(~ec@gateway/tor-sasl/ec)
2023-02-17 21:29:02 +0100 <tomsmeding> geekosaur: hamburger menu you mean?
2023-02-17 21:29:07 +0100 <tomsmeding> not a fan :p
2023-02-17 21:29:56 +0100 <tomsmeding> maybe the required additional UI concept here is a drop-down joined to a button
2023-02-17 21:30:00 +0100 <akegalj> tomsmeding: maybe one textbox for these flags to be typed from keyboard (not selected by menues)?
2023-02-17 21:30:16 +0100 <akegalj> its not user friendy but its clean
2023-02-17 21:30:25 +0100Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-02-17 21:30:31 +0100 <tomsmeding> akegalj: yeah those Core/GHC flags would need to be a plain text field, no way I'm going to list those all and keep that up to date in a drop down
2023-02-17 21:32:09 +0100 <gqplox[m]> where can I learn about the rules for this kind of thing?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/b179e21607d7c1dac000b557123b13574fa5…>)
2023-02-17 21:33:02 +0100 <gqplox[m]> * where can I learn about the rules for this kind of thing?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/c4398c8db148113c83ead22c21d88a6fe0ac…>)
2023-02-17 21:34:35 +0100 <tomsmeding> @pl \x y -> xor (ord x) (ord y)
2023-02-17 21:34:35 +0100 <lambdabot> (. ord) . xor . ord
2023-02-17 21:35:11 +0100 <tomsmeding> gqplox[m]: j = xor `on` ord, where 'on' is from Data.Function
2023-02-17 21:36:05 +0100 <gqplox[m]> @pl (^) x y = chr $ ord (x) xor ord (y)
2023-02-17 21:36:05 +0100 <lambdabot> (line 1, column 10):
2023-02-17 21:36:05 +0100 <lambdabot> unexpected " "
2023-02-17 21:36:06 +0100 <lambdabot> expecting operator
2023-02-17 21:36:21 +0100 <akegalj> tomsmeding: maybe you could create a button/tab when clicked opens "configuration" view with advanced options. So there will be one view with text editor, basic-most-used options and output like its now and one with advanced configurations (where text editor and output are hidden)
2023-02-17 21:36:22 +0100 <tomsmeding> gqplox[m]: @pl takes an expression, start with \x y -> ...
2023-02-17 21:36:35 +0100 <tomsmeding> also don't forget the ` around xor
2023-02-17 21:37:16 +0100 <tomsmeding> gqplox[m]: but really, the kind of stuff that @pl tends to create is purely for playing around; it very rarely makes code easier to read
2023-02-17 21:37:57 +0100 <geekosaur> they didn't forget the backtick; the matrix bridge mangled it
2023-02-17 21:37:57 +0100 <tomsmeding> akegalj: or perhaps an additional toolbar below the current one, possibly higher than the current one, with extra stuff on it?
2023-02-17 21:38:02 +0100 <tomsmeding> that is toggleable
2023-02-17 21:38:07 +0100 <tomsmeding> geekosaur: >.>
2023-02-17 21:38:40 +0100 <akegalj> tomsmeding: tabs like this might work http://phrogz.net/JS/Tabtastic/index.html#overview
2023-02-17 21:38:42 +0100 <tomsmeding> gqplox[m]: see also https://wiki.haskell.org/Pointfree
2023-02-17 21:39:37 +0100 <kaol> Also known as pointless.
2023-02-17 21:39:45 +0100 <tomsmeding> (hence the name of @pl)
2023-02-17 21:41:47 +0100 <mauke> gqplox[m]: https://en.wikipedia.org/wiki/Lambda_calculus#Abstraction_elimination
2023-02-17 21:42:10 +0100 <mauke> gqplox[m]: also https://en.wikipedia.org/wiki/Combinatory_logic#Combinators_B,_C
2023-02-17 21:42:32 +0100 <tomsmeding> akegalj: I'm not sure I'm a fan of putting the whole interface in a tab, making all of it invisible when you open the "advanced" screen. But thanks for the suggestion, it's a neat lightweight tab lib, going to keep it in mind if I do something similar later
2023-02-17 21:42:36 +0100 <mauke> in haskell terms, S = ap, K = const, I = id, C = flip, B = (.)
2023-02-17 21:43:00 +0100opticblast(~Thunderbi@172.58.82.191)
2023-02-17 21:43:09 +0100 <gqplox[m]> woah cool, i didn't know about on
2023-02-17 21:43:13 +0100 <kaol> http://dirk.rave.org/combinatris/
2023-02-17 21:43:38 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) (Quit: use-value)
2023-02-17 21:43:38 +0100 <gqplox[m]> ah thanks, ill look into this
2023-02-17 21:44:16 +0100 <akegalj> tomsmeding: additional toolbar as you suggested might work. Just don't make it look like ms word :D
2023-02-17 21:44:24 +0100 <tomsmeding> akegalj: that's the danger
2023-02-17 21:45:24 +0100 <tomsmeding> kaol: that's hilarious
2023-02-17 21:47:27 +0100hpc(~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 255 seconds)
2023-02-17 21:49:27 +0100hpc(~juzz@ip98-169-35-163.dc.dc.cox.net)
2023-02-17 22:01:35 +0100merijn(~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl)
2023-02-17 22:01:42 +0100kenran`(~user@user/kenran)
2023-02-17 22:02:03 +0100kenran`(~user@user/kenran) (Remote host closed the connection)
2023-02-17 22:04:04 +0100dcoutts_(~duncan@host86-167-90-212.range86-167.btcentralplus.com)
2023-02-17 22:04:41 +0100kenran(~user@user/kenran) (Ping timeout: 252 seconds)
2023-02-17 22:06:28 +0100atwm(~atwm@82.180.149.97)
2023-02-17 22:08:15 +0100pavonia(~user@user/siracusa)
2023-02-17 22:08:32 +0100atwm(~atwm@82.180.149.97) (Remote host closed the connection)
2023-02-17 22:10:19 +0100 <gqplox[m]> whats the best way to make Int the default in ghci?
2023-02-17 22:12:05 +0100 <geekosaur> `default (Int, Double)` (or look up the one used by ExtendedDefaultRules and replace Integer with Int)
2023-02-17 22:12:53 +0100 <gqplox[m]> thank you
2023-02-17 22:13:39 +0100 <mauke> echo 'default (Int)' >> ~/.ghci
2023-02-17 22:14:23 +0100ddellacosta(~ddellacos@146.70.185.10)
2023-02-17 22:14:55 +0100 <gqplox[m]> oh cool i didn't know that
2023-02-17 22:15:09 +0100 <gqplox[m]> what stuff do you have in your .ghci?
2023-02-17 22:15:35 +0100lackita(~user@73.114.250.252)
2023-02-17 22:16:07 +0100 <tomsmeding> https://tomsmeding.com/vang/uLnyvc/.ghci
2023-02-17 22:16:21 +0100 <lackita> Hey, trying to figure out what code formatter to use and getting a little overwhelmed by the number of choices. What do y'all recommend?
2023-02-17 22:17:15 +0100 <geekosaur> none
2023-02-17 22:17:17 +0100 <geekosaur> 🙂
2023-02-17 22:17:19 +0100 <mauke> cat
2023-02-17 22:17:39 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-02-17 22:17:50 +0100 <tomsmeding> potentially grep -v '^#'
2023-02-17 22:18:26 +0100 <darkling> mauke: That's fine, until it pushes all the column headings off your table.
2023-02-17 22:18:55 +0100 <mauke> l'; gjigsgurq3y2`
2023-02-17 22:20:18 +0100 <lackita> ah, I thought that might be the answer :D
2023-02-17 22:23:46 +0100 <gqplox[m]> if i have a list of bools, and I want to find how many are true, what should i do
2023-02-17 22:24:06 +0100 <gqplox[m]> i used length and filter id but i saw sum and from Enum online
2023-02-17 22:24:17 +0100tomsmedingwas going to suggest precisely those two options
2023-02-17 22:24:36 +0100 <gqplox[m]> will they be equally fast?
2023-02-17 22:24:48 +0100khumba(~khumba@user/khumba) ()
2023-02-17 22:25:53 +0100 <mauke> I'd question why you have a list of bools in the first place
2023-02-17 22:26:59 +0100 <gqplox[m]> here is my function... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/91cc6b7e59001edf286c8a1d192f556d4de2…>)
2023-02-17 22:27:10 +0100 <tomsmeding> gqplox[m]: if I compile them then after ghc's optimiser they literally call into the same function
2023-02-17 22:27:46 +0100 <tomsmeding> (which is actually pretty cool)
2023-02-17 22:27:53 +0100 <kaol> GHC is crazy good at this kind of stuff.
2023-02-17 22:28:11 +0100 <tomsmeding> for reference: in https://play-haskell.tomsmeding.com/saved/A4hfLVQ7 , both f and g end up calling $wgo1_r15I
2023-02-17 22:28:22 +0100 <tomsmeding> kaol: I'm most surprised that's actually deduplicated the workers
2023-02-17 22:28:32 +0100 <tomsmeding> *that it's
2023-02-17 22:29:01 +0100 <eldritchcookie[m> i finally found a use case for backpack, it can shield you from instances
2023-02-17 22:29:41 +0100 <eldritchcookie[m> so you can import a module without bringing its instances in scope
2023-02-17 22:30:14 +0100 <gqplox[m]> oh cool, that's interesting
2023-02-17 22:30:22 +0100lackita(~user@73.114.250.252) (Ping timeout: 246 seconds)
2023-02-17 22:30:28 +0100 <gqplox[m]> thx for the website too, didn't know about that
2023-02-17 22:30:35 +0100 <gqplox[m]> wait you made it?
2023-02-17 22:31:16 +0100 <tomsmeding> yes :)
2023-02-17 22:31:50 +0100 <tomsmeding> you're the second person tonight who said the playground is useful
2023-02-17 22:32:24 +0100 <gqplox[m]> oh i just realised i didn't even need the filter id lol... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/739fdbc744be031151a0d7e5d224285d30a5…>)
2023-02-17 22:33:48 +0100 <gqplox[m]> yeah its very cool
2023-02-17 22:34:25 +0100 <gqplox[m]> oh cool you have the github link too, maybe after i get better i can read it and understand the code
2023-02-17 22:34:48 +0100 <tomsmeding> gqplox[m]: there's lots of plumbing though, very few interesting haskell tricks
2023-02-17 22:35:09 +0100merijn(~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-02-17 22:35:35 +0100 <tomsmeding> between a webserver, job pools, page rendering, intricate linux sandboxing, and some IO, there's just a lot of "stuff" :p
2023-02-17 22:36:55 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-02-17 22:38:50 +0100 <gqplox[m]> haha, well all the "stuff" sounds interesting too :)
2023-02-17 22:39:28 +0100 <tomsmeding> potentially interesting tidbits: https://github.com/tomsmeding/play-haskell/blob/master/play-haskell-server/src/Data/Queue/Priority… ; https://github.com/tomsmeding/play-haskell/blob/master/snap-server-utils/src/Snap/Server/Utils/Exi…
2023-02-17 22:39:54 +0100 <tomsmeding> the latter is most certainly already defined somewhere, but it's quite useful and I was too lazy to look up a usable library for it :p
2023-02-17 22:40:09 +0100pescvilek(~pescvilek@93-103-164-4.dynamic.t-2.net)
2023-02-17 22:41:01 +0100tomsmedingwonderes if ExitEarly is not just ContT with a few helper functions
2023-02-17 22:41:41 +0100 <c_wraith> tomsmeding: not exactly, because r isn't quantified over
2023-02-17 22:41:50 +0100 <c_wraith> wait, no. that's codensity
2023-02-17 22:41:53 +0100 <c_wraith> ok, yes.
2023-02-17 22:41:56 +0100 <c_wraith> It is the same
2023-02-17 22:42:48 +0100dcoutts_(~duncan@host86-167-90-212.range86-167.btcentralplus.com) (Ping timeout: 255 seconds)
2023-02-17 22:42:49 +0100 <kaol> I found "flip runContT return $ callCC $ \exit -> do ..." from my own code.
2023-02-17 22:43:11 +0100pescvilekslaps c_wraith around a bit with a large trout
2023-02-17 22:43:17 +0100 <c_wraith> fair
2023-02-17 22:44:26 +0100echoone(~echoone@2a02:8109:a1c0:5d05:28c6:d9bf:bfde:b3ed)
2023-02-17 22:47:26 +0100 <tomsmeding> kaol: sounds similar :p
2023-02-17 22:47:52 +0100 <pescvilek> dcc
2023-02-17 22:48:05 +0100 <tomsmeding> I don't really see through callCC well enough to know if it's exactly equivalent, but given the generality of the concepts here, it can hardly be something else
2023-02-17 22:48:22 +0100 <pescvilek> techno
2023-02-17 22:48:40 +0100 <kaol> Cont is the mother of all monads. Or so they say.
2023-02-17 22:49:32 +0100 <tomsmeding> but the advantage of using ExitEarlyT is that you're sure nobody is mothering some monads around, they're just exiting early :)
2023-02-17 22:49:47 +0100andrewboltachev(~andrey@178.141.125.176) (Quit: Leaving.)
2023-02-17 22:50:02 +0100 <pescvilek> rasist
2023-02-17 22:51:16 +0100 <mauke> wow, actually on mIRC
2023-02-17 22:51:29 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-02-17 22:51:50 +0100tomsmedingis off to bed, see you all later
2023-02-17 22:51:59 +0100 <tomsmeding> good luck with the spammer
2023-02-17 22:54:11 +0100 <pescvilek> !
2023-02-17 22:58:12 +0100oldsk00l(~znc@ec2-13-40-71-143.eu-west-2.compute.amazonaws.com)
2023-02-17 22:59:00 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2023-02-17 23:02:27 +0100 <ddellacosta> are there any libraries other than beam or persistent that support multiple DBs, in particular (all of) sqlite, postgres, and mysql?
2023-02-17 23:05:49 +0100echoone(~echoone@2a02:8109:a1c0:5d05:28c6:d9bf:bfde:b3ed) (Quit: Client closed)
2023-02-17 23:06:27 +0100 <kaol> HDBC at least.
2023-02-17 23:07:08 +0100 <ddellacosta> kaol: thanks, never heard of that one
2023-02-17 23:09:03 +0100docter_d(~{docter_d@2001:9e8:33ef:3200:4883:8c68:e59c:6913)
2023-02-17 23:09:57 +0100gurkenglas(~gurkengla@82.113.98.93) (Ping timeout: 252 seconds)
2023-02-17 23:12:30 +0100OscarZ(~oscarz@95.175.104.39) (Quit: Leaving)
2023-02-17 23:14:29 +0100notzmv(~zmv@user/notzmv)
2023-02-17 23:15:27 +0100Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2023-02-17 23:18:48 +0100mncheckm(~mncheck@193.224.205.254) (Ping timeout: 255 seconds)
2023-02-17 23:19:15 +0100pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2023-02-17 23:20:33 +0100Ranhir(~Ranhir@157.97.53.139)
2023-02-17 23:21:09 +0100 <raehik> As a library author writing some Generics, should I allow deriving instances for V1 (which would fail at runtime), or give a type error?
2023-02-17 23:21:44 +0100 <raehik> I started thinking the latter, but now I keep flip-flopping and I don't have a good corpus of generic code to inspect
2023-02-17 23:21:53 +0100pavonia(~user@user/siracusa)
2023-02-17 23:22:46 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-02-17 23:24:48 +0100pwug(~pwug@user/pwug) (Quit: Leaving)
2023-02-17 23:27:14 +0100ystael(~ystael@user/ystael) (Ping timeout: 255 seconds)
2023-02-17 23:33:26 +0100 <c_wraith> raehik: if the instance just can't exist, structurally, that seems like a great reason for a compile error
2023-02-17 23:36:29 +0100docter_d(~{docter_d@2001:9e8:33ef:3200:4883:8c68:e59c:6913) (Quit: Leaving)
2023-02-17 23:38:19 +0100 <raehik> c_wraith: thanks, yeah. I might make an issue on aeson and ask them why they write compiling instance to sate my uncertainty
2023-02-17 23:39:09 +0100gdown(~gavin@69.11.148.35)
2023-02-17 23:47:07 +0100 <stefan-_> is it possible to use variables inside pcre-heavy `re` quasiquoter?
2023-02-17 23:47:44 +0100 <stefan-_> e.g. sth like [re|foo${key}bar|]
2023-02-17 23:50:08 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-17 23:51:45 +0100dolio(~dolio@130.44.134.54)
2023-02-17 23:51:47 +0100 <geekosaur> doesn't look like it
2023-02-17 23:52:32 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-17 23:52:41 +0100 <geekosaur> also, doesn't that kinda defeat doing it at compile time?
2023-02-17 23:53:47 +0100dolio(~dolio@130.44.134.54) (Client Quit)
2023-02-17 23:53:58 +0100 <geekosaur> it's running the regex `compile` step at compile time, no runtime values would be available to it
2023-02-17 23:54:11 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-02-17 23:54:44 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-02-17 23:54:44 +0100dolio(~dolio@130.44.134.54)
2023-02-17 23:56:03 +0100falafel(~falafel@2607:fb91:143f:e47f:1b14:6f43:b1d6:67f0)
2023-02-17 23:57:45 +0100 <stefan-_> geekosaur, makes sense
2023-02-17 23:58:08 +0100 <stefan-_> maybe I can use https://hackage.haskell.org/package/pcre-light-0.4.1.0/docs/Text-Regex-PCRE-Light.html#v:compile
2023-02-17 23:58:48 +0100 <stefan-_> together with the `match` function then