Home liberachat/#haskell: Logs Calendar

Logs on 2024-06-26 (liberachat/#haskell)

00:00:47 <EvanR> there might be some more you could try https://stackoverflow.com/questions/6115459/small-haskell-program-compiled-with-ghc-into-huge-binary?lq=1
00:04:54 <joeyadams> Thanks. Maybe I should just create a single record and derive FromJSON, and look at the assembly. I'm mainly curious why it takes so much code to do (what should be) so little.
00:08:11 × joeyadams quits (~joeyadams@2607:fb91:1617:1400:929b:26f0:654:cc5a) (Quit: Leaving)
00:08:21 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
00:18:55 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:19:29 × euleritian quits (~euleritia@dynamic-176-000-205-223.176.0.pool.telefonica.de) (Ping timeout: 252 seconds)
00:22:05 <jackdk> @tell joeyadams https://well-typed.com/blog/2021/08/large-records/ might be relevant here
00:22:05 <lambdabot> Consider it noted.
00:22:18 <Axman6> yeah that came to mind for me too
00:22:38 <Axman6> also ping EvanR since you were looking into it too
00:27:09 philopsos1 joins (~caecilius@user/philopsos)
00:33:31 <safinaskar> @tell joeyadams also try self-unpacking binaries :)
00:33:32 <lambdabot> Consider it noted.
00:35:10 × henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds))
00:35:17 joeyadams joins (~joeyadams@2603:6010:5100:2ed:c9:f4bd:32a:187d)
00:35:36 henry40408 joins (~henry4040@175.182.111.183)
00:37:14 <joeyadams> Thanks, jackdk, looking at it now.
00:42:36 <safinaskar> bye
00:42:39 safinaskar parts (~quassel@212.73.77.104) ()
00:44:27 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
00:48:39 safinaskar joins (~quassel@212.73.77.104)
00:48:50 safinaskar parts (~quassel@212.73.77.104) ()
00:51:18 × sudden quits (~cat@user/sudden) (Ping timeout: 255 seconds)
00:52:31 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 246 seconds)
00:55:39 edrx joins (~Eduardo@170-233-51-85.static.sumicity.net.br)
00:57:01 <edrx> hi all! gmorning!
00:57:44 <edrx> I wrote a program to help me typeset type inferences using underbrace diagrams - it generates figures like this: https://i.ibb.co/8mZ2VVp/sshot.png
00:58:18 <edrx> but the "=>" looks ugly - i.e., the \textsf{=>} looks ugly.
00:58:28 <edrx> what would you use instead? suggestions?
01:01:20 × puke quits (~puke@user/puke) (Remote host closed the connection)
01:01:57 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
01:02:58 puke joins (~puke@user/puke)
01:03:36 sudden joins (~cat@user/sudden)
01:03:51 × pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 264 seconds)
01:15:35 × kaskal quits (~kaskal@213-147-165-88.nat.highway.webapn.at) (Ping timeout: 252 seconds)
01:19:16 <pavonia> edrx: \Rightarrow or \Longrightarrow
01:52:06 CiaoSen joins (~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03)
01:58:53 × masterbuilder quits (~quassel@user/masterbuilder) (Ping timeout: 240 seconds)
01:59:29 masterbuilder joins (~quassel@user/masterbuilder)
01:59:54 × glguy quits (g@libera/staff/glguy) (Remote host closed the connection)
02:07:30 dcoutts_ joins (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
02:08:29 × dcoutts quits (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 256 seconds)
02:19:51 rosco joins (~rosco@175.136.155.137)
02:22:11 × xff0x quits (~xff0x@ai068022.d.east.v6connect.net) (Ping timeout: 264 seconds)
02:26:17 madhavanmiui joins (~madhavanm@2409:40f4:305f:dd79:8000::)
02:26:41 × madhavanmiui quits (~madhavanm@2409:40f4:305f:dd79:8000::) (Client Quit)
02:27:09 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
02:41:56 zmt00 joins (~zmt00@user/zmt00)
02:49:05 × td_ quits (~td@i53870933.versanet.de) (Ping timeout: 252 seconds)
02:51:08 td_ joins (~td@i53870920.versanet.de)
02:54:15 glguy joins (g@libera/staff/glguy)
03:11:11 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:15:08 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
03:17:39 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
03:18:45 euleritian joins (~euleritia@dynamic-176-001-135-109.176.1.pool.telefonica.de)
03:23:17 × euleritian quits (~euleritia@dynamic-176-001-135-109.176.1.pool.telefonica.de) (Ping timeout: 256 seconds)
03:24:15 euleritian joins (~euleritia@dynamic-176-007-155-229.176.7.pool.telefonica.de)
03:37:30 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:38:11 aforemny_ joins (~aforemny@2001:9e8:6cc2:bc00:8b6d:59f0:33e:e82a)
03:38:50 MelMalik is now known as Reinhilde
03:39:07 × aforemny quits (~aforemny@2001:9e8:6cdd:b100:c11c:c2a2:7e21:6fd9) (Ping timeout: 246 seconds)
03:43:27 × CiaoSen quits (~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03) (Ping timeout: 264 seconds)
03:46:40 × euleritian quits (~euleritia@dynamic-176-007-155-229.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
03:47:57 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
03:57:22 <edrx> pavonia: thanks =)
03:57:49 edrx parts (~Eduardo@170-233-51-85.static.sumicity.net.br) (Killed buffer)
04:07:08 × wbooze quits (~wbooze@2a02:908:1244:9a20:3ca9:9685:6335:ca5e) (Remote host closed the connection)
04:09:48 × zzz quits (~yin@user/zero) (Ping timeout: 268 seconds)
04:11:41 zzz joins (~yin@user/zero)
04:19:06 × rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal)
04:22:02 × vizimajac quits (vizimajac@shell.xshellz.com) (Remote host closed the connection)
04:27:18 × zzz quits (~yin@user/zero) (Ping timeout: 255 seconds)
04:29:55 × joeyadams quits (~joeyadams@2603:6010:5100:2ed:c9:f4bd:32a:187d) (Quit: Leaving)
04:32:56 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:34:01 zzz joins (~yin@user/zero)
04:43:58 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
04:53:35 <monochrom> I have been using ASCII art to show the equiv of that kind of underbrace diagrams.
04:54:34 <monochrom> For example when explaining "map (map f)" and "pure f <*> x <*> y <*> z <*> ..."
04:58:20 × philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 252 seconds)
04:58:23 <haskellbridge> <iqubic (she/her)> Isn't that second one just "lift2A" but expanded to many more args?
04:59:22 <monochrom> Yes.
04:59:23 aaronv joins (~aaronv@user/aaronv)
04:59:35 talismanick joins (~user@2601:644:937c:ed10::ae5)
04:59:42 <monochrom> Well, yes if s/just//
05:00:12 <haskellbridge> <iqubic (she/her)> "pure f <_> x <_> y <_> z <_>..." is of type "Applicative f => a (a -> b -> c -> ...) -> f a -> f b -> f c -> ..."
05:00:37 <haskellbridge> <iqubic (she/her)> Erm... "Applicative f => (a -> b -> c -> ...) -> f a -> f b -> f c -> ..."
05:08:10 philopsos1 joins (~caecilius@user/philopsos)
05:23:11 × zzz quits (~yin@user/zero) (Ping timeout: 268 seconds)
05:30:02 <EvanR> oof at all that quadraticness of large records
05:30:10 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:33:23 <haskellbridge> <iqubic (she/her)> Where does that come from?
05:45:21 acidjnk_new3 joins (~acidjnk@p200300d6e714dc96bd88011075acd305.dip0.t-ipconnect.de)
05:45:28 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 246 seconds)
05:48:15 × ft quits (~ft@p4fc2ab80.dip0.t-ipconnect.de) (Quit: leaving)
05:54:28 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
05:54:52 aaronv joins (~aaronv@user/aaronv)
06:05:42 generalbigm joins (~generalbi@2001:250:3c0f:2000::e751)
06:08:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:13:45 wbooze joins (~wbooze@2a02:908:1244:9a20:c630:9087:3a08:eaac)
06:18:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:20:34 × raym quits (~ray@user/raym) (Quit: rebooting...)
06:26:21 killy joins (~killy@staticline-31-183-185-9.toya.net.pl)
06:27:29 michalz joins (~michalz@185.246.207.205)
06:28:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:40:05 rosco joins (~rosco@175.136.155.137)
06:42:32 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:03:05 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
07:03:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:03:19 euleritian joins (~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de)
07:08:02 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:09:01 generalbigm1 joins (~generalbi@2001:250:3c0f:2000::e751)
07:09:15 × generalbigm quits (~generalbi@2001:250:3c0f:2000::e751) (Ping timeout: 264 seconds)
07:09:39 pointlessslippe1 joins (~pointless@212.82.82.3)
07:11:19 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
07:11:34 johnny54 joins (~johnny@2401:e180:8d50:3483:9060:7f14:5c50:80ae)
07:23:38 × euleritian quits (~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
07:23:56 euleritian joins (~euleritia@77.22.252.56)
07:25:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:33:07 × johnny54 quits (~johnny@2401:e180:8d50:3483:9060:7f14:5c50:80ae) (Quit: Client closed)
07:36:07 × poscat0x04 quits (~poscat@user/poscat) (Quit: Bye)
07:38:25 poscat joins (~poscat@user/poscat)
07:40:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
07:43:53 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 252 seconds)
07:44:40 euleritian joins (~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de)
07:55:30 × philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 268 seconds)
07:56:58 notzmv joins (~daniel@user/notzmv)
07:57:20 × rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal)
07:58:07 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
08:02:38 vizimajac joins (~Rodney@97e7368c.skybroadband.com)
08:05:41 × generalbigm1 quits (~generalbi@2001:250:3c0f:2000::e751) (Ping timeout: 268 seconds)
08:13:51 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
08:16:58 RiXSon joins (~rixson@77-234-86-141.pool.digikabel.hu)
08:21:32 lxsameer joins (~lxsameer@Serene/lxsameer)
08:23:22 generalbigm joins (~generalbi@2001:250:3c0f:2000::e751)
08:25:47 chele joins (~chele@user/chele)
08:26:57 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
08:27:41 danse-nr3 joins (~danse-nr3@151.43.199.86)
08:29:45 aaronv joins (~aaronv@user/aaronv)
08:35:53 cfricke joins (~cfricke@user/cfricke)
08:39:47 rosco joins (~rosco@175.136.155.137)
08:46:32 YoungFrog joins (~youngfrog@2a02:a03f:c9db:fc00:51d9:348e:70e7:cc59)
08:52:16 × poscat quits (~poscat@user/poscat) (Quit: Bye)
08:52:27 __monty__ joins (~toonn@user/toonn)
08:53:01 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
08:56:06 × euleritian quits (~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
08:56:37 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:57:23 causal joins (~eric@50.35.88.207)
09:16:10 gehmehgeh joins (~user@user/gehmehgeh)
09:19:36 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:1824:df35:e28:ab6b)
09:20:26 gehmehgeh is now known as gmg
09:22:49 poscat joins (~poscat@user/poscat)
09:24:10 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:1824:df35:e28:ab6b) (Remote host closed the connection)
09:24:22 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:f376:2bd9:f376:d9df)
09:27:20 talismanick joins (~user@2601:644:937c:ed10::ae5)
09:30:26 Miroboru joins (~myrvoll@178-164-114.82.3p.ntebredband.no)
09:33:53 × poscat quits (~poscat@user/poscat) (Quit: Bye)
09:34:08 poscat joins (~poscat@user/poscat)
09:39:15 <lxsameer> hey folks, is there any ready to use functionality to collect a list of computations run them and pass the result of each of them after an automatic error handling to the next one? it should be thread safe
09:39:45 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
09:40:41 × poscat quits (~poscat@user/poscat) (Quit: Bye)
09:41:49 <ncf> traverse
09:43:19 <ncf> oh, pass the result. then foldr (>=>) pure i guess?
09:43:24 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:44:04 poscat joins (~poscat@user/poscat)
09:44:44 <lxsameer> ncf: what about the error handling part
09:45:01 <ncf> ExceptT
09:45:50 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
09:45:57 <lxsameer> thank you
09:46:14 aaronv joins (~aaronv@user/aaronv)
09:46:53 <hc> What exactly do you mean by "thread safe" in this context?
09:50:39 <lxsameer> hc: I want to have a few threads all running a list of computation. on error, i want to know which thread and which computation raised that error. so some sort of coordination between threads is needed
09:54:37 <__monty__> But if each thread needs the results of the previous computation why are there threads and what would not be thread safe?
09:57:46 × aforemny_ quits (~aforemny@2001:9e8:6cc2:bc00:8b6d:59f0:33e:e82a) (Quit: ZNC 1.8.2 - https://znc.in)
09:57:54 <lxsameer> __monty__: let's say I need to create 4 list of jobs, each list runs in a thread, I need a 5th thread to act as a coordinator. receive certain errors from the threads and decide what to do with it. (local errors that are trivial can be handled in the theard)
09:58:08 aforemny joins (~aforemny@i59F516D5.versanet.de)
10:11:17 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
10:14:04 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
10:18:03 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 260 seconds)
10:24:44 × vizimajac quits (~Rodney@97e7368c.skybroadband.com) (Ping timeout: 268 seconds)
10:28:26 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
10:42:55 nickiminjaj joins (~nickiminj@user/laxhh)
10:43:06 sawilagar joins (~sawilagar@user/sawilagar)
11:05:02 × nickiminjaj quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:14:33 nickiminjaj joins (~nickiminj@user/laxhh)
11:14:49 × danse-nr3 quits (~danse-nr3@151.43.199.86) (Ping timeout: 246 seconds)
11:14:58 × nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit)
11:15:47 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:16:41 xff0x joins (~xff0x@2405:6580:b080:900:374:70e:871e:8e7b)
11:21:28 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Ping timeout: 268 seconds)
11:27:09 raym joins (~ray@user/raym)
11:27:48 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:37:59 spaded joins (~spaded@2a01:cb11:8072:832f:4262:16e4:2abb:aec0)
11:38:29 Wstfgl0 joins (~me-me@kc.randomserver.name)
11:38:33 × Me-me quits (~me-me@user/me-me) (Read error: Connection reset by peer)
11:38:38 Wstfgl0 is now known as Me-me
11:38:43 Pixi` joins (~Pixi@user/pixi)
11:41:49 × Pixi quits (~Pixi@user/pixi) (Ping timeout: 256 seconds)
11:46:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:02:39 × destituion quits (~destituio@2a02:2121:6cb:fbc3:21bb:ad80:8df2:7677) (Ping timeout: 264 seconds)
12:03:40 destituion joins (~destituio@85.221.111.174)
12:06:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:12:11 danse-nr3 joins (~danse-nr3@151.43.199.50)
12:16:46 × wbooze quits (~wbooze@2a02:908:1244:9a20:c630:9087:3a08:eaac) (Remote host closed the connection)
12:17:03 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:17:14 wbooze joins (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
12:25:36 × danse-nr3 quits (~danse-nr3@151.43.199.50) (Ping timeout: 268 seconds)
12:25:53 danse-nr3 joins (~danse-nr3@151.46.210.141)
12:42:20 × sawilagar quits (~sawilagar@user/sawilagar) (Remote host closed the connection)
12:42:34 sawilagar joins (~sawilagar@user/sawilagar)
12:45:54 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
13:01:22 × TactfulCitrus quits (al@gateway/vpn/protonvpn/tactfulcitrus) (Ping timeout: 268 seconds)
13:13:05 × killy quits (~killy@staticline-31-183-185-9.toya.net.pl) (Ping timeout: 268 seconds)
13:13:24 mechap joins (~mechap@user/mechap)
13:19:33 zzz joins (~yin@user/zero)
13:21:25 × spaded quits (~spaded@2a01:cb11:8072:832f:4262:16e4:2abb:aec0) (Quit: Leaving)
13:32:11 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
13:34:09 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
13:35:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
13:37:06 euleritian joins (~euleritia@dynamic-176-007-173-172.176.7.pool.telefonica.de)
13:37:13 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:37:41 gorignak joins (~gorignak@user/gorignak)
13:37:48 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:41:06 × RedFlamingos quits (~RedFlamin@user/RedFlamingos) (Read error: Connection reset by peer)
13:43:11 × wbooze quits (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Quit: Konversation terminated!)
13:44:32 wbooze joins (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
13:46:18 × wbooze quits (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
13:46:50 wbooze joins (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
13:47:37 × danse-nr3 quits (~danse-nr3@151.46.210.141) (Ping timeout: 256 seconds)
13:48:35 × wbooze quits (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
13:49:12 ystael joins (~ystael@user/ystael)
13:49:58 wbooze joins (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
13:51:44 × wbooze quits (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
13:52:42 wbooze joins (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
13:53:47 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 268 seconds)
13:55:43 jespada joins (~jespada@148.252.129.210)
13:56:59 × zzz quits (~yin@user/zero) (Ping timeout: 264 seconds)
14:03:16 zzz joins (~yin@user/zero)
14:05:54 × jespada quits (~jespada@148.252.129.210) (Read error: Connection reset by peer)
14:06:34 RedFlamingos joins (~RedFlamin@user/RedFlamingos)
14:08:01 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
14:18:14 soverysour joins (~soverysou@81.196.150.219)
14:18:14 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
14:18:14 soverysour joins (~soverysou@user/soverysour)
14:20:59 × zzz quits (~yin@user/zero) (Ping timeout: 252 seconds)
14:27:38 zzz joins (~yin@user/zero)
14:28:05 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 240 seconds)
14:36:56 × zzz quits (~yin@user/zero) (Ping timeout: 252 seconds)
14:37:16 madhavanmiui joins (~madhavanm@2409:40f4:2047:95da:8000::)
14:38:25 × madhavanmiui quits (~madhavanm@2409:40f4:2047:95da:8000::) (Remote host closed the connection)
14:43:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:49:53 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
14:51:17 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 240 seconds)
14:56:04 × euleritian quits (~euleritia@dynamic-176-007-173-172.176.7.pool.telefonica.de) (Ping timeout: 268 seconds)
14:57:08 Domitar joins (~Domitar@193.198.16.218)
14:58:12 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
15:00:15 × destituion quits (~destituio@85.221.111.174) (Ping timeout: 264 seconds)
15:00:38 × Domitar quits (~Domitar@193.198.16.218) (Remote host closed the connection)
15:04:11 euleritian joins (~euleritia@176.2.68.45)
15:07:02 × EvanR quits (~EvanR@user/evanr) (Quit: Leaving)
15:07:09 × generalbigm quits (~generalbi@2001:250:3c0f:2000::e751) (Quit: Leaving.)
15:11:52 destituion joins (~destituio@2a02:2121:6cb:fbc3:3c0f:94ae:6844:a1fa)
15:11:54 × euleritian quits (~euleritia@176.2.68.45) (Read error: Connection reset by peer)
15:13:14 EvanR joins (~EvanR@user/evanr)
15:13:35 euleritian joins (~euleritia@77.22.252.56)
15:14:55 × EvanR quits (~EvanR@user/evanr) (Client Quit)
15:18:59 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
15:21:34 EvanR joins (~EvanR@user/evanr)
15:22:38 zzz joins (~yin@user/zero)
15:27:49 MrFox joins (~MrFox___@95-178-186-21.dsl.optinet.hr)
15:31:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:33:54 pavonia joins (~user@user/siracusa)
15:37:28 soverysour joins (~soverysou@81.196.150.219)
15:37:28 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
15:37:28 soverysour joins (~soverysou@user/soverysour)
15:38:00 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 268 seconds)
15:38:36 euleritian joins (~euleritia@176.2.68.45)
15:38:43 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:51:23 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 272 seconds)
15:56:26 × MrFox quits (~MrFox___@95-178-186-21.dsl.optinet.hr) (Quit: Leaving)
15:56:39 soverysour joins (~soverysou@user/soverysour)
15:57:31 × rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal)
15:58:25 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:01:26 × soverysour quits (~soverysou@user/soverysour) (Remote host closed the connection)
16:01:49 soverysour joins (~soverysou@user/soverysour)
16:02:35 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
16:05:15 × jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
16:06:59 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds)
16:08:42 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:19:23 soverysour joins (~soverysou@user/soverysour)
16:28:32 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
16:32:00 ft joins (~ft@p4fc2ab80.dip0.t-ipconnect.de)
16:35:24 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:49:19 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
16:51:37 <Franciman> hi, does haskell have first class support for knowledge graphs?
16:53:16 <haskellbridge> <sm> hi Franciman , what would that look like ?
16:53:27 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
16:54:32 <Franciman> hi @sm, base level would be supporting rdf as a format
16:54:34 <Franciman> and i see
16:54:37 <Franciman> @package rdf
16:54:37 <lambdabot> https://hackage.haskell.org/package/rdf
16:54:58 <haskellbridge> <sm> ah.. yes
16:55:01 <Franciman> but is there libraries for supporting reasoning?
16:55:04 <Franciman> with ontologies
16:55:34 <Franciman> or queries
16:55:38 <Franciman> for example conjunctive queries
16:55:46 <duncan> there is a minikanren
16:56:56 <haskellbridge> <sm> I don't know if https://flora.pm/packages/@hackage/hsparql is relevant
16:57:06 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:f376:2bd9:f376:d9df) (Remote host closed the connection)
16:57:13 <haskellbridge> <sm> or https://flora.pm/packages/@hackage/XSaiga
16:57:58 <Franciman> thanks a lot @sm
16:58:01 <haskellbridge> <sm> which use http://robstewart57.github.io/rdf4h/
16:58:24 <Franciman> what is this flora.pm?
16:58:30 <Franciman> is it a mirror for hackage?
16:58:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:58:48 <haskellbridge> <sm> an alternate UI/mirror, yes
16:59:58 <haskellbridge> <sm> I switched to it just now to get a more stable page layout
17:00:13 <Franciman> kewl
17:19:56 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:21:59 danse-nr3 joins (~danse-nr3@151.46.175.239)
17:24:06 killy joins (~killy@staticline-31-183-139-249.toya.net.pl)
17:29:00 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds)
17:46:41 × wlhn quits (~wlhn@dl46fx8ym7lwsvqknt7by-3.rev.dnainternet.fi) (Quit: Leaving)
17:47:35 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
17:47:43 × danse-nr3 quits (~danse-nr3@151.46.175.239) (Remote host closed the connection)
17:48:06 danse-nr3 joins (~danse-nr3@151.46.175.239)
17:50:03 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
17:53:52 target_i joins (~target_i@user/target-i/x-6023099)
18:00:53 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:02:15 × killy quits (~killy@staticline-31-183-139-249.toya.net.pl) (Ping timeout: 255 seconds)
18:02:23 × andrewboltachev quits (~andrey@178.141.121.180) (Ping timeout: 264 seconds)
18:08:38 dsrt^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net)
18:12:15 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:13:30 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
18:13:35 Lord_of_Life_ is now known as Lord_of_Life
18:17:41 × euleritian quits (~euleritia@176.2.68.45) (Ping timeout: 272 seconds)
18:18:40 euleritian joins (~euleritia@dynamic-176-001-226-189.176.1.pool.telefonica.de)
18:49:14 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:57:16 × euleritian quits (~euleritia@dynamic-176-001-226-189.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
18:57:39 euleritian joins (~euleritia@77.22.252.56)
19:10:41 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
19:12:46 visilii_ joins (~visilii@213.24.125.202)
19:13:02 × visilii quits (~visilii@188.254.110.246) (Ping timeout: 252 seconds)
19:13:23 philopsos1 joins (~caecilius@user/philopsos)
19:17:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:19:35 CiaoSen joins (~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03)
19:23:24 kqr joins (~kqr@static.143.81.108.65.clients.your-server.de)
19:26:21 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:26:50 <kqr> Hello all! I am making some experiments in Haskell after about a 7 year hiatus from it, and I have one confusion I don't remember having before. I'm intending to use the `assign` function from Control.Lens, so I wanted to check what sort of state type to use. I clicked the MonadState constraint in the Haddocks and ended up in the adjunctions package which defines a State type. So far, so good.
19:26:53 <kqr> however, when I want to evalState this State type, it expects me to pass a `Rep g` as the initial input, and I just don't understand what this Representable thing is! Am I going about something backwards?
19:27:30 × noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
19:29:00 <haskellbridge> <iqubic (she/her)> You want this, from MTL: https://hackage.haskell.org/package/mtl-2.3.1/docs/Control-Monad-State-Class.html#t:MonadState
19:29:24 <ncf> it seems like lens uses its own MonadState from adjunctions, but you can (and should probably) use it with the StateT from transformers/mtl
19:29:47 <energizer> defining a function `cartesianProduct xs ys` is there a convention about defining it in terms of recursion on the left or right argument? ie `cartesianProduct _ [] = []` or `cartesianProduct [] _ = []` which is preferred, or does it depend on something?
19:30:44 <kqr> ncf, That sounds more like what I remember! Thanks! How can all these State implementations/interfaces be compatible?
19:31:18 <haskellbridge> <sm> energizer: I think the rule of thumb is something like, most changeable arguments to the right, to make partial application more convenient
19:31:26 <ncf> there is simply a adjunctions.MonadState instance for transformers.StateT
19:31:50 <energizer> sm in this case the arguments are symmetric, the only difference is left/right
19:31:55 <ncf> energizer: it doesn't really matter as long as you document it, but i would expect that to behave as liftA2 (,)
19:31:58 <jackdk> kqr: adjunctions re-exports `MonadState` from mtl, so it's the one you know and remember. It's providing its own monad with an instance.
19:32:06 <ncf> > liftA2 (,) [1,2] [3,4]
19:32:08 <lambdabot> [(1,3),(1,4),(2,3),(2,4)]
19:32:10 <kqr> ncf, Oh, yes, of course. It was a few years ago, as I said. Thank you again!
19:32:26 <mauke> energizer: I'd expect recursion on the first argument
19:38:40 <energizer> mauke: can you say why?
19:40:21 × philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 255 seconds)
19:40:21 <mauke> https://hackage.haskell.org/package/ghc-internal-9.1001.0/docs/src/GHC.Internal.List.html#zip
19:42:10 <energizer> that recurses on both arguments because it has to
19:44:59 <mauke> yes, but it starts by checking the first argument first
19:48:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:50:26 × danse-nr3 quits (~danse-nr3@151.46.175.239) (Ping timeout: 252 seconds)
19:53:09 <haskellbridge> <iqubic (she/her)> I guess for reasons of like, "it's so easy to do partial application in Haskell", you might want to check the first argument first, and short-circuit if needed. That prevents you from needing to write "flip f" in cases where that's equivalent, just for the extra performance boost.
20:14:56 philopsos1 joins (~caecilius@user/philopsos)
20:25:54 × wbooze quits (~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
20:29:51 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:31:45 <energizer> Supposing it's defined in terms of `cartesianProduct f [] ys = []; cartesianProduct f (x:xs) ys =`, what is `cartesianProduct f xs (y:ys)` equal to? It's not just `cartesianProduct (flip f) (y:ys) xs` because that puts the result in the wrong order. Is there a nice way to express the result?
20:32:54 wbooze joins (~wbooze@2a02:908:1244:9a20:3d84:fc89:d93b:3334)
20:35:04 × Xe quits (~cadey@bras-base-orlnon0609w-grc-21-184-145-123-58.dsl.bell.ca) (Quit: WeeChat 4.2.1)
20:35:19 Xe joins (~cadey@bras-base-orlnon0609w-grc-21-184-145-123-58.dsl.bell.ca)
20:35:29 × Xe quits (~cadey@bras-base-orlnon0609w-grc-21-184-145-123-58.dsl.bell.ca) (Changing host)
20:35:29 Xe joins (~cadey@perl/impostor/xe)
20:37:11 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 264 seconds)
20:41:02 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
20:45:28 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
20:48:35 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.3.3)
20:51:31 <ncf> you mean in terms of cartesianProduct f xs ys? it's going to be some ugly one-in-length-ys-interleaving of f y's
21:08:50 × Miroboru quits (~myrvoll@178-164-114.82.3p.ntebredband.no) (Quit: Lost terminal)
21:17:51 Garbanzo joins (~Garbanzo@2602:304:6eac:dc10::46)
21:22:24 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Remote host closed the connection)
21:23:26 × phma quits (~phma@host-67-44-208-116.hnremote.net) (Read error: Connection reset by peer)
21:24:53 phma joins (phma@2001:5b0:210f:1ad8:36db:ca4e:16e7:7eb)
21:25:22 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
21:41:07 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:43:34 joeyadams joins (~joeyadams@2603:6010:5100:2ed:93a8:3ab0:fdc9:ca35)
21:45:27 × dcoutts_ quits (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 256 seconds)
21:46:27 × lain` quits (lain@user/lain/x-9874679) (Ping timeout: 264 seconds)
21:59:11 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:59:39 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
22:07:58 safinaskar joins (~quassel@212.73.77.104)
22:08:54 <safinaskar> hi. i just proved in haskell that (0 + x = x) from (x + 0 = x) and induction https://godbolt.org/z/Tvqdaozoh
22:09:09 <safinaskar> i did NOT implement prover in haskell, i used type system of haskell itself as a prover
22:10:53 <safinaskar> unfortunately, i just understand that my proof is wrong. type application in haskell is injective, thus in my code (Add (N Z) Z ~ Add Z (N Z)) (this is true) implies (Z ~ N Z) (which is false)
22:10:59 <safinaskar> is there a way to fix this?
22:11:48 <safinaskar> maybe there is some experimental feature of haskell, which disables type application injectivity?
22:14:46 <ncf> it's injective with respect to type equality (~) (in some cases), but it shouldn't be injective with respect to your custom Equal type, should it?
22:15:16 <ncf> since you've gone with the weird axiomatic definition instead of the inductive definition with a refl constructor
22:15:19 <safinaskar> ncf: hmm, seems correct. thank you!
22:15:56 <ncf> i'm not even sure which type families are considered injective. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_families.html has some information
22:15:57 Sgeo joins (~Sgeo@user/sgeo)
22:22:41 <zzz> are typefamilies worth it or can i just get by with "simple" haskell?
22:24:00 <monochrom> I'm going to answer tautologically. Type families are worth it when you need type families. You can get by with simple Haskell when simple Haskell suffices.
22:24:01 × acidjnk_new3 quits (~acidjnk@p200300d6e714dc96bd88011075acd305.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:24:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:24:27 <monochrom> But I will add that I have only ever needed fairly simple Haskell most of the time.
22:25:14 <monochrom> But there are times when I miss SML's parametrized modules, and I can use type families to do something similar.
22:26:12 <monochrom> i.e., when I want to make some fairly general abstraction.
22:27:05 <monochrom> Or IOW when I use type families, it's for general template-like things, not for dependent typing.
22:27:27 <EvanR> type synonym family is a fairly simple way to reduce the verbosity of some type level shenanigans, they just expand to some other shenanigan
22:27:56 <safinaskar> ncf: unfortunately, no. see: https://godbolt.org/z/xEa54v666 . see "oops1" and "oops2" in the end. unfortunately i was able to prove that my Equal is equivalent to standard haskell equality
22:27:57 <EvanR> associated type synonym family in a class can sometimes save you from multi-parameter type classes
22:28:08 × michalz quits (~michalz@185.246.207.205) (Quit: ZNC 1.9.0 - https://znc.in)
22:28:27 <monochrom> Yeah that's what I use them for.
22:28:30 <EvanR> for the sake of argument "simple haskell" doesn't have you doing any of those so those don't help
22:28:53 × CiaoSen quits (~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03) (Ping timeout: 240 seconds)
22:28:59 <safinaskar> (and no, i cannot just remove "subst", i use it in proof of "subst2" and i use "subst2" in proof of (0 + x = x) )
22:28:59 <ncf> safinaskar: good point
22:29:11 <zzz> that was my suspicion
22:29:29 <zzz> i barey do any type-level acrobatics
22:29:51 <zzz> s/barey/barely
22:31:31 <safinaskar> ncf: "i'm not even sure which type families are considered injective" - according to https://hackage.haskell.org/package/base-4.20.0.1/docs/Data-Type-Equality.html#v:inner (f a ~ g b) always implies (a ~ b). but this relies on the fact that we can substitute given type-level function to "f" and "g"
22:32:04 <safinaskar> ncf: so the rule is here: all type-level functions, which can be substituted to type-level variables, are injective
22:32:58 <safinaskar> ncf: in particular (i checked this using expirement) if we have "type Foo a = ...", then "Foo" cannot be substituted, so "Foo" is not injective. But "Foo a" can be substituted, and thus it is injective
22:33:21 <dolio> inner does not say type families are injective, because `f` and `g` do not range over type families.
22:34:49 <safinaskar> dolio: i did expirement, and result are so. if i have "type family Foo a :: Type -> Type", then "Foo" cannot be substituted and thus is not injective. but "Foo a" can be substituted and thus injective
22:35:02 <safinaskar> dolio: so yes, type families are not injective
22:35:13 <safinaskar> type level functions are
22:35:59 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
22:36:01 <safinaskar> it seems i found solution. i just need to define "type family Add a b :: Nat", not "type family Add :: Nat -> Nat -> Nat"
22:36:06 <safinaskar> cool!
22:37:47 <geekosaur> they are if you declare them right (https://downloads.haskell.org/ghc/9.10.1/docs/users_guide/exts/type_families.html#injective-type-families)
22:37:59 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
22:44:04 <safinaskar> zzz: "are typefamilies worth it or can i just get by with "simple" haskell?" - i never needed type families except for this very weird code
22:47:49 × JimL quits (~quassel@89.162.16.26) (Ping timeout: 268 seconds)
22:51:09 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
22:53:40 <safinaskar> ncf: thanks for link. i just slightly have read it. and yes, now i know that type families can be injective if specially annotated. i. e. one can add more injectivity to a program if needed
22:54:24 <safinaskar> ncf: but in my case i want less injectivity, not more. and i already know how to do this. "type family Add a b :: Nat" instead of "type family Add :: Nat -> Nat -> Nat"
22:55:43 <ncf> (i have no idea why this works)
23:04:14 <safinaskar> ncf: i think i know why this works. "type family Add a b :: Nat" is somewhat similar to usual type synonym "type Add a b = ....". they are not injective (because you can easily write "type Add a b = Char"). and thus you should always apply all arguments, i. e. you cannot write (f @Add), you should write (f @(Add a b)). otherwise you could prove injectivity using "Data.Type.Equality.inner"
23:05:34 <safinaskar> ncf: and in "type family Add :: Nat -> Nat -> Nat" we have injectivity (because one cannot define non-injective "Add"), thus we can rely on it
23:13:29 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
23:17:09 <safinaskar> i found a wrong statement at https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_families.html
23:17:23 <safinaskar> but i will not report bug, because your bug reporting process is too compilected
23:17:30 <safinaskar> *complicated
23:18:07 <safinaskar> the statement is: "We call the number of parameters in a type family declaration, the family’s arity, and all applications of a type family must be fully saturated with respect to that arity. This requirement is unlike ordinary type synonyms and it implies that the kind of a type family is not sufficient to determine a family’s arity, and hence in general, also insufficient to determine whether a type family application is well formed."
23:18:31 <safinaskar> the statement is wrong, because ordinary type synonyms share this property, too (determined by expirement)
23:19:13 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:25:39 × Garbanzo quits (~Garbanzo@2602:304:6eac:dc10::46) (Remote host closed the connection)
23:39:24 emmanuelux joins (~emmanuelu@user/emmanuelux)
23:43:11 × zzz quits (~yin@user/zero) (Ping timeout: 264 seconds)
23:50:04 zzz joins (~yin@user/zero)
23:50:24 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (Quit: Ping timeout (120 seconds))
23:50:24 × xstill_ quits (xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
23:50:58 × malte quits (~malte@mal.tc) (Read error: Connection reset by peer)
23:51:12 malte joins (~malte@mal.tc)
23:51:38 × rvalue quits (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
23:51:51 × it_ quits (~quassel@v2202212189510211193.supersrv.de) (Quit: No Ping reply in 180 seconds.)
23:52:00 rvalue joins (~rvalue@user/rvalue)
23:52:56 xstill_ joins (xstill@fimu/xstill)
23:53:15 it_ joins (~quassel@v2202212189510211193.supersrv.de)
23:53:55 <davean> safinaskar: why do you think that is wrong? Pretty sure I've defined classes on type synonyms for example
23:56:04 xsarnik joins (xsarnik@lounge.fi.muni.cz)
23:57:58 <dolio> I don't think you can define classes on synonyms unless it satisfies a similar arity condition to families.
23:58:24 <dolio> But LiberalTypeSynonyms let you partially apply them as long as they become saturated, and doesn't allow the same thing to happen with families.

All times are in UTC on 2024-06-26.