2024/10/25

2024-10-25 00:03:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 00:03:08 +0200 <justsomeguy> Haskell error messages can be gnarly, sometimes, when there's a lot of polymorphism.
2024-10-25 00:06:09 +0200vglfr(~vglfr@2607:fb90:eab7:5356:ac39:c397:6933:1a7b) (Ping timeout: 246 seconds)
2024-10-25 00:06:21 +0200 <zero> just found out that you can have uninitiated record fields. ugh
2024-10-25 00:06:35 +0200 <haskellbridge> <sm> yes.. you get good at pattern-matching / distilling them
2024-10-25 00:06:44 +0200 <EvanR> there should be a warning for that
2024-10-25 00:06:49 +0200 <haskellbridge> <sm> +(error messages)
2024-10-25 00:07:00 +0200 <EvanR> constructing a record without defining all the fields
2024-10-25 00:07:11 +0200 <zero> there is a warning message
2024-10-25 00:07:13 +0200 <haskellbridge> <sm> * youwill
2024-10-25 00:07:18 +0200 <zero> imo it should be an error
2024-10-25 00:07:18 +0200 <haskellbridge> <sm> * you will
2024-10-25 00:07:27 +0200 <EvanR> you can set warnings = errors xD
2024-10-25 00:07:35 +0200 <haskellbridge> <sm> yes, that's what -Werror is for
2024-10-25 00:08:02 +0200 <EvanR> but since any given value may be an undefined or an infinite loop, it still doesn't fully save you
2024-10-25 00:08:24 +0200 <EvanR> strict fields in the record will make it easier to notice sooner
2024-10-25 00:08:54 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2024-10-25 00:09:25 +0200 <monochrom> uninited fields = initialized to undefined
2024-10-25 00:10:47 +0200 <EvanR> [1, let x = x in x, 4, 8, 16]
2024-10-25 00:10:47 +0200vglfr(~vglfr@2607:fb91:845:141a:ad2:e57:b1d0:dd1d) vglfr
2024-10-25 00:10:53 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) mrmonday
2024-10-25 00:11:04 +0200 <EvanR> can I haz warning
2024-10-25 00:11:26 +0200 <sm> oops sorry for edits
2024-10-25 00:12:25 +0200 <EvanR> IRC returns you to a jane austen-like time where you had to write out your whole message with no typos and perfect grammar the first time
2024-10-25 00:12:55 +0200sm(~znc@plaintextaccounting/sm) ()
2024-10-25 00:13:54 +0200 <monochrom> Clearly, I only simulate to write perfectly the first time by proofreading and editing multiple times before I press enter. :)
2024-10-25 00:14:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 00:15:04 +0200 <EvanR> nobody got time for that
2024-10-25 00:16:51 +0200sm(~znc@plaintextaccounting/sm) sm
2024-10-25 00:17:17 +0200 <sm> I'll try that again:
2024-10-25 00:17:20 +0200 <sm> I admire your vision EvanR, I shall try to keep it in mind.
2024-10-25 00:17:30 +0200 <zero> enter keys should require higher actuation force than the others
2024-10-25 00:17:47 +0200 <EvanR> they should require a license
2024-10-25 00:18:03 +0200 <int-e> EvanR: don't give the manufacturers ideas
2024-10-25 00:18:13 +0200 <zero> [ ] I have read and agree to the terms of pressing this key.
2024-10-25 00:18:58 +0200 <EvanR> keyboard not detected. Press any key to continue
2024-10-25 00:19:10 +0200 <int-e> EvanR: though it'll probably be structured differently; you get the return key for free but enabling backspace will require a subscription
2024-10-25 00:19:13 +0200 <zero> _Select all squares with *traffic lights*_
2024-10-25 00:19:20 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 00:20:24 +0200 <zero> "Before pressing this key: Have you considered a donation? [ ] 5$ [ ] 10$ [ ] 20$ (other options)
2024-10-25 00:20:31 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-25 00:20:51 +0200 <tomsmeding> the keys will have small embedded LEDs that make crude pictures, and you should press the keys that look like traffic lights
2024-10-25 00:21:43 +0200 <zero> You have reached your daily limit for the Enter key. Please wait XX seconds. TIRED OF WAITING? CLICK [HERE] FOR ENTER PREMIUM*
2024-10-25 00:23:45 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2024-10-25 00:23:48 +0200ljdarj1ljdarj
2024-10-25 00:24:23 +0200 <EvanR> probably something that will be on phones first
2024-10-25 00:26:23 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-10-25 00:29:56 +0200 <geekosaur> to be shortly followed by apps that will defeat it
2024-10-25 00:30:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 00:30:41 +0200 <Rembane> The circle of life
2024-10-25 00:30:59 +0200 <zero> create the problem, sell the solution
2024-10-25 00:32:01 +0200 <zero> this message brought to you by NordVPN
2024-10-25 00:32:13 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2024-10-25 00:35:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 00:36:49 +0200vglfr(~vglfr@2607:fb91:845:141a:ad2:e57:b1d0:dd1d) (Read error: Connection reset by peer)
2024-10-25 00:41:37 +0200 <monochrom> haha
2024-10-25 00:45:38 +0200 <zero> i also just found out that you can't use lazy annotations without StrictData :(
2024-10-25 00:45:39 +0200vglfr(~vglfr@c-73-250-25-113.hsd1.md.comcast.net) vglfr
2024-10-25 00:45:51 +0200 <zero> that's a shame
2024-10-25 00:46:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 00:50:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 00:51:07 +0200Everything(~Everythin@178-133-200-119.mobile.vf-ua.net) (Quit: leaving)
2024-10-25 00:52:33 +0200acidjnk_new(~acidjnk@p200300d6e72cfb1760fc46cbba529b10.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-10-25 00:58:28 +0200ubert(~Thunderbi@77.119.173.172.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2024-10-25 01:01:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 01:03:26 +0200motherfsck(~motherfsc@user/motherfsck) (Read error: Connection reset by peer)
2024-10-25 01:04:01 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-25 01:04:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 01:06:42 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 01:08:33 +0200 <zero> help
2024-10-25 01:08:43 +0200 <zero> i have the following line:
2024-10-25 01:08:44 +0200 <zero> quotRem x y = join bimap toEnum $ on quotRem fromEnum x y
2024-10-25 01:09:39 +0200 <zero> why does eta reducing this to
2024-10-25 01:09:49 +0200 <zero> quotRem = join bimap toEnum . on quotRem fromEnum
2024-10-25 01:10:04 +0200 <dibblego> those two expressions are not equivalent
2024-10-25 01:10:34 +0200 <zero> cause a type mismatch in bimap?
2024-10-25 01:11:27 +0200xff0x(~xff0x@2405:6580:b080:900:e0cc:218e:37fe:3b0c) (Ping timeout: 244 seconds)
2024-10-25 01:11:45 +0200 <zero> dibblego: they're not?
2024-10-25 01:12:08 +0200 <Leary> `\f g x -> f (g x)` and `\f g x y -> f (g x y)` are not the same. You want the latter and are using the former.
2024-10-25 01:12:12 +0200 <dibblego> quotRem x = join bimap toEnum . on quotRem fromEnum x
2024-10-25 01:12:25 +0200 <dibblego> quotRem = (join bimap toEnum .) . on quotRem fromEnum
2024-10-25 01:12:33 +0200 <dibblego> -- (done without a type checker)
2024-10-25 01:12:58 +0200 <int-e> :t (.)(.)(.)
2024-10-25 01:12:59 +0200 <lambdabot> (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
2024-10-25 01:13:09 +0200 <zero> i see it now. ty
2024-10-25 01:17:05 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2024-10-25 01:17:37 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 01:17:41 +0200euleritian(~euleritia@dynamic-176-006-128-175.176.6.pool.telefonica.de)
2024-10-25 01:18:58 +0200xff0x(~xff0x@2405:6580:b080:900:e0cc:218e:37fe:3b0c)
2024-10-25 01:20:34 +0200motherfsck(~motherfsc@user/motherfsck) motherfsck
2024-10-25 01:22:18 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 01:25:15 +0200pavonia(~user@user/siracusa) siracusa
2024-10-25 01:28:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 01:32:52 +0200sojuro(~sojuro@syn-069-206-166-125.res.spectrum.com) (Quit: Client closed)
2024-10-25 01:32:56 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 01:34:50 +0200symdrome(~user@2804:1e78:2202:2220::416) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4))
2024-10-25 01:41:53 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-10-25 01:44:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 01:46:47 +0200poscat0x04(~poscat@user/poscat) poscat
2024-10-25 01:48:07 +0200poscat(~poscat@user/poscat) (Ping timeout: 264 seconds)
2024-10-25 01:50:45 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 01:52:47 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 244 seconds)
2024-10-25 01:59:05 +0200rkazak(~rkazak@173.195.77.203)
2024-10-25 02:02:04 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 02:02:45 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-25 02:06:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 02:08:32 +0200hgolden__(~hgolden@23.162.40.28) hgolden
2024-10-25 02:11:19 +0200hgolden_(~hgolden@146.70.173.229) (Ping timeout: 260 seconds)
2024-10-25 02:13:18 +0200SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
2024-10-25 02:14:00 +0200rkazak(~rkazak@173.195.77.203) (Ping timeout: 252 seconds)
2024-10-25 02:15:24 +0200euleritian(~euleritia@dynamic-176-006-128-175.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-25 02:15:41 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 02:17:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 02:24:43 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-25 02:26:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 02:31:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-25 02:32:56 +0200zeroyin
2024-10-25 02:36:49 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-25 02:42:23 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 02:42:29 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-10-25 02:47:23 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 02:56:35 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-25 02:58:10 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 03:01:13 +0200xff0x(~xff0x@2405:6580:b080:900:e0cc:218e:37fe:3b0c) (Ping timeout: 245 seconds)
2024-10-25 03:02:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 03:04:08 +0200infinity0(~infinity0@pwned.gg) (Ping timeout: 245 seconds)
2024-10-25 03:15:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 03:20:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 03:24:41 +0200infinity0(~infinity0@pwned.gg) infinity0
2024-10-25 03:28:54 +0200pabs3(~pabs3@user/pabs3) (Ping timeout: 260 seconds)
2024-10-25 03:31:17 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 03:35:11 +0200pabs3(~pabs3@user/pabs3) pabs3
2024-10-25 03:36:29 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-25 03:43:44 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-10-25 03:47:07 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 03:51:42 +0200identity(~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91))
2024-10-25 03:51:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 03:56:31 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-10-25 03:59:17 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
2024-10-25 04:00:49 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-10-25 04:02:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 04:07:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 04:09:01 +0200weary-traveler(~user@user/user363627) user363627
2024-10-25 04:10:27 +0200alphazone(~alphazone@2.219.56.221) (Ping timeout: 246 seconds)
2024-10-25 04:14:52 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2024-10-25 04:17:14 +0200alphazone(~alphazone@2.219.56.221)
2024-10-25 04:18:40 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 04:19:40 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-25 04:22:25 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-10-25 04:22:54 +0200weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2024-10-25 04:23:43 +0200weary-traveler(~user@user/user363627) user363627
2024-10-25 04:23:45 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-25 04:24:42 +0200vanishingideal(~vanishing@user/vanishingideal) (Quit: leaving)
2024-10-25 04:25:18 +0200paddymahoney(~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com)
2024-10-25 04:26:01 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-25 04:27:05 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 04:31:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 04:36:46 +0200jcarpenter2(~lol@2603:3016:1e01:b9c0:6d01:fe2b:de0:d441) (Read error: Connection reset by peer)
2024-10-25 04:38:28 +0200td_(~td@i5387092E.versanet.de) (Ping timeout: 252 seconds)
2024-10-25 04:40:11 +0200td_(~td@i5387090F.versanet.de)
2024-10-25 04:40:50 +0200euleritian(~euleritia@77.22.252.56)
2024-10-25 04:42:24 +0200terrorjack4(~terrorjac@2a01:4f8:c17:dc9f::) (Quit: The Lounge - https://thelounge.chat)
2024-10-25 04:43:05 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2024-10-25 04:44:07 +0200terrorjack4(~terrorjac@static.48.15.202.116.clients.your-server.de) terrorjack
2024-10-25 04:44:27 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 04:48:59 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-25 04:50:27 +0200AkechiShiro(~licht@user/akechishiro) (Quit: WeeChat 4.4.2)
2024-10-25 04:59:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 05:04:11 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-10-25 05:04:48 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) hackager
2024-10-25 05:04:48 +0200ChanServ+v haskellbridge
2024-10-25 05:06:16 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 05:09:15 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
2024-10-25 05:10:04 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-10-25 05:11:18 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-25 05:11:20 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-10-25 05:11:35 +0200chexum(~quassel@gateway/tor-sasl/chexum) chexum
2024-10-25 05:13:25 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-10-25 05:14:15 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 05:16:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 05:18:53 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-25 05:19:32 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 05:20:48 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
2024-10-25 05:20:48 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-25 05:21:23 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 05:21:43 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 05:22:42 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-25 05:23:08 +0200hgolden(~hgolden@169.150.203.23) hgolden
2024-10-25 05:24:59 +0200hgolden__(~hgolden@23.162.40.28) (Ping timeout: 260 seconds)
2024-10-25 05:26:09 +0200pabs3(~pabs3@user/pabs3) (Read error: Connection reset by peer)
2024-10-25 05:27:04 +0200pabs3(~pabs3@user/pabs3) pabs3
2024-10-25 05:27:09 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2024-10-25 05:32:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 05:37:30 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 05:39:41 +0200spew(~spew@185.153.177.94) (Quit: good night)
2024-10-25 05:48:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 05:55:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 05:58:15 +0200mantraofpie(~mantraofp@user/mantraofpie) (Remote host closed the connection)
2024-10-25 05:58:36 +0200mantraofpie(~mantraofp@user/mantraofpie) mantraofpie
2024-10-25 06:06:27 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 06:11:07 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-25 06:22:15 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 06:27:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 06:28:02 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 06:32:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-25 06:33:40 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 06:38:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-25 06:42:04 +0200Wstfgl0(~me-me@kc.randomserver.name)
2024-10-25 06:42:19 +0200zmt01(~zmt00@user/zmt00) zmt00
2024-10-25 06:42:56 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2024-10-25 06:42:57 +0200EvanR_(~EvanR@user/evanr) EvanR
2024-10-25 06:43:33 +0200jackdk(sid373013@cssa/jackdk) (Ping timeout: 248 seconds)
2024-10-25 06:43:33 +0200Techcable(sid534393@user/Techcable) (Ping timeout: 248 seconds)
2024-10-25 06:43:55 +0200Pent(sid313808@id-313808.lymington.irccloud.com) (Ping timeout: 264 seconds)
2024-10-25 06:44:13 +0200NiKaN(sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 252 seconds)
2024-10-25 06:44:16 +0200Me-me(~me-me@user/me-me) (Read error: Connection reset by peer)
2024-10-25 06:44:26 +0200Wstfgl0Me-me
2024-10-25 06:44:26 +0200Fangs(sid141280@id-141280.hampstead.irccloud.com) (Ping timeout: 272 seconds)
2024-10-25 06:44:27 +0200sa(sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 246 seconds)
2024-10-25 06:44:31 +0200bw(sid2730@user/betawaffle) (Ping timeout: 264 seconds)
2024-10-25 06:44:37 +0200jakesyl_____(sid56879@id-56879.hampstead.irccloud.com) (Ping timeout: 248 seconds)
2024-10-25 06:45:37 +0200jakesyl_____(sid56879@id-56879.hampstead.irccloud.com)
2024-10-25 06:45:38 +0200bw(sid2730@user/betawaffle) betawaffle
2024-10-25 06:45:40 +0200Pent(sid313808@id-313808.lymington.irccloud.com) Pent____
2024-10-25 06:45:42 +0200swamp_(~zmt00@user/zmt00) (Ping timeout: 272 seconds)
2024-10-25 06:45:44 +0200sa(sid1055@id-1055.tinside.irccloud.com) sa
2024-10-25 06:46:47 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-25 06:47:17 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds)
2024-10-25 06:47:33 +0200Fangs(sid141280@id-141280.hampstead.irccloud.com) Fangs
2024-10-25 06:47:37 +0200jackdk(sid373013@cssa/jackdk) jackdk
2024-10-25 06:47:53 +0200Techcable(sid534393@user/Techcable) Techcable
2024-10-25 06:48:05 +0200NiKaN(sid385034@id-385034.helmsley.irccloud.com) NiKaN
2024-10-25 06:49:15 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 06:51:49 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2024-10-25 06:53:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 06:55:52 +0200artu(artu@2600:3c01::f03c:92ff:fecc:1d32) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2024-10-25 06:56:19 +0200artu(~artu@li90-184.members.linode.com) artu
2024-10-25 06:56:43 +0200hgolden(~hgolden@169.150.203.23) (Quit: Leaving)
2024-10-25 06:56:57 +0200hgolden(~hgolden@169.150.203.23) hgolden
2024-10-25 07:02:55 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-25 07:03:57 +0200euleritian(~euleritia@176.6.128.48)
2024-10-25 07:05:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 07:06:31 +0200artu(~artu@li90-184.members.linode.com) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2024-10-25 07:08:36 +0200artu(~artu@li90-184.members.linode.com) artu
2024-10-25 07:10:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 07:12:06 +0200michalz(~michalz@185.246.207.193)
2024-10-25 07:14:32 +0200vanishingideal(~vanishing@user/vanishingideal) (Quit: Lost terminal)
2024-10-25 07:15:54 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-10-25 07:16:12 +0200gorignak(~gorignak@user/gorignak) gorignak
2024-10-25 07:17:19 +0200hgolden_(~hgolden@146.70.172.37) hgolden
2024-10-25 07:17:20 +0200briandaed(~root@185.234.210.211.r.toneticgroup.pl)
2024-10-25 07:18:44 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 255 seconds)
2024-10-25 07:19:48 +0200hgolden(~hgolden@169.150.203.23) (Ping timeout: 246 seconds)
2024-10-25 07:20:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 07:21:45 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-10-25 07:25:19 +0200euleritian(~euleritia@176.6.128.48) (Ping timeout: 264 seconds)
2024-10-25 07:25:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 07:26:00 +0200euleritian(~euleritia@dynamic-176-006-135-172.176.6.pool.telefonica.de)
2024-10-25 07:27:31 +0200euleritian(~euleritia@dynamic-176-006-135-172.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-25 07:27:48 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 07:29:02 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 07:30:05 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-10-25 07:38:34 +0200Square(~Square@user/square) Square
2024-10-25 07:38:51 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-25 07:39:10 +0200euleritian(~euleritia@dynamic-176-006-135-172.176.6.pool.telefonica.de)
2024-10-25 07:39:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 07:43:20 +0200hgolden__(~hgolden@23.162.40.110) hgolden
2024-10-25 07:44:33 +0200billchenchina-(~billchenc@103.152.35.21) billchenchina
2024-10-25 07:45:57 +0200hgolden_(~hgolden@146.70.172.37) (Ping timeout: 248 seconds)
2024-10-25 07:49:22 +0200alp(~alp@2001:861:e3d6:8f80:34d6:624f:71bd:319b)
2024-10-25 07:51:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 07:52:31 +0200 <cheater> int-e: ah, the Total Recall operator
2024-10-25 07:56:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 08:03:47 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-10-25 08:06:59 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 08:08:01 +0200Pixi`(~Pixi@user/pixi) Pixi
2024-10-25 08:11:13 +0200Pixi(~Pixi@user/pixi) (Ping timeout: 245 seconds)
2024-10-25 08:11:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 08:14:14 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-10-25 08:18:59 +0200euleritian(~euleritia@dynamic-176-006-135-172.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
2024-10-25 08:20:06 +0200euleritian(~euleritia@dynamic-176-002-146-178.176.2.pool.telefonica.de)
2024-10-25 08:22:47 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 08:22:52 +0200ft(~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving)
2024-10-25 08:25:29 +0200 <carbolymer> lol
2024-10-25 08:27:28 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-25 08:30:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 08:31:14 +0200CiaoSen(~Jura@2a05:5800:470:a00:ca4b:d6ff:fec1:99da) CiaoSen
2024-10-25 08:32:13 +0200youthlic(~Thunderbi@user/youthlic) (Quit: youthlic)
2024-10-25 08:34:33 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-25 08:35:18 +0200youthlic(~Thunderbi@user/youthlic) youthlic
2024-10-25 08:43:44 +0200ubert(~Thunderbi@77.119.173.172.wireless.dyn.drei.com) ubert
2024-10-25 08:46:32 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 08:51:44 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 08:54:33 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-10-25 09:00:01 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-10-25 09:00:40 +0200caconym(~caconym@user/caconym) caconym
2024-10-25 09:01:20 +0200euleritian(~euleritia@dynamic-176-002-146-178.176.2.pool.telefonica.de) (Ping timeout: 255 seconds)
2024-10-25 09:01:56 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 09:02:09 +0200euleritian(~euleritia@176.2.1.182)
2024-10-25 09:07:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-25 09:08:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 09:13:56 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 09:23:02 +0200acidjnk_new(~acidjnk@p200300d6e72cfb03d1a45ef603fb56e9.dip0.t-ipconnect.de) acidjnk
2024-10-25 09:24:55 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 09:25:58 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-10-25 09:29:33 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-25 09:29:52 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-10-25 09:30:08 +0200billchenchina-(~billchenc@103.152.35.21) (Remote host closed the connection)
2024-10-25 09:31:03 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 09:41:54 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2024-10-25 09:43:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-10-25 09:45:30 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-10-25 09:51:18 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-25 09:52:51 +0200chele(~chele@user/chele) chele
2024-10-25 09:56:01 +0200euleritian(~euleritia@176.2.1.182) (Ping timeout: 248 seconds)
2024-10-25 09:57:14 +0200euleritian(~euleritia@dynamic-176-006-139-122.176.6.pool.telefonica.de)
2024-10-25 10:09:40 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-10-25 10:12:32 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-25 10:20:47 +0200euleritian(~euleritia@dynamic-176-006-139-122.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-25 10:21:05 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 10:32:13 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-10-25 10:38:31 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 264 seconds)
2024-10-25 10:47:15 +0200 <tomsmeding> :t fmap fmap fmap
2024-10-25 10:47:16 +0200 <lambdabot> (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b)
2024-10-25 10:47:45 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-10-25 10:49:54 +0200son0p(~ff@190.69.120.100) (Ping timeout: 252 seconds)
2024-10-25 10:51:49 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2024-10-25 10:59:33 +0200CrunchyFlakes(~CrunchyFl@31.19.233.78)
2024-10-25 11:24:30 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-10-25 11:25:45 +0200hexagoxel(~hexagoxel@2a01:4f8:c0c:e::2) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2024-10-25 11:29:05 +0200 <ash3en> does ghc use happy/alex as parser and lexing mechanisms?
2024-10-25 11:31:23 +0200 <tomsmeding> ash3en: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Parser/Lexer.x https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Parser.y
2024-10-25 11:32:08 +0200 <ash3en> tomsmeding: thank you for the links as well as the TH explanations I just saw
2024-10-25 11:32:26 +0200 <tomsmeding> :)
2024-10-25 11:32:49 +0200JamesMowery43(~JamesMowe@ip98-167-207-182.ph.ph.cox.net) JamesMowery
2024-10-25 11:34:13 +0200JamesMowery4(~JamesMowe@ip98-167-207-182.ph.ph.cox.net) (Ping timeout: 248 seconds)
2024-10-25 11:36:32 +0200JamesMowery4(~JamesMowe@ip98-167-207-182.ph.ph.cox.net) JamesMowery
2024-10-25 11:37:37 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Quit: Lost terminal)
2024-10-25 11:38:17 +0200JamesMowery43(~JamesMowe@ip98-167-207-182.ph.ph.cox.net) (Ping timeout: 252 seconds)
2024-10-25 11:38:47 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-10-25 11:40:31 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Client Quit)
2024-10-25 11:41:59 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-10-25 11:44:49 +0200Square(~Square@user/square) (Ping timeout: 248 seconds)
2024-10-25 11:47:12 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds)
2024-10-25 11:48:31 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 265 seconds)
2024-10-25 11:53:16 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-25 11:54:31 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-10-25 11:55:04 +0200alp_(~alp@2001:861:e3d6:8f80:3768:4546:4853:a163)
2024-10-25 11:56:45 +0200alp_(~alp@2001:861:e3d6:8f80:3768:4546:4853:a163) (Remote host closed the connection)
2024-10-25 11:57:02 +0200alp_(~alp@2001:861:e3d6:8f80:3d9:9a29:a310:5aa4)
2024-10-25 11:57:56 +0200alp(~alp@2001:861:e3d6:8f80:34d6:624f:71bd:319b) (Ping timeout: 272 seconds)
2024-10-25 11:59:45 +0200driib318(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-10-25 12:00:22 +0200driib318(~driib@vmi931078.contaboserver.net) driib
2024-10-25 12:05:40 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-25 12:06:16 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 12:11:19 +0200hgolden_(~hgolden@169.150.203.10) hgolden
2024-10-25 12:14:04 +0200hgolden__(~hgolden@23.162.40.110) (Ping timeout: 260 seconds)
2024-10-25 12:15:32 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-25 12:20:22 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-10-25 12:28:48 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 244 seconds)
2024-10-25 12:31:33 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-25 12:33:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 12:40:03 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-10-25 12:40:33 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-25 12:41:21 +0200euleritian(~euleritia@dynamic-176-006-139-122.176.6.pool.telefonica.de)
2024-10-25 12:46:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 12:49:32 +0200alexherbo2(~alexherbo@2a02-8440-3204-088a-fce6-8c1c-cc30-bfac.rev.sfr.net) alexherbo2
2024-10-25 12:50:15 +0200rosco(~rosco@60.53.7.10) rosco
2024-10-25 12:52:46 +0200yinzzz
2024-10-25 12:55:53 +0200euleritian(~euleritia@dynamic-176-006-139-122.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-25 12:56:16 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 12:59:52 +0200son0p(~ff@190.69.120.100) son0p
2024-10-25 13:03:26 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
2024-10-25 13:03:58 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 13:12:07 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-10-25 13:18:22 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-10-25 13:33:15 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 246 seconds)
2024-10-25 13:55:26 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2024-10-25 13:57:20 +0200mari-estel(~mari-este@user/mari-estel) ()
2024-10-25 14:10:08 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 265 seconds)
2024-10-25 14:10:34 +0200euphores(~SASL_euph@user/euphores) euphores
2024-10-25 14:13:18 +0200acidjnk_new(~acidjnk@p200300d6e72cfb03d1a45ef603fb56e9.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2024-10-25 14:16:07 +0200xff0x(~xff0x@2405:6580:b080:900:c8b8:61af:1cb3:d380)
2024-10-25 14:22:05 +0200acidjnk_new(~acidjnk@p200300d6e72cfb03d1a45ef603fb56e9.dip0.t-ipconnect.de) acidjnk
2024-10-25 14:22:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-25 14:24:05 +0200rosco(~rosco@60.53.7.10) (Quit: Lost terminal)
2024-10-25 14:26:06 +0200euandreh(~Thunderbi@189.6.105.228) euandreh
2024-10-25 14:29:54 +0200euandreh(~Thunderbi@189.6.105.228) (Remote host closed the connection)
2024-10-25 14:30:04 +0200__monty__(~toonn@user/toonn) toonn
2024-10-25 14:30:26 +0200euandreh(~Thunderbi@189.6.105.228) euandreh
2024-10-25 14:52:16 +0200sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-10-25 14:52:22 +0200identity(~identity@user/ZharMeny) identity
2024-10-25 14:54:02 +0200ft(~ft@p4fc2a216.dip0.t-ipconnect.de) ft
2024-10-25 15:00:52 +0200alp_(~alp@2001:861:e3d6:8f80:3d9:9a29:a310:5aa4) (Remote host closed the connection)
2024-10-25 15:11:10 +0200mantraofpie(~mantraofp@user/mantraofpie) (Quit: ZNC 1.9.1 - https://znc.in)
2024-10-25 15:11:33 +0200mantraofpie(~mantraofp@user/mantraofpie) mantraofpie
2024-10-25 15:15:06 +0200euandreh(~Thunderbi@189.6.105.228) (Ping timeout: 246 seconds)
2024-10-25 15:16:42 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-10-25 15:17:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-25 15:18:59 +0200euandreh(~Thunderbi@189.6.105.228) euandreh
2024-10-25 15:20:23 +0200CiaoSen(~Jura@2a05:5800:470:a00:ca4b:d6ff:fec1:99da) (Ping timeout: 245 seconds)
2024-10-25 15:31:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-25 15:31:39 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 15:35:40 +0200eugenrh(~eugenrh@user/eugenrh) eugenrh
2024-10-25 15:35:50 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2024-10-25 15:36:02 +0200euleritian(~euleritia@dynamic-176-006-136-012.176.6.pool.telefonica.de)
2024-10-25 15:36:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-25 15:51:25 +0200GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Quit: WeeChat 4.4.2)
2024-10-25 15:53:32 +0200GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2024-10-25 15:54:24 +0200scaniatrucker(~user@78.56.98.5) scaniatrucker
2024-10-25 16:00:18 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-25 16:02:57 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2024-10-25 16:04:44 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-25 16:05:48 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2024-10-25 16:08:29 +0200euandreh(~Thunderbi@189.6.105.228) (Quit: euandreh)
2024-10-25 16:10:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-25 16:11:54 +0200habib(~habib@185.195.232.250) habib
2024-10-25 16:15:38 +0200 <habib> hey everyone. i'm working on porting ghc to openbsd/arm64, and i've gotten as far as building the stage 1 compiler (which was a palaver in itself), but i'm getting an error about missing libs pthread and m when trying to build the stage 2 compiler. i've tried so many combinations of various flags to pass various options using hadrian to no success; the last command i ran was as follows:
2024-10-25 16:16:07 +0200 <habib> hadrian/build --docs=none --flavour=quickest "stage0.*.cabal.configure.opts += --configure-option=LDFLAGS= --configure-option=--target=aarch64-unknown-openbsd" "stage1.*.cabal.configure.opts += --configure-option=LDFLAGS=\"-syslibroot=$SYSROOT -L/usr/lib -L$SYSROOT/usr/lib\" --configure-option=CPPFLAGS=\"-isysroot=$SYSROOT -I/usr/include -I$SYSROOT/usr/include\" --configure-option=--extra-lib-dirs=$SYSROOT/usr/lib\" --configure-option=--extra-lib-dirs=/usr
2024-10-25 16:16:07 +0200 <habib> /lib\" --configure-option=--extra-include-dirs=$SYSROOT/usr/include\" --configure-option=--extra-include-dirs=/usr/include\" --configure-option=--ghc-option=\"-optl -L$SYSROOT/usr/lib\" --configure-option=--ghc-option=\"-optl -L/usr/lib\" --configure-option=--ghc-option=\"-optl -lpthread\" --configure-option=--ghc-option=\"-optc -I$SYSROOT/usr/include\" --configure-option=--ghc-option=\"-optc -I/usr/include\" --configure-option=-v3" "stage1.*.ghc.c.opts
2024-10-25 16:16:07 +0200 <habib> += -I$SYSROOT/usr/include -I/usr/include" "stage1.*.ghc.link.opts += -L$SYSROOT/usr/lib -L/usr/lib -lpthread" "stage1.*.cc.c.opts += -L$SYSROOT/usr/lib -L/usr/lib -lpthread" -VVVVVVVVVV --freeze1 stage2:exe:ghc-bin
2024-10-25 16:17:56 +0200 <habib> i've sent an in depth message to the ports@openbsd mailing list about my progress; i've been working on this since the early hours of monday
2024-10-25 16:18:34 +0200weary-traveler(~user@user/user363627) user363627
2024-10-25 16:19:00 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-25 16:19:19 +0200 <habib> if anyone knows anything about weird interactions between openbsd, ghc, and libpthread and/or libm, i'd really appreciate your help. i couldn't find anything online even close to this situation
2024-10-25 16:19:47 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-25 16:20:00 +0200 <kqr> A persistent entity id, can that be converted to some more basic type like e.g. a bytestring? The use case is that a library needs to hold on to a reference to an entity, but it cannot itself know about the entity type.
2024-10-25 16:20:55 +0200 <habib> again, this is for cross-compiling ghc to openbsd/arm64, and i've successfully built the stage one compiler that should output aarch64 openbsd binaries so i can use it to build the stage two compiler
2024-10-25 16:23:32 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-10-25 16:23:33 +0200ljdarj1ljdarj
2024-10-25 16:29:23 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-25 16:29:23 +0200euleritian(~euleritia@dynamic-176-006-136-012.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-25 16:29:52 +0200euleritian(~euleritia@dynamic-176-006-136-012.176.6.pool.telefonica.de)
2024-10-25 16:37:45 +0200EvanR_EvanR
2024-10-25 16:38:20 +0200 <EvanR> kqr, good question. Can it?
2024-10-25 16:38:41 +0200 <EvanR> whether something can be converted to ByteString is a question answered by each types API
2024-10-25 16:39:05 +0200 <EvanR> there's no universal answer in haskell
2024-10-25 16:40:25 +0200vglfr(~vglfr@c-73-250-25-113.hsd1.md.comcast.net) (Ping timeout: 252 seconds)
2024-10-25 16:40:33 +0200mceresa(~mceresa@user/mceresa) (Remote host closed the connection)
2024-10-25 16:41:50 +0200 <kqr> EvanR, I was hoping there was some universal answer for Persistent Entity keys...
2024-10-25 16:42:32 +0200 <EvanR> oh, persistent is the name of a library
2024-10-25 16:42:36 +0200vglfr(~vglfr@2607:fb91:856:ab8:ac39:6af7:e195:e6e8) vglfr
2024-10-25 16:42:38 +0200 <EvanR> not an adjective
2024-10-25 16:42:53 +0200 <EvanR> that answers how to find the answer
2024-10-25 16:42:54 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-10-25 16:43:29 +0200mceresa(~mceresa@user/mceresa) mceresa
2024-10-25 16:44:08 +0200 <EvanR> does this persistent entity id have a type name
2024-10-25 16:44:38 +0200 <EvanR> the Key type associated with PersistentEntity class
2024-10-25 16:47:51 +0200 <EvanR> kqr, it says that the `Key foo' type for each entity must be an instance of ToJSON, FromJSON, Show, and Read, so there's that
2024-10-25 16:48:28 +0200 <EvanR> ToJSON gives you a way to convert the key to ByteString
2024-10-25 16:49:10 +0200 <EvanR> show converts it to String
2024-10-25 16:50:05 +0200 <habib> seems like none of my arguments to hadrian for stge
2024-10-25 16:50:24 +0200 <habib> seems like none of my arguments to hadrian for stage two are getting passed through, unlike stage one
2024-10-25 16:50:57 +0200BolzmannPain2(~BolzmannP@2a0a-a546-8e55-1-7325-1e9-989-bd93.ipv6dyn.netcologne.de)
2024-10-25 16:51:13 +0200 <kqr> EvanR, Ah, thanks. I did find those instances, but I was hoping there was something else I was missing. I'll assume that if you also don't see it, then there is not. Thanks!
2024-10-25 16:51:45 +0200vglfr(~vglfr@2607:fb91:856:ab8:ac39:6af7:e195:e6e8) (Ping timeout: 260 seconds)
2024-10-25 16:51:55 +0200vglfr(~vglfr@2607:fb90:ea15:5496:ad3:f751:9b84:2064) vglfr
2024-10-25 16:58:18 +0200tabemann_(~tabemann@2600:1700:7990:24e0:9b92:fe17:1b69:2f6b) (Remote host closed the connection)
2024-10-25 16:58:37 +0200tabemann_(~tabemann@2600:1700:7990:24e0:cb63:a13b:e8da:1b84)
2024-10-25 16:58:39 +0200 <mauke> habib: do you know about #ghc?
2024-10-25 16:58:49 +0200 <habib> no, i didnt
2024-10-25 16:59:05 +0200 <Leary> kqr: I'm not really sure what you're doing, but if you just want to hide the type then use an existential? E.g. `data SomeKey where Some :: PersistEntity record => Key record -> SomeKey`
2024-10-25 16:59:11 +0200 <habib> i just opened my irc client and it has some rooms i saved, thanks for letting me know
2024-10-25 16:59:22 +0200 <habib> i'll add that to my list
2024-10-25 16:59:37 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-25 17:00:08 +0200chele(~chele@user/chele) (Remote host closed the connection)
2024-10-25 17:01:18 +0200drdo(~drdo@bl9-110-63.dsl.telepac.pt) (Quit: Ping timeout (120 seconds))
2024-10-25 17:01:40 +0200drdo(~drdo@bl9-110-63.dsl.telepac.pt) drdo
2024-10-25 17:01:41 +0200jespada(~jespada@222.203-67-87.adsl-dyn.isp.belgacom.be) jespada
2024-10-25 17:03:53 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-25 17:06:55 +0200euleritian(~euleritia@dynamic-176-006-136-012.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-25 17:07:12 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 17:14:11 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-10-25 17:15:02 +0200BolzmannPain2(~BolzmannP@2a0a-a546-8e55-1-7325-1e9-989-bd93.ipv6dyn.netcologne.de) (Quit: Client closed)
2024-10-25 17:16:05 +0200identity(~identity@user/ZharMeny) (ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91))
2024-10-25 17:18:28 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-10-25 17:23:20 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2024-10-25 17:30:01 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2024-10-25 17:30:19 +0200 <bwe> which test framework allows for simple parametrised tests [(input, expected)]?
2024-10-25 17:31:26 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-25 17:32:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-25 17:33:17 +0200 <mauke> all of them, I hope
2024-10-25 17:33:36 +0200euleritian(~euleritia@176.7.153.100)
2024-10-25 17:37:55 +0200euleritian(~euleritia@176.7.153.100) (Read error: Connection reset by peer)
2024-10-25 17:38:36 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 17:40:17 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-10-25 17:41:34 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2024-10-25 17:42:17 +0200 <tomsmeding> bwe: a popular option is hspec
2024-10-25 17:42:45 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2024-10-25 17:42:48 +0200 <tomsmeding> there's also HUnit
2024-10-25 17:43:31 +0200euleritian(~euleritia@dynamic-176-007-153-100.176.7.pool.telefonica.de)
2024-10-25 17:44:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 17:44:26 +0200 <tomsmeding> if you want to mix multiple test frameworks in one test suite (e.g. unit tests + property tests), 'tasty' is a thing that you can slot various other test frameworks into
2024-10-25 17:44:30 +0200 <bwe> I mean which supports output that is optimised for parametrised tests? I nowhere can find such in the docs - do I overlook sth?
2024-10-25 17:44:50 +0200 <tomsmeding> what is a "parametrised test", precisely?
2024-10-25 17:47:54 +0200euleritian(~euleritia@dynamic-176-007-153-100.176.7.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-10-25 17:48:22 +0200euleritian(~euleritia@dynamic-176-006-143-043.176.6.pool.telefonica.de)
2024-10-25 17:50:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 17:51:35 +0200 <tomsmeding> bwe: (I'm asking because the haddocks for 'it' in hspec look to me like that's precisely what you want; if not, then apparently I misunderstand what you mean with "parametrised test")
2024-10-25 17:55:20 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-10-25 17:55:39 +0200Square(~Square@user/square) Square
2024-10-25 17:55:40 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2024-10-25 17:57:27 +0200rosco(~rosco@60.53.7.10) rosco
2024-10-25 17:57:48 +0200habib(~habib@185.195.232.250) (Ping timeout: 252 seconds)
2024-10-25 17:58:07 +0200 <c_wraith> Why do you need special cases for testing multiple inputs against expected outputs? Haskell is a programming language. Create your tests in a loop so that each pair is a separate test case.
2024-10-25 18:01:04 +0200acarrico(~acarrico@dhcp-209-99-192-63.greenmountainaccess.net) (Killed (NickServ (GHOST command used by acarrico1)))
2024-10-25 18:02:02 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 18:02:10 +0200acarrico1(~acarrico@dhcp-209-99-192-63.greenmountainaccess.net)
2024-10-25 18:02:12 +0200 <lxsameer> hey folks, I'm trying to understand profunctors in the context of Hasql statements. Is it the case that I can compose some statements together to form a new statement using profunctors?
2024-10-25 18:04:32 +0200mari-estel(~mari-este@user/mari-estel) ()
2024-10-25 18:05:08 +0200 <EvanR> Statement paramsType resultType
2024-10-25 18:05:40 +0200 <EvanR> as far as profunctor goes, it means you can fmap the resultTypes with normal functions, and you can "preprocess" the paramsType with normal functions
2024-10-25 18:06:19 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-25 18:06:43 +0200 <lxsameer> EvanR: ah got it, thanks
2024-10-25 18:06:58 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-25 18:07:46 +0200mceresa(~mceresa@user/mceresa) (Remote host closed the connection)
2024-10-25 18:09:47 +0200 <EvanR> composing would be like Category or Semigroupoid
2024-10-25 18:10:42 +0200mceresa(~mceresa@user/mceresa) mceresa
2024-10-25 18:10:48 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2024-10-25 18:11:02 +0200 <lxsameer> cheers
2024-10-25 18:12:34 +0200vglfr(~vglfr@2607:fb90:ea15:5496:ad3:f751:9b84:2064) (Read error: Connection reset by peer)
2024-10-25 18:14:40 +0200morsinichi(~morsinich@61.4.97.157)
2024-10-25 18:14:42 +0200acarrico1(~acarrico@dhcp-209-99-192-63.greenmountainaccess.net) (Quit: Leaving.)
2024-10-25 18:17:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 18:19:22 +0200 <morsinichi> hi, i am new to functional programming and i recently thought about whether there is general concepts about data like data traversal or data structure; i've noticed that in haskell you might define types that are non-terminating (like stream) and the traversal is bound to type's structure.
2024-10-25 18:21:10 +0200 <bwe> tomsmeding: I mean https://docs.pytest.org/en/latest/how-to/parametrize.html
2024-10-25 18:21:11 +0200 <EvanR> Functor and Foldable classes are so uniquely defined for data structures that they are auto derivable
2024-10-25 18:21:49 +0200 <tomsmeding> bwe: you aren't going to be able to have decorators on functions, because haskell simply doesn't have that syntax
2024-10-25 18:22:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 18:22:28 +0200acarrico1(~acarrico@dhcp-209-99-192-63.greenmountainaccess.net)
2024-10-25 18:22:28 +0200vglfr(~vglfr@c-73-250-25-113.hsd1.md.comcast.net) vglfr
2024-10-25 18:22:45 +0200 <tomsmeding> but re input/output pairs, what about \l -> describe "function name" $ sequence [it (show input) $ f input == expec | (input, expec) <- l]
2024-10-25 18:22:53 +0200 <bwe> tomsmeding: I don't mean the decorators :) - I mean the inputs and expected values for the test function.
2024-10-25 18:22:58 +0200 <tomsmeding> as c_wraith said: haskell is a programming language :p
2024-10-25 18:23:28 +0200 <tomsmeding> (using hspec here, but any unit testing framework could be adapted in this way surely)
2024-10-25 18:24:29 +0200acarrico1acarrico
2024-10-25 18:25:42 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2024-10-25 18:26:33 +0200 <bwe> tomsmeding: ok! and I can change the output for such a group with custom formatters (hspec): https://hspec.github.io/extending-hspec-formatter.html#a-simple-formatter
2024-10-25 18:27:00 +0200 <bwe> (to summarise a group instead giving each member of that sequence its own line, for example)
2024-10-25 18:27:20 +0200 <bwe> c_wraith: yeah, it's mainly about how the test suite outputs the results of parametrised tests
2024-10-25 18:27:38 +0200 <bwe> …I know, nitty-picky
2024-10-25 18:32:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 18:35:45 +0200jespada(~jespada@222.203-67-87.adsl-dyn.isp.belgacom.be) (Quit: My Mac has gone to sleep. ZZZzzz…)
2024-10-25 18:37:09 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 18:38:59 +0200tomsmeding(~tomsmedin@2a01:4f8:c0c:5e5e::2) (Quit: ZNC 1.9.1 - https://znc.in)
2024-10-25 18:39:34 +0200tomsmeding(~tomsmedin@static.21.109.88.23.clients.your-server.de) tomsmeding
2024-10-25 18:45:37 +0200 <EvanR> morsinichi, there are types where there are multiple valid Applicative instances
2024-10-25 18:45:58 +0200 <EvanR> (though only one is allowed at a time in haskell)
2024-10-25 18:46:55 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-10-25 18:50:02 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 18:51:35 +0200 <geekosaur> the more canonical example of such is `Monoid`
2024-10-25 18:52:15 +0200 <geekosaur> because you hit it immediately with numeric types, since `(+)` and `(*)` both form valid and important monoids on them
2024-10-25 18:53:20 +0200tomsmeding(~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.9.1 - https://znc.in)
2024-10-25 18:53:55 +0200tomsmeding(~tomsmedin@2a01:4f8:c0c:5e5e::2) tomsmeding
2024-10-25 18:54:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-25 18:54:21 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-10-25 18:57:45 +0200yahb2(~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection)
2024-10-25 18:58:27 +0200athan(~athan@syn-173-042-095-241.biz.spectrum.com) athan
2024-10-25 18:58:40 +0200yahb2(~yahb2@user/tomsmeding/bot/yahb2) yahb2
2024-10-25 18:58:40 +0200ChanServ+v yahb2
2024-10-25 18:58:44 +0200athan(~athan@syn-173-042-095-241.biz.spectrum.com) (Client Quit)
2024-10-25 19:01:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-25 19:05:25 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 19:07:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-25 19:10:30 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 19:16:25 +0200ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2024-10-25 19:17:46 +0200Flerix(Flerix@user/Flerix) Flerix
2024-10-25 19:20:47 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 19:20:48 +0200spew(~spew@155.133.15.67) spew
2024-10-25 19:21:16 +0200rosco(~rosco@60.53.7.10) (Quit: Lost terminal)
2024-10-25 19:28:20 +0200Flerix(Flerix@user/Flerix) (Quit: Leaving)
2024-10-25 19:28:52 +0200Flerix(Flerix@user/Flerix) Flerix
2024-10-25 19:29:42 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-25 19:30:50 +0200alexherbo2(~alexherbo@2a02-8440-3204-088a-fce6-8c1c-cc30-bfac.rev.sfr.net) (Remote host closed the connection)
2024-10-25 19:31:09 +0200alexherbo2(~alexherbo@2a02-8440-3204-088a-fce6-8c1c-cc30-bfac.rev.sfr.net) alexherbo2
2024-10-25 19:31:29 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2024-10-25 19:31:30 +0200ljdarj1ljdarj
2024-10-25 19:31:48 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-25 19:32:01 +0200morj(~morj@2a01:e0a:e0e:5dd0:c932:38f5:27f7:ff4b)
2024-10-25 19:41:27 +0200morj(~morj@2a01:e0a:e0e:5dd0:c932:38f5:27f7:ff4b) (Quit: Konversation terminated!)
2024-10-25 19:41:45 +0200michalz(~michalz@185.246.207.193) (Quit: ZNC 1.9.0 - https://znc.in)
2024-10-25 19:42:04 +0200michalz(~michalz@185.246.207.203)
2024-10-25 19:43:33 +0200halloy7829(~halloy782@2a01:e0a:e0e:5dd0:c932:38f5:27f7:ff4b)
2024-10-25 19:44:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 19:48:53 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 19:59:02 +0200Digitteknohippie(~user@user/digit) Digit
2024-10-25 19:59:10 +0200Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-10-25 19:59:34 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 20:00:19 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-25 20:04:37 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 20:04:39 +0200Digitteknohippie(~user@user/digit) (Ping timeout: 252 seconds)
2024-10-25 20:10:58 +0200 <lxsameer> Can't understand why ghc complains about P.UsageError not matching with (Exception e) while UsageError implements that type class https://dpaste.com/4JXBTBRMC
2024-10-25 20:12:11 +0200 <tomsmeding> lxsameer: your function pgInit promises to its caller that the _caller_ can choose some exception type 'e', and then pgInit will produce that type
2024-10-25 20:12:36 +0200 <tomsmeding> so the caller chooses 'e', and you give it a P.UsageError instead, so GHC complains that you're not doing what your type signature promised
2024-10-25 20:12:52 +0200 <lxsameer> tomsmeding: ahhhhhhhhh got it
2024-10-25 20:12:59 +0200 <lxsameer> it got it backward
2024-10-25 20:13:35 +0200 <tomsmeding> any specific reason why you're _returning_ exceptions instead of throwing them?
2024-10-25 20:14:02 +0200 <tomsmeding> though in general, with this pattern, I think the recommendation is to let pgInit just return a P.UsageError explicitly
2024-10-25 20:14:06 +0200 <EvanR> async does that
2024-10-25 20:14:07 +0200 <lxsameer> tomsmeding: the reason is I'm still confused about the correct way of exception handling in haskell
2024-10-25 20:14:20 +0200 <EvanR> :t throwIO
2024-10-25 20:14:21 +0200 <lambdabot> Exception e => e -> IO a
2024-10-25 20:14:23 +0200 <tomsmeding> then the caller can still treat it as an arbitrary type that implements Exception if it so desires
2024-10-25 20:14:36 +0200 <tomsmeding> (because it is)
2024-10-25 20:14:45 +0200 <tomsmeding> so you're not making your interface any less flexible
2024-10-25 20:14:53 +0200 <tomsmeding> (in a sense)
2024-10-25 20:15:11 +0200 <lxsameer> let me show you more, give me a sec
2024-10-25 20:15:14 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-10-25 20:15:21 +0200 <tomsmeding> because what you really intended to write here is ... -> IO (Maybe (exists e. Exception e => e)), except Haskell doesn't support existential types like that so you have to 'newtype' that
2024-10-25 20:15:26 +0200 <tomsmeding> er, not even newtype, 'data' that
2024-10-25 20:15:33 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 20:15:51 +0200 <tomsmeding> giving the particular instantiation of the existential is _more_ information than just returning an existential
2024-10-25 20:16:42 +0200 <lxsameer> tomsmeding: ok it's getting more confusing. check this out: https://git.sr.ht/~lxsameer/Feynman/tree/master/item/src/Feynman/DB/Core.hs#L41
2024-10-25 20:16:46 +0200alp(~alp@2001:861:e3d6:8f80:55e8:1aad:506c:464b)
2024-10-25 20:17:10 +0200 <lxsameer> this is the interface that I want to have so each backend can just populate that record with the common operations
2024-10-25 20:17:12 +0200 <tomsmeding> lxsameer: that 'init' field contains an existential e
2024-10-25 20:17:21 +0200 <tomsmeding> written using 'forall' because the syntax is confusing
2024-10-25 20:17:50 +0200 <tomsmeding> the idea is that 'init' is polymorphic in the usual sense, so its type has a forall; but then that means that if you _use_ the field, you don't know what type 'e' was used when calling 'init', so the field behaves like an existential
2024-10-25 20:17:53 +0200 <lxsameer> tomsmeding: I use to use SomeException like the rest, i just changed it
2024-10-25 20:18:41 +0200 <tomsmeding> lxsameer: so you want to be able to say "DB { init = pgInit _ _, insert = _, finalize = _ }"?
2024-10-25 20:18:43 +0200 <lxsameer> so my main question is, since UsageError is postgres related only, how can I generalize the error here?
2024-10-25 20:18:50 +0200 <lxsameer> tomsmeding: yeah
2024-10-25 20:18:57 +0200 <lxsameer> https://git.sr.ht/~lxsameer/Feynman/tree/master/item/src/Feynman/DB/Postgres.hs#L32
2024-10-25 20:19:02 +0200alp(~alp@2001:861:e3d6:8f80:55e8:1aad:506c:464b) (Remote host closed the connection)
2024-10-25 20:19:05 +0200 <tomsmeding> ah
2024-10-25 20:19:15 +0200 <tomsmeding> ok so then your type of this 'init' field is wrong
2024-10-25 20:19:17 +0200 <tomsmeding> it has the same problem
2024-10-25 20:19:27 +0200 <tomsmeding> er, wait
2024-10-25 20:20:10 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 20:20:33 +0200 <tomsmeding> % import Control.Exception
2024-10-25 20:20:33 +0200 <yahb2> <no output>
2024-10-25 20:20:35 +0200 <tomsmeding> % data DB = DB { init :: forall e. Exception e => IO (Maybe e) }
2024-10-25 20:20:36 +0200 <yahb2> <no output>
2024-10-25 20:20:37 +0200 <tomsmeding> % :t init
2024-10-25 20:20:38 +0200 <yahb2> init :: DB -> forall e. Exception e => IO (Maybe e)
2024-10-25 20:20:46 +0200 <tomsmeding> % :t init
2024-10-25 20:20:46 +0200 <yahb2> init :: DB -> forall e. Exception e => IO (Maybe e)
2024-10-25 20:20:47 +0200 <lxsameer> EvanR: that throwIO, still returns IO a, how can I tell by the type that this function may throw?
2024-10-25 20:20:52 +0200 <tomsmeding> % :t \x -> init x
2024-10-25 20:20:52 +0200 <yahb2> \x -> init x :: Exception e => DB -> IO (Maybe e)
2024-10-25 20:20:54 +0200 <tomsmeding> lxsameer: you can't
2024-10-25 20:20:59 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-10-25 20:21:42 +0200 <tomsmeding> what I said previously about the field type was wrong
2024-10-25 20:21:44 +0200 <tomsmeding> lol
2024-10-25 20:22:08 +0200 <tomsmeding> lxsameer: as you can see here, with this DB type, if you project the 'init' field from a DB value, you get back an IO (Maybe e) for an e that _you can choose_
2024-10-25 20:22:12 +0200 <EvanR> lxsameer, there's no indication. Any IO action when executed might throw an exception
2024-10-25 20:22:22 +0200 <EvanR> there's no "checked exceptions"
2024-10-25 20:22:52 +0200 <tomsmeding> lxsameer: I would recommend using SomeException
2024-10-25 20:23:11 +0200 <EvanR> actually evaluating any value may throw some exception, but not by using throwIO
2024-10-25 20:23:20 +0200 <tomsmeding> because SomeException literally means "this is a thing that implements Exception, but I forgot what precise type it was"
2024-10-25 20:23:27 +0200 <lxsameer> tomsmeding: ok, if I use SomeException. the I have to change the https://git.sr.ht/~lxsameer/Feynman/tree/master/item/src/Feynman/DB/Postgres.hs#L52
2024-10-25 20:23:43 +0200 <lxsameer> tomsmeding: to whenLeft Nothing migrationResult (return . Just . toException) right?
2024-10-25 20:23:50 +0200 <tomsmeding> % :i SomeException
2024-10-25 20:23:50 +0200 <yahb2> type SomeException :: * ; data SomeException ; = forall e. ; (Exception e, GHC.Internal.Exception.Type.HasExceptionContext) => ; SomeException e ; -- Defined in ‘GHC.Internal.Exception...
2024-10-25 20:24:05 +0200 <tomsmeding> % :t SomeException
2024-10-25 20:24:05 +0200 <yahb2> SomeException ; :: (Exception e, ; GHC.Internal.Exception.Type.HasExceptionContext) => ; e -> SomeException
2024-10-25 20:24:13 +0200 <EvanR> thanks, clear as mud lol
2024-10-25 20:24:14 +0200 <lxsameer> EvanR: ah, so it's kinda in the IOs contract that it might throw Exception
2024-10-25 20:24:18 +0200 <tomsmeding> lxsameer: just write `return . Just . SomeException`
2024-10-25 20:24:26 +0200 <tomsmeding> yes
2024-10-25 20:24:36 +0200 <tomsmeding> oh
2024-10-25 20:24:40 +0200 <EvanR> yeah IO is prone to failing
2024-10-25 20:24:40 +0200 <tomsmeding> yes that's called toException
2024-10-25 20:24:53 +0200 <EvanR> non-IO is ideally not failing
2024-10-25 20:25:00 +0200 <EvanR> but still might for weird reasons
2024-10-25 20:25:23 +0200 <lxsameer> cool, so the first suggestion is throwIO and then the approach above, right
2024-10-25 20:25:24 +0200 <EvanR> like they didn't put all the case analysis cases, or they did division by zero, or evaluated an infinite loop
2024-10-25 20:25:47 +0200 <EvanR> non-IO might also use throw
2024-10-25 20:25:49 +0200 <EvanR> :t throw
2024-10-25 20:25:50 +0200 <lambdabot> Exception e => e -> a
2024-10-25 20:26:07 +0200 <EvanR> awful, terrible
2024-10-25 20:26:12 +0200 <EvanR> no good
2024-10-25 20:26:13 +0200 <EvanR> very bad
2024-10-25 20:26:13 +0200 <tomsmeding> lxsameer: right, throwIO is the usual way to throw exceptions in IO code; but if you want to return them for some reason, the best way would be toException (well found)
2024-10-25 20:26:37 +0200 <tomsmeding> just be mindful that other functions that _you_ are calling might also throw IO exceptions, unbeknownst to you
2024-10-25 20:26:39 +0200Flerix(Flerix@user/Flerix) (Quit: Leaving)
2024-10-25 20:26:49 +0200 <tomsmeding> so even if you neatly _return_ an exception, you might still accidentally throw one
2024-10-25 20:26:56 +0200 <tomsmeding> unless you very carefully vet what you call
2024-10-25 20:27:08 +0200 <EvanR> functions don't throwIO, IO actions throwIO
2024-10-25 20:27:10 +0200tomsmedingthinks haskell should have had checked exceptions
2024-10-25 20:27:10 +0200 <lxsameer> i see, coool. And one last question
2024-10-25 20:27:17 +0200 <tomsmeding> EvanR: fair point
2024-10-25 20:27:20 +0200 <tomsmeding> s/functions/IO actions/
2024-10-25 20:27:42 +0200Igloo(~ian@81.2.99.210) (Remote host closed the connection)
2024-10-25 20:27:55 +0200 <lxsameer> would it make sense for that DB type to have a errorHandler method as well ?
2024-10-25 20:27:59 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 20:28:18 +0200 <lxsameer> so each backend provide a way to deal with it's specific error types?
2024-10-25 20:28:31 +0200 <tomsmeding> who would be throwing those errors?
2024-10-25 20:28:37 +0200 <tomsmeding> and who would be handling them
2024-10-25 20:28:40 +0200 <EvanR> by returning IO actions in I/O code, you're kind of stepping outside a convention of..... just throwing the exception
2024-10-25 20:28:49 +0200 <EvanR> by returning IO exception*
2024-10-25 20:28:59 +0200Igloo(~ian@81.2.99.210)
2024-10-25 20:29:23 +0200 <EvanR> letting someone catch it if they want
2024-10-25 20:29:30 +0200 <tomsmeding> agree
2024-10-25 20:30:05 +0200 <mauke> using the SomeException data constructor directly is probably a mistake in general. toException is the way to go
2024-10-25 20:30:10 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-10-25 20:30:15 +0200morsinichi(~morsinich@61.4.97.157) (Remote host closed the connection)
2024-10-25 20:30:16 +0200 <lxsameer> tomsmeding: the backend will throw them. and in my head the backend will handle any uncaught error using a error handler and re-throw those that it doesn't know about
2024-10-25 20:30:40 +0200 <mauke> because SomeException is also an instance of Exception, so if your e is already SomeException, you might accidentally double-wrap it
2024-10-25 20:31:02 +0200 <tomsmeding> lxsameer: what is a "backend"? Is that one of the functions in that DB record?
2024-10-25 20:31:14 +0200 <tomsmeding> because then, can't it "just" catch them?
2024-10-25 20:31:22 +0200 <tomsmeding> mauke: good point!
2024-10-25 20:31:37 +0200 <lxsameer> tomsmeding: it is any code that implement the methods of the DB type
2024-10-25 20:32:02 +0200 <tomsmeding> lxsameer: okay; then "will handle any uncaught error using an error handler" is just something that it can do, right?
2024-10-25 20:32:10 +0200 <tomsmeding> inside the implementation of the DB methods
2024-10-25 20:32:14 +0200scaniatrucker(~user@78.56.98.5) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4))
2024-10-25 20:32:19 +0200 <tomsmeding> no need to have another field for this in the record, as far as I can see
2024-10-25 20:32:34 +0200 <tomsmeding> Control.Exception.catch
2024-10-25 20:32:40 +0200 <lxsameer> tomsmeding: yes
2024-10-25 20:32:41 +0200 <tomsmeding> (read the haddocks)
2024-10-25 20:32:51 +0200 <lxsameer> tomsmeding: cheers
2024-10-25 20:33:06 +0200 <lxsameer> EvanR: tomsmeding mauke thanks for the help folks
2024-10-25 20:35:35 +0200 <EvanR> where did the haskell exception system come from. Is it "original research" or based on a previous language's exception system
2024-10-25 20:35:44 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-25 20:36:50 +0200 <mauke> the original one or the extensible exception hierarchy thing?
2024-10-25 20:39:15 +0200 <briandaed> "This may be surprising, but the Haskell exception system is modeled off of Java-style Object Oriented inheritance (shocking, I know)." source: https://tech.fpcomplete.com/haskell/tutorial/exceptions/
2024-10-25 20:41:03 +0200 <EvanR> ok, that's what I figured
2024-10-25 20:41:14 +0200 <EvanR> the dynamically typed hierarchy
2024-10-25 20:41:27 +0200 <EvanR> Java is the best dynamically typed language
2024-10-25 20:41:58 +0200maukethrows an ArrayStoreException
2024-10-25 20:45:16 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-25 20:46:15 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 20:49:00 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-25 20:49:33 +0200mceresa(~mceresa@user/mceresa) (Ping timeout: 245 seconds)
2024-10-25 20:50:27 +0200 <dolio> Is it actually based on that?
2024-10-25 20:50:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 20:51:19 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 260 seconds)
2024-10-25 20:55:32 +0200Digit(~user@user/digit) Digit
2024-10-25 21:00:05 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-10-25 21:00:44 +0200caconym(~caconym@user/caconym) caconym
2024-10-25 21:01:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 21:07:23 +0200down200(~down200@shell.lug.mtu.edu) (Quit: ZNC - https://znc.in)
2024-10-25 21:08:28 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 21:09:27 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Remote host closed the connection)
2024-10-25 21:10:56 +0200alexherbo2(~alexherbo@2a02-8440-3204-088a-fce6-8c1c-cc30-bfac.rev.sfr.net) (Remote host closed the connection)
2024-10-25 21:11:04 +0200briandaed(~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection)
2024-10-25 21:11:24 +0200down200(~down200@shell.lug.mtu.edu) down200
2024-10-25 21:12:25 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-10-25 21:19:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 21:24:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-25 21:28:30 +0200halloy7829(~halloy782@2a01:e0a:e0e:5dd0:c932:38f5:27f7:ff4b) (Remote host closed the connection)
2024-10-25 21:31:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-10-25 21:34:04 +0200supercode(~supercode@user/supercode) supercode
2024-10-25 21:34:23 +0200 <monochrom> s/Haskell/FPComplete/
2024-10-25 21:35:06 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 21:35:26 +0200ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2024-10-25 21:35:46 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-25 21:36:03 +0200 <monochrom> OK I misread.
2024-10-25 21:37:23 +0200 <monochrom> Did Ada have the same kind of exception system that predated Java? Didn't even C++ too and predate Java?
2024-10-25 21:38:28 +0200 <dolio> SML had exceptions in 1990.
2024-10-25 21:38:56 +0200 <tomsmeding> technically, the quoted sentence does not state the Haskell's system is based off of Java.
2024-10-25 21:39:30 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-25 21:39:41 +0200 <dolio> Yeah. I don't really understand what it is saying, though.
2024-10-25 21:39:57 +0200 <tomsmeding> It does claim that it is based on "Object Oriented Inheritance", and is similar to what Java does
2024-10-25 21:40:00 +0200 <monochrom> Yeah I forgot SML.
2024-10-25 21:41:11 +0200 <tomsmeding> but that isn't really saying very much; haskell not having anything really comparable to OO inheritance, I agree with dolio that it isn't clear what the actual claim is :p
2024-10-25 21:41:30 +0200 <tomsmeding> perhaps the use of existentials?
2024-10-25 21:41:58 +0200 <dolio> It sounds like the kind of vague thing you'd say to explain to someone just getting started, not a precise statement about the historical origins.
2024-10-25 21:42:15 +0200 <monochrom> I think it is referring to inheritance.
2024-10-25 21:44:25 +0200 <dolio> What is the inheritance in the exception system, though?
2024-10-25 21:44:51 +0200 <monochrom> "is modelled" is a historical claim. When one just means to reuse familiarity, honest wordings are "similar to", "can be thought of as".
2024-10-25 21:44:57 +0200halloy7829(~halloy782@2a01:e0a:e0e:5dd0:c932:38f5:27f7:ff4b)
2024-10-25 21:45:20 +0200 <monochrom> The same as having subclasses in the type class system.
2024-10-25 21:46:02 +0200 <monochrom> err sorry no, most actual exception types don't use that.
2024-10-25 21:46:51 +0200 <monochrom> OK tomsmeding is right, it is only SomeException being existential.
2024-10-25 21:47:50 +0200 <tomsmeding> that at least has an OO flavour
2024-10-25 21:50:01 +0200 <monochrom> Theoretically, what I said could happen, and IIRC someone actually did it (make some subclasses of Exception and making some instances), but it's a minority.
2024-10-25 21:50:27 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 21:51:02 +0200 <monochrom> But if you only use existentials, then it is merely abstract type, so it is only modelled off Modula-3. >:)
2024-10-25 21:51:40 +0200 <monochrom> even CLU >:)
2024-10-25 21:54:53 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-25 21:55:08 +0200 <monochrom> You may be surprised, but Haskell polymorphism is based off of Java Generics! Source: https://www.vex.net/~trebla/humour/lmcify.html?t=Haskell+polymorphism+is+modelled+off+of+Java+Gene…
2024-10-25 21:56:15 +0200 <tomsmeding> that javascript is more complicated than it could have been :p
2024-10-25 21:56:30 +0200 <tomsmeding> what is the 'c', "cite"?
2024-10-25 21:56:52 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-10-25 21:57:07 +0200 <dolio> I guess SML was actually doing exceptions in 1983. They're not quite the current state, though.
2024-10-25 22:00:27 +0200Enrico63(~Enrico63@cmbg-18-b2-v4wan-168328-cust3951.vm17.cable.virginm.net) Enrico63
2024-10-25 22:02:19 +0200 <Enrico63> Hello... I need some help here. I've just run `cabal update`, and that broke Xmobar. When I `cabal build` xmobar, I get this error
2024-10-25 22:02:19 +0200 <Enrico63> ```
2024-10-25 22:02:20 +0200 <Enrico63> [39 of 46] Compiling CParser ( dist/build/CParser.hs, dist/build/CParser.o, dist/build/CParser.dyn_o )
2024-10-25 22:02:20 +0200 <Enrico63> dist/build/CParser.hs:6474:46: error: [GHC-76037]
2024-10-25 22:02:21 +0200 <Enrico63>     Not in scope: ‘Prelude.reverse’
2024-10-25 22:02:21 +0200 <Enrico63>     Suggested fixes:
2024-10-25 22:02:22 +0200 <Enrico63>       • Perhaps use one of these:
2024-10-25 22:02:22 +0200 <Enrico63>           ‘Prelude.traverse’ (imported from Prelude),
2024-10-25 22:02:23 +0200 <Enrico63>           ‘Prelude.even’ (imported from Prelude),
2024-10-25 22:02:23 +0200 <Enrico63>           ‘Prelude.reads’ (imported from Prelude)
2024-10-25 22:02:24 +0200 <Enrico63>       • Remove ‘reverse’ from the explicit hiding list in the import of
2024-10-25 22:02:24 +0200 <Enrico63>         ‘Prelude’ (at dist/build/CParser.hs:18:1-34).
2024-10-25 22:02:25 +0200 <Enrico63>      |
2024-10-25 22:02:25 +0200 <Enrico63> 6474 | discard_input_until_exp i tk (Prelude.reverse catch_frames_new)
2024-10-25 22:02:26 +0200 <Enrico63>      | ^^^^^^^^^^^^^^^
2024-10-25 22:02:26 +0200 <Enrico63> ```
2024-10-25 22:02:45 +0200 <Enrico63> Any suggestion as to how to go about it?
2024-10-25 22:02:55 +0200alp(~alp@2001:861:e3d6:8f80:55e8:1aad:506c:464b)
2024-10-25 22:05:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 22:10:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 22:10:48 +0200 <halloy7829> Enrico63: seems they moved something from Prelude to Data.List again. If you can edit the sources, you should add `import Data.List (reverse)` to the top of the file with the problem. If you can't, you can try downgrading ghc+base
2024-10-25 22:11:14 +0200Square(~Square@user/square) (Ping timeout: 260 seconds)
2024-10-25 22:13:51 +0200Flerix(Flerix@user/Flerix) Flerix
2024-10-25 22:13:58 +0200Everything(~Everythin@178-133-77-41.mobile.vf-ua.net) Everything
2024-10-25 22:14:06 +0200Flerix(Flerix@user/Flerix) ()
2024-10-25 22:15:56 +0200 <Enrico63> I just tried putting that import in all files using reverse.
2024-10-25 22:15:56 +0200 <Enrico63> Now I get this weird errors:
2024-10-25 22:15:57 +0200 <Enrico63> ```
2024-10-25 22:15:57 +0200 <Enrico63> Error: cabal: Failed to build cairo-0.13.11.0 because it depends on
2024-10-25 22:15:58 +0200 <Enrico63> cairo-0.13.11.0 which itself failed to build.
2024-10-25 22:15:58 +0200 <Enrico63> Failed to build glib-0.13.11.0 because it depends on glib-0.13.11.0 which
2024-10-25 22:15:59 +0200 <Enrico63> itself failed to build.
2024-10-25 22:15:59 +0200 <Enrico63> Failed to build
2024-10-25 22:16:00 +0200 <Enrico63> gtk2hs-buildtools-0.13.11.0-d070feafb0e7fdf0b015cb0faa83c29b1284a540e1e4870b5393427367f41843.
2024-10-25 22:16:00 +0200 <Enrico63> Failed to build pango-0.13.11.0 because it depends on pango-0.13.11.0 which
2024-10-25 22:16:01 +0200 <Enrico63> itself failed to build.
2024-10-25 22:16:01 +0200 <Enrico63> Failed to build xmobar-0.49 because it depends on xmobar-0.49 which itself
2024-10-25 22:16:02 +0200 <Enrico63> failed to build.
2024-10-25 22:16:02 +0200 <Enrico63> Failed to build xmobar-0.49 because it depends on xmobar-0.49 which itself
2024-10-25 22:16:03 +0200 <Enrico63> failed to build.
2024-10-25 22:16:03 +0200 <Enrico63> ```
2024-10-25 22:16:39 +0200 <monochrom> tomsmeding: c = confirm. "let me confirm it for you". (remember once upon a time people said "let me google it for you"? :) )
2024-10-25 22:16:53 +0200euleritian(~euleritia@dynamic-176-006-143-043.176.6.pool.telefonica.de) (Ping timeout: 248 seconds)
2024-10-25 22:17:04 +0200 <monochrom> (remember someone actually made a lmgify.com too? :) )
2024-10-25 22:18:17 +0200 <tomsmeding> monochrom: yes I know about lmgtfy :p
2024-10-25 22:18:42 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-25 22:18:45 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-25 22:20:37 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2024-10-25 22:20:37 +0200ljdarj1ljdarj
2024-10-25 22:21:03 +0200 <Enrico63> halloy7829, any idea about that?
2024-10-25 22:21:11 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 22:21:14 +0200 <monochrom> reverse was never moved out of Prelude. You have to write a very custom-made "import Prelude(something)" or variations to lose reverse.
2024-10-25 22:21:19 +0200Everything(~Everythin@178-133-77-41.mobile.vf-ua.net) ()
2024-10-25 22:22:24 +0200 <tomsmeding> the error says "the eplicit hiding list in the import of `Prelude'"
2024-10-25 22:22:57 +0200 <tomsmeding> is this a broken build of happy or something? I saw this just yesterday in a completely unrelated project but I haven't debugged it yet
2024-10-25 22:23:13 +0200 <tomsmeding> happy generates an 'import Prelude hiding (reverse)' and then proceeds to produce 'reverse'
2024-10-25 22:23:25 +0200 <tomsmeding> though in my case it was just 'reverse', not 'Prelude.reverse'!
2024-10-25 22:23:41 +0200 <monochrom> The name "CParser" may imply yes :)
2024-10-25 22:24:05 +0200 <tomsmeding> even better, dist/build/CParser.hs is the same file as I ran into
2024-10-25 22:24:09 +0200 <tomsmeding> it's a generated file in language-c
2024-10-25 22:25:18 +0200 <Enrico63> In the meanwhile, I did `cabal clean`, so a lot of stuff is gone... including that `dist` directory mentioned at the beginning of the error
2024-10-25 22:25:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 22:25:51 +0200 <tomsmeding> it will create it again when it start building language-c
2024-10-25 22:26:24 +0200 <Enrico63> Ok, then maybe it doesn't even get there
2024-10-25 22:26:59 +0200 <Enrico63> Because trying `cabal build` still fails (with the "depends on itself" errors above), but the `dist` directory is not created
2024-10-25 22:27:33 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-10-25 22:27:40 +0200 <tomsmeding> Enrico63: if you `cabal freeze`, can you share `cabal.project.freeze` on a pastebin? And also your GHC version?
2024-10-25 22:27:42 +0200 <tomsmeding> @where paste
2024-10-25 22:27:42 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2024-10-25 22:29:04 +0200 <Enrico63> Full output of cabal -v build: https://paste.tomsmeding.com/R0CckJMV
2024-10-25 22:29:27 +0200 <Enrico63> cabal --version
2024-10-25 22:29:27 +0200 <Enrico63> cabal-install version 3.10.3.0
2024-10-25 22:29:28 +0200 <Enrico63> compiled using version 3.10.3.0 of the Cabal library
2024-10-25 22:29:45 +0200 <Enrico63> ghc --version
2024-10-25 22:29:46 +0200 <Enrico63> The Glorious Glasgow Haskell Compilation System, version 9.8.2
2024-10-25 22:31:23 +0200 <Enrico63> But I have to tell you: I've never really understood the relationships between versions of GHC, version of Prelude, version of Cabal, versions shown by GHCup, each of these in a given project directory vs in my home vs who knows where. It's hard.
2024-10-25 22:31:49 +0200 <Enrico63> So please, help me help you help me. What other info can I provide?
2024-10-25 22:32:38 +0200 <tomsmeding> this is good already, let me see if I can reproduce it
2024-10-25 22:34:21 +0200 <tomsmeding> yay I can reproduce it
2024-10-25 22:34:30 +0200 <Enrico63> What?! So it's not me?
2024-10-25 22:34:50 +0200 <tomsmeding> no something is broken
2024-10-25 22:34:58 +0200 <Enrico63> I've not messed anything up... yet everything's broken :(
2024-10-25 22:34:59 +0200 <tomsmeding> and it's probably language-c or c2hs
2024-10-25 22:35:15 +0200 <tomsmeding> it's breaking my build somewhere too, but I haven't had time to investigate that yet
2024-10-25 22:35:30 +0200 <tomsmeding> but seeing that you have it too in a completely unrelated context gave me the motivation to go and try a simple reproducer
2024-10-25 22:35:54 +0200 <Enrico63> At least I don't build xmonad from source, otherwise I'd have to essentially turn off and wait for a fix, using i3 in the meanwhile :D
2024-10-25 22:36:20 +0200 <tomsmeding> it's not linked to the ghc version, reproduces with 9.4 too
2024-10-25 22:36:31 +0200 <haskellbridge> <sm> the #xmonad channel might know more
2024-10-25 22:36:43 +0200 <tomsmeding> this is more than just xmonad
2024-10-25 22:36:53 +0200 <tomsmeding> building gtk2hs-buildtools fails because of this
2024-10-25 22:37:00 +0200 <Enrico63> tomsmeding I tried with GHC 9.10.1 too, and fails for the same reason
2024-10-25 22:37:16 +0200 <tomsmeding> and it's not even gtk2hs-buildtools, the build fails in a generated file by (I think) language-c during the c2hs build
2024-10-25 22:37:18 +0200 <Enrico63> Probably it's less informative as it's newer
2024-10-25 22:37:23 +0200 <haskellbridge> <sm> bah, don't we test anything...
2024-10-25 22:38:10 +0200 <tomsmeding> language-c had a release recently
2024-10-25 22:39:27 +0200 <Enrico63> they've evacuated recently :P
2024-10-25 22:39:34 +0200 <Enrico63> just kidding
2024-10-25 22:40:46 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds)
2024-10-25 22:41:37 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 22:44:19 +0200 <tomsmeding> I think the culprit is the happy-2.1.1 release
2024-10-25 22:44:40 +0200 <tomsmeding> release 2 days ago, has "Properly qualify all uses of Prelude functions, fixing #131" in the changelog
2024-10-25 22:45:41 +0200halloy7829(~halloy782@2a01:e0a:e0e:5dd0:c932:38f5:27f7:ff4b) (Ping timeout: 248 seconds)
2024-10-25 22:48:44 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-25 22:49:04 +0200 <Enrico63> But was that change properly qualified?
2024-10-25 22:49:11 +0200 <Enrico63> :D
2024-10-25 22:49:38 +0200 <Enrico63> Anyway, what's to do now? Reporting on the github page of happy?
2024-10-25 22:50:01 +0200 <Enrico63> And, regarding me, how do I undo what I did via `cabal update`, for now?
2024-10-25 22:50:30 +0200 <tomsmeding> preliminary hypothesis: happy now generates code that uses 'Prelude.reverse' instead of just 'reverse', and users of happy have been writing 'import Prelude hiding (reverse)', which worked with previous happy versions but not with the latest one
2024-10-25 22:50:51 +0200 <haskellbridge> <sm> Enrico63: add a "--constraint 'happy<2.1.1'" to your build command I think
2024-10-25 22:50:56 +0200 <tomsmeding> undoing this is quite annoying because one would naively want to make cabal use happy < 2.1, but it's a build tool dependency so normal constraints don't aply
2024-10-25 22:51:03 +0200 <tomsmeding> sm: doesn't work, it's a build tool dep
2024-10-25 22:51:11 +0200 <haskellbridge> <sm> _sigh_
2024-10-25 22:51:25 +0200 <haskellbridge> <sm> soo... use an older cabal ?
2024-10-25 22:51:27 +0200 <tomsmeding> but yes, that's what you'd want to do
2024-10-25 22:51:33 +0200 <tomsmeding> use an older happy is what you need to do, but how
2024-10-25 22:52:03 +0200 <haskellbridge> <sm> install older happy in PATH, so happy --version is < 2.1.1 ?
2024-10-25 22:52:26 +0200 <tomsmeding> won't cabal take the one from its store?
2024-10-25 22:53:05 +0200 <tomsmeding> it does
2024-10-25 22:53:06 +0200 <haskellbridge> <sm> for an executable.. I don't know.
2024-10-25 22:53:16 +0200 <Enrico63> I guess that can be forced in cabal.project
2024-10-25 22:54:05 +0200 <Enrico63> I mean, if I create a cabal.project with
2024-10-25 22:54:06 +0200 <Enrico63> ```
2024-10-25 22:54:06 +0200 <Enrico63> packages: . /path/to/my/local/happy/ness
2024-10-25 22:54:07 +0200 <Enrico63> ```
2024-10-25 22:54:07 +0200 <Enrico63> doesn't that tell cabal to prefer the local?
2024-10-25 22:54:23 +0200 <tomsmeding> that is... something that I can try
2024-10-25 22:54:35 +0200 <haskellbridge> <sm> I don't use xmonad but I'm sympathetic. This is the kind of constant breakage I left python for :-|
2024-10-25 22:54:53 +0200 <tomsmeding> this has nothing to do with xmonad though :p
2024-10-25 22:54:55 +0200haskellbridgesm feeling disillusioned, I will take my negative vibes elsewhere :)
2024-10-25 22:55:09 +0200 <Enrico63> haskellbridge, moving to yet another language?
2024-10-25 22:55:19 +0200 <tomsmeding> (their nick is 'sm')
2024-10-25 22:55:22 +0200 <haskellbridge> <sm> yes, agreed, it's just particularly troublesome for a person just trying to update their window manager config
2024-10-25 22:55:30 +0200 <tomsmeding> Enrico63: bingo
2024-10-25 22:55:34 +0200 <tomsmeding> `cabal get happy-2.0.2`
2024-10-25 22:55:44 +0200 <tomsmeding> and put happy-2.0.2/ in your packages: list
2024-10-25 22:55:54 +0200 <haskellbridge> <sm> Enrico63: ah well probably not that just yet
2024-10-25 22:56:15 +0200 <Enrico63> tomsmeding do I need indeed a local copy?
2024-10-25 22:56:20 +0200 <tomsmeding> I do think so
2024-10-25 22:56:23 +0200 <Enrico63> Or does the `cabal get` step give me one?
2024-10-25 22:56:27 +0200 <tomsmeding> it does
2024-10-25 22:56:52 +0200alp(~alp@2001:861:e3d6:8f80:55e8:1aad:506c:464b) (Remote host closed the connection)
2024-10-25 22:57:20 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 23:01:08 +0200michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2024-10-25 23:02:18 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 23:02:35 +0200kimiamania(~924ba01d@user/kimiamania) (Quit: PegeLinux)
2024-10-25 23:02:58 +0200kimiamania(~924ba01d@user/kimiamania) kimiamania
2024-10-25 23:03:00 +0200 <Enrico63> tomsmeding I suppose now I only have to wait for the fix for happy to be available, then delete the local version of it, remove that item from the list of cabal.project, and recompile, right?
2024-10-25 23:04:01 +0200synchrom1(~john@139.180.95.1) (Quit: WeeChat 4.0.5)
2024-10-25 23:04:30 +0200 <Enrico63> (I'm assuming the fix works, but I'm still in the process. Apparently I have to apply this workaround to xmobar (the program), xmobar (my xmobar.hs setup repo), xnobar (a plugin I wrote, check it out :D), and who knows, maybe the config of xmonad broke!
2024-10-25 23:05:10 +0200 <Enrico63> Ok, it worked!
2024-10-25 23:05:22 +0200 <Enrico63> tomsmeding, please tell me that my suggestion of using cabal.project contributed 1% to your ability to find the solution, so I go to sleep with an aftertaste of accomplishment
2024-10-25 23:05:34 +0200 <tomsmeding> Enrico63: it did
2024-10-25 23:05:41 +0200 <Enrico63> yayyyy
2024-10-25 23:05:48 +0200 <mauke> Enrico63++
2024-10-25 23:05:54 +0200 <tomsmeding> and yes, the path is indeed: wait for fix, then undo these changes and build again
2024-10-25 23:06:04 +0200 <tomsmeding> but I now believe the proper package to fix is gtk2hs-buildtools
2024-10-25 23:06:06 +0200 <tomsmeding> not happy
2024-10-25 23:06:54 +0200 <mauke> https://github.com/gtk2hs/gtk2hs/issues/335
2024-10-25 23:06:55 +0200 <Enrico63> https://github.com/gtk2hs/gtk2hs/issues/335
2024-10-25 23:06:59 +0200 <tomsmeding> lol
2024-10-25 23:07:05 +0200 <mauke> jinx
2024-10-25 23:07:08 +0200 <Enrico63> Wow, we are twins, mauke
2024-10-25 23:07:17 +0200 <Enrico63> (unlucky you, ahahah)
2024-10-25 23:07:38 +0200 <tomsmeding> yep language-c had the same issue but that's been fixed in language-c-0.9.4
2024-10-25 23:07:47 +0200Enrico63(~Enrico63@cmbg-18-b2-v4wan-168328-cust3951.vm17.cable.virginm.net) (Quit: Client closed)
2024-10-25 23:07:49 +0200 <tomsmeding> with this commit https://github.com/visq/language-c/commit/32763a1a57e427eb3ab51689e8818db333753301
2024-10-25 23:09:18 +0200Enrico63(~Enrico63@cmbg-18-b2-v4wan-168328-cust3951.vm17.cable.virginm.net) Enrico63
2024-10-25 23:09:57 +0200 <Enrico63> tomsmeding, but given you say that the problem is not happy but gtk..., does that mean that I could have `cabal get`ed and added to cabal.project that instead?
2024-10-25 23:10:20 +0200 <tomsmeding> Enrico63: gtk2hs is not compatible with happy-2.1 but does not constrain happy on <2.1
2024-10-25 23:10:31 +0200 <tomsmeding> so this can be worked around either by downgrading happy or by fixing gtk2hs
2024-10-25 23:12:12 +0200 <Enrico63> I see :)
2024-10-25 23:12:40 +0200 <monochrom> Wouldn't it be sufficient to just manually perform a `cabal install --constraint='happy < 2.1' happy` as a preparation step?
2024-10-25 23:12:43 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 23:12:51 +0200 <Enrico63> Thank you very much tomsmeding and mauke
2024-10-25 23:13:09 +0200 <Enrico63> And everybody who participated, really
2024-10-25 23:13:12 +0200 <tomsmeding> monochrom: no, cabal takes happy from its store, not from $PATH
2024-10-25 23:13:18 +0200 <Enrico63> Now I can go to bed :)
2024-10-25 23:13:22 +0200 <tomsmeding> that was already suggested by sm :)
2024-10-25 23:13:47 +0200 <tomsmeding> Enrico63: there is a "neater" suggestion over from #hackage: add 'constraints: any.happy == 2.0.2' to cabal.project
2024-10-25 23:13:58 +0200 <tomsmeding> that should work without the local vendored-in happy
2024-10-25 23:14:05 +0200 <tomsmeding> the `any.` is essential
2024-10-25 23:14:12 +0200euleritian(~euleritia@176.1.224.47)
2024-10-25 23:15:26 +0200 <Enrico63> Thanks!
2024-10-25 23:17:03 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-25 23:18:43 +0200vglfr(~vglfr@c-73-250-25-113.hsd1.md.comcast.net) (Ping timeout: 245 seconds)
2024-10-25 23:18:55 +0200euleritian(~euleritia@176.1.224.47) (Read error: Connection reset by peer)
2024-10-25 23:19:12 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-25 23:19:24 +0200vglfr(~vglfr@2607:fb91:876:ccd6:ac39:c391:b0e4:8435) vglfr
2024-10-25 23:19:51 +0200Enrico63(~Enrico63@cmbg-18-b2-v4wan-168328-cust3951.vm17.cable.virginm.net) (Quit: Client closed)
2024-10-25 23:20:04 +0200Everything(~Everythin@178-133-29-214.mobile.vf-ua.net)
2024-10-25 23:23:33 +0200vglfr(~vglfr@2607:fb91:876:ccd6:ac39:c391:b0e4:8435) (Ping timeout: 248 seconds)
2024-10-25 23:23:49 +0200Zer000(~02@64.137.132.10) Zer000
2024-10-25 23:24:25 +0200vglfr(~vglfr@2607:fb90:ea85:c41e:ad3:f757:9a54:48e7) vglfr
2024-10-25 23:27:22 +0200jcarpenter2(~lol@2603:3016:1e01:b9c0:d0c3:d4d0:7258:5a99)
2024-10-25 23:29:12 +0200mceresa(~mceresa@user/mceresa) mceresa
2024-10-25 23:30:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 23:32:26 +0200Enrico63(~Enrico63@cmbg-18-b2-v4wan-168328-cust3951.vm17.cable.virginm.net) Enrico63
2024-10-25 23:33:44 +0200Enrico63(~Enrico63@cmbg-18-b2-v4wan-168328-cust3951.vm17.cable.virginm.net) (Client Quit)
2024-10-25 23:35:08 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-25 23:44:47 +0200 <Zer000> Hey I want to catch an exception that happens when I try to select a negative index from a list (passing a negative argument to (!!)). My problem is that tryAny is not catching it and I'm guessing this is because of lazy evaluation. My code is used in an IO context but the line it crashes on is coming from a pure function. I can't use deepseq on that function because one of the results does not have an NFData instance, and I have tried to put bang patterns
2024-10-25 23:44:47 +0200 <Zer000> everywhere and using a strict version of the map function and I still can't catch the exception!
2024-10-25 23:46:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-25 23:46:18 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-10-25 23:46:55 +0200 <tomsmeding> Zer000: are you using Control.Exception.evaluaet?
2024-10-25 23:46:57 +0200 <tomsmeding> *evaluate
2024-10-25 23:47:22 +0200 <tomsmeding> it evaluates only to WHNF, but it ensures that it really does so, in the IO monad, so that any exceptions thrown in evaluation to WHNF are actually thrown there
2024-10-25 23:48:43 +0200 <Zer000> tomsmeding, yes, I'm doing tryAny $ evaluate $ myFunc args
2024-10-25 23:49:24 +0200 <tomsmeding> Zer000: what package does tryAny come from?
2024-10-25 23:49:29 +0200 <Zer000> safe-exceptions
2024-10-25 23:50:39 +0200 <tomsmeding> Zer000: the haddocks for safe-exceptions's tryAny point to its 'try', which says that it will not catch asynchronous exceptions
2024-10-25 23:50:46 +0200 <tomsmeding> have you tried using the standard functions from Control.Exception instead?
2024-10-25 23:51:04 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-25 23:51:24 +0200 <Zer000> I should try that. What's the equivalent of tryAny?
2024-10-25 23:51:50 +0200 <tomsmeding> try @SomeException
2024-10-25 23:55:45 +0200 <Zer000> @tomsmeding, I did try to make an example to see if tryAny and evaluate would work, and this works perfectly: https://paste.tomsmeding.com/fFfjcVrg
2024-10-25 23:55:45 +0200 <lambdabot> Unknown command, try @list
2024-10-25 23:55:52 +0200 <Zer000> tomsmeding, I did try to make an example to see if tryAny and evaluate would work, and this works perfectly: https://paste.tomsmeding.com/fFfjcVrg
2024-10-25 23:56:16 +0200Zer000sorry I thought I didn't post my message
2024-10-25 23:59:13 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich