2024/10/18

2024-10-18 00:00:17 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 00:03:45 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-10-18 00:04:12 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-10-18 00:05:21 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-18 00:06:28 +0200troojg(~troojg@user/troojg) troojg
2024-10-18 00:14:42 +0200dcoutts_(~duncan@host86-143-111-204.range86-143.btcentralplus.com)
2024-10-18 00:16:04 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 00:16:50 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Read error: Connection reset by peer)
2024-10-18 00:23:31 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-18 00:34:08 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 00:38:13 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 00:38:18 +0200 <dmj`> tomsmeding: could catch type errors with a typechecker plugin, during unification
2024-10-18 00:39:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 00:42:52 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-10-18 00:45:42 +0200acidjnk_new(~acidjnk@p200300d6e72cfb921c1d480c698edc2c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-10-18 00:48:15 +0200mantraofpie_mantraofpie
2024-10-18 00:49:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 00:50:18 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-18 00:54:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 00:55:03 +0200xff0x(~xff0x@2405:6580:b080:900:8b57:d075:1efa:336f) (Ping timeout: 252 seconds)
2024-10-18 00:56:09 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-10-18 00:57:54 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-10-18 01:05:42 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 01:06:37 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2024-10-18 01:07:32 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-18 01:10:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 01:11:36 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 246 seconds)
2024-10-18 01:14:18 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) jespada
2024-10-18 01:15:43 +0200rmca(~rob@188.120.84.50) (Ping timeout: 264 seconds)
2024-10-18 01:15:48 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 245 seconds)
2024-10-18 01:16:44 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik
2024-10-18 01:24:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 01:28:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-18 01:31:18 +0200xff0x(~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc)
2024-10-18 01:39:00 +0200TonyStone(~TonyStone@user/TonyStone) TonyStone
2024-10-18 01:39:21 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 01:40:23 +0200xff0x(~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds)
2024-10-18 01:43:53 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 01:53:04 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds)
2024-10-18 01:54:29 +0200roconnor(~quassel@coq/roconnor) ()
2024-10-18 01:54:44 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 02:01:45 +0200xff0x(~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc)
2024-10-18 02:01:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-18 02:04:34 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-10-18 02:12:47 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 02:15:39 +0200alp(~alp@2001:861:e3d6:8f80:c611:3442:c342:856d) (Ping timeout: 246 seconds)
2024-10-18 02:21:28 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 02:30:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-18 02:32:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 02:34:12 +0200joeyadams(~joeyadams@syn-184-054-105-097.res.spectrum.com)
2024-10-18 02:34:58 +0200xff0x(~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds)
2024-10-18 02:36:01 +0200xff0x(~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9)
2024-10-18 02:37:34 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 02:42:16 +0200identity(~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91))
2024-10-18 02:48:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 02:53:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 02:56:27 +0200xff0x(~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) (Ping timeout: 265 seconds)
2024-10-18 02:57:49 +0200user363627(~user@user/user363627) user363627
2024-10-18 03:01:38 +0200weary-traveler(~user@user/user363627) (Ping timeout: 252 seconds)
2024-10-18 03:04:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 03:05:24 +0200Guest21(~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0)
2024-10-18 03:06:17 +0200 <Guest21> How can I combine a list of predicates to a single predicate, using logical or?
2024-10-18 03:09:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-18 03:13:58 +0200Square(~Square@user/square) Square
2024-10-18 03:14:06 +0200 <dibblego> Guest21: https://hackage.haskell.org/package/base-4.20.0.1/docs/Data-Monoid.html#t:Any with foldMap
2024-10-18 03:15:29 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-10-18 03:17:29 +0200Guest21(~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed)
2024-10-18 03:17:53 +0200Square2(~Square4@user/square) (Ping timeout: 245 seconds)
2024-10-18 03:18:22 +0200Guest21(~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0)
2024-10-18 03:20:03 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 03:20:18 +0200 <Guest21> \ x -> getAny $ foldMap (Any . ($ x)) ps
2024-10-18 03:21:19 +0200 <Guest21> dibblego like this?
2024-10-18 03:21:30 +0200 <dibblego> lgtm!
2024-10-18 03:21:58 +0200 <Guest21> Still more complicated than what I would have hoped for
2024-10-18 03:22:09 +0200 <dibblego> there are functions that make it a little tidier
2024-10-18 03:22:39 +0200 <Guest21> How exactly would that work?
2024-10-18 03:22:42 +0200 <monochrom> \x -> any ($ x) ps
2024-10-18 03:23:20 +0200 <Guest21> This looks nice! Can we get rid of the lambda somehow?
2024-10-18 03:23:37 +0200 <monochrom> No.
2024-10-18 03:24:24 +0200 <Guest21> OK, thanks a lot
2024-10-18 03:24:49 +0200 <monochrom> Yes. Define "myHelper = \x -> any ($ x) ps". Now you just have to say "myHelper".
2024-10-18 03:25:05 +0200 <Lears> :t flip (any . (&))
2024-10-18 03:25:06 +0200 <lambdabot> Foldable t => t (a -> Bool) -> a -> Bool
2024-10-18 03:25:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 03:26:17 +0200 <Lears> :t (getAny .) . foldMap (Any .)
2024-10-18 03:26:18 +0200 <lambdabot> Foldable t => t (a -> Bool) -> a -> Bool
2024-10-18 03:26:50 +0200 <Lears> (if you really like point-free)
2024-10-18 03:30:41 +0200Guest21(~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed)
2024-10-18 03:35:52 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 03:42:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 03:42:53 +0200hgolden__(~hgolden@23.162.40.110) hgolden
2024-10-18 03:45:49 +0200hgolden_(~hgolden@146.70.173.101) (Ping timeout: 260 seconds)
2024-10-18 03:51:02 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-10-18 03:53:53 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 03:56:23 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
2024-10-18 03:58:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 04:02:29 +0200rekahsoft(~rekahsoft@76.69.85.220) (Ping timeout: 252 seconds)
2024-10-18 04:03:31 +0200spew(~spew@155.133.15.235) (Quit: spew)
2024-10-18 04:06:50 +0200 <probie> % import Data.Functor.Contravariant
2024-10-18 04:06:50 +0200 <yahb2> <no output>
2024-10-18 04:07:23 +0200 <probie> % :t not . getPredicate . foldMap (Predicate . (not .))
2024-10-18 04:07:23 +0200 <yahb2> <interactive>:1:7: error: [GHC-83865] ; • Couldn't match type ‘a -> Bool’ with ‘Bool’ ; Expected: Predicate a -> Bool ; Actual: Predicate a -> a -> Bool ; • Probable cause: ‘g...
2024-10-18 04:07:44 +0200 <probie> % :t (not .) . getPredicate . foldMap (Predicate . (not .))
2024-10-18 04:07:44 +0200 <yahb2> (not .) . getPredicate . foldMap (Predicate . (not .)) ; :: Foldable t => t (a -> Bool) -> a -> Bool
2024-10-18 04:09:16 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 04:09:58 +0200 <monochrom> onoes, double negation
2024-10-18 04:13:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-18 04:25:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 04:30:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 04:31:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-18 04:38:47 +0200 <Axman6> oh no, you can't not undo that!
2024-10-18 04:40:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 04:45:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 04:46:13 +0200td_(~td@i53870903.versanet.de) (Ping timeout: 248 seconds)
2024-10-18 04:47:49 +0200td_(~td@i53870913.versanet.de) td_
2024-10-18 04:55:49 +0200troojg(~troojg@user/troojg) (Ping timeout: 260 seconds)
2024-10-18 04:56:16 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-18 04:56:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 05:00:23 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2024-10-18 05:01:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 05:02:23 +0200Square2(~Square4@user/square) Square
2024-10-18 05:04:53 +0200Square(~Square@user/square) (Ping timeout: 248 seconds)
2024-10-18 05:12:25 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 05:18:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
2024-10-18 05:18:58 +0200pavonia(~user@user/siracusa) siracusa
2024-10-18 05:19:02 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-18 05:20:33 +0200monochrom(trebla@216.138.220.146) (Read error: Connection reset by peer)
2024-10-18 05:23:54 +0200monochrom(trebla@216.138.220.146)
2024-10-18 05:30:27 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 05:35:28 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-18 05:43:16 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 05:48:34 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 05:59:05 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 06:04:04 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 06:04:39 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-18 06:08:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 06:12:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 06:23:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 06:29:58 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-18 06:40:56 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 06:46:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 06:47:08 +0200neuroevolutus(~neuroevol@37.19.200.167) neuroevolutus
2024-10-18 06:48:51 +0200neuroevolutus(~neuroevol@37.19.200.167) (Client Quit)
2024-10-18 06:56:44 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 07:03:33 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-10-18 07:03:56 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 07:13:38 +0200rosco(~rosco@175.136.23.238) rosco
2024-10-18 07:14:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 07:18:59 +0200michalz(~michalz@185.246.207.222)
2024-10-18 07:19:08 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 245 seconds)
2024-10-18 07:19:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 07:22:08 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-10-18 07:27:03 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-10-18 07:28:17 +0200Square(~Square@user/square) Square
2024-10-18 07:30:59 +0200rvalue-(~rvalue@user/rvalue) rvalue
2024-10-18 07:31:09 +0200jero98772(~jero98772@2800:484:1d7c:cc00::11)
2024-10-18 07:31:30 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 252 seconds)
2024-10-18 07:31:38 +0200Square2(~Square4@user/square) (Ping timeout: 245 seconds)
2024-10-18 07:31:46 +0200euphores(~SASL_euph@user/euphores) euphores
2024-10-18 07:31:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 07:34:53 +0200rvalue-rvalue
2024-10-18 07:35:00 +0200 <dmj`> is the monomorphism restriction practical anymore
2024-10-18 07:36:39 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-18 07:36:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 07:39:24 +0200vanishingideal(~vanishing@user/vanishingideal) (Client Quit)
2024-10-18 07:41:16 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-18 07:44:17 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 07:49:06 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 07:57:23 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-10-18 08:00:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 08:03:35 +0200jero98772(~jero98772@2800:484:1d7c:cc00::11) (Quit: leaving)
2024-10-18 08:04:52 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 08:12:07 +0200Inst(~Inst@user/Inst) (Remote host closed the connection)
2024-10-18 08:12:26 +0200Inst(~Inst@user/Inst) Inst
2024-10-18 08:14:25 +0200 <probie> Define "practical"
2024-10-18 08:15:48 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 08:19:10 +0200monochrom(trebla@216.138.220.146) (Ping timeout: 252 seconds)
2024-10-18 08:20:11 +0200monochrom(trebla@216.138.220.146)
2024-10-18 08:21:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 08:22:33 +0200briandaed(~root@185.234.210.211.r.toneticgroup.pl)
2024-10-18 08:27:07 +0200euleritian(~euleritia@dynamic-176-000-163-135.176.0.pool.telefonica.de) (Ping timeout: 264 seconds)
2024-10-18 08:28:04 +0200ft(~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving)
2024-10-18 08:28:07 +0200euleritian(~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de)
2024-10-18 08:28:46 +0200joeyadams(~joeyadams@syn-184-054-105-097.res.spectrum.com) (Quit: Leaving)
2024-10-18 08:30:33 +0200acidjnk_new(~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de)
2024-10-18 08:31:35 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 08:36:29 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 08:41:29 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-18 08:42:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 08:45:17 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 08:48:58 +0200rosco(~rosco@175.136.23.238) (Quit: Lost terminal)
2024-10-18 08:52:39 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 08:56:59 +0200m1dnight(~christoph@d8D861908.access.telenet.be) (Quit: WeeChat 4.4.2)
2024-10-18 08:57:48 +0200m1dnight(~christoph@d8D861908.access.telenet.be) m1dnight
2024-10-18 09:00:02 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-10-18 09:00:38 +0200caconym(~caconym@user/caconym) caconym
2024-10-18 09:03:21 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 09:04:38 +0200Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-10-18 09:08:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 09:08:06 +0200danza(~danza@user/danza) danza
2024-10-18 09:19:07 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 09:23:20 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2024-10-18 09:24:05 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-18 09:24:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-18 09:24:19 +0200synchromesh(~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Read error: Connection reset by peer)
2024-10-18 09:25:48 +0200synchromesh(~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) synchromesh
2024-10-18 09:26:31 +0200dcoutts_(~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 264 seconds)
2024-10-18 09:30:26 +0200danza(~danza@user/danza) (Remote host closed the connection)
2024-10-18 09:31:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 09:32:37 +0200michalz(~michalz@185.246.207.222) (Ping timeout: 248 seconds)
2024-10-18 09:33:13 +0200michalz(~michalz@185.246.207.215)
2024-10-18 09:33:17 +0200michalz(~michalz@185.246.207.215) (Remote host closed the connection)
2024-10-18 09:34:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 09:36:09 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2024-10-18 09:36:23 +0200 <tomsmeding> dmj`: it is fair that I left ghc plugins out of my response, but given that they were hesitant to write a wrapper around (:>), I'm sure they wouldn't want to write a plugin :p
2024-10-18 09:36:37 +0200 <tomsmeding> and also I don't like plugins if the task can be done in any other way at all
2024-10-18 09:37:08 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-10-18 09:37:49 +0200michalz(~michalz@185.246.207.215)
2024-10-18 09:38:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2024-10-18 09:38:38 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-10-18 09:39:54 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-10-18 09:40:06 +0200ghoulguy(glguy@libera/staff/glguy) (Quit: Quit)
2024-10-18 09:42:14 +0200youthlic(~Thunderbi@user/youthlic) (Ping timeout: 260 seconds)
2024-10-18 09:42:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 09:43:19 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-10-18 09:43:31 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2024-10-18 09:49:52 +0200rosco(~rosco@175.136.23.238) rosco
2024-10-18 09:58:04 +0200chele(~chele@user/chele) chele
2024-10-18 09:58:22 +0200madjesti1(~madjestic@213.208.215.120)
2024-10-18 10:03:18 +0200madjesti1(~madjestic@213.208.215.120) (Quit: leaving)
2024-10-18 10:14:24 +0200madjestic(~madjestic@213.208.215.120) madjestic
2024-10-18 10:16:21 +0200alp(~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4)
2024-10-18 10:19:36 +0200youthlic(~Thunderbi@user/youthlic) youthlic
2024-10-18 10:21:33 +0200dcoutts_(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-10-18 10:27:09 +0200Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2024-10-18 10:28:03 +0200dcoutts__(~duncan@host86-143-111-204.range86-143.btcentralplus.com)
2024-10-18 10:30:49 +0200dcoutts_(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 260 seconds)
2024-10-18 10:38:07 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-18 10:38:09 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh
2024-10-18 10:43:33 +0200__monty__(~toonn@user/toonn) toonn
2024-10-18 10:47:31 +0200comonad(~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-10-18 10:49:31 +0200user363627(~user@user/user363627) (Remote host closed the connection)
2024-10-18 10:49:35 +0200vanishingideal(~vanishing@user/vanishingideal) (Read error: Connection reset by peer)
2024-10-18 10:53:08 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-18 10:53:56 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-10-18 11:02:57 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-10-18 11:03:05 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert
2024-10-18 11:24:54 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 260 seconds)
2024-10-18 11:27:01 +0200madjestic(~madjestic@213.208.215.120) (Quit: Lost terminal)
2024-10-18 11:30:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 11:31:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 11:38:38 +0200Flow(~none@gentoo/developer/flow) flow
2024-10-18 11:46:11 +0200mari-estel(~mari-este@user/mari-estel) (Ping timeout: 265 seconds)
2024-10-18 11:46:55 +0200rosco(~rosco@175.136.23.238) (Quit: Lost terminal)
2024-10-18 11:47:04 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
2024-10-18 11:49:01 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-18 11:53:42 +0200synchromesh(~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Quit: WeeChat 4.0.5)
2024-10-18 11:59:48 +0200driib318(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-10-18 12:00:04 +0200mari-estelstill has not solved how to compile hoogle on this low-memory machine
2024-10-18 12:00:23 +0200driib318(~driib@vmi931078.contaboserver.net) driib
2024-10-18 12:01:51 +0200 <briandaed> mari-estel? is it linux? maybe zram can help
2024-10-18 12:02:10 +0200 <mari-estel> cheers, gonna learn about zram
2024-10-18 12:02:25 +0200 <mari-estel> huh "No manual entry"
2024-10-18 12:02:27 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-18 12:02:42 +0200 <mari-estel> oh, zramctrl. Apropos helped
2024-10-18 12:03:35 +0200 <mari-estel> "set up and control zram devices". Sorry for the slight offtopic but... what is a zram device?
2024-10-18 12:06:01 +0200 <mari-estel> alright there is a link to https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/…
2024-10-18 12:12:04 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Read error: Connection reset by peer)
2024-10-18 12:12:21 +0200leah2(~leah@vuxu.org) (Ping timeout: 252 seconds)
2024-10-18 12:18:25 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2024-10-18 12:18:40 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-18 12:21:07 +0200 <tomsmeding> mari-estel: how much RAM; can you add swap?
2024-10-18 12:21:30 +0200 <tomsmeding> also what architecture and linux distro, perhaps someone else can compile for you
2024-10-18 12:22:10 +0200 <mari-estel> 3k MiB, i guess zramctrl is for adding swap, will read about that eventually. I guess this is ARM
2024-10-18 12:22:27 +0200 <tomsmeding> "3k MiB", is that 3 GiB?
2024-10-18 12:22:33 +0200 <tomsmeding> zram is for transparently compressing RAM
2024-10-18 12:22:43 +0200 <mari-estel> yeah 3 GiB i think
2024-10-18 12:22:44 +0200 <tomsmeding> which helps to the extent that processes store compressible stuff in RAM
2024-10-18 12:22:54 +0200 <tomsmeding> I believe zram functions by adding a swap device _in RAM_ that is compressed
2024-10-18 12:23:12 +0200 <tomsmeding> 3 GiB should be enough to compile most haskell things
2024-10-18 12:23:15 +0200 <mari-estel> hum i see. I would rather go for uncompressed swapped then. Any pointers to linux manuals i should read?
2024-10-18 12:23:29 +0200 <mari-estel> well hoogle fails and i think it could only be because of memory
2024-10-18 12:23:30 +0200 <tomsmeding> mari-estel: what happens if you just `cabal install -j1 hoogle`?
2024-10-18 12:23:47 +0200 <mari-estel> i will try that but... how would a single core help?
2024-10-18 12:24:04 +0200 <tomsmeding> well, compiling multiple things simultaneously means you now need to fit _two_ GHCs in RAM :p
2024-10-18 12:24:25 +0200 <tomsmeding> -j1 is an easy way to divide memory usage by like 4
2024-10-18 12:24:32 +0200 <mari-estel> hmm
2024-10-18 12:24:34 +0200 <tomsmeding> (depending on how many cores it ran on before)
2024-10-18 12:24:44 +0200 <mari-estel> cool stuff, trying that now...
2024-10-18 12:25:13 +0200 <tomsmeding> if that doesn't work: keep passing -j1 to cabal, but also: sudo fallocate -l 1G /swapfile; sudo chmod 0600 /swapfile; sudo mkswap /swpafile; sudo swapon /swapfile
2024-10-18 12:25:24 +0200 <tomsmeding> s/swpafile/swapfile/
2024-10-18 12:25:42 +0200 <mari-estel> plenty of hints, cheers tomsmeding!
2024-10-18 12:25:43 +0200 <tomsmeding> fairly sure this does not persist after a reboot
2024-10-18 12:25:51 +0200 <tomsmeding> (which is probably exactly as you want it)
2024-10-18 12:26:13 +0200 <tomsmeding> mari-estel: I have some experience building e.g. the haskell playground on a cheap VPS :p
2024-10-18 12:26:20 +0200euleritian(~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) (Ping timeout: 260 seconds)
2024-10-18 12:26:20 +0200 <mari-estel> (:
2024-10-18 12:26:30 +0200 <briandaed> also there maybe processes that could be stopped, services or something that is not crucial
2024-10-18 12:27:02 +0200 <mari-estel> already tried with no other services running, but i am confident in -j1 and the rest
2024-10-18 12:27:04 +0200 <geekosaur> it will only persist if you add it as a swap entry in /etc/fstab
2024-10-18 12:27:11 +0200 <tomsmeding> right
2024-10-18 12:27:33 +0200 <tomsmeding> mari-estel: let me know what package it fails on if you compile with -j1 and it still fails
2024-10-18 12:27:54 +0200 <tomsmeding> if a haskell package needs more than 3 GiB of RAM to compile on a normal linux distro without excessive stuff happening, the fault is with that package, not with you
2024-10-18 12:28:31 +0200 <tomsmeding> (if it does, my bets are on vector or aeson)
2024-10-18 12:28:39 +0200 <mari-estel> good point about the package... wondering whether pre-installing that with --lib could help. Let us see whether any fails with -j1
2024-10-18 12:29:00 +0200 <tomsmeding> pre-installing won't help, GHC is the big memory-eater here and GHC is restarted from scratch for every new package
2024-10-18 12:29:42 +0200 <mari-estel> hm but in theory if it find the right version ready it will not rebuild?
2024-10-18 12:29:48 +0200 <mari-estel> *finds
2024-10-18 12:30:08 +0200 <tomsmeding> if the problem is indeed memory, then the problem is the peak memory use during the whole process
2024-10-18 12:30:18 +0200 <tomsmeding> you aren't going to lower the peak by doing things in a different order
2024-10-18 12:30:48 +0200 <mari-estel> well avoiding a package's compilation would not allocate that extra amount
2024-10-18 12:31:01 +0200 <tomsmeding> sure, but to pre-install you still have to build it :p
2024-10-18 12:31:39 +0200 <tomsmeding> and having someone else build a _haskell library_ for you is folly, those things depend on the precise compilation configuration of all the transitive dependencies
2024-10-18 12:32:44 +0200 <mari-estel> i see what you mean, the compiler being restarted from scratch means peak is going to be the same, makes sense
2024-10-18 12:32:53 +0200 <tomsmeding> yep
2024-10-18 12:33:38 +0200 <tomsmeding> GHC does compile all the _modules_ in a single package in one process, and that theoretically could result in a higher peak than compiling all modules individually
2024-10-18 12:34:02 +0200 <tomsmeding> but 1. arranging that the latter happens in a cabal project is tricky, and 2. that won't give huge gains, I think
2024-10-18 12:34:29 +0200 <mari-estel> yeah and that is some delving i am not going to tackle at the moment anyways
2024-10-18 12:35:47 +0200 <Inst> people say that the only possible function with a type signature of a -> a, when you're not abusing unsafe, is id
2024-10-18 12:36:13 +0200 <Inst> but why isn't id' or seq foo included?
2024-10-18 12:36:25 +0200 <tomsmeding> what is id'?
2024-10-18 12:36:41 +0200 <Inst> \a -> seq a a
2024-10-18 12:36:46 +0200 <tomsmeding> that's the same as id ;)
2024-10-18 12:37:10 +0200 <geekosaur> do you understand what `seq a a` does? (or more precisely, doesn't do)
2024-10-18 12:37:15 +0200 <tomsmeding> in general, seq a a is the same as a
2024-10-18 12:37:27 +0200 <tomsmeding> it adds a dependency on the evaluation of a to the evaluation of its result, which is a
2024-10-18 12:37:34 +0200 <geekosaur> "ensure that `a` has been evaluated when `a` is evaluated"
2024-10-18 12:37:47 +0200 <tomsmeding> 'seq foo' is indeed different, I guess?
2024-10-18 12:38:28 +0200 <Inst> gah, waiting on browser is stop hanging :(
2024-10-18 12:38:34 +0200 <geekosaur> it's outside the type system model that we are using when discussing that, though
2024-10-18 12:39:08 +0200 <geekosaur> and in particular introduces a possible bottom, but we excluded `undefined`/bottom already from the discussion
2024-10-18 12:39:30 +0200 <merijn> Inst: because people generally handwave non-total inputs
2024-10-18 12:40:17 +0200kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 248 seconds)
2024-10-18 12:40:41 +0200 <Inst> iirc bang patterns desugars to seq
2024-10-18 12:41:01 +0200 <Inst> but bang patterns will trigger evaluation in where or let clauses
2024-10-18 12:41:57 +0200acidjnk_new(~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-10-18 12:42:02 +0200 <geekosaur> oh, you only excluded unsafe. so I give you `undefined :: a -> a`
2024-10-18 12:42:12 +0200 <Inst> ack :(
2024-10-18 12:42:12 +0200 <geekosaur> (now you see why I excluded it)
2024-10-18 12:42:20 +0200 <Inst> i assume the bottom was excluded as well
2024-10-18 12:42:44 +0200 <geekosaur> but if you exclude bottom then you cannot discuss `seq`
2024-10-18 12:42:48 +0200 <tomsmeding> if you include bottoms, there are so many different bottoms
2024-10-18 12:42:56 +0200 <Inst> here's a weird mystery, like, let foo = id where !_ = undefined
2024-10-18 12:42:58 +0200 <geekosaur> because the only thing it can do is introduce a bottom
2024-10-18 12:43:15 +0200 <tomsmeding> and there is this "fast and loose reasoning is morally correct" paper that people vaguely cite when handwaving bottoms away
2024-10-18 12:45:40 +0200leah2(~leah@vuxu.org) leah2
2024-10-18 12:46:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-18 12:49:19 +0200 <Inst> hmmm, seems more like an issue with my understanding of bang patterns, ugh
2024-10-18 12:49:38 +0200 <Inst> > foo = id where !_ = undefined
2024-10-18 12:49:39 +0200 <lambdabot> <hint>:1:5: error: parse error on input ‘=’
2024-10-18 12:49:46 +0200 <Inst> > let foo = id where !_ = undefined
2024-10-18 12:49:47 +0200 <lambdabot> <no location info>: error:
2024-10-18 12:49:48 +0200 <lambdabot> not an expression: ‘let foo = id where !_ = undefined’
2024-10-18 12:49:48 +0200 <Inst> > foo 3
2024-10-18 12:49:49 +0200 <lambdabot> error:
2024-10-18 12:49:49 +0200 <lambdabot> • No instance for (Typeable a0)
2024-10-18 12:49:50 +0200 <lambdabot> arising from a use of ‘show_M71330527728707901318’
2024-10-18 12:49:55 +0200 <tomsmeding> try with %
2024-10-18 12:49:58 +0200 <Inst> % let foo = id where !_ = undefined
2024-10-18 12:49:58 +0200 <yahb2> <no output>
2024-10-18 12:50:00 +0200 <tomsmeding> lambdabot is not full ghci
2024-10-18 12:50:05 +0200 <Inst> % foo 3
2024-10-18 12:50:05 +0200 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:11:25 in interactive:Ghci3
2024-10-18 12:50:24 +0200 <Inst> % let foo = id where _ = undefined `seq` ()
2024-10-18 12:50:24 +0200 <yahb2> <no output>
2024-10-18 12:50:27 +0200 <Inst> foo 3
2024-10-18 12:50:29 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de)
2024-10-18 12:50:34 +0200 <Inst> % foo 3
2024-10-18 12:50:34 +0200 <yahb2> 3
2024-10-18 12:50:39 +0200leah2(~leah@vuxu.org) (Ping timeout: 260 seconds)
2024-10-18 12:51:06 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-18 12:52:43 +0200kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca)
2024-10-18 12:54:47 +0200 <Inst> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0229-whitespace-bang-patterns…
2024-10-18 12:54:56 +0200 <Inst> hmmm, maybe i misunderstood when i thought bang = seq
2024-10-18 12:55:27 +0200 <tomsmeding> Inst: you forgot the bang in your last example
2024-10-18 12:55:57 +0200 <tomsmeding> % let foo = x `seq` id where x = undefined
2024-10-18 12:55:57 +0200 <yahb2> <no output>
2024-10-18 12:55:59 +0200 <tomsmeding> foo 3
2024-10-18 12:56:01 +0200 <tomsmeding> % foo 3
2024-10-18 12:56:01 +0200 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:19:32 in interactive:Ghci6
2024-10-18 12:56:07 +0200 <tomsmeding> bang does become seq
2024-10-18 12:56:12 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-18 12:56:27 +0200 <tomsmeding> ah, except of course when it doesn't because pattern matching is more complicated
2024-10-18 12:56:39 +0200 <Inst> :(
2024-10-18 12:57:51 +0200 <Inst> the mystery is still, if you have in a let or where cluase, an unknown value, you can bang it and still get evaluation
2024-10-18 12:57:58 +0200 <Inst> an unused value
2024-10-18 12:58:37 +0200acidjnk_new(~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) acidjnk
2024-10-18 12:58:47 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2024-10-18 12:59:04 +0200 <Inst> but in general, we pretend that id' = id, or for that matter, let id'' = force, then again, force has an NFData constraint
2024-10-18 12:59:20 +0200 <tomsmeding> id' = id is actually true
2024-10-18 12:59:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 12:59:38 +0200 <tomsmeding> id = force is not true, but is true in the world of "total haskell"
2024-10-18 13:00:06 +0200euleritian(~euleritia@tmo-125-85.customers.d1-online.com)
2024-10-18 13:00:14 +0200 <tomsmeding> "id' = id" is true because sure, id' is strict in its argument, but that strictness only comes into play if you actually use the result of the id' call
2024-10-18 13:00:25 +0200 <tomsmeding> and at that point you also evaluate the argument to id
2024-10-18 13:03:08 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2
2024-10-18 13:04:12 +0200euleritian(~euleritia@tmo-125-85.customers.d1-online.com) (Ping timeout: 246 seconds)
2024-10-18 13:05:55 +0200leah2(~leah@vuxu.org) leah2
2024-10-18 13:09:54 +0200Digitteknohippie(~user@user/digit) Digit
2024-10-18 13:09:56 +0200Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-10-18 13:13:36 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de)
2024-10-18 13:13:49 +0200ft(~ft@p4fc2a216.dip0.t-ipconnect.de) ft
2024-10-18 13:16:40 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-18 13:17:34 +0200 <Inst> i should read up on parametricity and how bang patterns actually work, i guess
2024-10-18 13:17:44 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-10-18 13:17:50 +0200 <Inst> i still blame Eric Normand for not understanding what a -> a means when he should know better for having worked at Scrive on a Haskell project
2024-10-18 13:18:10 +0200rvalue(~rvalue@user/rvalue) rvalue
2024-10-18 13:18:43 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-18 13:18:52 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 272 seconds)
2024-10-18 13:20:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 13:20:24 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds)
2024-10-18 13:22:45 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
2024-10-18 13:29:41 +0200DigitteknohippieDigit
2024-10-18 13:30:58 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-18 13:32:07 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-18 13:32:27 +0200euleritian(~euleritia@ip-185-104-138-55.ptr.icomera.net)
2024-10-18 13:33:08 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2024-10-18 13:33:27 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
2024-10-18 13:33:27 +0200ljdarj1ljdarj
2024-10-18 13:33:59 +0200rosco(~rosco@175.136.23.238) rosco
2024-10-18 13:35:40 +0200Flow(~none@gentoo/developer/flow) flow
2024-10-18 13:38:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 13:45:09 +0200euleritian(~euleritia@ip-185-104-138-55.ptr.icomera.net) (Ping timeout: 276 seconds)
2024-10-18 13:48:14 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de)
2024-10-18 13:57:42 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-18 14:00:12 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-10-18 14:00:31 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2024-10-18 14:00:31 +0200ljdarj1ljdarj
2024-10-18 14:00:53 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) hackager
2024-10-18 14:00:53 +0200ChanServ+v haskellbridge
2024-10-18 14:07:28 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Ping timeout: 245 seconds)
2024-10-18 14:10:15 +0200euleritian(~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de)
2024-10-18 14:18:18 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection)
2024-10-18 14:18:38 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2
2024-10-18 14:19:06 +0200xff0x(~xff0x@2405:6580:b080:900:b1c9:c57e:b0f1:f862)
2024-10-18 14:27:09 +0200alp(~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) (Ping timeout: 246 seconds)
2024-10-18 14:33:54 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection)
2024-10-18 14:34:57 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) alexherbo2
2024-10-18 14:38:20 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) (Remote host closed the connection)
2024-10-18 14:44:34 +0200identity(~identity@user/ZharMeny) identity
2024-10-18 14:48:38 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2
2024-10-18 14:53:19 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 260 seconds)
2024-10-18 14:59:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 15:05:15 +0200Flow(~none@gentoo/developer/flow) flow
2024-10-18 15:21:33 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection)
2024-10-18 15:21:50 +0200hiecaq(~hiecaq@user/hiecaq) hiecaq
2024-10-18 15:26:48 +0200robertm(robertm@lattice.rojoma.com) (Ping timeout: 252 seconds)
2024-10-18 15:30:44 +0200Flow(~none@gentoo/developer/flow) (Quit: WeeChat 4.2.1)
2024-10-18 15:32:33 +0200Flow(~none@gentoo/developer/flow) flow
2024-10-18 15:34:20 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert
2024-10-18 15:36:26 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-10-18 15:43:18 +0200dispater(~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-10-18 15:43:19 +0200orcus(~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-10-18 15:45:07 +0200dispater(~dispater@mail.brprice.uk)
2024-10-18 15:45:36 +0200orcus(~orcus@mail.brprice.uk)
2024-10-18 15:51:00 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-18 15:52:16 +0200 <Inst> hmmm, so seq and bang patterns are equivalent, except that bang patterns are substantially more ergonomic
2024-10-18 15:52:34 +0200 <Inst> well, depends on context
2024-10-18 15:53:33 +0200 <Inst> just that bangs allow you to do stuff that would require breaking down the standard function syntax to replicate with seq
2024-10-18 15:54:40 +0200euleritian(~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) (Ping timeout: 272 seconds)
2024-10-18 15:55:12 +0200euleritian(~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de)
2024-10-18 15:56:09 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-10-18 16:02:14 +0200 <mari-estel> hey tomsmeding, compiling with -j1 worked! Thanks a lot for that!
2024-10-18 16:02:22 +0200 <tomsmeding> mari-estel: yay!
2024-10-18 16:02:25 +0200 <mari-estel> i will try to recall the trick as it seems very useful. Unfortunately now i have "hoogle generate" failing, i will try your other hints about managing swap
2024-10-18 16:02:26 +0200 <tomsmeding> sometimes it's easier than you think
2024-10-18 16:02:46 +0200 <tomsmeding> oh is 'hoogle generate' so ram-hungry too?
2024-10-18 16:02:49 +0200 <tomsmeding> then yes, swap
2024-10-18 16:02:52 +0200 <mari-estel> it is less of a problem though because i managed to install linux on another machine
2024-10-18 16:07:53 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2024-10-18 16:08:44 +0200Axman6(~Axman6@user/axman6) (Ping timeout: 248 seconds)
2024-10-18 16:18:02 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 16:19:29 +0200comonad(~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de)
2024-10-18 16:24:38 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-10-18 16:24:54 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2024-10-18 16:28:53 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2024-10-18 16:29:14 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-18 16:31:11 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 16:37:23 +0200euleritian(~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-18 16:37:35 +0200euleritian(~euleritia@ip92340bd4.dynamic.kabel-deutschland.de)
2024-10-18 16:38:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 16:38:32 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
2024-10-18 16:42:46 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2
2024-10-18 16:44:48 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert
2024-10-18 16:47:27 +0200spew(~spew@155.133.15.104) spew
2024-10-18 16:49:15 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 16:52:42 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-10-18 16:53:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-18 16:56:27 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 16:56:27 +0200tabemann_(~tabemann@2600:1700:7990:24e0:9b92:fe17:1b69:2f6b)
2024-10-18 16:56:31 +0200weary-traveler(~user@user/user363627) user363627
2024-10-18 16:56:49 +0200tabemann(~tabemann@2600:1700:7990:24e0:14d2:2457:bd7:5741) (Ping timeout: 260 seconds)
2024-10-18 16:57:53 +0200euleritian(~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-10-18 16:58:34 +0200glguy(glguy@libera/staff/glguy) glguy
2024-10-18 16:58:52 +0200euleritian(~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de)
2024-10-18 17:04:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 17:09:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 17:13:27 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2024-10-18 17:20:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 17:23:05 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
2024-10-18 17:23:39 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2024-10-18 17:23:51 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2024-10-18 17:24:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 17:25:14 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection)
2024-10-18 17:34:46 +0200rosco(~rosco@175.136.23.238) (Quit: Lost terminal)
2024-10-18 17:35:21 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 17:40:00 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-18 17:45:58 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-10-18 17:46:45 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-10-18 17:48:46 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2024-10-18 17:50:45 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 17:53:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 17:55:20 +0200euphores(~SASL_euph@user/euphores) euphores
2024-10-18 17:55:29 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-18 17:55:32 +0200 <glguy> dmj`: yes, it is practical
2024-10-18 18:03:27 +0200billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) billchenchina
2024-10-18 18:04:44 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2
2024-10-18 18:05:36 +0200 <haskellbridge> <maralorn> Lens wizards, please help, I am confused. I have a multiple X in Y, and I want to do three things on all the X, 1. get, 2. map, 3. filter. I can’t write a lawful traversal because filtering reduces the number of Xs. But a Fold is not enough because it can’t be used for mutation. Is there a reasonable optic to do this?
2024-10-18 18:06:07 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 18:07:59 +0200 <ncf> use an optic for step 1 and then regular haskell for steps 2 and 3?
2024-10-18 18:09:40 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 18:10:11 +0200 <haskellbridge> <maralorn> Well, the problem is that Y is a really big datatype and the Xs are everywhere and I don’t want to repeat locating them 3 times.
2024-10-18 18:11:51 +0200Square(~Square@user/square) Square
2024-10-18 18:13:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-18 18:14:23 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Client Quit)
2024-10-18 18:15:09 +0200 <Lears> I don't know about lenses, but you can write a `traverseMaybe :: Applicative f => (X -> f (Maybe X)) -> Y -> f Y` to fuse these operations.
2024-10-18 18:16:09 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 18:16:14 +0200 <c_wraith> You won't get prosecuted for using unlawful optics
2024-10-18 18:16:33 +0200 <c_wraith> The still *work*, they just can't be blindly refactored.
2024-10-18 18:16:45 +0200chele(~chele@user/chele) (Remote host closed the connection)
2024-10-18 18:17:23 +0200 <c_wraith> There's a reason filtered is not a Fold
2024-10-18 18:18:25 +0200 <haskellbridge> <maralorn> c_wraith: Yeah, I know. But in the large team we have I’d rather be careful with that.
2024-10-18 18:18:35 +0200EvanR(~EvanR@user/evanr) EvanR
2024-10-18 18:18:54 +0200 <haskellbridge> <maralorn> Lears: I like the traverseMaybe idea, thank you.
2024-10-18 18:19:02 +0200 <EvanR> is there a version of unfoldr which keeps unfolding forever and doesn't need to deal with Maybe
2024-10-18 18:19:44 +0200 <ncf> wait, so you need to put the filtered list back in?
2024-10-18 18:20:14 +0200ncfis confused about the problem
2024-10-18 18:20:22 +0200 <c_wraith> I'd honestly just use lenses's filtered combinator unless it doesn't work for some reason
2024-10-18 18:20:30 +0200 <c_wraith> err, lens's
2024-10-18 18:20:59 +0200 <c_wraith> EvanR: is that not just... iterate?
2024-10-18 18:21:11 +0200 <EvanR> :t iterate
2024-10-18 18:21:12 +0200 <lambdabot> (a -> a) -> a -> [a]
2024-10-18 18:21:24 +0200 <c_wraith> or do you want a separate state value that's passed along?
2024-10-18 18:21:27 +0200 <EvanR> quite possible
2024-10-18 18:21:29 +0200billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2024-10-18 18:21:41 +0200 <EvanR> you could just map the sequence of states?
2024-10-18 18:22:15 +0200 <EvanR> if so, haskell at its finest
2024-10-18 18:22:38 +0200 <c_wraith> a common pattern with iterate is to use it on (state, value) tuples then map snd to get rid of the states
2024-10-18 18:23:53 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 18:26:06 +0200 <haskellbridge> <maralorn> ncf: Yes.
2024-10-18 18:27:10 +0200 <ncf> then you should have a lens or a traversal with target type [Whatever]
2024-10-18 18:27:27 +0200 <ncf> so you can map/filter/whatever over that
2024-10-18 18:28:55 +0200acidjnk_new(~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-10-18 18:30:30 +0200 <c_wraith> that doesn't sound right to me, but I think we're interpreting the problem differently. the specification is really vague
2024-10-18 18:31:13 +0200ncfnods
2024-10-18 18:31:25 +0200 <c_wraith> Like.. Do you want to map over every value and only keep the changes that pass the filter? Do you want to remove elements from the Y that fail the filter?
2024-10-18 18:32:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 18:34:30 +0200glguyghoulguy
2024-10-18 18:36:10 +0200 <c_wraith> Is the whole operation a Y -> Y? a Y -> ([X], Y)?
2024-10-18 18:37:09 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 18:37:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 18:45:47 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-10-18 18:45:54 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2024-10-18 18:46:30 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-10-18 18:47:32 +0200euleritian(~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-18 18:47:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 18:47:44 +0200euleritian(~euleritia@ip92340bd4.dynamic.kabel-deutschland.de)
2024-10-18 18:47:51 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 18:48:40 +0200alp(~alp@2001:861:e3d6:8f80:1f24:b693:8d8:576d)
2024-10-18 18:52:03 +0200acidjnk_new(~acidjnk@p200300d6e72cfb56ac585057b67fefcd.dip0.t-ipconnect.de)
2024-10-18 18:52:37 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 18:54:19 +0200benjaminl(~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
2024-10-18 18:54:34 +0200benjaminl(~benjaminl@user/benjaminl) benjaminl
2024-10-18 18:57:45 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-18 19:03:17 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-18 19:03:45 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 19:08:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-18 19:10:43 +0200 <EvanR> I thought chess would simply be a data type for a "board state" and a datatype for "moves" which bring you from one board to another, and a game is a chain of moves, or chain of boards
2024-10-18 19:10:59 +0200 <EvanR> but to get this to work the board type is growing some serious legs xD
2024-10-18 19:11:45 +0200 <EvanR> can black castle? since this is usually expressed as historical, gotta keep a flag in the board state. But wait they might be able to castle on one side but not the other because a rook moved
2024-10-18 19:12:12 +0200 <EvanR> en passant is possible when a pawn "bolted" 2 spaces on the previous move
2024-10-18 19:12:25 +0200 <EvanR> this is turning into a history instead of a state
2024-10-18 19:12:51 +0200 <int-e> https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation may be useful (it encodes all the state you need except previous positions for three-fold repetition)
2024-10-18 19:13:52 +0200 <int-e> (i.e. it already has all the legs and appendices you're talking about)
2024-10-18 19:14:35 +0200 <EvanR> three fold repetition :scream:
2024-10-18 19:14:53 +0200 <int-e> well for that you really need the full history
2024-10-18 19:15:02 +0200 <int-e> so yeah that's pretty awful
2024-10-18 19:15:22 +0200 <int-e> (well, history since the last capture or promotion, but still)
2024-10-18 19:15:30 +0200 <int-e> (or pawn advancement)
2024-10-18 19:18:09 +0200alp(~alp@2001:861:e3d6:8f80:1f24:b693:8d8:576d) (Ping timeout: 248 seconds)
2024-10-18 19:20:40 +0200jinsun(~jinsun@user/jinsun) jinsun
2024-10-18 19:22:14 +0200BolzmannPain(~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de)
2024-10-18 19:23:02 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 272 seconds)
2024-10-18 19:23:10 +0200BolzmannPain(~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) (Client Quit)
2024-10-18 19:23:35 +0200BolzmannPain2(~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de)
2024-10-18 19:29:13 +0200dcoutts__(~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 265 seconds)
2024-10-18 19:29:44 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 19:34:31 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 19:37:34 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) machinedgod
2024-10-18 19:37:52 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 252 seconds)
2024-10-18 19:38:58 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 19:41:04 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 19:41:28 +0200 <EvanR> there is this cliff where the thing you want to model with haskell datatypes goes from "so simple" and fits on a page... to huge but unavoidable because "sorry, reality"
2024-10-18 19:41:41 +0200 <EvanR> whats up with that
2024-10-18 19:41:57 +0200 <EvanR> you could simplify chess to make a point, but why is this like a seismic change
2024-10-18 19:42:29 +0200 <EvanR> is haskell optimized for the simplest cases
2024-10-18 19:48:18 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 245 seconds)
2024-10-18 19:49:17 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2024-10-18 19:49:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 19:50:15 +0200athan(~athan@syn-173-042-095-241.biz.spectrum.com) athan
2024-10-18 19:52:49 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-10-18 19:53:24 +0200st_aldini(~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) (Read error: Connection reset by peer)
2024-10-18 19:54:05 +0200st_aldini(~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) st_aldini
2024-10-18 19:56:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 19:56:56 +0200 <haskellbridge> <magic_rb> Idk chess rules, but by what you described what id do is store the board state, so just the positions of pawns in a linked list
2024-10-18 19:57:16 +0200 <haskellbridge> <magic_rb> Everything else is computed from that, like whether a pawn moved by 2 squares or whatever
2024-10-18 19:57:57 +0200athan(~athan@syn-173-042-095-241.biz.spectrum.com) (Ping timeout: 252 seconds)
2024-10-18 20:01:15 +0200BolzmannPain13(~BolzmannP@2a02:3035:669:c97c:b0c7:d528:345d:3a36)
2024-10-18 20:01:57 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 20:02:51 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection)
2024-10-18 20:03:30 +0200 <EvanR> a diff of boards
2024-10-18 20:04:33 +0200BolzmannPain2(~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) (Ping timeout: 256 seconds)
2024-10-18 20:04:45 +0200 <haskellbridge> <magic_rb> Well not directly, essentially "didPawnMove :: Board -> Board"
2024-10-18 20:04:47 +0200 <int-e> To work with the board you do want an efficient map from positions to pieces though.
2024-10-18 20:04:52 +0200 <EvanR> sure, you might be able to compute a move from two boards. Though that's not enough to know what the possible moves are for a given board
2024-10-18 20:05:06 +0200 <haskellbridge> <magic_rb> Then you take N for each function
2024-10-18 20:05:07 +0200 <EvanR> because reasons
2024-10-18 20:05:18 +0200 <haskellbridge> <magic_rb> Or just "[Board]"
2024-10-18 20:05:42 +0200 <EvanR> yeah this sounds like a simplification of chess, it could collapse a lot
2024-10-18 20:05:45 +0200 <haskellbridge> <magic_rb> And for the board it could be "Map (Int, Int) ChessPiece"
2024-10-18 20:05:50 +0200 <EvanR> sure
2024-10-18 20:06:19 +0200 <int-e> (Using 64 bit masks for each type of pieces is a thing ("bitboards") but if you worry that much about performance then why are you using Haskell :P)
2024-10-18 20:06:27 +0200 <EvanR> it's just not enough to play actual chess on
2024-10-18 20:06:45 +0200 <EvanR> in the sense of stopping you from making illegal moves
2024-10-18 20:07:00 +0200 <EvanR> if you wanted to e.g. generate the tree of all games
2024-10-18 20:07:05 +0200 <int-e> But yes, you do need extra state on top of that. Just to reaffirm what has been said already :)
2024-10-18 20:07:34 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds)
2024-10-18 20:07:48 +0200 <haskellbridge> <magic_rb> The datatype doesnt prevent you from making illegal moves, the checks around it do
2024-10-18 20:07:57 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2024-10-18 20:07:58 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 20:07:58 +0200 <EvanR> there's not enough info
2024-10-18 20:08:03 +0200 <EvanR> in a single board
2024-10-18 20:08:14 +0200 <EvanR> that's the rub
2024-10-18 20:08:29 +0200 <haskellbridge> <magic_rb> Thats why you need `someCheck :: [Board] -> Bool
2024-10-18 20:08:37 +0200 <EvanR> ......... yeah
2024-10-18 20:08:45 +0200 <EvanR> so much for elegance xD
2024-10-18 20:09:02 +0200 <haskellbridge> <magic_rb> You can also generate the list of valid moves given a list of boards
2024-10-18 20:09:13 +0200 <haskellbridge> <magic_rb> And then check if the given move is in that set
2024-10-18 20:09:21 +0200 <EvanR> when you have the entire history of something, sometimes that's making the "state" redundant
2024-10-18 20:09:34 +0200 <haskellbridge> <magic_rb> Which then would allow you to generate a tree of all possible states
2024-10-18 20:09:41 +0200 <EvanR> the state stops becoming a good summary of what happened
2024-10-18 20:09:48 +0200 <EvanR> and you don't need it anymore since you have history
2024-10-18 20:09:50 +0200 <haskellbridge> <magic_rb> Wdym redundant, having the history is the state
2024-10-18 20:09:58 +0200 <EvanR> well you have these board positions
2024-10-18 20:10:04 +0200 <EvanR> but they're redundant
2024-10-18 20:10:08 +0200 <haskellbridge> <magic_rb> You can also store "[Move]" but i feel like thats harder to get right
2024-10-18 20:10:10 +0200 <EvanR> all you need is the history of moves
2024-10-18 20:11:15 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 20:11:49 +0200EvanR(~EvanR@user/evanr) (Read error: Connection reset by peer)
2024-10-18 20:11:52 +0200EvanR_(~EvanR@user/evanr) EvanR
2024-10-18 20:12:37 +0200EvanR_EvanR
2024-10-18 20:12:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 20:13:13 +0200 <EvanR> the moves route is more theoretically interesting, assuming you upgrade it to allow combining moves, now you have a semigroupoid
2024-10-18 20:14:07 +0200 <EvanR> but is more data
2024-10-18 20:14:57 +0200CrunchyFlakes(~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-18 20:17:07 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 20:17:35 +0200CrunchyFlakes(~CrunchyFl@31.19.233.78)
2024-10-18 20:20:23 +0200druchan(uid567859@id-567859.lymington.irccloud.com)
2024-10-18 20:21:23 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 244 seconds)
2024-10-18 20:22:30 +0200 <druchan> hey folks, i have this small piece of code (https://pastebin.com/VpeBm0aV) but on compile and run, it keeps crashing due to running out of memory (or shows a `bus error` and crashes). any idea what i could be doing wrong?
2024-10-18 20:26:31 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-18 20:27:20 +0200 <briandaed> and how big are response bodies there? have you tried it with curl? maybe it's just 'too big'
2024-10-18 20:28:02 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh
2024-10-18 20:28:18 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 245 seconds)
2024-10-18 20:30:02 +0200 <int-e> Hmm listing the packages you depend on would be helpful. I assume this is http-conduit. Oh and the <...'...> really messes with the syntax highlighting for me
2024-10-18 20:30:19 +0200 <int-e> druchan: ^
2024-10-18 20:31:12 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 20:31:39 +0200 <int-e> (three eternities later, http-conduit is still building)
2024-10-18 20:32:32 +0200 <int-e> length (unpack dat) -- Data.ByteString.Char8 should have a `length`
2024-10-18 20:32:36 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-18 20:34:26 +0200synchromesh(~john@2406:5a00:2497:300:bcf8:f387:b864:86a) synchromesh
2024-10-18 20:35:38 +0200 <int-e> hmm it survives a simple test for me: fetching https://paste.tomsmeding.com/ \ process 7 ...also survives fetching 10MB of data a couple of times using ~60MB of memory
2024-10-18 20:35:42 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 246 seconds)
2024-10-18 20:36:31 +0200 <briandaed> looks like it's 'url' specific, and indeed error message is right
2024-10-18 20:36:55 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 20:38:43 +0200 <EvanR> fetch 10M using 60M of memory, it lifts 0.16666x its own weight!
2024-10-18 20:39:42 +0200 <int-e> EvanR: it's a 24M executable (stripped), so that's a big part of the memory footprint
2024-10-18 20:40:57 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-10-18 20:41:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 20:43:09 +0200 <EvanR> living in a world of infinite memory is weird
2024-10-18 20:43:43 +0200 <int-e> well it's not infinite :)
2024-10-18 20:43:58 +0200 <int-e> and VMs are often very limited in that capacity (hah, capacity)
2024-10-18 20:44:07 +0200 <mreh> when I trace this https://hackage.haskell.org/package/GPipe-Core-0.2.3.1/docs/src/Graphics.GPipe.Internal.Texture.ht… it looks like it's freeing the memeory before I print the result and then after printing it immediately segfaults
2024-10-18 20:44:40 +0200 <druchan> thanks int-e.. sometimes, the `bus error` shows up within the first few links of the 36. and sometimes much later. so... not sure. i'll try to see if it's because of some URL(s) in my list.
2024-10-18 20:45:02 +0200 <EvanR> at one point the biggest executable on my computer was vim at 7M
2024-10-18 20:45:16 +0200 <EvanR> that was gratuitous
2024-10-18 20:46:08 +0200 <mreh> isn't bracket meant to order the effects of the first, third then second argument?
2024-10-18 20:46:27 +0200 <mreh> I chucked some `putStrLn`s in there
2024-10-18 20:47:08 +0200 <int-e> druchan: can you discern whether it's running out of memory or actuall crashing in some other way? is there something else running that hogs all memory? also, what platform is this? (I'm on x86-64 Linux which is probably the platform that causes the least trouble for GHC + most Haskell libraries.)
2024-10-18 20:47:47 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 20:48:00 +0200 <tomsmeding> mreh: according to the haddock mouseover, this is not `bracket` from Control.Exception. I'm afraid that's all I have to offer :)
2024-10-18 20:48:12 +0200 <mreh> oh what?!
2024-10-18 20:48:16 +0200 <int-e> hmm what GHC version am I using... 9.2.7 (hopefully not too critical but you never know)
2024-10-18 20:48:26 +0200 <druchan> haskell noob here so not sure about that except, i did do a profiling and then saw, in the pdf from postscript, there was a 600MB+ spike in the heap
2024-10-18 20:48:58 +0200 <druchan> init-e: GHC v9.2.5
2024-10-18 20:49:07 +0200 <druchan> M3 Pro, 36GB RAM and it crashes
2024-10-18 20:49:23 +0200 <druchan> the `bus error` is very cryptic and unhelpful. i wasnt able to find out what that is about
2024-10-18 20:49:48 +0200 <tomsmeding> druchan: if you do `lldb "$(cabal list-bin yourexecutablename)"` and then type `run`, does it crash, and if so what does it print?
2024-10-18 20:49:52 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-10-18 20:49:59 +0200 <tomsmeding> (type either `quit` or `exit` to get out of lldb, I forget)
2024-10-18 20:50:23 +0200 <tomsmeding> lldb is a C debugger, not a Haskell debugger, so it's bound to be not terribly helpful. But you never know
2024-10-18 20:51:13 +0200 <druchan> haha okay fair enough
2024-10-18 20:51:37 +0200 <druchan> it crashed
2024-10-18 20:51:38 +0200 <druchan> https://paste.tomsmeding.com/FNKlqYdG
2024-10-18 20:51:38 +0200 <mreh> It's from MonadAsyncException - "If an exception is raised, then bracket will re-raise the exception (after performing the release)." - I didn't realise segfault was an exception.
2024-10-18 20:51:55 +0200 <tomsmeding> mreh: it likely is not
2024-10-18 20:52:16 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 20:52:55 +0200 <tomsmeding> druchan: interesting. That "__gmpn_sqr_diag_addlsh1" is a function from GMP, the library underlying (arbitrary-precision) Integer arithmetic in Haskell
2024-10-18 20:53:26 +0200ljdarj(~Thunderbi@user/ljdarj) (Read error: Connection reset by peer)
2024-10-18 20:53:26 +0200 <tomsmeding> and furthermore, the error is EXC_BAD_ACCESS, which sounds like it's not running out of memory, but it's accessing invalid memory instead
2024-10-18 20:53:43 +0200 <tomsmeding> druchan: can you get a backtrace? Perhaps `bt`
2024-10-18 20:53:45 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-18 20:54:07 +0200 <druchan> how do i do bt?
2024-10-18 20:54:09 +0200 <briandaed> druchan try compiling it for profiling and then run with +RTS -xc -RTS, and your problem is probably caused by... too old ghc version, if possible switch to 9.4 or later to check if problem still occurs
2024-10-18 20:54:11 +0200 <tomsmeding> druchan: type it in lldb
2024-10-18 20:54:55 +0200 <druchan> https://www.irccloud.com/pastebin/mYDHV4zH/
2024-10-18 20:54:57 +0200 <briandaed> *too old for M3
2024-10-18 20:55:26 +0200 <int-e> hmm that URL returns 275144 bytes... so it's not a super large feed that causes it
2024-10-18 20:55:58 +0200 <int-e> AH EXC_BAD_ACCESS is at least more useful than "bus error"
2024-10-18 20:55:59 +0200 <tomsmeding> druchan: is that really the entire backtrace?
2024-10-18 20:56:30 +0200 <briandaed> similar to https://gitlab.haskell.org/ghc/ghc/-/issues/22497
2024-10-18 20:56:34 +0200 <tomsmeding> if the call to GMP was from some non-Haskell code then I would expect some further visible stack frames; if it was from Haskell then I'm not sure how that normally looks on macOS
2024-10-18 20:56:42 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 20:56:44 +0200 <tomsmeding> so that sounds like heap corruption then, which is... bad?
2024-10-18 20:56:58 +0200 <druchan> tomsmeding: yeah, that was the output when i tried `bt`. should i do `bt` multiple times?
2024-10-18 20:57:11 +0200 <tomsmeding> no it outputs the whole thing
2024-10-18 20:57:32 +0200 <tomsmeding> oh briandaed's linked issue looks extremely relevant
2024-10-18 20:57:42 +0200 <tomsmeding> in particular this reproducer https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_464384
2024-10-18 20:57:44 +0200 <druchan> yeah seems like that's what i am facing too
2024-10-18 20:57:51 +0200poxel(~lennart@user/poxel) poxel
2024-10-18 20:58:12 +0200 <druchan> i think i should just upgrade ghc and try again
2024-10-18 20:59:12 +0200 <int-e> Oh "The platforms reserve register x18. Don’t use this register." would indeed explain sporadic horrible errors.
2024-10-18 20:59:17 +0200 <int-e> druchan: yeah
2024-10-18 20:59:39 +0200 <druchan> sigh and i was almost ready to port my code to Purescript :/
2024-10-18 20:59:49 +0200 <tomsmeding> oof it's gmp that is the culprit? That's unexpeced
2024-10-18 21:00:05 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-10-18 21:00:19 +0200 <tomsmeding> druchan: the fix for that bug was backported to ghc 9.2.6 lol
2024-10-18 21:00:30 +0200 <tomsmeding> just one minor version too old!
2024-10-18 21:00:44 +0200caconym(~caconym@user/caconym) caconym
2024-10-18 21:01:27 +0200 <tomsmeding> but yeah, upgrading to 9.4.8 if you can is probably safest
2024-10-18 21:01:29 +0200 <int-e> tomsmeding: nah AIUI GHC's code generator uses the reserved register, the OS zeros it on occasion, and then that zero pointer gets passed around to other libraries like GMP
2024-10-18 21:02:21 +0200BolzmannPain13(~BolzmannP@2a02:3035:669:c97c:b0c7:d528:345d:3a36) (Ping timeout: 256 seconds)
2024-10-18 21:02:21 +0200 <tomsmeding> int-e: this https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_472557 definitely points to an issue in GMP
2024-10-18 21:02:31 +0200 <tomsmeding> (it could still be that GHC also had issues; I don't know)
2024-10-18 21:02:59 +0200 <int-e> tomsmeding: Ah, I didn't read far enough. Yes it does.
2024-10-18 21:03:14 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-10-18 21:05:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 21:07:20 +0200 <int-e> tomsmeding: seems to be fixed now though. https://gitlab.haskell.org/ghc/gmp-tarballs/-/merge_requests/4/diffs?commit_id=7bb13b556d81e60556d… did this by patching gmp-6.2.1; the current GHC repo carries gmp-6.3.0 without that patch
2024-10-18 21:07:30 +0200 <tomsmeding> mreh: could this be a threading issue? Are you calling this function from multiple threads?
2024-10-18 21:07:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 21:07:38 +0200 <int-e> now... which GHC versions have either of these fixes? :-/
2024-10-18 21:07:40 +0200 <druchan> and now this little maneouver is going to cost us .. whatever time it takes for cabal to recompile
2024-10-18 21:07:44 +0200 <tomsmeding> int-e: 9.2.6
2024-10-18 21:08:04 +0200 <tomsmeding> int-e: https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_485068
2024-10-18 21:08:25 +0200 <tomsmeding> if you click that commit and open "Tags containing commit", you can see it's included in 9.2.6
2024-10-18 21:08:31 +0200 <tomsmeding> which is funny because druchan was using 9.2.5
2024-10-18 21:08:54 +0200 <int-e> unlucky
2024-10-18 21:10:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 21:12:03 +0200robertm(robertm@lattice.rojoma.com) robertm
2024-10-18 21:12:08 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-18 21:12:10 +0200BolzmannPain2(~BolzmannP@2a02:3035:668:c2f2:123c:65dd:8f14:88e4)
2024-10-18 21:12:17 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 248 seconds)
2024-10-18 21:14:48 +0200 <druchan> okay i upgraded, recompiled and run the program a few times -- no crashes now.
2024-10-18 21:14:58 +0200 <druchan> thanks tomsmeding int-e
2024-10-18 21:15:01 +0200 <tomsmeding> yay!
2024-10-18 21:15:12 +0200 <tomsmeding> also thanks briandaed for digging up the precise issue at work
2024-10-18 21:15:18 +0200 <druchan> thanks briandaed too yes!
2024-10-18 21:15:22 +0200 <briandaed> :)
2024-10-18 21:15:53 +0200 <druchan> is there a haskell beginner channel btw? i dont want to clog up this space if so... learning haskell now, might have lotsa questions
2024-10-18 21:16:04 +0200 <druchan> FP slack was not very helpful on this one
2024-10-18 21:16:09 +0200 <tomsmeding> #haskell-beginners exists, but no clue how active
2024-10-18 21:16:15 +0200 <tomsmeding> this particular question was not a beginner question though ;)
2024-10-18 21:16:31 +0200 <tomsmeding> beginner questions are generally welcome here in #haskell
2024-10-18 21:16:32 +0200 <sam113101> I wish I knew haskell
2024-10-18 21:16:38 +0200 <int-e> it's not like this channel is super busy either
2024-10-18 21:16:55 +0200 <druchan> has it always been like that when it was on freenode?
2024-10-18 21:17:01 +0200 <haskellbridge> <sm> In addition, there's the Haskell matrix room which is sometimes less technical
2024-10-18 21:17:27 +0200 <tomsmeding> as always on IRC, it's just one channel though, so holding two conversations in parallel is impractical -- but that goes both ways, beginner questions through advanced topics and advanced topics through beginner questions
2024-10-18 21:17:45 +0200 <int-e> druchan: well, numbers have gone down over the years
2024-10-18 21:17:58 +0200 <tomsmeding> druchan: when it was on freenode the number of idlers was larger, but I suspect many of the ones we "lost" were not actually reading.
2024-10-18 21:18:10 +0200 <druchan> ah okay
2024-10-18 21:18:21 +0200 <haskellbridge> <sm> and there's lots more channels now
2024-10-18 21:18:49 +0200 <druchan> i cant tell you folks how relieved i am now though. i was almost thinking haskell is probably not for me coz i thought this was something to do with the laziness
2024-10-18 21:19:17 +0200 <tomsmeding> druchan: if you get "bus error" or "segmentation fault" in haskell and you're not using some C code or C libraries yourself,
2024-10-18 21:19:23 +0200 <tomsmeding> then something is awfully wrong
2024-10-18 21:19:33 +0200 <tomsmeding> that is _not_ supposed to happen
2024-10-18 21:19:55 +0200 <int-e> https://wiki.haskell.org/IRC_channel has some historic numbers about early channel activity
2024-10-18 21:20:31 +0200 <sam113101> I'd like to see some code examples of haskell
2024-10-18 21:20:56 +0200 <druchan> i should've learnt some systems stuff but noooo boy didnt pay attention in C classes.
2024-10-18 21:21:03 +0200 <druchan> anyway, thanks folks.
2024-10-18 21:21:43 +0200 <EvanR> yeah haskell has like 20 something channels here
2024-10-18 21:21:52 +0200 <tomsmeding> O.o does it?
2024-10-18 21:21:58 +0200 <EvanR> lol
2024-10-18 21:22:02 +0200 <tomsmeding> I know of... 5?
2024-10-18 21:22:17 +0200 <tomsmeding> oh 6
2024-10-18 21:22:28 +0200 <int-e> sam113101: visit https://wiki.haskell.org/Special:Random until you see a code block ;-)
2024-10-18 21:22:28 +0200 <EvanR> maybe some didn't make it off freenode
2024-10-18 21:22:36 +0200 <EvanR> but there's one for each language
2024-10-18 21:22:37 +0200 <tomsmeding> (#ghc, #haskell, #haskell-offtopic, #hackage, #haskell-infrastructure, #haskell-beginners)
2024-10-18 21:22:45 +0200 <tomsmeding> oh I see
2024-10-18 21:22:58 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 21:23:06 +0200 <EvanR> #haskell-game come on
2024-10-18 21:23:10 +0200 <int-e> @where lyah
2024-10-18 21:23:10 +0200 <lambdabot> http://www.learnyouahaskell.com/ or the slightly updated fork https://learnyouahaskell.github.io/
2024-10-18 21:23:22 +0200 <EvanR> surely #haskell-blah is still around
2024-10-18 21:23:30 +0200 <EvanR> #haskell-advanced ?
2024-10-18 21:23:31 +0200 <int-e> (probably not the best, but also not the worst source for example code)
2024-10-18 21:24:11 +0200 <int-e> #haskell-ascended ?
2024-10-18 21:24:20 +0200 <tomsmeding> hah, /msg alis list haskell
2024-10-18 21:24:28 +0200 <tomsmeding> doesn't fit on my screen :)
2024-10-18 21:24:39 +0200 <int-e> @seen lambdabot
2024-10-18 21:24:39 +0200 <lambdabot> Yes, I'm here. I'm in ##villagegreen, #lambdacalculus, #esolangs, #scannedinavian, #bfpg, #kmonad, #xmonad, #haskell-it-offtopic, #haskell-cs, #haskell-tw, #haskell-es, #haskell-au, #haskell-it, #
2024-10-18 21:24:39 +0200 <lambdabot> haskell-cn, #haskell-ghcup, #haskell-lens, #haskell-in-depth, #haskell-offtopic, #haskell-blah, #haskell-beginners, #ghc and #haskell
2024-10-18 21:25:06 +0200 <int-e> (includes some odd ones)
2024-10-18 21:28:04 +0200 <monochrom> There is #haskell-in-depth
2024-10-18 21:28:27 +0200 <int-e> what's the #haskell-overflow status?
2024-10-18 21:29:04 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-18 21:29:44 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 21:29:52 +0200 <EvanR> #haskell-overwhelming
2024-10-18 21:30:23 +0200 <int-e> (#haskelllll redirects there)
2024-10-18 21:30:26 +0200 <EvanR> my life for foldr
2024-10-18 21:31:11 +0200 <int-e> #foldr?
2024-10-18 21:31:50 +0200 <monochrom> #haskell-overflow is also part of the #haskell* family of channels. (As in, I also have ops there. :) )
2024-10-18 21:31:53 +0200 <int-e> EvanR: foldr is perfect for making progress lazile
2024-10-18 21:31:56 +0200 <int-e> *lazily
2024-10-18 21:32:09 +0200 <monochrom> But I guess no one ever bothered to send lambdabot there.
2024-10-18 21:34:02 +0200 <EvanR> I feel like #haskell-game has been requesting a lambdabot but never got one
2024-10-18 21:34:16 +0200 <EvanR> been kind of dead lately though
2024-10-18 21:34:27 +0200 <EvanR> I think because of bridge problems
2024-10-18 21:36:31 +0200 <monochrom> A game of Contract Bridge. >:)
2024-10-18 21:36:33 +0200 <int-e> EvanR: that's news to me, but it's easy to miss a highlight
2024-10-18 21:36:40 +0200 <int-e> (re: #haskell-game)
2024-10-18 21:36:51 +0200 <EvanR> more like olds
2024-10-18 21:37:02 +0200 <EvanR> I could be dredging up a convo from the 2010s
2024-10-18 21:37:19 +0200 <int-e> uh, that would predate me running the thing
2024-10-18 21:37:20 +0200 <haskellbridge> <sm> the haskell gamers are more on matrix now
2024-10-18 21:37:44 +0200 <EvanR> int-e, you're the wizard of Hask?
2024-10-18 21:37:47 +0200 <int-e> not discord?
2024-10-18 21:37:56 +0200 <int-e> EvanR: No. I just run lambdabot.
2024-10-18 21:38:02 +0200 <haskellbridge> <sm> hell no. Though I'm sure there are haskellers there too
2024-10-18 21:38:14 +0200 <EvanR> there is a haskell game discord
2024-10-18 21:38:15 +0200 <haskellbridge> <sm> probably a lot
2024-10-18 21:38:15 +0200 <int-e> (To be clear, I don't like Discord at all. But a lot of people mention being there. :P)
2024-10-18 21:38:37 +0200 <haskellbridge> <sm> poor beknighted lost souls
2024-10-18 21:38:38 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-10-18 21:38:41 +0200 <int-e> (So it's kind of hard to ignore that it's a thing.)
2024-10-18 21:40:06 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 21:41:24 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-10-18 21:42:49 +0200neuroevolutus(~neuroevol@2001:ac8:9a:75::e014) neuroevolutus
2024-10-18 21:47:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 21:51:17 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds)
2024-10-18 21:52:41 +0200briandaed(~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection)
2024-10-18 21:53:21 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-18 21:55:26 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-18 21:55:35 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-10-18 21:58:08 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 21:59:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 21:59:15 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-10-18 22:01:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-18 22:02:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 22:03:48 +0200euleritian(~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-18 22:04:31 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 252 seconds)
2024-10-18 22:05:32 +0200alp(~alp@2001:861:e3d6:8f80:5390:64ff:457d:f218)
2024-10-18 22:06:02 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-10-18 22:13:31 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 22:15:30 +0200BolzmannPain2(~BolzmannP@2a02:3035:668:c2f2:123c:65dd:8f14:88e4) (Quit: Client closed)
2024-10-18 22:18:06 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 22:18:54 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-10-18 22:19:20 +0200rvalue(~rvalue@user/rvalue) rvalue
2024-10-18 22:28:46 +0200michalz(~michalz@185.246.207.215) (Remote host closed the connection)
2024-10-18 22:29:29 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 22:31:39 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-10-18 22:38:44 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-18 22:39:20 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2024-10-18 22:40:51 +0200FeuermagierGuest844
2024-10-18 22:40:51 +0200Feuermagier_(~Feuermagi@user/feuermagier) Feuermagier
2024-10-18 22:40:51 +0200Guest844(~Feuermagi@user/feuermagier) (Killed (molybdenum.libera.chat (Nickname regained by services)))
2024-10-18 22:40:51 +0200Feuermagier_Feuermagier
2024-10-18 22:41:11 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-18 22:48:07 +0200mima(~mmh@user/mima) (Ping timeout: 264 seconds)
2024-10-18 22:48:33 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 276 seconds)
2024-10-18 22:49:05 +0200tcard__(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2024-10-18 22:49:10 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 22:50:07 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-18 22:51:39 +0200dcoutts_(~duncan@host86-143-111-204.range86-143.btcentralplus.com)
2024-10-18 22:53:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-18 22:54:38 +0200dcoutts__(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 265 seconds)
2024-10-18 22:56:36 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-10-18 22:57:14 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) tcard
2024-10-18 22:58:59 +0200mima(~mmh@user/mima) mima
2024-10-18 23:01:48 +0200neuroevolutus(~neuroevol@2001:ac8:9a:75::e014) (Quit: Client closed)
2024-10-18 23:02:21 +0200kimiamania(~924ba01d@user/kimiamania) (Quit: PegeLinux)
2024-10-18 23:02:44 +0200kimiamania(~924ba01d@user/kimiamania) kimiamania
2024-10-18 23:04:32 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 23:07:22 +0200hgolden_(~hgolden@146.70.173.229) hgolden
2024-10-18 23:09:09 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-18 23:10:06 +0200hgolden__(~hgolden@23.162.40.110) (Ping timeout: 265 seconds)
2024-10-18 23:13:37 +0200supercode(~supercode@user/supercode) supercode
2024-10-18 23:14:08 +0200poxel(~lennart@user/poxel) (Quit: WeeChat 4.4.2)
2024-10-18 23:17:30 +0200dcoutts_(~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 252 seconds)
2024-10-18 23:19:55 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 23:19:59 +0200 <dmj`> would be nice to expose type level lambda syntax in instance heads
2024-10-18 23:20:21 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 248 seconds)
2024-10-18 23:20:49 +0200 <dmj`> instance Functor (\a -> Foo a b) where
2024-10-18 23:21:51 +0200 <int-e> "expose" - does the compiler actually have that internally now?
2024-10-18 23:21:59 +0200 <dmj`> supposedly it does
2024-10-18 23:24:11 +0200 <dmj`> or allow type synonyms to rearrange the variables so kind inference would pass
2024-10-18 23:26:34 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2024-10-18 23:26:40 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-18 23:27:49 +0200 <int-e> I still expect that the compiler would fall flat on its nose if you allowed this, because suddenly you'll have to deal with constraints like Functor (\a -> Foo a b) => ... and ultimately deal at least with some of the messier complications of higher order unification.
2024-10-18 23:35:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-18 23:41:31 +0200 <dmj`> yea, definitely don't want higher order unification, but would like a lightweight way around restriction, one that doesn't involve newtypes
2024-10-18 23:42:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 23:47:29 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-18 23:48:29 +0200 <dmj`> int-e: term level lambdas don't require higher order unification so
2024-10-18 23:49:16 +0200 <int-e> dmj`: but yours are at the type level
2024-10-18 23:49:25 +0200 <int-e> nobody's unifying terms
2024-10-18 23:49:43 +0200 <int-e> well until things become fully dependently typed
2024-10-18 23:50:20 +0200 <int-e> Which I think is something GHC is trying very hard to avoid.
2024-10-18 23:50:34 +0200 <dmj`> we'd need to add a KindApp constructor
2024-10-18 23:51:09 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh
2024-10-18 23:51:30 +0200 <dmj`> we just have KindFun
2024-10-18 23:52:19 +0200 <dmj`> you're right it would require higher order unification
2024-10-18 23:53:20 +0200 <dmj`> that's the restriction on type families, they're not higher order.
2024-10-18 23:53:53 +0200 <int-e> and so are type synonyms (which can't be partially applied)
2024-10-18 23:55:09 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-18 23:56:40 +0200 <dmj`> Ok we do have KindApp, we'd need TypeLam, which would be problematic
2024-10-18 23:57:41 +0200 <dmj`> it could be added technically, and then its usage would be restricted, so end users couldn't express higher order functions in type families
2024-10-18 23:57:58 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 23:58:08 +0200 <dmj`> pretty sure microhs does this