Home liberachat/#haskell: Logs Calendar

Logs on 2024-12-02 (liberachat/#haskell)

00:01:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:04:26 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
00:06:10 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:14:21 gmg joins (~user@user/gehmehgeh)
00:16:07 banner_ joins (~banner@202.137.173.5)
00:16:21 × banner quits (~banner@202.137.173.5) (Read error: Connection reset by peer)
00:16:52 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:19:02 × zenmov quits (~zenmov@user/zenmov) (Ping timeout: 255 seconds)
00:19:57 × poopiedookie quits (~poopiedoo@syn-069-206-166-125.res.spectrum.com) (Quit: Client closed)
00:20:50 × Everything quits (~Everythin@46.211.118.149) (Ping timeout: 252 seconds)
00:21:37 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
00:22:47 Everything joins (~Everythin@46-133-39-1.mobile.vf-ua.net)
00:26:15 × xff0x quits (~xff0x@2405:6580:b080:900:bdb1:25e1:e64a:22aa) (Ping timeout: 252 seconds)
00:28:40 × sprotte24 quits (~sprotte24@p200300d16f31c000346c7ccb6d0f74ba.dip0.t-ipconnect.de) (Quit: Leaving)
00:29:59 × KicksonButt quits (~quassel@187.21.174.221) (Ping timeout: 252 seconds)
00:30:57 × banner_ quits (~banner@202.137.173.5) (Quit: Leaving)
00:31:39 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:32:40 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:37:45 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
00:39:27 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:44:55 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 260 seconds)
00:48:14 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds)
00:50:44 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:55:23 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
00:58:36 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:59:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
01:01:35 gvg joins (~dcd@user/gvg)
01:04:02 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
01:05:34 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:10:21 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
01:14:22 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:19:04 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:19:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:25:55 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
01:27:13 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:30:09 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:35:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
01:43:00 mange joins (~user@user/mange)
01:45:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:50:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:51:11 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
01:53:58 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
01:57:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:59:09 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 245 seconds)
02:01:11 billchenchina joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
02:01:44 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:06:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
02:15:36 × Enviosity quits (~Enviosity@2.219.56.221) (Quit: Connection error?!)
02:16:11 × robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
02:17:30 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:18:25 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
02:22:09 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
02:22:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
02:22:48 Square joins (~Square@user/square)
02:25:52 zenmov joins (~zenmov@user/zenmov)
02:33:21 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:34:41 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
02:35:10 Enviosity joins (~Enviosity@2.219.56.221)
02:38:28 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
02:43:12 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
02:47:53 euleritian joins (~euleritia@77.22.252.159)
02:49:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:53:33 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 246 seconds)
02:54:17 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
02:58:17 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
02:59:36 Enviosity_ joins (~Enviosity@2.219.56.221)
03:02:09 × Enviosity quits (~Enviosity@2.219.56.221) (Ping timeout: 252 seconds)
03:04:09 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
03:04:53 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:08:46 × td_ quits (~td@i53870919.versanet.de) (Ping timeout: 252 seconds)
03:09:52 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:10:33 td_ joins (~td@i5387091A.versanet.de)
03:20:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:27:26 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
03:27:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
03:30:20 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
03:33:18 × tv quits (~tv@user/tv) (Read error: Connection reset by peer)
03:35:44 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
03:38:45 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:40:18 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 252 seconds)
03:43:09 × Everything quits (~Everythin@46-133-39-1.mobile.vf-ua.net) (Quit: leaving)
03:43:14 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
03:50:10 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
03:54:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:58:59 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:07:03 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
04:09:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:14:46 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:19:39 aforemny_ joins (~aforemny@2001:9e8:6cc2:7300:b057:b2c0:d48e:e441)
04:20:05 × aforemny quits (~aforemny@2001:9e8:6ce8:7100:2a57:7115:ef6a:199f) (Ping timeout: 248 seconds)
04:25:14 KicksonButt joins (~quassel@187.21.174.221)
04:25:35 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:30:13 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:40:49 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:41:22 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:46:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:48:34 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
04:50:01 gorignak joins (~gorignak@user/gorignak)
04:55:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:59:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
05:02:03 × KicksonButt quits (~quassel@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:10:51 × zlqrvx quits (~zlqrvx@user/zlqrvx) (Ping timeout: 252 seconds)
05:11:04 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:14:56 zlqrvx joins (~zlqrvx@user/zlqrvx)
05:15:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
05:24:41 michalz joins (~michalz@185.246.207.218)
05:26:51 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:27:17 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 248 seconds)
05:32:30 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
05:42:39 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:47:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
05:58:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:05:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
06:05:23 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
06:07:29 anpad joins (~pandeyan@user/anpad)
06:08:13 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
06:10:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:15:45 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:17:33 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:24:59 leif joins (~leif@210.54.33.112)
06:26:35 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:31:11 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:31:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
06:37:24 × mange quits (~user@user/mange) (Quit: Quittin' time!)
06:42:23 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:47:00 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
06:56:35 acidjnk_new3 joins (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de)
06:57:42 vanishingideal joins (~vanishing@user/vanishingideal)
06:58:11 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:02:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
07:11:27 billchenchina- joins (~billchenc@103.118.42.229)
07:11:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:13:44 × billchenchina quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 245 seconds)
07:16:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
07:16:34 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
07:24:57 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 276 seconds)
07:27:36 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:32:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
07:33:57 CiaoSen joins (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da)
07:35:49 × euleritian quits (~euleritia@77.22.252.159) (Ping timeout: 248 seconds)
07:36:16 euleritian joins (~euleritia@dynamic-176-006-142-190.176.6.pool.telefonica.de)
07:38:21 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
07:40:27 briandaed joins (~root@user/briandaed)
07:43:23 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:43:50 × ft quits (~ft@p508db9c7.dip0.t-ipconnect.de) (Quit: leaving)
07:45:23 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 265 seconds)
07:47:52 Square2 joins (~Square4@user/square)
07:48:05 × APic quits (apic@apic.name) (Ping timeout: 248 seconds)
07:50:00 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
07:51:10 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:51:36 × Square quits (~Square@user/square) (Ping timeout: 276 seconds)
07:53:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:56:08 ubert joins (~Thunderbi@p200300ecdf42fd867c5a9f24741cb45b.dip0.t-ipconnect.de)
08:00:05 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:06 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
08:00:50 caconym joins (~caconym@user/caconym)
08:01:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:07:37 × CiaoSen quits (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) (Ping timeout: 265 seconds)
08:15:29 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
08:18:13 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
08:19:42 APic joins (apic@apic.name)
08:20:16 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
08:21:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
08:26:37 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
08:29:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:29:57 Square joins (~Square@user/square)
08:32:53 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
08:33:12 × vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving)
08:34:09 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
08:36:53 × alp_ quits (~alp@128-79-174-146.hfc.dyn.abo.bbox.fr) (Remote host closed the connection)
08:37:25 × Square quits (~Square@user/square) (Ping timeout: 260 seconds)
08:38:12 alp joins (~alp@2001:861:8ca0:4940:a36a:bc17:9bfc:9786)
08:43:00 × gorignak quits (~gorignak@user/gorignak) (Remote host closed the connection)
08:56:13 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
09:00:43 × APic quits (apic@apic.name) (Ping timeout: 264 seconds)
09:02:58 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:03:37 acidjnk_new3 joins (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de)
09:05:10 <tomsmeding> why do we now have 9.8.4 in ghcup without having 9.8.3 :p
09:05:21 chele joins (~chele@user/chele)
09:05:27 <haskellbridge> <maerwald> because 9.8.3 is BUSTED
09:05:49 <haskellbridge> <maerwald> well, not exactly, but shipping a bugged filepath :)
09:06:23 lxsameer joins (~lxsameer@Serene/lxsameer)
09:06:23 <tomsmeding> ah I see :p
09:06:35 <tomsmeding> maerwald: thanks for going the good work :)
09:07:06 <tomsmeding> *doing
09:11:23 <haskellbridge> <maerwald> 9.6.7 I think is supposed to come too soon
09:11:33 <haskellbridge> <maerwald> it will then be the target of the next "recommended" release
09:13:35 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 260 seconds)
09:13:58 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
09:15:53 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:16:56 califax joins (~califax@user/califx)
09:21:44 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
09:23:59 APic joins (apic@apic.name)
09:30:12 × m1dnight quits (~m1dnight@141.134.25.8) (Quit: WeeChat 3.0)
09:33:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:35:56 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
09:36:25 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:37:36 CiaoSen joins (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da)
09:37:56 califax joins (~califax@user/califx)
09:40:07 × APic quits (apic@apic.name) (Ping timeout: 252 seconds)
09:43:53 × euleritian quits (~euleritia@dynamic-176-006-142-190.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
09:44:14 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
09:50:16 JamesMowery439 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net)
09:50:55 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
09:51:26 × JamesMowery43 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Ping timeout: 255 seconds)
09:51:26 JamesMowery439 is now known as JamesMowery43
09:51:29 euleritian joins (~euleritia@dynamic-176-006-129-106.176.6.pool.telefonica.de)
09:56:04 × koolazer quits (~koo@user/koolazer) (Remote host closed the connection)
09:56:05 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:57:13 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
09:57:15 califax joins (~califax@user/califx)
09:59:35 × euleritian quits (~euleritia@dynamic-176-006-129-106.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
10:00:06 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
10:00:54 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
10:00:54 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
10:01:37 gmg joins (~user@user/gehmehgeh)
10:02:14 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
10:09:11 <tomsmeding> playground now has 9.8.4 :)
10:10:55 __monty__ joins (~toonn@user/toonn)
10:15:48 m1dnight joins (~m1dnight@d8D861908.access.telenet.be)
10:19:08 × m1dnight quits (~m1dnight@d8D861908.access.telenet.be) (Client Quit)
10:23:02 m1dnight joins (~m1dnight@d8D861908.access.telenet.be)
10:27:57 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
10:28:27 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
10:38:52 sawilagar joins (~sawilagar@user/sawilagar)
10:39:00 fp joins (~Thunderbi@2001:708:20:1406::1370)
10:40:54 × CiaoSen quits (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
10:42:23 <fp> Hey there, I have two lists that I'm trying to get the absolute difference of, ie the absolute value of their element-wise difference. I'm trying to do this with =zipWith=, but I'm getting errors that I'm having a hard time understanding. If I do =zipWith (abs $ (-)) [1, 2, 3] [3, 2, 1]=, it says "No instance for (Num (Int -> Int -> Int)) arising from a use of ‘abs’". Does this mean =abs= isn't meeting the =Num= constraint?
10:44:12 <int-e> @pl \x y -> abs (x - y)
10:44:12 <lambdabot> (abs .) . (-)
10:44:28 <int-e> you're applying abs to a function
10:45:40 <fp> Is it better to use what you wrote or what lambdabot wrote
10:45:58 <fp> int-e
10:45:59 <int-e> I'd use the function
10:46:08 <int-e> that is what I wrote
10:46:08 <fp> kk thank you
10:46:15 × sawilagar quits (~sawilagar@user/sawilagar) (Quit: Leaving)
10:49:53 <haskellbridge> <Morj> fp: This means that you're trying to use a function (int -> int -> int) as a number. In your example the function is "(-)", and you're using it in "abs (-)" (you can remove $ here). For such expressions I recommend first writing it in point-ful style, like "zipWith (\a b -> abs $ a - b)", and then removing the points by hand, because what lambdabot recommends is wow (=
10:50:19 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
10:50:36 <haskellbridge> <Morj> Maybe something like "map (abs . uncurry (-)) $ zip [1,2,3] [3,2,1]" would look better
10:50:48 tv joins (~tv@user/tv)
10:51:35 <geekosaur> I'd avoid the ($) as well since you seem to be confused about the difference between it and (.)
10:51:57 <fp> Morj point-ful style refers to this sort of closure thing, \x y -> abs x - y
10:52:11 <fp> I am indeed confused by the many symbols
10:52:24 <int-e> beware that abs x - y is different from abs (x - y)
10:52:38 <fp> right I just wrote that without thinking too hard
10:53:55 <haskellbridge> <Morj> Pointful and pointfree refers to the points as in maths, that is inputs to functions. Like if you write "graph of f(x)", x is a point on a line. Similarily, in haskell you can either write "f = \x -> abs x", or "f = abs" - the second one is point-free because you don't mention x. It's a bit confusing, everyone agrees :D
10:54:22 × tinjamin4 quits (~tinjamin@banshee.h4x0r.space) (Remote host closed the connection)
10:54:36 <fp> I see, ok
10:56:38 tinjamin4 joins (~tinjamin@banshee.h4x0r.space)
10:59:06 sawilagar joins (~sawilagar@user/sawilagar)
11:01:09 kuribas joins (~user@ptr-17d51emmusfz7zv97iv.18120a2.ip6.access.telenet.be)
11:05:27 × arahael quits (~arahael@user/arahael) (Quit: Lost terminal)
11:12:07 × kmein quits (~weechat@user/kmein) (Ping timeout: 264 seconds)
11:13:57 kmein joins (~weechat@user/kmein)
11:23:31 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 264 seconds)
11:23:42 ski normally avoids using `$' altogether
11:23:47 <ski> (with a few exceptions)
11:23:55 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
11:25:41 <ski> fp : `(f .) . g' is a known pattern for `\x y -> f (g x y)' (i defined `(.:) = (.) . (.)', many years ago, which would enable writing `f .: g'. generalizes to more curried parameters). many people prefer not using either of these, either using a function abstraction expression (lambda), or naming the function
11:27:17 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds)
11:35:51 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 276 seconds)
11:45:52 fp joins (~Thunderbi@130.233.70.205)
11:47:18 pavonia joins (~user@user/siracusa)
11:49:25 xff0x joins (~xff0x@2405:6580:b080:900:2e90:f46e:2f28:18f7)
11:51:39 × ubert quits (~Thunderbi@p200300ecdf42fd867c5a9f24741cb45b.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
11:55:18 CiaoSen joins (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da)
11:56:44 APic joins (apic@apic.name)
11:56:58 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
11:57:30 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
11:58:20 kmein joins (~weechat@user/kmein)
12:00:12 Guest87 joins (~Guest87@81.144.164.210)
12:02:00 billchenchina joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
12:04:05 × billchenchina- quits (~billchenc@103.118.42.229) (Ping timeout: 248 seconds)
12:04:59 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
12:08:48 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
12:09:23 <ski> (with `(.::) = (.) . (.) . (.)' (same number of dots, number of characters tells how many parameters are passed to the inner/right/first function), `f .:: g' is `((f .) .) . g' is `\x y z -> f (g x y z)'. btw, note that `(f .: g) x y z is `f (g x y) z', passing on two parameters to `g')
12:09:28 <ski> fp ^
12:10:57 euleritian joins (~euleritia@dynamic-176-006-139-191.176.6.pool.telefonica.de)
12:11:03 <fp> Gosh how do you disable thunderbird from turning haskell into emojis
12:11:54 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
12:11:56 <dminuoso> fp: You can disable "Display emoticons as graphics" globally
12:12:04 <dminuoso> Pick your poison.
12:12:29 × fp quits (~Thunderbi@130.233.70.205) (Quit: fp)
12:12:51 fp joins (~Thunderbi@2001:708:20:1406::1370)
12:14:40 <fp> But so in the case of (f .) . g, is (f .) as an operator using (.), or is it its own thing
12:15:49 <dminuoso> fp: It is called a section
12:16:48 <dminuoso> For operators (functions whose name are not alphanumeric but other characters) there's a special shorthand where you can partially apply the second argument (and the first argument) by writing `(a .)` or `(. b)` - we call these sections.
12:17:24 <dminuoso> So (a .) is the same as `\x -> (a . x)` and `(. b)` is the same as `\x -> (x . b)`
12:18:40 <dminuoso> And also (a .) is obviously the same as ((.) a)
12:18:51 <dminuoso> Though (b .) has no equivalent here except the lambda form above.
12:19:03 <ski> (fp : see PM for what you missed, before)
12:19:54 <ski> `(^ 2)' is the squaring function, and `(2 ^)' is the power-of-two function
12:20:03 <dminuoso> I think there may be a small difference with respect to strictness between `\x -> a . x` and `((.) a`, let me check real quick
12:21:04 × euleritian quits (~euleritia@dynamic-176-006-139-191.176.6.pool.telefonica.de) (Ping timeout: 272 seconds)
12:21:15 × biberu quits (~biberu@user/biberu) (Ping timeout: 252 seconds)
12:22:08 euleritian joins (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de)
12:22:21 <dminuoso> % (...) True = \_ -> True; (...) _ = \_ -> False
12:22:21 <yahb2> <no output>
12:22:31 <dminuoso> % (...) undefined `seq` ()
12:22:31 <yahb2> ()
12:22:34 <dminuoso> Why does this not diverge?
12:22:48 <geekosaur> dminuoso, the standard requires them to be identical, I think ghc bends that slightly in some cases
12:24:35 <fp> Is (f .) . g similar to (\p, x -> f (g (p x))) ?
12:25:32 <dminuoso> What is `\p, x -> ...` supposed to denote?
12:25:51 <fp> p I suppose is some function and x some value
12:26:01 × euleritian quits (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
12:26:04 <dminuoso> And that comma?
12:26:13 <fp> Me forgetting the syntax
12:26:18 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
12:26:37 <Leary> % :set -fpedantic-bottoms
12:26:37 <yahb2> <no output>
12:26:40 <Leary> % (...) True = \_ -> True; (...) _ = \_ -> False
12:26:40 <yahb2> <no output>
12:26:44 <Leary> % (...) undefined `seq` ()
12:26:44 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:101:7 in interactive:Ghci24
12:27:20 <fp> so more correctly, (\p x -> f (g (p x)))
12:27:43 <ncf> that doesn't even have the same type as (f .) . g
12:27:58 <dminuoso> Leary: Err. I am confused, is GHC diverging from the haskell standard with respect to function argument pattern matching without that flag?
12:28:05 <geekosaur> yes
12:28:18 <dminuoso> Well okay.. :S
12:28:19 <Leary> dminuoso: Without -fpedantic-bottoms, ghc allows some transformations that make code "more defined".
12:28:45 <merijn> dminuoso: I mean, GHC diverges from the Haskell standard in, like, 20 different ways :p
12:28:52 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/users_guide/bugs.html#expressions-and-patterns
12:29:08 <fp> So where is my logic breaking down? Here's how I got to that expression: (f .) . g becomes (\p -> (f . p)) . g becomes (\p x -> f (p x)) . g becomes (\p x -> (f . g) (p x)) becomes (\p x -> f (g (p x)))
12:29:51 <merijn> dminuoso: In fact, this divergence is even documented
12:29:58 <merijn> ah, geekosaur beat me
12:30:03 <ncf> (f .) . g
12:30:04 <ncf> = \p -> (f .) (g p)
12:30:05 <ncf> = \p -> f . g p
12:30:06 <ncf> = \p x -> f (g p x)
12:30:31 <ncf> your first step is wrong
12:30:47 <ski> fp : "Is (f .) . g similar to (\p, x -> f (g (p x))) ?" -- no
12:30:54 <fp> I don't understand the first step
12:31:05 <ncf> i am applying the definition of (.)
12:31:07 <ncf> @src (.)
12:31:07 <lambdabot> (f . g) x = f (g x)
12:31:25 <ncf> with f := (f .)
12:31:29 <dminuoso> % (undefined .) `seq` ()
12:31:30 <ski> ((f .) . g) p = (f .) (g p)
12:31:35 <dminuoso> % (undefined .) `seq` ()b
12:31:35 <yahb2> <interactive>:113:23: error: [GHC-88464] Variable not in scope: b
12:31:39 <dminuoso> % (undefined .) `seq` ()
12:31:39 <yahb2> ()
12:31:39 <fp> I see ok
12:31:42 <dminuoso> % (. undefined) `seq` ()
12:31:42 <yahb2> ()
12:32:03 <dminuoso> Okay so (undefined .) is strictly (heh the pun) speaking not the same as ((.) undefined)
12:32:23 <dminuoso> But since GHC is non-pedantic about bottoms, I guess this makes no difference in practice
12:32:42 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
12:32:48 <dminuoso> Leary: Thanks for the pointer./
12:33:05 <geekosaur> I was looking for where there IIRC used to be a discussion of how ghc deviates from the standard there, but IIRC the standard is actually at fault there because sections introduce a little extra laziness
12:33:46 <geekosaur> since they aren't rewritten to the prefix partial application, but to lambdas
12:34:34 <ski> `(<expr> <op>)' could have been specified as `(<op>) <expr>', and `(<op> <expr>)' as `flip (<op>) <expr>', i suppose
12:34:40 <ski> (abstract, not concrete, syntax)
12:35:55 <geekosaur> oh, it's in https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/rebindable_syntax.html#postfix-operators
12:36:26 <geekosaur> which says ghc actually does the rewrite I mentioned for left sections, instead of using a lambda like the Report says
12:38:21 <dminuoso> geekosaur: Oh I think you may have misread my statement about strictness difference between ``\x -> a . x` and `((.) a` - note that the second part is not a section but just a regular application.
12:38:42 <dminuoso> Not that it's really important, but I was still trying to understand how you could say the language report requires them to be identical.
12:38:50 <geekosaur> no, this was a side thing set off by a statement before that
12:39:14 <geekosaur> [02 12:22:48] <geekosaur> dminuoso, the standard requires them to be identical, I think ghc bends that slightly in some cases
12:39:25 <geekosaur> this is that bending
12:39:32 <dminuoso> Yeah I meant that, it seemed to be in response to `12:20:03 dminuoso │ I think there may be a small difference with respect to strictness between `\x -> a . x` and `((.) a`, let me check real quick`
12:40:09 <geekosaur> right, the answer to that is that sections aren;t rewritten to the prefix form normally, they use a lambda which introduces a little laziness
12:40:27 <geekosaur> but "in some cases" was the PostfixOperators thing, which I wanted to verify
12:40:49 <dminuoso> I was not aware of the PostfixOperators extension and the interaction here, either.
12:42:59 <dminuoso> Im curious why allowing eta-expansion through case-of allows for better transformations.
12:43:10 × Guest87 quits (~Guest87@81.144.164.210) (Quit: Client closed)
12:45:54 <geekosaur> that might be a question for #ghc although I think at the moment they're a bit busy (gitlab seems to have fallen over)
12:46:11 <dminuoso> Well, gitlab regularly falls over. :-)
12:46:24 <geekosaur> yes, but it usually recovers
12:46:59 <geekosaur> something got corruped by out of disk space and various things aren't working right including updating MRs and CI
12:47:25 <fp> Could (f .) . g be interpreted generally to mean "unary f of a g that takes two arguments"?
12:47:49 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
12:48:22 rvalue joins (~rvalue@user/rvalue)
12:48:45 <dminuoso> 1. (f .) . g ===> \x -> (f .) (g x)
12:49:13 <dminuoso> 2. \x -> (f .) (g x) ===> (\y -> f . y) (g x)
12:49:33 j1n37 joins (j1n37@user/j1n37)
12:49:45 <dminuoso> 3. (\y -> f . y) (g x) ==> f . (g x)
12:50:34 <dminuoso> 4. f . (g x) ==> \z -> f (g x z)
12:51:57 <dminuoso> Oh hold on, I dropped a \x along the way.
12:52:37 <fp> I believe understand the desugaring at this point, I'm trying to understand more abstractly what the symbols mean together, i.e. how does it add meaning beyond extra points in code golf
12:52:38 <dminuoso> 2. \x -> (f .) (g x) ===> \x -> (\y -> f . y) (g x)
12:52:54 <fp> or fewer points as it were
12:54:29 tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl)
12:55:31 j1n37- joins (j1n37@user/j1n37)
12:55:55 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
12:58:42 × tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
12:59:59 <dminuoso> fp: https://paste.tomsmeding.com/xOBZd15y
13:00:54 <dminuoso> Sometimes you find an operator called (.:) for this defined as (f .: g) x y = f (g x y)
13:00:54 × ridcully quits (~ridcully@pd951f245.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:01:30 <dminuoso> Idea is that its sort of like `f . g` except g gets applied to two arguments before passing its result to f
13:01:45 <dminuoso> "compose after second argument" maybe?
13:01:57 <ski> dminuoso : where is eta through `case'-`of' mentioned ?
13:02:34 <ski> (yea, i mentioned coming up with `(.:)', years ago, above)
13:02:56 <dminuoso> ski: fun True = \_ -> True; fun _ = \_ -> False desugars into `fun x = case x of True -> \_ -> True; ....`
13:03:37 <dminuoso> And yet it will eta-expand through that case-of into `fun x y = case x of ...`
13:03:54 <dminuoso> i.e. `fun x y = case x of True -> True; ...`
13:04:01 <ski> ah, right
13:04:43 × j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
13:05:50 j1n37 joins (j1n37@user/j1n37)
13:10:56 gorignak joins (~gorignak@user/gorignak)
13:11:02 <ski> (.. i was thinking about a general ("commuting") eta-conversion for sum, not just having `case e of Left x0 -> Left x0; Right x1 -> Right x1 = e', but even `case e of Left x0 -> e0[y := Left x0]; e1[y := Right x1] = e0[y := e]' (which obviously breaks bottoms))
13:11:24 billchenchina- joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331)
13:12:03 × billchenchina- quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded)
13:12:39 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
13:12:56 billchenchina- joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331)
13:13:49 × billchenchina- quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded)
13:13:55 × billchenchina quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 260 seconds)
13:15:03 billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331)
13:15:27 × gorignak quits (~gorignak@user/gorignak) (Read error: Connection reset by peer)
13:15:55 × billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded)
13:16:43 <briandaed> not strictly Haskell but persistent, does it handle 'IN' clause, can't find it in docs
13:17:31 billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331)
13:18:30 × billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded)
13:19:14 <dminuoso> briandaed: https://hackage.haskell.org/package/persistent-2.14.6.3/docs/Database-Persist-Types.html#t:PersistFilter seems like
13:19:33 billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331)
13:19:56 × billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Remote host closed the connection)
13:20:14 <briandaed> dminuoso: ha! thanks!
13:20:40 <dminuoso> It is unclear how to construct that filter.. but hey you wanted some opaque layer ontop of SQL apparently! :-)
13:21:16 <dminuoso> Probably have to manually construct a Filter https://hackage.haskell.org/package/persistent-2.14.6.3/docs/Database-Persist-Types.html#t:Filter
13:21:21 j1n37 joins (j1n37@user/j1n37)
13:21:23 <briandaed> dminuoso: will play with that, still better than some folding with different constraints
13:21:50 billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331)
13:21:54 <dminuoso> "It is possible to construct values using this that will create malformed runtime bvalues."
13:22:08 <dminuoso> Comments like this make me wonder why you would pick a library like this in the first place.
13:22:25 <dminuoso> If at least you had some compile-time guarantee of generating healthy SQL I might get it.
13:22:51 <briandaed> dminuoso: if it would be me, I would stay with stored procedures, but I have to use what is there
13:28:18 billchenchina- joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
13:29:29 × billchenchina- quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Remote host closed the connection)
13:31:49 × billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Ping timeout: 260 seconds)
13:31:51 j1n37- joins (j1n37@user/j1n37)
13:31:52 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 244 seconds)
13:33:19 × notzmv quits (~umar@user/notzmv) (Ping timeout: 252 seconds)
13:38:51 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
13:39:05 notzmv joins (~umar@user/notzmv)
13:39:14 gentauro joins (~gentauro@user/gentauro)
13:40:15 × j1n37- quits (j1n37@user/j1n37) (Ping timeout: 272 seconds)
13:49:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:51:23 j1n37 joins (j1n37@user/j1n37)
13:51:27 <merijn> dminuoso: Compile time guarantees of healthy SQL are nonsense anyway
13:51:46 <merijn> because how do you guarantee the database at runtime is the one you had at compile time
13:53:07 <briandaed> fair point
13:53:08 <dminuoso> merijn: Well, that is just an operational question, not one worth exploring honestly.
13:53:34 <dminuoso> It's like saying "How do you guarantee Haskell code does what it does at runtime, when someone can just take an editor and manipulate your object files"
13:53:47 <dminuoso> If we just assume it does not happen, it's not an issue.
13:54:26 <dminuoso> Here at work we dont have people log onto databases and change the DDL, because it's not part of how we deal with database.
13:54:39 <dminuoso> Just like people dont just make arbitrary modifications to filesystems
13:55:08 <merijn> dminuoso: My point was that I'd rather have a simple "validate at runtime and fail loudly"
13:55:13 <merijn> over "validate at compile time"
13:55:26 <dminuoso> Well there's different levels of compile time validation.
13:55:44 <merijn> dminuoso: We don't have people touch our database directly anyway and yet there's been like 3 incidents of unanticipated changes in the past year
13:55:59 <dminuoso> hasql for example has this cool nifty TH helper that has the postgresql syntax embedded and can at least guarantee syntactically valid SQL.
13:56:03 <merijn> because it turns out the backup/restore didn't catch things, etc.
13:56:19 <dminuoso> It just speeds up the feedback loop for typos.
13:56:26 <haskellbridge> <maerwald> dminuoso: I hacked on that
13:56:48 <haskellbridge> <maerwald> upstream is not very contribution friendly though
13:56:55 <dminuoso> maerwald: Oh hey there.
13:57:13 <dminuoso> Oh okay, how are they unfriendly towards contribution?
13:58:26 <haskellbridge> <maerwald> I worked on some blockchain nonsense that generates SQL and then used https://hackage.haskell.org/package/postgresql-syntax and added quasi quoters and then manipulated part of the AST
13:59:24 <haskellbridge> <maerwald> He did not want to add quasiquoters and instead expected me to do that in a new package (hell no... it'll break on any adjustment of the AST)
13:59:41 <merijn> dminuoso: That only speeds up the feedback loop for typos if the TH doesn't slow down your over all feedback cycle :p
14:00:55 <dminuoso> merijn: It's not that Im a big fan of hasql either, I have a long list of issues with most database interface libraries, no matter how simple or complex, I think most have bad smells to them.
14:01:15 <haskellbridge> <maerwald> people are resistant to learning SQL
14:02:20 <dminuoso> Say in Haskell even the ones requiring you to write SQL have their issues. postgresql-simple is highly imperformant and uses a hand-crafted interpolation syntax instead of using the existing robust one.
14:02:28 <dminuoso> hasql drags this huge universe of nikitas libraries along
14:02:39 <dminuoso> I dislike all of them for one reason or another.
14:03:17 <haskellbridge> <maerwald> dminuoso: it's modular, but then yes... if you want to contribute, he expects you to write a new package and then you get dragged along on any chances that there may be in the future
14:03:29 <haskellbridge> <maerwald> * changes
14:03:35 j1n37- joins (j1n37@user/j1n37)
14:03:48 <geekosaur> the flip side of that is nobody wants to get saddled with supporting drive-by code
14:04:03 ridcully joins (~ridcully@p508acf2e.dip0.t-ipconnect.de)
14:04:22 <haskellbridge> <maerwald> yeah, I'm known as a drive-by maintainer :D
14:04:44 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
14:04:54 <dminuoso> Well you yourself implied that this was work related.
14:05:07 <haskellbridge> <maerwald> I think the reason is the human interaction causing overhead
14:05:18 <dminuoso> Regardless of your personal ambition, if your work projects or employment changes, will you carry on the torch for all prior work related submissions?
14:05:31 <haskellbridge> <maerwald> as in: if he wants to make a new release, he now has to inquire
14:06:49 <dminuoso> At any rate. The one library across all language I think approaches database interaction the right way is ActiveRecord. It has generally good ergonomics, is very expressible, but - and this is the crucial part - It has this universal trap door of exposing the underlying relational algebra as a tree, or injecting a partial relational algebra tree in any spot.
14:07:23 <dminuoso> So if at some point you no longer care to cater its somewhat arbitrary interface or you need some prorgrammatic access, the relational algebra representation is as universal as SQL.
14:07:50 <dminuoso> Perhaps not as intuitive to the casual user, but its far more modular.
14:08:02 alexherbo2 joins (~alexherbo@2a02-8440-3314-645c-9913-39d7-dad5-8363.rev.sfr.net)
14:08:34 × ridcully quits (~ridcully@p508acf2e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:09:09 × CiaoSen quits (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
14:10:11 <dminuoso> Though since you can just write `Arel.SQL("...")` you can use your traditional SQL intuition and conjure up these cool fragments that can be used
14:10:48 <dminuoso> At some point I should explore this idea in Haskell to introduce the 17th library to finally make SQL usable in Haskell.
14:13:41 gorignak joins (~gorignak@user/gorignak)
14:14:50 vanishingideal joins (~vanishing@user/vanishingideal)
14:15:14 j1n37 joins (j1n37@user/j1n37)
14:15:21 × j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
14:18:58 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 252 seconds)
14:21:14 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
14:22:15 euleritian joins (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de)
14:26:44 × euleritian quits (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de) (Ping timeout: 252 seconds)
14:27:14 × pierrot quits (~pi@user/pierrot) (Quit: ZNC 1.8.2 - http://znc.in)
14:27:34 pierrot joins (~pi@user/pierrot)
14:28:36 euleritian joins (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de)
14:30:47 j1n37- joins (j1n37@user/j1n37)
14:31:06 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 246 seconds)
14:32:11 ridcully joins (~ridcully@p57b52f42.dip0.t-ipconnect.de)
14:33:15 × euleritian quits (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de) (Ping timeout: 252 seconds)
14:37:56 <michaelis> Hi! I'm completely new to Haskell. Could someone explain the meaning of ->? I see it everywhere but no explanation. For example Pt -> a -> a -> Point. What does this mean?
14:38:20 <merijn> michaelis: That's a function type
14:39:16 <merijn> michaelis: "Int -> Int" is a function that takes an Int argument and returns an Int
14:39:44 j1n37 joins (j1n37@user/j1n37)
14:39:47 dminuoso suggests a better example than an endofunction
14:40:25 × j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
14:42:38 Guest31 joins (~Guest31@185.176.244.77)
14:42:58 <michaelis> merijn: But what does it mean that the type of a binary data constructor Pt is a -> a -> -> Point a?
14:43:17 <dminuoso> michaelis: It is a right-associative operator . That means `Int -> Double -> Char` associates as `Int -> (Double -> Char)`
14:43:27 <michaelis> Sorry, too many -> before point. Should only be one.
14:43:50 <haskellbridge> <Morj> You can usually read "a -> b -> c" as "(a, b) -> c"
14:44:01 <dminuoso> So given that most recent example it is a function taking an `Int` and returning a function, which itself takes a Double and returns a Char. This roughly acts as if this was a function taking both an Int and a Double and returning a Char.
14:44:41 <dminuoso> michaelis: Note strictly speaking the former is the correct way to look at it, the second way (thinking of this as a two argument function) is more often useful.
14:45:09 <michaelis> dminuoso: Thank you. I'm trying to understand it.
14:45:19 <dminuoso> michaelis: Let me give you a second bit that might help
14:45:20 <michaelis> And thank you merijn.
14:45:54 <dminuoso> michaelis: On the value level, if you apply a function `f` to two arguments `f 1 3.7` it is now left associative, that is `(f 1) 3.7`, so you could think of this as two applications after another.
14:46:25 <dminuoso> So `(f 1)` first applies `f` to `f`, to get that function `Double -> Char` back, and then apply that function to `3.7` to get some Char back.
14:46:39 j1n37- joins (j1n37@user/j1n37)
14:46:40 <dminuoso> err: "first applies `f` to `1`"
14:46:51 × Square2 quits (~Square4@user/square) (Ping timeout: 265 seconds)
14:47:16 <dminuoso> michaelis: So these two ideas belong together in a way.
14:47:32 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 255 seconds)
14:48:52 <michaelis> dminuoso: Thank you. I will have to contemplate it for a while. :)
14:48:59 <dminuoso> michaelis: So similarly, we could think of `f x y = ...` as `f = \x -> \y -> ...` if that makes sense.
14:49:07 <dminuoso> (For the defining side of a function)
14:49:14 <dminuoso> So add that to your puzzle pieces.
14:50:13 Square joins (~Square@user/square)
14:51:14 <michaelis> It doesn't since I don't know where the backslash is coming from but as I said it will take some time understanding all this.
14:51:31 <dminuoso> michaelis: `\x -> ...` is an anonymous function taking an argument x
14:51:40 <michaelis> I understand.
14:51:44 <dminuoso> yahb2: fun = \x -> x * 2
14:51:51 <dminuoso> % fun = \x -> x * 2
14:51:51 <yahb2> <no output>
14:51:53 <dminuoso> % fun 10
14:51:53 <yahb2> 20
14:52:04 <dminuoso> % add = \x -> \y -> x + y
14:52:04 <yahb2> <no output>
14:52:09 <dminuoso> % :t add
14:52:09 <yahb2> add :: Num a => a -> a -> a
14:52:12 <dminuoso> % :t add 10
14:52:12 <yahb2> add 10 :: Num a => a -> a
14:52:14 <dminuoso> % :t add 10 20
14:52:14 <yahb2> add 10 20 :: Num a => a
14:52:17 <dminuoso> % add 10 20
14:52:17 <yahb2> 30
14:52:42 <dminuoso> michaelis: If that type confuses you, feel free to imagine `a` read `Int` and ignore that Num => part.
14:52:45 <mauke> > (\x -> [x,x,x]) 42
14:52:46 <lambdabot> [42,42,42]
14:53:06 <mauke> > ((\x -> (\y -> [x,y,x]) 42) 3
14:53:08 <lambdabot> <hint>:1:30: error:
14:53:08 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
14:53:18 <mauke> > (\x -> (\y -> [x,y,x]) 42) 3
14:53:19 <lambdabot> [3,42,3]
14:54:02 <mauke> > ((\x -> (\y -> [x,y,x])) 42) 3
14:54:03 <lambdabot> [42,3,42]
14:54:13 halloy1972 joins (~halloy197@ptr-fyq2h23bzewebp3qgjx.18120a2.ip6.access.telenet.be)
14:54:49 <mauke> > ((\x -> \y -> [x,y,x]) 42) 3
14:54:50 <lambdabot> [42,3,42]
14:55:00 <mauke> > ((\x y -> [x,y,x]) 42) 3
14:55:01 <lambdabot> [42,3,42]
14:55:08 halloy1972 is now known as Piegie
14:55:16 <mauke> > (\x y -> [x,y,x]) 42 3
14:55:17 <lambdabot> [42,3,42]
14:55:28 <mauke> > let f = \x y -> [x,y,x] in f 42 3
14:55:30 <lambdabot> [42,3,42]
14:55:37 <mauke> > let f x y = [x,y,x] in f 42 3
14:55:39 <lambdabot> [42,3,42]
14:56:00 euandreh1 joins (~Thunderbi@189.6.105.228)
14:56:11 j1n37 joins (j1n37@user/j1n37)
14:56:15 <michaelis> Thank you.
14:56:48 × j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
14:58:22 × Guest31 quits (~Guest31@185.176.244.77) (Quit: Client closed)
15:08:42 j1n37- joins (j1n37@user/j1n37)
15:09:38 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
15:13:21 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
15:14:57 × j1n37- quits (j1n37@user/j1n37) (Ping timeout: 248 seconds)
15:15:10 weary-traveler joins (~user@user/user363627)
15:17:44 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:21:22 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
15:23:51 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
15:30:43 acidjnk_new3 joins (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de)
15:33:45 SlackCoder joins (~SlackCode@208.26.70.132)
15:33:48 j1n37 joins (j1n37@user/j1n37)
15:34:59 × SlackCoder quits (~SlackCode@208.26.70.132) (Remote host closed the connection)
15:35:06 euleritian joins (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de)
15:35:27 SlackCoder joins (~SlackCode@208.26.70.132)
15:36:59 × SlackCoder quits (~SlackCode@208.26.70.132) (Remote host closed the connection)
15:37:26 SlackCoder joins (~SlackCode@208.26.70.132)
15:39:36 × Alleria quits (~Alleria@user/alleria) (Remote host closed the connection)
15:40:10 Alleria joins (~Alleria@user/alleria)
15:43:05 euandreh1 is now known as euandreh
15:43:49 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:44:21 gorignak joins (~gorignak@user/gorignak)
15:44:28 × j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds)
15:44:49 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 260 seconds)
15:54:01 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:54:33 gorignak joins (~gorignak@user/gorignak)
16:02:02 <fp> I've made a method diff that computes the difference of an [Int], much like np.diff. I made it with =diff (x:xs) = (head xs - x) : diff xs= and with diff of 1- or 0-element arrays returning []. Is this an idiomatic solution? It felt odd not to use like scanl or something
16:04:12 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:04:44 gorignak joins (~gorignak@user/gorignak)
16:04:53 <mauke> > (\xs -> zipWith (-) xs (drop 1 xs)) [1,10,4,4,5,2,4]
16:04:54 <lambdabot> [-9,6,0,-1,3,-2]
16:05:09 <mauke> > (\xs -> zipWith subtract xs (drop 1 xs)) [1,10,4,4,5,2,4]
16:05:10 <lambdabot> [9,-6,0,1,-3,2]
16:05:47 <mauke> (someone else can add the <*>)
16:07:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:08:09 <ncf> @where zip.ap.tail
16:08:09 <lambdabot> I know nothing about zip.ap.tail.
16:09:06 <ncf> @quote zip.ap.tail
16:09:07 <lambdabot> quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers
16:14:23 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:14:54 gorignak joins (~gorignak@user/gorignak)
16:16:36 Alleria joins (~Alleria@user/alleria)
16:18:00 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:22:18 <ski> (`tail' works fine in place of `drop 1', there)
16:24:34 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:24:53 Alleria_ joins (~Alleria@user/alleria)
16:25:05 gorignak joins (~gorignak@user/gorignak)
16:27:07 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 252 seconds)
16:29:52 Ritual12 joins (~Ritual12@85-76-13-113-nat.elisa-mobile.fi)
16:30:23 <merijn> ski: drop 1 has the nicety of not randomly crashing, though :p
16:31:12 <int-e> > zip [] (tail [])
16:31:14 <lambdabot> []
16:31:40 <int-e> all ski said is that it works fine in this case
16:31:47 <ski> > (\xs -> getZipList ((-) <$> ZipList xs <*> ZipList (tail xs))) [1,10,4,4,5,2,4]
16:31:49 <lambdabot> [-9,6,0,-1,3,-2]
16:31:54 <ski> > (\xs -> getZipList (liftA2 (-) (ZipList xs) (ZipList (tail xs)))) [1,10,4,4,5,2,4]
16:31:56 <lambdabot> [-9,6,0,-1,3,-2]
16:32:12 × Alleria_ quits (~Alleria@user/alleria) (Ping timeout: 246 seconds)
16:32:15 <Ritual12> When listing what functions to import from given module, is it better for readability to list functions with symbolic names before functions with alphanumeric names?
16:32:18 <ski> > ((getZipList .) . (. ZipList)) (liftA2 (-) <$> id <*> ((ZipList .) . (. getZipList)) tail) [1,10,4,4,5,2,4]
16:32:19 <lambdabot> [-9,6,0,-1,3,-2]
16:32:26 <ski> > ((getZipList .) . (. ZipList)) ((liftA2 . liftA2) (-) id (((ZipList .) . (. getZipList)) tail)) [1,10,4,4,5,2,4]
16:32:28 <lambdabot> [-9,6,0,-1,3,-2]
16:33:10 <ski> (last two are pretty ugly, with the `ZipList'&`getZipList' nonsense)
16:33:39 <ski> Ritual12 : usually i'd list them in groups of related functions
16:34:11 <int-e> but they all come from a single module, so aren't they automaticall related :)
16:34:24 × notzmv quits (~umar@user/notzmv) (Ping timeout: 260 seconds)
16:34:45 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:35:02 <fp> Neat, thanks for the tips
16:35:07 <Ritual12> I am importing LiftA2 and (<*>) from Control.Applicative and was wondering which to list first.
16:35:16 gorignak joins (~gorignak@user/gorignak)
16:35:37 Alleria joins (~Alleria@user/alleria)
16:36:14 <int-e> I don't think it makes a difference for just two imports.
16:36:40 <int-e> doesn't Prelude export <*> these days
16:36:58 <ski> @index (<*>)
16:36:59 <lambdabot> Control.Applicative, Prelude, Compiler.Hoopl
16:38:02 <Ritual12> So I do not need to import <*>?
16:38:38 <ski> (of course, instead of `((post .) . (. pre)) f', you can type `post . f . pre', i just wanted to localize/separate the `pre' & `post' (`ZipList' and `getZipList', above) together. would probably be more readable without that)
16:38:46 <ski> correct, Ritual12
16:38:59 <ski> @index liftA2
16:38:59 <lambdabot> Control.Applicative
16:40:11 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 252 seconds)
16:43:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:44:36 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
16:44:56 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:45:27 gorignak joins (~gorignak@user/gorignak)
16:46:15 Alleria joins (~Alleria@user/alleria)
16:46:20 <Ritual12> @index (&&&)
16:46:21 <lambdabot> Control.Arrow
16:52:27 Alleria_ joins (~Alleria@user/alleria)
16:53:01 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 252 seconds)
16:55:07 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:55:38 gorignak joins (~gorignak@user/gorignak)
17:00:13 × sawilagar quits (~sawilagar@user/sawilagar) (Remote host closed the connection)
17:00:37 sawilagar joins (~sawilagar@user/sawilagar)
17:02:59 × SlackCoder quits (~SlackCode@208.26.70.132) (Ping timeout: 260 seconds)
17:05:18 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
17:05:50 gorignak joins (~gorignak@user/gorignak)
17:08:47 × Alleria_ quits (~Alleria@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:11:35 <Ritual12> @pl liftA2 (&&) (>= lower) (<= upper)
17:11:35 <lambdabot> liftA2 (&&) (>= lower) (<= upper)
17:12:31 <Ritual12> @pl \lower upper -> liftA2 (&&) (>= lower) (<= upper)
17:12:31 <lambdabot> (. flip (<=)) . liftA2 (&&) . flip (>=)
17:14:55 Alleria joins (~Alleria@user/alleria)
17:15:29 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
17:16:01 gorignak joins (~gorignak@user/gorignak)
17:16:03 <Ritual12> Why flip (<=) and flip(>=) instead of just using (>=) and (<=)?
17:16:52 × euleritian quits (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer)
17:17:10 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
17:17:17 <int-e> because @pl is unaware of the Ord class
17:19:20 × Piegie quits (~halloy197@ptr-fyq2h23bzewebp3qgjx.18120a2.ip6.access.telenet.be) (Ping timeout: 264 seconds)
17:21:15 × briandaed quits (~root@user/briandaed) (Quit: Lost terminal)
17:21:27 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
17:22:08 euleritian joins (~euleritia@77.22.252.159)
17:25:40 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
17:26:11 gorignak joins (~gorignak@user/gorignak)
17:32:28 budabudabee joins (~budabudab@2600:100e:b308:e5d4:2c68:9c6f:c307:d044)
17:33:11 ft joins (~ft@p508db9c7.dip0.t-ipconnect.de)
17:35:51 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
17:35:59 j1n37 joins (j1n37@user/j1n37)
17:36:22 gorignak joins (~gorignak@user/gorignak)
17:36:33 × kuribas quits (~user@ptr-17d51emmusfz7zv97iv.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
17:38:00 × j1n37 quits (j1n37@user/j1n37) (Read error: Connection reset by peer)
17:41:42 JuanDaugherty joins (~juan@user/JuanDaugherty)
17:44:54 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:46:02 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
17:46:30 <hellwolf> > even . not . fst
17:46:31 <lambdabot> error:
17:46:31 <lambdabot> • No instance for (Integral Bool) arising from a use of ‘even’
17:46:31 <lambdabot> • In the first argument of ‘(.)’, namely ‘even’
17:46:33 gorignak joins (~gorignak@user/gorignak)
17:47:37 <hellwolf> > Just . negate . curry
17:47:39 <lambdabot> error:
17:47:39 <lambdabot> • No instance for (Typeable a0)
17:47:39 <lambdabot> arising from a use of ‘show_M56331944392192085928’
17:48:13 <int-e> :t Just . negate . curry
17:48:14 <lambdabot> Num (a -> b -> c) => ((a, b) -> c) -> Maybe (a -> b -> c)
17:48:38 <int-e> :t Just . negate . uncurry
17:48:39 <lambdabot> Num ((a, b) -> c) => (a -> b -> c) -> Maybe ((a, b) -> c)
17:48:57 <int-e> :t (Just . negate .) . uncurry
17:48:58 <lambdabot> error:
17:48:58 <lambdabot> The operator ‘.’ [infixr 9] of a section
17:48:58 <lambdabot> must have lower precedence than that of the operand,
17:49:11 <int-e> :t ((Just . negate) .) . uncurry
17:49:11 <lambdabot> Num a1 => (a2 -> b -> a1) -> (a2, b) -> Maybe a1
17:50:13 <int-e> (TBH the fact that (a . b .) is invalid annoys me a little bit. It's associative after all...)
17:50:28 <int-e> :t (. id . id)
17:50:29 <lambdabot> (b -> c) -> b -> c
17:50:41 <int-e> and *this* is allowed
17:50:56 <hellwolf> the power is in the dot?
17:51:15 <int-e> hellwolf: it's the mark of pointfree code
17:51:41 <hellwolf> not all code has a point, but pointless code is definitely pointfree
17:52:01 <int-e> @help pl
17:52:01 <lambdabot> pointless <expr>. Play with pointfree code.
17:52:12 <int-e> (that particular pun is ancient)
17:54:39 <Ritual12> :t ap
17:54:39 <lambdabot> Monad m => m (a -> b) -> m a -> m b
17:54:58 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:55:59 <Ritual12> What is monad?
17:56:12 JuanDaugherty parts (~juan@user/JuanDaugherty) ()
17:56:13 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
17:56:44 gorignak joins (~gorignak@user/gorignak)
17:56:52 <Ritual12> @index ap
17:56:52 <lambdabot> Control.Monad
17:57:32 <int-e> :t (<*>)
17:57:33 <lambdabot> Applicative f => f (a -> b) -> f a -> f b
17:57:55 <int-e> (`ap` mostly exists for historical reasons)
17:58:27 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:58:31 × budabudabee quits (~budabudab@2600:100e:b308:e5d4:2c68:9c6f:c307:d044) (Read error: Connection reset by peer)
17:59:05 <Ritual12> Is it similar to <*>?
17:59:08 <haskellbridge> <Morj> "ap" is useful when you're doing monads in a language without operator overloading ;)
17:59:29 <haskellbridge> <Morj> When you're translating you stuff from haskell to it I mean
18:01:04 <c_wraith> <*> and ap have the same type, and are usually the same operation. but ap is implemented in terms of >>=
18:01:35 <int-e> `ap` existed before Applicative
18:01:41 <c_wraith> So on rare occasions ap can be more efficient for a specific data type
18:02:32 <c_wraith> It still exists *mostly* so that you can define the Applicative instance in terms of the Monad operations
18:02:40 <c_wraith> just like liftM
18:02:40 <int-e> Hmm why would the Applicative instance not use the more efficient implementation then?
18:02:54 <c_wraith> mostly in the case of a transformer
18:02:54 <int-e> (<*>) is a class method
18:03:23 <int-e> Ah
18:03:23 <c_wraith> where you want the Applicative instance to only require Applicative from the wrapped type
18:03:46 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:03:57 <c_wraith> It's not common to be in that situation.
18:04:10 <int-e> Right, adding another level of abstraction may do it.
18:04:47 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
18:05:36 notzmv joins (~umar@user/notzmv)
18:06:05 <hellwolf> to overthink about it. I am glad it was named applicable, not sure what's the essential difference etymologically between -able and -tive
18:06:14 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:06:18 <hellwolf> *it was not named applicable
18:06:23 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
18:06:28 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
18:06:54 gorignak joins (~gorignak@user/gorignak)
18:07:06 tokie joins (~tokie@user/strtok)
18:07:35 Lord_of_Life_ is now known as Lord_of_Life
18:10:45 j1n37 joins (j1n37@user/j1n37)
18:12:04 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 245 seconds)
18:12:04 × j1n37 quits (j1n37@user/j1n37) (Read error: Connection reset by peer)
18:16:34 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
18:17:05 gorignak joins (~gorignak@user/gorignak)
18:26:45 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
18:27:16 gorignak joins (~gorignak@user/gorignak)
18:28:08 biberu joins (~biberu@user/biberu)
18:36:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:36:30 ljdarj joins (~Thunderbi@user/ljdarj)
18:36:56 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
18:37:27 gorignak joins (~gorignak@user/gorignak)
18:40:18 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds)
18:43:01 <monochrom> mappative is better than mappable, too >:)
18:45:00 rvalue- joins (~rvalue@user/rvalue)
18:45:33 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 246 seconds)
18:46:06 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds)
18:47:07 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
18:47:38 gorignak joins (~gorignak@user/gorignak)
18:47:39 × alexherbo2 quits (~alexherbo@2a02-8440-3314-645c-9913-39d7-dad5-8363.rev.sfr.net) (Ping timeout: 256 seconds)
18:49:22 <mauke> Ritual12: inRange?
18:51:00 rvalue- is now known as rvalue
18:54:16 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
18:57:18 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
18:57:49 gorignak joins (~gorignak@user/gorignak)
19:04:56 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:07:29 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:08:00 gorignak joins (~gorignak@user/gorignak)
19:08:17 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:09:56 sawilagar joins (~sawilagar@user/sawilagar)
19:09:59 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
19:12:45 <Ritual12> Mauke what about inRange?
19:14:18 <mauke> simplifies liftA2 (&&) (>= lower) (<= upper)
19:14:31 <mauke> :t inRange (?lower, ?upper)
19:14:32 <lambdabot> (Ix a, ?lower::a, ?upper::a) => a -> Bool
19:16:43 <haskellbridge> <hellwolf> hmmm, could there be a hypeyhoogle... where you put example values and expected output, and it finds a function that produces that... :)
19:16:49 OftenFaded joins (~OftenFade@user/tisktisk)
19:16:56 <haskellbridge> <hellwolf> *hyperhoogle
19:17:11 Jackneill joins (~Jackneill@178-164-253-185.pool.digikabel.hu)
19:17:40 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:18:11 gorignak joins (~gorignak@user/gorignak)
19:19:49 <geekosaur> not in the general case. there are specific cases, e.g. OEIS
19:21:03 sprotte24 joins (~sprotte24@p200300d16f395d001484d78db1444af0.dip0.t-ipconnect.de)
19:21:31 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:27:51 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:28:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
19:28:22 gorignak joins (~gorignak@user/gorignak)
19:33:11 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:36:01 TheCoffeMaker_ joins (~TheCoffeM@186.136.173.70)
19:36:11 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
19:38:02 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:38:33 gorignak joins (~gorignak@user/gorignak)
19:39:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:39:49 <sprotte24> Hi, I´m looking for help for my new Haskell problem which executes too slowly
19:39:55 <sprotte24> https://paste.tomsmeding.com/yhuKGov3
19:41:26 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:44:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
19:45:08 <monochrom> I don't find it slow.
19:48:13 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:48:19 <haskellbridge> <Bowuigi> For a single item x, "iterate (x:) []" should be faster
19:48:44 gorignak joins (~gorignak@user/gorignak)
19:49:39 <haskellbridge> <Bowuigi> Making the contained item strict on the list is another option
19:51:08 <sprotte24> It is my homework for our university. the automatic tests say: heck allCombinations
19:51:08 <sprotte24> All tests successful
19:51:08 <sprotte24> ***time limit exceeded*** 0 from 3 points
19:51:34 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
19:53:22 <sprotte24> haskellbridge, I am beginner, can you show me the iteration code?
19:54:35 <haskellbridge> <Bowuigi> Notice the pattern that emerges when you transpose the list
19:54:41 <monochrom> I am already trying "print $ take 50000 (allCombinations [True, False])" and it is instantaneous (0.07 seconds if redirected to /dev/null) and also seems to be O(1)-space.
19:55:20 <monochrom> At this point I would ask: did you submit the very same code to school?
19:55:20 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:55:27 <haskellbridge> <Bowuigi> If you don't actually need an infinite list, generating its transposition and printing it in a fancier way may be faster
19:55:46 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
19:55:56 × sawilagar quits (~sawilagar@user/sawilagar) (Remote host closed the connection)
19:56:09 sawilagar joins (~sawilagar@user/sawilagar)
19:56:16 <haskellbridge> <Bowuigi> It shouldn't actually be that slow as is though
19:56:52 <monochrom> It's also a 2017 laptop I tested on.
19:57:45 <sprotte24> Unfortunately, a machine judges my submitted solution, and it executes about 100 partly exotic tests
19:58:24 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:58:55 gorignak joins (~gorignak@user/gorignak)
19:59:22 <monochrom> I know, but I can't reproduce "slow".
19:59:59 <monochrom> Can't solve an irreproducible problem.
20:00:01 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:21 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
20:00:38 caconym joins (~caconym@user/caconym)
20:00:50 <haskellbridge> <Bowuigi> Since the list is infinite, some functions can't terminate when executed on them. Do the tests execute anything related to those functions? (length, transpose, etc)
20:01:30 <haskellbridge> <Bowuigi> If yes, just drop a "take 50000" before the definition or similar
20:02:04 × sawilagar quits (~sawilagar@user/sawilagar) (Quit: Leaving)
20:05:39 <sprotte24> perhaps the only way ist to test alternate algorithms for this task
20:06:59 <haskellbridge> <Bowuigi> Note that testing for infiniteness is impossible since such a test would fail to terminate on an infinite list
20:08:35 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
20:09:06 gorignak joins (~gorignak@user/gorignak)
20:11:09 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:12:44 <sprotte24> yes. Another task with generation of a sorted infinite list could be fixed by sorting while inserting each element just in the sorted position.
20:16:30 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
20:17:37 × Ritual12 quits (~Ritual12@85-76-13-113-nat.elisa-mobile.fi) (Quit: Client closed)
20:18:46 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
20:19:01 weary-traveler joins (~user@user/user363627)
20:19:18 gorignak joins (~gorignak@user/gorignak)
20:21:54 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 260 seconds)
20:22:51 <sprotte24> also allCombinations :: [a] -> [[a]]
20:22:51 <sprotte24> allCombinations xs = sequence =<< iterate (xs :) [] was too slow
20:26:00 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
20:26:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:28:57 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
20:29:28 gorignak joins (~gorignak@user/gorignak)
20:31:27 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 276 seconds)
20:31:36 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
20:33:02 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:37:14 <hellwolf> :type replicateM Int [a]
20:38:07 <hellwolf> > :type replicateM 10
20:38:08 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
20:38:45 <Rembane> :t replicateM Int [a]
20:38:46 <lambdabot> error:
20:38:46 <lambdabot> • Data constructor not in scope: Int :: Int
20:38:46 <lambdabot> • Perhaps you meant variable ‘int’ (imported from Text.PrettyPrint.HughesPJ)
20:38:47 <Rembane> :D
20:38:59 <Rembane> :t replicateM (0 :: Int)
20:39:00 <lambdabot> Applicative m => m a -> m [a]
20:39:08 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
20:39:34 <hellwolf> when m = List, you get a [a] -> [[a]]
20:39:39 gorignak joins (~gorignak@user/gorignak)
20:40:31 <hellwolf> > replicate 2 [True, False]
20:40:33 <lambdabot> [[True,False],[True,False]]
20:40:54 <hellwolf> oh, wait.
20:41:09 <hellwolf> > replicateM 2 [True, False]
20:41:10 <lambdabot> [[True,True],[True,False],[False,True],[False,False]]
20:41:16 <hellwolf> here you go, big difference..
20:41:57 <hellwolf> I sometimes still don't know how it works, unless you think about it mathematically.
20:42:46 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:44:24 × Jackneill quits (~Jackneill@178-164-253-185.pool.digikabel.hu) (Remote host closed the connection)
20:45:12 simendsjo-web joins (34b0550437@2a03:6000:1812:100::1441)
20:47:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
20:49:19 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
20:49:19 zmt01 joins (~zmt00@user/zmt00)
20:49:49 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
20:49:51 gorignak joins (~gorignak@user/gorignak)
20:50:44 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:52:27 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds)
20:52:50 swamp_ joins (~zmt00@user/zmt00)
20:55:03 <xerox> @src replicateM
20:55:03 <lambdabot> replicateM n x = sequence (replicate n x)
20:55:16 × simendsjo-web quits (34b0550437@2a03:6000:1812:100::1441) (Remote host closed the connection)
20:55:26 simendsjo_ joins (34b0550437@2a03:6000:1812:100::1441)
20:55:33 <Rembane> @src replicate
20:55:33 <lambdabot> replicate n x = take n (repeat x)
20:55:43 <Rembane> Lovely!
20:55:46 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds)
20:56:01 <xerox> agreed
20:57:49 zmt01 joins (~zmt00@user/zmt00)
20:58:32 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:58:48 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
20:58:57 simendsjo_ is now known as simendsjo
20:59:30 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:00:01 gorignak joins (~gorignak@user/gorignak)
21:01:05 × swamp_ quits (~zmt00@user/zmt00) (Ping timeout: 248 seconds)
21:01:33 zmt00 joins (~zmt00@user/zmt00)
21:03:30 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
21:04:05 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
21:04:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:05:33 × visilii quits (~visilii@188.254.126.79) (Quit: ZNC - https://znc.in)
21:05:52 visilii joins (~visilii@188.254.126.79)
21:09:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
21:09:41 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:10:12 gorignak joins (~gorignak@user/gorignak)
21:10:22 × Alleria quits (~Alleria@user/alleria) (Read error: Connection reset by peer)
21:10:27 <sprotte24> many nice code lines. Which can I use for my problem infinite listes?
21:15:21 <haskellbridge> <Bowuigi> The same trick doesn't seem to apply to "repeat" sadly, "sequence (repeat [True, False])" loops
21:16:08 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:19:52 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:20:23 gorignak joins (~gorignak@user/gorignak)
21:20:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
21:22:00 <int-e> Well, it can never decide whether the result is empty.
21:22:38 <int-e> > sequence (replicate 42 "01" ++ [""])
21:22:39 <lambdabot> []
21:22:44 <int-e> > sequence (replicate 42 "01")
21:22:45 <lambdabot> ["000000000000000000000000000000000000000000","00000000000000000000000000000...
21:24:40 <sprotte24> in my task allCombinations [] = [[]]
21:30:03 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:30:34 gorignak joins (~gorignak@user/gorignak)
21:31:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:36:21 <haskellbridge> <hellwolf> Repeats allowed No Repeats
21:36:21 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/nxZBNsHrMMJJURRtUnXdnFKt/PyxkJhr_m-A (4 lines)
21:36:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
21:38:57 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
21:39:17 Square joins (~Square@user/square)
21:39:33 <hellwolf> the `replicateM Int` does repeated permutations, I guess?
21:40:09 <dminuoso> What does `replicateM Int` mean?
21:40:14 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:40:29 <hellwolf> > replicateM 2 ['a', 'b', 'c']
21:40:31 <lambdabot> ["aa","ab","ac","ba","bb","bc","ca","cb","cc"]
21:40:45 gorignak joins (~gorignak@user/gorignak)
21:40:48 <sprotte24> [02.12.24|21:41:08] <hellwolf> > replicateM 2 [True, False]
21:40:48 <sprotte24> [02.12.24|21:41:10] <lambdabot> [[True,True],[True,False],[False,True],[False,False]]
21:41:23 <dminuoso> hellwolf: So with a bit of squinting you could think of [] modelling non-determinism.
21:41:50 <dminuoso> Squinting because lists have an order, so there's a slight bit of extra structure there.
21:41:55 <hellwolf> my math memory of this party gets blurry... I can't what is asked here, I guess it's either someone's home work, or advent calendar coding challenges.
21:42:09 <sprotte24> [[],[True],[False]...] ist misssingand the tail
21:42:51 <dminuoso> hellwolf: So ['a', 'b', 'c'] could be seen as "some non-deterministic choice of 'a", "b" and c"
21:42:59 <dminuoso> Gah enter a bit early, but anyhow.
21:43:29 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 265 seconds)
21:43:35 <dminuoso> In that sense it gives you permutations.
21:46:18 <sprotte24> Yes. For permutation, I add the next number in front, in the middle and the end of the current list. [[],[1],[1,2].[2,1] and so on
21:47:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:47:55 <hellwolf> I wonder what's the clever one-liner one for combinations.
21:48:38 <hellwolf> repeat or non-repeat
21:49:06 <hellwolf> without post processing the permuntation.
21:49:19 <dminuoso> Depends on whether you want it performant or not.
21:49:34 <sprotte24> these were non-repeat
21:50:09 <dminuoso> If you dont care about performance, you can just take list monad, sort and nub it (maybe via Data.Set)
21:50:25 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:50:56 gorignak joins (~gorignak@user/gorignak)
21:51:04 <sprotte24> But that would not work for a infinite list to be sorted later
21:52:06 Everything joins (~Everythin@46.211.103.42)
21:52:35 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
21:54:35 <dminuoso> The solution for infinite lists would fall in the performant category.
21:54:54 <hellwolf> let me try with splitAt and recursion
21:55:05 <hellwolf> one sec
21:55:19 <hellwolf> unlikely a one-liner anymore
21:59:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:59:24 <sprotte24> oksplits :: [a] -> [([a], [a])]
21:59:24 <sprotte24> splits [] = [([], [])]
21:59:24 <sprotte24> splits (y:ys) = ([], y:ys) : [(y:ys1, ys2)
21:59:25 <sprotte24> | (ys1, ys2) <- splits ys]
22:00:08 alexherbo2 joins (~alexherbo@13.135.22.93.rev.sfr.net)
22:00:36 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
22:01:08 gorignak joins (~gorignak@user/gorignak)
22:01:38 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
22:03:29 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:04:03 pounce joins (~pounce@user/cute/pounce)
22:05:33 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:05:47 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:06:20 gorignak joins (~gorignak@user/gorignak)
22:07:32 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 272 seconds)
22:10:35 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
22:10:59 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:11:31 gorignak joins (~gorignak@user/gorignak)
22:16:10 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:16:41 gorignak joins (~gorignak@user/gorignak)
22:20:22 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
22:21:21 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:21:33 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:21:52 gorignak joins (~gorignak@user/gorignak)
22:22:51 × michalz quits (~michalz@185.246.207.218) (Remote host closed the connection)
22:26:32 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:26:44 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
22:27:04 gorignak joins (~gorignak@user/gorignak)
22:27:05 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
22:29:14 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
22:29:38 × Everything quits (~Everythin@46.211.103.42) (Ping timeout: 252 seconds)
22:29:43 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
22:31:34 Everything joins (~Everythin@46.211.80.247)
22:31:43 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:32:14 gorignak joins (~gorignak@user/gorignak)
22:34:57 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 276 seconds)
22:35:18 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:35:49 gorignak joins (~gorignak@user/gorignak)
22:36:21 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
22:36:52 gorignak joins (~gorignak@user/gorignak)
22:37:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:39:02 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:40:07 × alp quits (~alp@2001:861:8ca0:4940:a36a:bc17:9bfc:9786) (Remote host closed the connection)
22:40:24 alp joins (~alp@2001:861:8ca0:4940:6caf:2993:1558:2dee)
22:41:22 × alp quits (~alp@2001:861:8ca0:4940:6caf:2993:1558:2dee) (Remote host closed the connection)
22:41:38 × gorignak quits (~gorignak@user/gorignak) (Remote host closed the connection)
22:41:39 alp joins (~alp@2001:861:8ca0:4940:18f3:4eb6:59be:b60)
22:42:06 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:43:04 × alp quits (~alp@2001:861:8ca0:4940:18f3:4eb6:59be:b60) (Remote host closed the connection)
22:43:21 alp joins (~alp@2001:861:8ca0:4940:53b0:728a:4a19:6af2)
22:43:29 × hgolden_ quits (~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd) (Remote host closed the connection)
22:44:45 × alp quits (~alp@2001:861:8ca0:4940:53b0:728a:4a19:6af2) (Remote host closed the connection)
22:45:03 alp joins (~alp@2001:861:8ca0:4940:11eb:6be:450d:4949)
22:45:42 Sgeo joins (~Sgeo@user/sgeo)
22:45:50 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
22:46:27 × alp quits (~alp@2001:861:8ca0:4940:11eb:6be:450d:4949) (Remote host closed the connection)
22:46:44 alp joins (~alp@2001:861:8ca0:4940:3097:3d6d:8b01:fcba)
22:47:55 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
22:48:08 × alp quits (~alp@2001:861:8ca0:4940:3097:3d6d:8b01:fcba) (Remote host closed the connection)
22:48:26 alp joins (~alp@2001:861:8ca0:4940:442:919:bd8c:d19c)
22:50:04 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
22:50:08 alp_ joins (~alp@2001:861:8ca0:4940:2fb9:3073:3158:62ef)
22:51:32 × alp_ quits (~alp@2001:861:8ca0:4940:2fb9:3073:3158:62ef) (Remote host closed the connection)
22:51:49 alp_ joins (~alp@2001:861:8ca0:4940:36d2:d74a:8e91:a2c6)
22:53:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:53:12 j1n37 joins (~j1n37@user/j1n37)
22:53:15 × alp_ quits (~alp@2001:861:8ca0:4940:36d2:d74a:8e91:a2c6) (Remote host closed the connection)
22:53:33 alp_ joins (~alp@2001:861:8ca0:4940:7755:1baa:b171:8d8d)
22:53:37 × alp quits (~alp@2001:861:8ca0:4940:442:919:bd8c:d19c) (Ping timeout: 248 seconds)
22:55:16 alp__ joins (~alp@2001:861:8ca0:4940:9b41:1bdc:3efe:5d7f)
22:56:31 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
22:58:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:58:25 × alp_ quits (~alp@2001:861:8ca0:4940:7755:1baa:b171:8d8d) (Ping timeout: 248 seconds)
22:58:48 emmanuelux joins (~emmanuelu@user/emmanuelux)
22:58:59 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:00:01 × alp__ quits (~alp@2001:861:8ca0:4940:9b41:1bdc:3efe:5d7f) (Ping timeout: 248 seconds)
23:08:54 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:11:55 × koz quits (~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
23:13:15 koz joins (~koz@121.99.240.58)
23:13:38 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
23:24:18 × malte quits (~malte@mal.tc) (Remote host closed the connection)
23:24:40 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:27:33 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: Ping timeout (120 seconds))
23:27:43 × MironZ3 quits (~MironZ@nat-infra.ehlab.uk) (Quit: Ping timeout (120 seconds))
23:27:50 malte joins (~malte@mal.tc)
23:27:52 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
23:28:03 MironZ3 joins (~MironZ@nat-infra.ehlab.uk)
23:29:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
23:34:56 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd)
23:37:02 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
23:40:28 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:41:29 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
23:42:16 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
23:45:19 <hellwolf> I am back. This is one that works: https://play.haskell.org/saved/SyfciPGn not the most pretty code, but kinda works.
23:47:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
23:47:13 × Square quits (~Square@user/square) (Ping timeout: 265 seconds)
23:48:36 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:53:25 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
23:55:20 × alexherbo2 quits (~alexherbo@13.135.22.93.rev.sfr.net) (Remote host closed the connection)

All times are in UTC on 2024-12-02.