Home liberachat/#haskell: Logs Calendar

Logs on 2023-02-17 (liberachat/#haskell)

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

All times are in UTC on 2023-02-17.