Home liberachat/#haskell: Logs Calendar

Logs on 2024-10-18 (liberachat/#haskell)

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

All times are in UTC on 2024-10-18.