Home liberachat/#haskell: Logs Calendar

Logs on 2025-12-11 (liberachat/#haskell)

00:07:09 × ljdarj quits (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer)
00:08:06 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:12:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
00:15:08 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
00:16:00 pabs3 joins (~pabs3@user/pabs3)
00:23:04 × p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.10.1 - https://znc.in)
00:23:11 p3n_ joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
00:23:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:28:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
00:33:09 Sgeo__ joins (~Sgeo@user/sgeo)
00:34:31 × ycp quits (~znc@user/dragestil) (Ping timeout: 244 seconds)
00:35:14 ycp joins (~znc@user/dragestil)
00:36:04 × Sgeo_ quits (~Sgeo@user/sgeo) (Ping timeout: 244 seconds)
00:39:39 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:40:49 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
00:41:02 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
00:41:58 × larsivi quits (~larsivi@user/larsivi) (Ping timeout: 246 seconds)
00:44:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
00:47:55 × Raito_Bezarius quits (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Ping timeout: 246 seconds)
00:48:27 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
00:51:04 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
00:55:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:59:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
01:02:28 Raito_Bezarius joins (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius)
01:05:04 × jle` quits (~jle`@2603:8001:3b00:11:ed74:b35d:c320:7e16) (Ping timeout: 246 seconds)
01:05:59 jle` joins (~jle`@2603:8001:3b00:11:a23f:f454:6842:2ec4)
01:09:09 × hsw quits (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Quit: Leaving)
01:09:16 × xff0x quits (~xff0x@2405:6580:b080:900:9fc6:fc26:b514:683b) (Ping timeout: 246 seconds)
01:10:17 × Tuplanolla quits (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.)
01:10:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:15:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
01:19:20 larsivi joins (~larsivi@user/larsivi)
01:24:46 divlamir_ joins (~divlamir@user/divlamir)
01:24:50 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
01:25:38 divlamir_ is now known as divlamir
01:26:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:26:25 × acidjnk quits (~acidjnk@p200300d6e717192391252480cf04477b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
01:28:08 bggd_ joins (~bgg@2a01:e0a:fd5:f510:327d:b50f:5899:99de)
01:30:27 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
01:30:40 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
01:31:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
01:32:46 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:34:29 omidmash5 joins (~omidmash@user/omidmash)
01:36:31 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds)
01:36:31 omidmash5 is now known as omidmash
01:40:46 trickard_ is now known as trickard
01:42:14 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:43:38 califax joins (~califax@user/califx)
01:45:22 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Remote host closed the connection)
01:45:38 chromoblob joins (~chromoblo@user/chromob1ot1c)
01:46:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:49:31 × timide quits (~timide@user/timide) (Ping timeout: 246 seconds)
01:49:53 × sp1ff` quits (~user@2601:1c2:4c00:6820::c593) (Remote host closed the connection)
01:55:08 × ephemient quits (uid407513@user/ephemient) (Quit: Connection closed for inactivity)
01:58:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:58:32 timide joins (~timide@user/timide)
02:01:21 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
02:02:31 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:05:00 × bggd_ quits (~bgg@2a01:e0a:fd5:f510:327d:b50f:5899:99de) (Remote host closed the connection)
02:08:19 <Pozyomka> Why is does XMonad.keys have type “XConfig l -> XConfig Layout -> Data.Map.Internal.Map (ButtonMask, KeySym) (X ())”? The first XConfig, I can understand, it's the XConfig record we're projecting from. But why would we need a second record?
02:10:16 × spew quits (~spew@user/spew) (Quit: nyaa~)
02:11:20 <geekosaur> because it's not a Map, it's a function that produces a Map. the function is passed the current configuration, mostly so it can extract the modMask
02:12:14 <geekosaur> https://github.com/xmonad/xmonad/blob/master/src/XMonad/Config.hs#L181-L243
02:13:06 <geekosaur> also note like 194 which extracts the current layoutHook and hard sets it to reinitialize layouts
02:13:47 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:13:50 <geekosaur> and line 233 which extracts the workspaces
02:18:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
02:18:55 × myxos quits (~myxos@wsip-70-166-126-146.ph.ph.cox.net) (Ping timeout: 264 seconds)
02:23:57 <Pozyomka> Ah, thanks... I guess I just find it hard to reason about non-positive types: “Part of the data of a configuration is a function that takes another configuration...”
02:27:19 myxos joins (~myxos@wsip-70-166-126-146.ph.ph.cox.net)
02:29:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:35:01 <geekosaur> it takes the same configuration. there's just no way to relay the configuration it came from to it automatically, so xmonad has to do `keys conf conf`
02:35:35 <geekosaur> (hypothetically you could even call the function directly, but I can't think of a good reason to do so. xmonad users have surprised me in the past, though)
02:35:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:37:49 × karenw quits (~karenw@user/karenw) (Ping timeout: 264 seconds)
02:44:07 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
02:45:54 vanishingideal joins (~vanishing@user/vanishingideal)
02:47:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:51:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:52:05 × trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
02:52:18 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
02:57:35 × rekahsoft quits (~rekahsoft@70.51.99.245) (Ping timeout: 240 seconds)
02:58:00 Lycurgus joins (~juan@user/Lycurgus)
03:01:02 hsw joins (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw)
03:02:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:06:50 ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com)
03:07:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
03:09:26 × img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
03:10:39 img joins (~img@user/img)
03:11:55 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds)
03:14:04 vanishingideal joins (~vanishing@user/vanishingideal)
03:17:22 × nschoe quits (~nschoe@82-65-202-30.subs.proxad.net) (Ping timeout: 246 seconds)
03:18:27 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:23:15 nschoe joins (~nschoe@82-65-202-30.subs.proxad.net)
03:23:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
03:34:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:35:55 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
03:38:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
03:41:55 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:42:08 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
03:49:54 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
03:50:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:54:19 omidmash joins (~omidmash@user/omidmash)
03:54:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
04:05:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:10:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
04:21:18 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:25:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
04:33:17 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
04:37:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:41:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
04:47:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:52:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
04:52:55 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
04:56:53 peterbecich joins (~Thunderbi@71.84.33.135)
05:00:42 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
05:03:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:07:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:14:45 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
05:15:38 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:16:36 × ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
05:18:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:20:55 trickard_ is now known as trickard
05:24:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:26:47 deptype joins (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046)
05:27:03 <iqubic> If I have a `Map k v` is there a function of type `Map k v -> k -> Bool` that tells me if said key is present in the Map?
05:27:41 <iqubic> It's member and notMemember that I want.
05:36:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:41:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:50:53 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
05:51:30 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
05:52:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:52:49 ChaiTRex joins (~ChaiTRex@user/chaitrex)
05:54:35 × iqubic quits (~sophia@2601:602:9203:1660:767a:e6b6:2f4b:e37e) (Remote host closed the connection)
05:54:43 <Leary> @tell Wygyulmage Looks like it's because it's defined in terms of `deleteBy`, but with the arguments flipped to be consistent with `\\`. I wouldn't call that a /deep/ reason though, and you could perhaps change it by complaining at the CLC.
05:54:43 <lambdabot> Consider it noted.
05:56:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
06:07:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:10:16 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds)
06:12:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:14:14 × Pozyomka quits (~pyon@user/pyon) (Quit: brb)
06:19:14 ephemient joins (uid407513@user/ephemient)
06:19:41 Pozyomka joins (~pyon@user/pyon)
06:23:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:28:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
06:32:46 × Pozyomka quits (~pyon@user/pyon) (Quit: brb)
06:34:27 Pozyomka joins (~pyon@user/pyon)
06:34:29 euphores joins (~SASL_euph@user/euphores)
06:39:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:41:20 <int-e> Leary: you had an extra 'y'
06:41:54 <int-e> (I noticed because I tried finding the question)
06:43:35 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
06:44:08 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:45:44 <Leary> Geh. That's what happens when no tab-complete.
06:47:11 <Leary> @clear-messages
06:47:11 <lambdabot> Messages cleared.
06:47:27 <Leary> @tell Wygulmage Looks like it's because it's defined in terms of `deleteBy`, but with the arguments flipped to be consistent with `\\`. I wouldn't call that a /deep/ reason though, and you could perhaps change it by complaining at the CLC.
06:47:27 <lambdabot> Consider it noted.
06:47:52 acidjnk joins (~acidjnk@p200300d6e717192391252480cf04477b.dip0.t-ipconnect.de)
06:50:09 <int-e> It's been that way since at least Haskell 98 though. (On the flip side, I don't remember ever using that function.)
06:52:23 <int-e> Changing the orientation of the predicate would be one of the more insidious changes you could push onto users, since the code will still compile.
06:53:30 peterbecich joins (~Thunderbi@71.84.33.135)
06:54:41 <Leary> Yeah, it probably won't happen. That said, it's probably not actually hard to warn/PR every single user on hackage.
06:59:12 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
07:02:54 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:07:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
07:20:02 jrm2 joins (~jrm@user/jrm)
07:20:16 × jrm quits (~jrm@user/jrm) (Ping timeout: 246 seconds)
07:21:38 jrm2 is now known as jrm
07:46:17 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
07:48:29 lucabtz joins (~lucabtz@user/lucabtz)
07:49:12 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:53:07 × ft quits (~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving)
07:56:50 FirefoxDeHuk joins (~FirefoxDe@user/FirefoxDeHuk)
07:58:02 × j1n37 quits (~j1n37@user/j1n37) (Quit: Ich bin der Welt abhanden gekommen)
07:59:43 × tolt_ quits (~weechat-h@li219-154.members.linode.com) (Ping timeout: 240 seconds)
07:59:45 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
07:59:55 haskellbridge_ joins (~hackager@96.28.224.214)
07:59:55 ChanServ sets mode +v haskellbridge_
08:00:12 j1n37 joins (~j1n37@user/j1n37)
08:00:50 tolt joins (~weechat-h@li219-154.members.linode.com)
08:02:00 jrm2 joins (~jrm@user/jrm)
08:02:40 × pabs3 quits (~pabs3@user/pabs3) (Killed (platinum.libera.chat (Nickname regained by services)))
08:02:44 pabs3 joins (~pabs3@user/pabs3)
08:02:48 takuan_dozo joins (~takuan@d8D86B9E9.access.telenet.be)
08:04:15 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
08:04:15 × itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 240 seconds)
08:04:15 × haskellbridge quits (~hackager@96.28.224.214) (Ping timeout: 240 seconds)
08:04:16 × jrm quits (~jrm@user/jrm) (Ping timeout: 240 seconds)
08:04:16 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 240 seconds)
08:04:16 jrm2 is now known as jrm
08:04:31 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds)
08:04:35 × FANTOM quits (~fantom@90.244.161.115) (Ping timeout: 240 seconds)
08:04:47 haskellbridge_ is now known as haskellbridge
08:06:33 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
08:06:59 × FirefoxDeHuk quits (~FirefoxDe@user/FirefoxDeHuk) (Quit: Client closed)
08:08:00 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
08:08:17 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
08:08:58 SheRejoined joins (haveident@libera/staff/she/her)
08:10:16 × She quits (haveident@libera/staff/she/her) (Read error: Connection reset by peer)
08:10:16 SheRejoined is now known as She
08:10:53 FANTOM joins (~fantom@90.244.161.115)
08:13:34 itaipu joins (~itaipu@168.121.97.28)
08:15:19 × arahael quits (~wetfoot@user/arahael) (Ping timeout: 265 seconds)
08:18:53 arahael joins (~wetfoot@user/arahael)
08:19:49 × simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 264 seconds)
08:20:01 × trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
08:20:14 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
08:20:31 simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
08:26:49 chencheng57 joins (~chencheng@user/chencheng)
08:28:18 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds)
08:29:09 × chencheng57 quits (~chencheng@user/chencheng) (Client Quit)
08:31:41 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:35:46 chele joins (~chele@user/chele)
08:43:38 × Sgeo__ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:55:20 merijn joins (~merijn@77.242.116.146)
09:09:48 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection)
09:13:55 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
09:14:52 pabs3 joins (~pabs3@user/pabs3)
09:18:37 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
09:18:51 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
09:20:03 ljdarj joins (~Thunderbi@user/ljdarj)
09:21:52 gmg joins (~user@user/gehmehgeh)
09:24:44 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:27:00 × olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 245 seconds)
09:37:47 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
09:40:38 × arahael quits (~wetfoot@user/arahael) (Ping timeout: 260 seconds)
09:41:14 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
09:49:03 olivial joins (~benjaminl@user/benjaminl)
09:53:11 merijn joins (~merijn@77.242.116.146)
10:00:02 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
10:00:02 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
10:00:02 haritz joins (~hrtz@user/haritz)
10:01:31 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
10:02:04 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:02:48 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
10:03:15 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
10:03:31 arahael joins (~wetfoot@user/arahael)
10:05:25 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 264 seconds)
10:06:08 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
10:08:51 ljdarj1 joins (~Thunderbi@user/ljdarj)
10:09:15 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
10:09:15 ljdarj1 is now known as ljdarj
10:09:51 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
10:14:28 merijn joins (~merijn@77.242.116.146)
10:16:33 × yuuta quits (~YuutaW@infornography.yta.moe) (Ping timeout: 252 seconds)
10:18:37 ljdarj1 joins (~Thunderbi@user/ljdarj)
10:18:46 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
10:18:52 Googulator joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
10:20:15 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
10:20:15 ljdarj1 is now known as ljdarj
10:30:37 merijn joins (~merijn@77.242.116.146)
10:34:55 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds)
10:37:27 merijn joins (~merijn@77.242.116.146)
10:48:22 YuutaW joins (~YuutaW@2404:f4c0:f9c3:502::100:6eef)
10:49:15 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
10:55:41 Googulator85 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
10:55:43 × Googulator quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
10:58:52 xff0x joins (~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7)
11:06:04 Square joins (~Square4@user/square)
11:15:35 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
11:25:43 × Googulator85 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
11:25:50 Googulator48 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
11:29:22 merijn joins (~merijn@77.242.116.146)
11:31:54 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
11:34:39 × jreicher quits (~user@user/jreicher) (Quit: brb)
11:38:13 __monty__ joins (~toonn@user/toonn)
11:43:41 euphores joins (~SASL_euph@user/euphores)
11:45:01 jreicher joins (~user@user/jreicher)
11:51:20 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:58:03 × yin quits (~zero@user/zero) (Remote host closed the connection)
12:00:14 Jackneill_ joins (~Jackneill@178-164-177-109.pool.digikabel.hu)
12:02:42 × Jackneill quits (~Jackneill@94-21-15-191.pool.digikabel.hu) (Ping timeout: 252 seconds)
12:06:12 yin joins (~zero@user/zero)
12:08:25 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
12:10:35 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
12:10:48 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
12:17:05 merijn joins (~merijn@77.242.116.146)
12:22:52 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:24:18 L29Ah joins (~L29Ah@wikipedia/L29Ah)
12:25:42 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
12:25:55 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
12:30:06 karenw joins (~karenw@user/karenw)
12:30:18 × karenw quits (~karenw@user/karenw) (Remote host closed the connection)
12:31:20 karenw joins (~karenw@user/karenw)
12:35:14 comerijn joins (~merijn@77.242.116.146)
12:36:44 fp joins (~Thunderbi@2001:708:20:1406::10c5)
12:38:04 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
12:39:16 bggd_ joins (~bgg@2a01:e0a:fd5:f510:fb9e:194f:f1d5:eb88)
12:45:41 Googulator63 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
12:45:49 × Googulator48 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
12:47:14 × yin quits (~zero@user/zero) (Remote host closed the connection)
12:49:01 yin joins (~zero@user/zero)
12:54:57 × yin quits (~zero@user/zero) (Remote host closed the connection)
12:55:20 yin joins (~zero@user/zero)
13:05:29 × Pozyomka quits (~pyon@user/pyon) (Quit: brb)
13:07:30 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
13:12:17 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
13:12:37 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
13:12:48 Pozyomka joins (~pyon@user/pyon)
13:13:57 merijn joins (~merijn@77.242.116.146)
13:15:54 Googulator87 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
13:16:11 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
13:16:25 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
13:17:43 × Googulator63 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
13:34:09 × cawfee quits (root@2401:c080:3800:3460::babe) (Quit: WeeChat 4.7.1)
13:34:55 cawfee joins (root@2401:c080:3800:3460::babe)
13:35:58 × cawfee quits (root@2401:c080:3800:3460::babe) (Client Quit)
13:36:46 cawfee joins (root@2401:c080:3800:3460::babe)
13:41:47 × Googulator87 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Ping timeout: 272 seconds)
13:42:45 weary-traveler joins (~user@user/user363627)
13:49:40 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
13:52:35 × Square quits (~Square4@user/square) (Ping timeout: 240 seconds)
13:52:52 × fp quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 256 seconds)
14:00:39 fp joins (~Thunderbi@wireless-86-50-140-30.open.aalto.fi)
14:03:28 × fp quits (~Thunderbi@wireless-86-50-140-30.open.aalto.fi) (Remote host closed the connection)
14:06:43 Googulator87 joins (~Googulato@185.199.28.81)
14:09:05 rekahsoft joins (~rekahsoft@70.51.99.245)
14:13:14 Enrico63 joins (~Enrico63@host-212-171-79-170.retail.telecomitalia.it)
14:13:15 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
14:16:20 × Enrico63 quits (~Enrico63@host-212-171-79-170.retail.telecomitalia.it) (Client Quit)
14:17:50 fp joins (~Thunderbi@2001:708:150:10::7e06)
14:18:53 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
14:22:00 <pounce> does anybody know if there's a name for Functor f => (k -> f a) -> (k -> b) -> (k -> f b)? kind of like blah f g x = f x $> g x
14:22:48 Enrico63 joins (~Enrico63@host-212-171-79-170.retail.telecomitalia.it)
14:25:39 merijn joins (~merijn@77.242.116.146)
14:29:57 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 250 seconds)
14:30:30 <Leary> pounce: Only `liftA2 ($>)`.
14:31:11 × Googulator87 quits (~Googulato@185.199.28.81) (Ping timeout: 272 seconds)
14:33:24 × fp quits (~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 252 seconds)
14:33:58 merijn joins (~merijn@77.242.116.146)
14:34:23 tremon joins (~tremon@83.80.159.219)
14:39:12 <kuribas> pounce: give it your own name :)
14:39:44 fp joins (~Thunderbi@2001:708:150:10::7e06)
14:41:35 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
14:42:11 <kuribas> I hate this error: Ambiguous type variable ‘a0’ arising from a use of ‘subQuery’ prevents the constraint ‘(ToQueryBuilder a0)’ from being solved.
14:42:14 × fp quits (~Thunderbi@2001:708:150:10::7e06) (Remote host closed the connection)
14:42:33 <kuribas> There is nothing that stops ghc from creating a hole for a0, no?
14:42:39 <kuribas> This shouldn't be an error at all.
14:43:25 Sgeo joins (~Sgeo@user/sgeo)
14:43:53 <kuribas> Well, with -fdefer-typed-holes
14:44:57 merijn joins (~merijn@77.242.116.146)
14:45:59 <kuribas> I would expect ghc to infer constraints as much as possible with holes, but create another hole when it cannot resolve them.
14:46:09 <kuribas> This would make working with typed holes so much better.
14:46:38 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
14:49:43 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
14:53:57 L29Ah joins (~L29Ah@wikipedia/L29Ah)
14:56:52 merijn joins (~merijn@77.242.116.146)
15:03:33 raym joins (~ray@user/raym)
15:03:50 fp joins (~Thunderbi@130.233.70.102)
15:06:07 × fp quits (~Thunderbi@130.233.70.102) (Client Quit)
15:06:21 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
15:06:27 fp joins (~Thunderbi@2001:708:20:1406::1370)
15:08:31 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
15:08:44 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
15:11:17 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
15:12:11 × qqe quits (~qqq@185.54.20.98) (Quit: Lost terminal)
15:12:41 jmcantrell_ joins (~weechat@user/jmcantrell)
15:16:31 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
15:17:01 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:17:13 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
15:19:36 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
15:21:00 deptype_ joins (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046)
15:23:42 L29Ah joins (~L29Ah@wikipedia/L29Ah)
15:24:28 Square joins (~Square4@user/square)
15:24:54 × Enrico63 quits (~Enrico63@host-212-171-79-170.retail.telecomitalia.it) (Quit: Client closed)
15:26:04 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 246 seconds)
15:42:12 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
15:42:54 <tomsmeding> kuribas: the context "I want to work with -fdefer-typed-holes" is very important there :p
15:43:12 <kuribas> right :)
15:46:02 <merijn> Of course you do
15:46:17 <merijn> -fdefer-typed-holes is the greatest flag ever and whoever implemented it was a visionary genius
15:46:29 <tomsmeding> well that turns this from "GHC's diagnostics are bad" into "-fdefer-typed-holes is not strong enough"
15:46:39 <tomsmeding> which is a completely different thing, namely a feature request instead of a bug report
15:46:55 <merijn> (I missed the context, btw)
15:47:32 <kuribas> tomsmeding: A feature request I have been missing for 10 years or so :)
15:47:39 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
15:49:00 <kuribas> merijn: it came from profo assistants, no?
15:49:02 <kuribas> proof
15:49:26 <merijn> kuribas: The ambiguous variable *is* an error and it cannot be solved
15:49:32 <merijn> holes don't help you there
15:50:22 <kuribas> If a0 is the type of a hole, I don't want an error.
15:50:43 <merijn> Can you pastebin an example?
15:50:59 <kuribas> I don't have an easy example right now.
15:51:19 <merijn> kuribas: It didn't come from proof assistants
15:51:23 <merijn> It was I, Dio!
15:51:37 <kuribas> ah right :)
15:51:46 <kuribas> Well, the hole thingy came from proof assistants, no?
15:52:10 <kuribas> "Typed holes are a powerful feature in GHC inspired by Agda. But what are typed holes, and how do they help us write code? "
15:52:10 <merijn> I saw -fdefer-type-errprs and I was like "man, that's useless. But also, it would be nice if I could run my code while it still had holes"
15:52:35 <kuribas> indeed!
15:53:08 <kuribas> And if you allow holes, why not allow missing constraints on those holes?
16:00:01 × deptype_ quits (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046) (Quit: Leaving)
16:00:24 × deptype quits (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046) (Read error: Connection reset by peer)
16:02:49 <merijn> kuribas: You could try and fix it. I hacked that flag together when I barely knew haskell :p
16:03:37 <haskellbridge> <matti palli> Allowing missing constraints is a bit problematic, since constraints is how we generate code. Indeed, holes are just an “undefined variable” error with a fancy message
16:03:47 × Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection)
16:04:17 <kuribas> How are constraints "generating code"?
16:04:40 <kuribas> constraints are just implicits.
16:05:15 × yin quits (~zero@user/zero) (Remote host closed the connection)
16:05:26 <kuribas> And the point is that the hole is not just "an error", but allows you to fill in the rest of the program, while leave out details.
16:05:30 yin joins (~zero@user/zero)
16:05:30 <haskellbridge> <matti palli> that’s how the typechecker works, you solve constraint by emitting a “proof” that the constraint holds, and that contains the dictionary which contains the code
16:06:05 <kuribas> You don't emit a "proof", the type inference does a proof search to find the right instance.
16:06:46 <haskellbridge> <matti palli> yeah, and the right instance is the proof
16:07:39 <haskellbridge> <matti palli> and it’s simultaneously the dictionary which contains the code, afaiu
16:08:30 <kuribas> haskell doesn't really have "proofs".
16:08:36 <kuribas> Due to bottom.
16:09:33 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
16:10:09 <kuribas> Even so, proof assistants like agda and idris allow you to have holes as proofs.
16:10:15 <kuribas> Then they are just "assumptions".
16:10:15 <lucabtz> i remember a video of tsoding on youtube referring to implementing instances like the functor instance as "proving" something is a functor
16:10:15 <haskellbridge> <matti palli> yeah sure, you can emit a “proof” that just contains error
16:10:58 <haskellbridge> <matti palli> what I mean is that you solve the constraint and emit a witness that is the dictionary
16:11:17 <kuribas> That's how large proofs are done, you treat some parts as "assumptions", and proof them later. Or they turn out to be false, and you have to abort the whole proof (or find another proof).
16:12:12 <haskellbridge> <matti palli> sure, you can do that with undefined or error as well. but then you have the issue of ambiguous type variables, as you’ve encountered
16:12:31 <tomsmeding> is the problem here that you want to be sure that the unsolvable constraint is _purely_ due to a typed hole?
16:12:43 <kuribas> yeah
16:12:56 <tomsmeding> because instantiating a typeclass dictionary argument with an error term is very much expressible in Core, at least
16:13:22 <tomsmeding> it's just hard to draw the line between an arbitrary unsolved constraint and one that is "intuitively" part of the hole
16:13:43 <tomsmeding> and replacing arbitrary unsolved constraints with errors (and thus not stopping compilation for them) is rather against the idea of -fdefer-typed-holes
16:13:54 <kuribas> tomsmeding: isn't that use a graph on the typeclass dependencies?
16:14:16 <tomsmeding> perhaps, but I expect you're going to have a lot of spurious dependencies
16:14:23 <tomsmeding> also, the graph needs to include type variables
16:16:03 <tomsmeding> one thing that's probably implementable (I say without having ever looked at the GHC typechecker) is instantiating any ambiguous unification variable with a special type such that unsolved constraints that mention that special type get magically solved with an error
16:16:13 <tomsmeding> but that would be -fdefer-type-errors behaviour, not -fdefer-typed-holes
16:16:59 <kuribas> tomsmeding: the hole gives rise to a type variable, which can be either unified with something, or remains "ambiguous". In the latter case you can trace which type classes depend on the ambiguous variable, no?
16:17:07 <haskellbridge> <matti palli> You could get there by just giving a more specific type to the hole "_ :: blah", resolving the ambiguity
16:17:12 <tomsmeding> "the hole gives rise to a type variable" is not a thing
16:17:30 <tomsmeding> every term gives rise to potentially multiple unification variables, and a lot of those are equal
16:17:44 <tomsmeding> you can track dependencies of everything, but that likely slows down type checking significantly
16:18:31 <tomsmeding> if the type of the hole itself is the ambiguous type variable, then sure, it clearly "gives rise" to it (though even then, there's not at all necessarily a causal relationship!)
16:19:04 <tomsmeding> what if you have `read undefined + _`; that has an ambiguous type, but is that type "given rise to" by the hole?
16:19:08 <tomsmeding> how would GHC decide?
16:19:10 <haskellbridge> <matti palli> tomsmeding: technically the type of the hole starts of as a type variable, but is then quickly unified with variables that exist in scope.
16:19:16 <tomsmeding> right
16:19:29 <haskellbridge> <matti palli> it never comes up with a completely new variable
16:20:01 <tomsmeding> well, if the type of the hole starts off as a type variable, that variable was completely new, wasn't it? ;)
16:20:34 <haskellbridge> <matti palli> well yes but it shouldn’t escape the scope (you’d get the skolem has escaped warning haha)
16:20:47 <tomsmeding> but kuribas what do you think about my little example?
16:21:30 <haskellbridge> <matti palli> but yeah you are completely right, the ambiguity isn’t introduced by the hole, it’s just that the hole isn’t resolving any ambiguity (nor should it!)
16:21:59 <tomsmeding> you can try to deduce that fixing the type of the whole would resolve the ambiguity, perhaps
16:22:16 <tomsmeding> but I'm not sure that characterises precisely what kuribas intends
16:22:28 <tomsmeding> and also that feels like fragile code, especially in GHC where you have zonking
16:22:37 <kuribas> tomsmeding: (read undefined :: Read a => a), after + it becomes (Read a, Num a), and (_ :: ?hole1), so after unifying with the hole, you have (Read ?hole, Num ?hole) => ?hole
16:22:57 <tomsmeding> kuribas: or you have (Read a, Num a) => a, with the hole also of type a
16:23:17 <haskellbridge> <matti palli> the type of the home becomes a, not the other way around
16:23:21 <tomsmeding> GHC makes some arbitrary rewriting choice when handling the equality `a ~ ?hole` introduced by the +
16:23:49 <tomsmeding> (it's not random, of course, but if it's the one I can probably flip it around by swapping the arguments to +)
16:24:14 <tomsmeding> the point is, GHC's behaviour ought not to depend on which choice is made here
16:24:28 <kuribas> tomsmeding: like you said, "read undefined" gives rise to a unification variable.
16:24:54 <tomsmeding> because if it does depend on internal typechecker choices like these, then behaviour in practice will be highly unpredictable, which GHC in general considers worse than just not supporting the thing at all
16:25:19 <tomsmeding> kuribas: if I write simply `read undefined` in a program without a hole, and I set -fdefer-typed-holes, should that result in an error?
16:25:32 <tomsmeding> if so, my `read undefined + _` makes it ambiguous whether it should throw an error or not
16:25:35 <kuribas> tomsmeding: in idris it doesn't :)
16:25:44 <tomsmeding> then it's -fdefer-type-errors, not -fdefer-typed-holes
16:25:49 <kuribas> tomsmeding: It'll happily generate an empty list of undefined type.
16:25:57 <tomsmeding> `read undefined` has no holes in haskell
16:26:26 <kuribas> tomsmeding: why should it?
16:26:50 <tomsmeding> because if it doesn't, then -fdefer-typed-HOLES should not have an impact on GHC's behaviour when compiling `read undefined`
16:27:21 <tomsmeding> (I guess the 'undefined' is a red herring in all of this, `read ""` works just as well)
16:27:22 <kuribas> tomsmeding: well it doesn't?
16:27:28 sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no)
16:27:38 <tomsmeding> right
16:27:49 <kuribas> tomsmeding: I tag ?hole as a unification variable belonging to a hole, and any constraints on it are deferred as well.
16:28:01 <tomsmeding> and should `read "" + _` and `_ + read ""` have the same behaviour under -fdefer-typed-holes?
16:28:29 <kuribas> yes
16:28:43 <tomsmeding> but the unification variable resulting from `read ""` and the one resulting from `_` are the same to GHC
16:28:54 <tomsmeding> so they're rewritten in some direction, and one of the two disappears
16:29:18 <kuribas> tomsmeding: they are now, but like I said, I would tag it as belonging to a hole.
16:29:30 <tomsmeding> what about `show (fromJust _)`?
16:29:45 <tomsmeding> does the `a` in the `Maybe a` that is the type of `_`, arise from the hole?
16:29:49 <haskellbridge> <matti palli> kuribas: but it doesn’t, it belongs to the undefined or the read
16:30:19 <tomsmeding> matti: kuribas is arguing that a type variable "arising from" a hole originally should have a little tag saying so, and when unifying two type variables, you take the union of the tags
16:30:21 <tomsmeding> I think
16:30:28 <tomsmeding> ok I have to go, sorry
16:30:29 <kuribas> tomsmeding: right
16:30:36 <tomsmeding> good luck :p
16:30:58 × lucabtz quits (~lucabtz@user/lucabtz) (Remote host closed the connection)
16:31:46 L29Ah joins (~L29Ah@wikipedia/L29Ah)
16:32:06 <haskellbridge> <matti palli> tomsmeding: hmm yes interesting
16:32:06 <haskellbridge> SPJ bugged me about this, saying we should add provenance to type variables for improved errors. If you had that you could improve holes as well
16:32:30 spew joins (~spew@user/spew)
16:32:47 <kuribas> Yes "fromJust :: Maybe a -> a", then "?hole ~ Maybe ?sub_hole", and "Show ?sub_hole" is deferred.
16:35:22 × bggd_ quits (~bgg@2a01:e0a:fd5:f510:fb9e:194f:f1d5:eb88) (Remote host closed the connection)
16:40:12 spew_ joins (~spew@user/spew)
16:40:43 × spew quits (~spew@user/spew) (Ping timeout: 255 seconds)
16:41:15 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
16:41:16 spew_ is now known as spew
16:41:35 <haskellbridge> <matti palli> Right. At the moment there is no distinction, and thinking about it might be that typechecking levels could be an issue, i.e. when do you unify with a hole type variable in the new schema
16:41:38 <haskellbridge> interesting problem for sure
16:42:20 × karenw quits (~karenw@user/karenw) (Ping timeout: 244 seconds)
16:43:45 × tv quits (~tv@user/tv) (Read error: Connection reset by peer)
16:45:02 <dolio> Even if you know the provenance of type variables, I don't know that the further idea makes sense.
16:45:17 merijn joins (~merijn@77.242.116.146)
16:46:36 yin is now known as zero
16:46:40 zero is now known as yin
16:49:55 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
16:53:17 Guest87 joins (~Guest87@2405:201:d006:986f:5c73:3a20:69d:7d07)
17:02:14 merijn joins (~merijn@77.242.116.146)
17:08:13 × skum quits (~skum@user/skum) (Quit: WeeChat 4.8.1)
17:08:27 milan joins (~milan@88.212.61.169)
17:08:35 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
17:09:49 <milan> Guyz Am I out of luck if I want to use Data.Text in application build with -XSafe?
17:10:47 × spew quits (~spew@user/spew) (Read error: Connection reset by peer)
17:12:55 Tuplanolla joins (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi)
17:13:09 spew joins (~spew@user/spew)
17:15:42 Googulator87 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
17:15:45 × trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
17:15:58 trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au)
17:17:13 tv joins (~tv@user/tv)
17:18:27 Googulator87 is now known as Googulator
17:20:30 merijn joins (~merijn@77.242.116.146)
17:21:59 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:25:13 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
17:33:31 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:36:23 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:36:36 × spew quits (~spew@user/spew) (Quit: nyaa~)
17:37:14 spew joins (~spew@user/spew)
17:37:25 merijn joins (~merijn@77.242.116.146)
17:39:29 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:41:14 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 244 seconds)
17:42:19 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
17:45:07 tccq joins (~user@user/tccq)
17:46:33 <gentauro> I'm tryiing to build an old stack/cabal project, but I'm getting: `startProcess: posix_spawnp: does not exist`. Have anybody seen that before?
17:46:45 <gentauro> *note*: I have the newest stack installed
17:47:15 <gentauro> `Version 3.7.1, Git revision`
17:48:35 × Googulator quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
17:48:51 Googulator joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
17:54:00 merijn joins (~merijn@77.242.116.146)
17:54:35 skum joins (~skum@user/skum)
17:54:40 × ephemient quits (uid407513@user/ephemient) (Quit: Connection closed for inactivity)
17:55:21 <sm> gentauro: doesn't ring a bell, but have you tried searching for that error message ?
17:55:58 int-e would look for verbosity options or maybe use strace to figure out what program it's trying to execute
17:56:28 <sm> anything at https://github.com/haskell/process/issues/247 ?
17:56:38 <geekosaur> normally it says the program
17:57:37 <gentauro> sm: it seems that the cached `Cabal-simple-…` placed in `~/.stack/setup-exe-cache/x86_64-linux-nix` become wacko. I cleansed that folder and now it works.
17:57:51 kuribas joins (~user@2a02:1808:cd:df9d:1dcb:cff3:20e8:95d8)
17:58:08 <gentauro> geekosaur: yeah, it mentioned `Cabal-simple-…`
17:58:17 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
17:58:44 <int-e> (note that "not found" in an exec-like context doesn't necessarily mean that the executable itself is missing; it can also be a shared library that it depends on)
17:59:01 <gentauro> I guess it happens from time to time on NixOS when I change the main channel (recently moved from 25.05 -> 25.11)
17:59:32 <int-e> oh I suppose nix will change library paths all the time
18:00:06 <int-e> anyway, it sunds like the issue is solved :)
18:00:20 <gentauro> int-e: and sometimes remove support for old GHC. They do that cos the burden of maintaining all of it. So I do understand.
18:00:28 <gentauro> int-e: it sure is. Thx :)
18:00:46 × Googulator quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
18:00:49 Googulator24 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
18:00:57 <sm> gentauro: great. I guess "nuke things and start over" is our equivalent of "have you tried turning it off and on again"
18:01:10 <gentauro> sm: xD
18:01:21 <sm> sometimes it's the quickest thing to try
18:01:40 <gentauro> sm: back in the good old days, I sed gentoo and compiled it all locally. I'm never going back to those days again xD
18:01:57 <gentauro> I would rather spend my time producing code ;)
18:02:47 <haskellbridge> <sm> sure, but sometimes it's quicker to move some dirs aside and let cabal/stack run in another window while you continue working on things that require thought
18:02:56 <geekosaur> if that binary was left over from then, it might do it. "does not exist" can refer not to the binary, but to its ELF "interpreter" whose path might vary on different systems (well, shouldn't these days, but if it was old enough it might)
18:03:27 <geekosaur> leading to confusing error messages because `exec` has no way to pass back precisely what wasn't found
18:03:37 <haskellbridge> <sm> (not something I would do often, but sometimes the dumb hands-free test is worth doing)
18:03:47 <geekosaur> in particular, it varies on NixOS
18:03:55 <geekosaur> see `patchelf`
18:04:09 × Guest87 quits (~Guest87@2405:201:d006:986f:5c73:3a20:69d:7d07) (Quit: Client closed)
18:05:20 <haskellbridge> <sm> I guess my point is, as we work with computers and tools we are working with very complex state which will never be entirely bug free, sometimes it's more cost effective to try a state reset than to debug what's going wrong
18:06:33 × Googulator24 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
18:06:43 peterbecich joins (~Thunderbi@71.84.33.135)
18:06:45 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
18:06:55 Googulator24 joins (~Googulato@87-97-86-146.pool.digikabel.hu)
18:07:18 Googulator24 is now known as Googulator
18:09:19 × Square quits (~Square4@user/square) (Ping timeout: 240 seconds)
18:09:21 <gentauro> haskellbridge: that's actually the foundation of Erlang right? We know we are gonna fail at some point, lets add that to the equation.
18:10:23 <EvanR> well, transactional semantics are a good way to deal with that assumption
18:10:38 <EvanR> which is not what erlang is usually promoting
18:11:05 <haskellbridge> <sm> I know php is a good example, you get a fresh state every request
18:11:46 merijn joins (~merijn@77.242.116.146)
18:11:49 <haskellbridge> <sm> that's running software rather than dev in process, but you know what I mean
18:12:01 <haskellbridge> <sm> same principle
18:12:45 <haskellbridge> <sm> I haven't used erlang, but yes that sounds right, they like to throw something away if it fails
18:14:31 <haskellbridge> <Morj> I've been learning erlang recently, and haven't seen anything about transactional semantics. Sad
18:14:39 <EvanR> ;_;
18:14:44 <haskellbridge> <Morj> Sadder still is that I thought I finished learning
18:15:06 <Rembane> Finally max level!
18:15:27 ft joins (~ft@p508db844.dip0.t-ipconnect.de)
18:15:58 <EvanR> level 60, you're done
18:16:10 <EvanR> return to the world
18:18:46 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
18:28:50 target_i joins (~target_i@user/target-i/x-6023099)
18:30:24 × spew quits (~spew@user/spew) (Quit: WeeChat 4.7.2)
18:31:10 × pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 245 seconds)
18:36:55 × raym quits (~ray@user/raym) (Ping timeout: 240 seconds)
18:38:35 raym joins (~ray@user/raym)
18:42:04 × kuribas quits (~user@2a02:1808:cd:df9d:1dcb:cff3:20e8:95d8) (Ping timeout: 246 seconds)
18:43:13 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
18:43:27 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 252 seconds)
18:45:22 pabs3 joins (~pabs3@user/pabs3)
18:45:28 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
18:50:57 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 256 seconds)
18:57:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
18:57:28 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
18:58:38 califax joins (~califax@user/califx)
19:01:02 × Googulator quits (~Googulato@87-97-86-146.pool.digikabel.hu) (Quit: Client closed)
19:01:09 Googulator joins (~Googulato@87-97-86-146.pool.digikabel.hu)
19:01:30 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:02:25 califax joins (~califax@user/califx)
19:03:05 omidmash joins (~omidmash@user/omidmash)
19:03:48 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:05:36 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
19:06:47 kuribas joins (~user@2a02:1808:cd:df9d:3fd8:99c:a12:7c8)
19:14:21 __monty__ joins (~toonn@user/toonn)
19:15:43 × tabaqui1 quits (~tabaqui@167.71.80.236) (Ping timeout: 240 seconds)
19:16:49 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
19:20:28 × yin quits (~zero@user/zero) (Remote host closed the connection)
19:23:36 merijn joins (~merijn@77.242.116.146)
19:24:40 ljdarj joins (~Thunderbi@user/ljdarj)
19:24:49 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:29:00 tabaqui joins (~tabaqui@167.71.80.236)
19:30:48 Googulator58 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
19:30:51 × Googulator quits (~Googulato@87-97-86-146.pool.digikabel.hu) (Quit: Client closed)
19:31:28 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
19:31:46 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
19:32:48 Lord_of_Life_ is now known as Lord_of_Life
19:35:59 califax joins (~califax@user/califx)
19:42:30 × vetkat quits (~vetkat@user/vetkat) (Read error: Connection reset by peer)
19:42:53 vetkat joins (~vetkat@user/vetkat)
19:46:27 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
19:47:07 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
19:50:31 × polykernel quits (~polykerne@user/polykernel) (Remote host closed the connection)
19:50:59 polykernel joins (~polykerne@user/polykernel)
19:57:33 <bwe> Reader & ReaderT: I've now grasped the concept of hiding an (read only) input argument within Reader. Also it's straightforward to have a nested structure of functions that propagate this way the argument to the terminal function. What causes frustration right now is: `ReaderT ReadArg Parser Result` when is which bind operator (`<-`) working in which context (and what does it expect), i.e. ReaderT or Parser? -- Can you recommend a tutorial / paper that wal
19:57:33 <bwe> ks through some examples of this kind?
19:59:18 <haskellbridge> <Zemyla> It's operating in the Reader context, and if you want to run a Parser value, you need to lift it.
19:59:33 <haskellbridge> <Zemyla> Or else use a typeclass that lifts it automatically.
20:00:33 <bwe> Zemyla: Do I want in this case something like `liftIO` but for Reader context?
20:02:40 <c_wraith> :t lift
20:02:41 <lambdabot> (MonadTrans t, Monad m) => m a -> t m a
20:03:08 <c_wraith> that's... the *sole* operation specific to monad transformers
20:03:54 jmcantrell_ joins (~weechat@user/jmcantrell)
20:03:59 <bwe> lift ... then is adding another layer of Reader to Parser so it matches up to the expected type
20:04:52 kuribas parts (~user@2a02:1808:cd:df9d:3fd8:99c:a12:7c8) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
20:04:59 <c_wraith> there are some rules it must follow.. lift a >>= \x -> lift (f x) must be equivalent to lift (a >>= \x -> f x)
20:05:12 <c_wraith> that's really the only rule you need, actually
20:08:26 Square2 joins (~Square@user/square)
20:09:03 <bwe> Ok, thanks, that instantly relieves me of some frustration if I use that in my code. -- Then, what's the confusion about transformer libraries? There's one I am warned about whereas I should use the other. What's true?
20:09:20 <monochrom> To a large extent, ReaderT makes more sense if you follow Typeclassopedia in reinventing ReaderT from scratch (or any of those transformers).
20:11:06 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
20:11:43 <bwe> Oh, I meant https://hackage.haskell.org/package/mtl vs. https://hackage.haskell.org/package/transformers
20:11:56 <c_wraith> the funny thing is there is no argument there.
20:12:01 trickard_ is now known as trickard
20:12:11 <c_wraith> the argument is between mtl and monads-tf. mtl won.
20:12:29 <c_wraith> transformers was created to share as much code as possible between mtl and monads-tf
20:12:51 <c_wraith> transformers has all the actual implementations
20:13:05 <c_wraith> mtl provides a slightly different API for them
20:13:14 <monochrom> Yeah you must have been reading very outdated material. There was a divide two decades ago. They were unified since then.
20:13:35 <bwe> That's interesting to learn. So my default is then any or just mtl?
20:13:56 <c_wraith> I'm still mildly in favor of using transformers without the mtl layer, but I'm unconcerned. I'll go either way for compatibility
20:14:00 <monochrom> Today, transformers defines ReaderT, and mtl defines the MonadReader class and puts ReaderT as an instance. That is all.
20:14:14 <monochrom> (and mtl re-exports transformers)
20:14:55 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
20:15:48 Googulator22 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
20:15:48 × Googulator58 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
20:16:43 <dolio> At some point mtl had everything directly in it, and then there were a couple of split up packages on top of transformers. But eventually mtl just got turned into essentially the same thing as the fundeps one.
20:17:09 <dolio> Because it was silly having 3 things like mtl.
20:17:41 <bwe> monochrom: that's complicated enough :)
20:18:22 <monochrom> I used to tell fake news about it in the form of "Vienna Peace Conference established the Concert of MTL" >:)
20:18:35 <bwe> https://play.haskell.org/saved/CIlt9hCq <- what's the right approach to mix Reader and non Reader parsers? I mean line 4.
20:19:23 <monochrom> I thought you knew about `lift`?
20:19:59 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
20:20:00 <mauke> why is there a runReaderT in there?
20:20:26 <monochrom> I believe it is to reinvent `lift`. :)
20:20:35 <bwe> mauke: because parserB and parser C are of type `Parser Result`
20:20:52 <mauke> parserA <|> lift parserB <|> lift parserC ?
20:21:20 <monochrom> Although, can you still use <|> at the ReaderT level?
20:21:28 <bwe> okay, the thing then is that my working context is already ReaderT
20:21:30 <monochrom> Ah probably yes.
20:22:15 <EvanR> ReaderT, (one of) haskell's (many) answers to dependency injection
20:24:20 <c_wraith> dependency injection is such a complicated name for "pass values around"
20:26:28 <EvanR> haha
20:26:50 <monochrom> I would say "higher-order functions" but OK!
20:27:13 <EvanR> the dependency may not be a function
20:27:34 <monochrom> <facetious> "callback" is a complicated way to say "continuation" </facectious>
20:28:04 <dolio> I don't know which of those deserves to be considered more complicated.
20:28:07 <mauke> lower-chrer
20:28:29 <EvanR> dependency itself is kind a can of worms
20:28:38 <EvanR> evokes a lot of infrastructure
20:29:06 <EvanR> but here it boils down to, this express has free variables. But we're calling it a dependency
20:29:11 <EvanR> expression
20:32:14 <monochrom> Oh! Then "lambda lifting" :)
20:32:25 <bwe> f xs = (_ . map returnsSomeReader $ xs) :: [Text] -> Reader Config [Result] -- how do I transform [Reader Config Result] to `Reader Config [Result]`?
20:32:58 <monochrom> Does `sequence` do what you want?
20:33:43 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
20:35:00 <mauke> :t sequence
20:35:01 <lambdabot> (Traversable t, Monad m) => t (m a) -> m (t a)
20:35:11 <mauke> :t traverse
20:35:12 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
20:35:40 <bwe> My intuition led me to traverse :).
20:36:18 <mauke> :t \f -> sequence . map f
20:36:18 <lambdabot> Monad m => (a1 -> m a2) -> [a1] -> m [a2]
20:36:39 <mauke> :t \f -> sequenceA . map f
20:36:40 <lambdabot> Applicative f => (a1 -> f a2) -> [a1] -> f [a2]
20:38:10 AlexNoo joins (~AlexNoo@85.174.180.40)
20:40:10 <Leary> bwe: Re mixing levels, this <https://play.haskell.org/saved/vdNe7NSH> is one option, but you're probably better off reversing the order of `ReaderT` and `ParsecT`, since that way the only operation you need to `lift` is `ask`.
20:45:32 <bwe> Leary: …you do that with `k (`runReaderT` r)` right?
20:47:41 Wygulmage joins (~Wygulmage@user/Wygulmage)
20:49:28 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
20:51:04 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
20:55:25 <Leary> bwe: I'm not sure what you're asking. Regardless, the way I'd actually recommend goes like so: https://play.haskell.org/saved/8oJlQyYR
20:55:46 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 246 seconds)
20:56:42 Square joins (~Square4@user/square)
20:57:41 × Pixi__ quits (~Pixi@user/pixi) (Quit: Leaving)
20:59:37 × Square2 quits (~Square@user/square) (Ping timeout: 246 seconds)
21:02:13 jmcantrell_ joins (~weechat@user/jmcantrell)
21:02:53 <bwe> Leary: wow, that's actually beautiful.
21:06:32 <monochrom> You can furthermore omit the `lift` because ParsercT e s (Reader r) is an instance of MonadReader too. (Generally, ParsecT e s m, if m is an instance of MonadReader).
21:12:15 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:13:58 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
21:14:26 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
21:14:38 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
21:14:56 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
21:23:19 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
21:25:38 ChaiTRex joins (~ChaiTRex@user/chaitrex)
21:29:33 karenw joins (~karenw@user/karenw)
21:36:17 Pixi joins (~Pixi@user/pixi)
21:43:09 humasect joins (~humasect@192.249.132.90)
21:45:35 × Googulator22 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
21:45:44 Googulator22 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
21:47:59 <bwe> thanks, mauke, monochrom, Leary, c_wraith and Zemyla
21:48:37 × humasect quits (~humasect@192.249.132.90) (Ping timeout: 264 seconds)
21:55:23 × milan quits (~milan@88.212.61.169) (Quit: WeeChat 4.5.2)
21:56:27 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:57:07 × michalz quits (~michalz@185.246.207.215) (Remote host closed the connection)
21:58:51 × Athas quits (athas@2a01:7c8:aaac:1cf:e9bb:9c42:9519:597d) (Quit: ZNC 1.9.1 - https://znc.in)
21:59:03 Athas joins (athas@sigkill.dk)
22:01:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:08:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:13:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
22:15:51 Googulator7 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
22:15:51 × Googulator22 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
22:24:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:28:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:35:03 × Wygulmage quits (~Wygulmage@user/Wygulmage) (Ping timeout: 272 seconds)
22:38:31 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
22:39:13 Everything joins (~Everythin@172-232-54-192.ip.linodeusercontent.com)
22:40:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:40:49 pavonia joins (~user@user/siracusa)
22:44:15 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
22:44:18 × takuan_dozo quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
22:45:49 × Googulator7 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
22:45:51 Googulator9 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
22:46:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
22:49:11 × st_aldini quits (~Thunderbi@2605:a601:a07c:7400:7a53:9ab0:188f:494f) (Quit: st_aldini)
22:56:35 × sindu quits (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds)
22:58:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:59:35 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
23:00:30 jmcantrell_ is now known as jmcantrell
23:02:12 emmanuelux joins (~emmanuelu@user/emmanuelux)
23:03:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
23:04:06 gmg joins (~user@user/gehmehgeh)
23:10:10 × xff0x quits (~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7) (Ping timeout: 246 seconds)
23:12:33 yin joins (~zero@user/zero)
23:14:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:14:52 xff0x joins (~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7)
23:18:31 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
23:21:35 × yin quits (~zero@user/zero) (Remote host closed the connection)
23:21:51 yin joins (~zero@user/zero)
23:26:29 × haskellbridge quits (~hackager@96.28.224.214) (Remote host closed the connection)
23:28:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:30:51 haskellbridge joins (~hackager@96.28.224.214)
23:30:51 ChanServ sets mode +v haskellbridge
23:33:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
23:34:12 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:36:59 tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
23:39:31 × tccq quits (~user@user/tccq) (Remote host closed the connection)
23:39:50 × Pozyomka quits (~pyon@user/pyon) (Quit: WeeChat 4.8.1)
23:40:42 Pozyomka joins (~pyon@user/pyon)
23:44:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:48:17 × tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:49:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
23:53:18 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
23:56:24 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)

All times are in UTC on 2025-12-11.