Home liberachat/#haskell: Logs Calendar

Logs on 2025-02-28 (liberachat/#haskell)

00:01:00 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
00:01:49 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:02:28 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
00:06:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
00:07:42 bilegeek joins (~bilegeek@2600:1008:b01f:5f7b:5bb4:d486:4e63:9b64)
00:11:30 × caconym quits (~caconym@user/caconym) (Ping timeout: 276 seconds)
00:15:14 <Square2> can you safely ignore (new-/v2-/v1-) <command> ...in cabal 3(.10) ?
00:17:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:17:40 × xff0x quits (~xff0x@ai066236.d.east.v6connect.net) (Ping timeout: 272 seconds)
00:17:44 <geekosaur> v2- is default in cabal 3
00:18:11 <geekosaur> v1- commands still exist for a few special cases not well covered by current v2 commands
00:24:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
00:24:17 × rini quits (~rini@user/rini) (Ping timeout: 248 seconds)
00:24:28 xff0x joins (~xff0x@2405:6580:b080:900:ccc7:505:ea62:9fdf)
00:24:50 rini joins (~rini@user/rini)
00:27:45 caconym joins (~caconym@user/caconym)
00:35:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:39:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
00:40:06 × picnoir quits (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 276 seconds)
00:45:32 alfiee joins (~alfiee@user/alfiee)
00:49:59 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
00:50:36 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:52:33 × xff0x quits (~xff0x@2405:6580:b080:900:ccc7:505:ea62:9fdf) (Ping timeout: 248 seconds)
00:54:38 × euleritian quits (~euleritia@dynamic-176-006-140-040.176.6.pool.telefonica.de) (Remote host closed the connection)
00:54:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
00:55:05 euleritian joins (~euleritia@dynamic-176-006-140-040.176.6.pool.telefonica.de)
00:55:24 × euleritian quits (~euleritia@dynamic-176-006-140-040.176.6.pool.telefonica.de) (Remote host closed the connection)
00:55:43 euleritian joins (~euleritia@dynamic-176-006-140-040.176.6.pool.telefonica.de)
00:57:32 × sprotte24 quits (~sprotte24@p200300d16f3f1000f5852302a25e2776.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
00:58:16 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 265 seconds)
01:00:54 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds)
01:03:11 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:04:45 yegorc joins (~yegorc@user/yegorc)
01:06:12 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds)
01:06:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:08:16 gmg joins (~user@user/gehmehgeh)
01:11:48 messewix joins (~jmc@user/messewix)
01:12:08 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
01:17:14 j1n37 joins (~j1n37@user/j1n37)
01:22:16 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 272 seconds)
01:22:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:22:22 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
01:22:24 k_hachig_ is now known as k_hachig
01:26:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:27:48 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds)
01:28:17 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
01:28:23 todi1 joins (~todi@p57803331.dip0.t-ipconnect.de)
01:29:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:30:03 gmg joins (~user@user/gehmehgeh)
01:30:56 alfiee joins (~alfiee@user/alfiee)
01:32:22 j1n37 joins (~j1n37@user/j1n37)
01:34:26 <Square2> geekosaur, thanks
01:34:32 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
01:35:17 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
01:35:29 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
01:43:14 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:44:35 × yaroot quits (~yaroot@2400:4052:ac0:d901:1cf4:2aff:fe51:c04c) (Read error: Connection reset by peer)
01:44:49 yaroot joins (~yaroot@p3747022-ipxg13101souka.saitama.ocn.ne.jp)
01:45:21 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:47:07 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
01:49:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
01:50:18 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
01:50:19 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:51:31 × notdabs quits (~Owner@2600:6c40:4300:950:24fa:651a:9708:e91a) (Read error: Connection reset by peer)
01:51:33 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
01:55:31 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
01:58:06 × messewix quits (~jmc@user/messewix) (Remote host closed the connection)
01:58:46 messewix joins (~jmc@user/messewix)
02:00:44 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:02:34 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds)
02:07:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
02:10:18 picnoir joins (~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
02:11:38 talismanick joins (~user@2601:644:937c:ed10::ae5)
02:16:40 alfiee joins (~alfiee@user/alfiee)
02:18:28 L29Ah joins (~L29Ah@wikipedia/L29Ah)
02:18:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:21:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
02:22:52 × k_hachig quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 265 seconds)
02:23:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
02:25:46 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 265 seconds)
02:27:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
02:31:42 euphores joins (~SASL_euph@user/euphores)
02:34:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:36:03 j1n37 joins (~j1n37@user/j1n37)
02:38:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
02:39:08 lockywolf parts (~lockywolf@213.165.252.157) (Leaving)
02:44:42 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
02:49:36 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:51:10 × k_hachig_ quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 252 seconds)
02:51:44 j1n37- joins (~j1n37@user/j1n37)
02:52:38 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds)
02:53:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
02:57:54 × jathan quits (~jathan@2607:1a00:0:19::2:1dc) (Quit: WeeChat 2.3)
02:58:06 <Square2> It seems the contraint checker in ghc 9 has gotten a lot stricter? There is no way to relax it per file? Like all declarations needs to be in order.
02:58:24 <EvanR> say what
02:58:44 <Square2> hehe... I guess I could word taht better. But i guess frustration hit.
02:59:17 <EvanR> definitions can be in any order within the same file
02:59:50 <geekosaur> ghc tightened some TH stage restrictions, IIRC
03:00:19 <geekosaur> but TH is necessarily difficult as it has to be run during parsing
03:02:15 <monochrom> deja vu? I thought that was explained and resolved yesterday.
03:02:54 <Square2> well, the question today wasn't about TH really. I just pasted the TH output in the problematic file and hoped it would solve itself.
03:03:37 <Square2> But, it seems it didn't. I need to provide an example to hope to get some meaningful input on this I realize.
03:03:44 alfiee joins (~alfiee@user/alfiee)
03:04:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:08:02 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
03:09:47 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
03:12:10 <Square2> So this is my observation. If I have a .hs file. If I have 3 blocks of code in that file. part A, part B, part C. If part B is TH usage, the constraint solving between part A and C is broken.
03:14:34 <EvanR> that makes more sense
03:15:14 <EvanR> A might not know about stuff in C until after TH runs when it's too late
03:16:43 <Square2> Yeah, that might be it and somewhat checks out what the wrote in the release notes
03:16:52 <Square2> they*
03:19:18 weary-traveler joins (~user@user/user363627)
03:20:16 × alp quits (~alp@2001:861:8ca0:4940:58d8:cc89:9d90:c4b2) (Ping timeout: 268 seconds)
03:20:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:25:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
03:35:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:36:46 a_fantom joins (~fantom@2.219.56.221)
03:38:46 × fantom quits (~fantom@2.219.56.221) (Ping timeout: 244 seconds)
03:41:28 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
03:42:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:46:25 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:49:28 alfiee joins (~alfiee@user/alfiee)
03:53:45 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
03:53:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:58:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
04:09:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:13:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
04:14:30 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
04:24:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:25:33 f8 joins (~f8@103.110.48.158)
04:26:25 × f8 quits (~f8@103.110.48.158) (Client Quit)
04:29:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
04:31:37 aforemny_ joins (~aforemny@i577B1335.versanet.de)
04:32:50 × aforemny quits (~aforemny@2001:9e8:6ce2:b00:1290:c2b0:bbd4:4f06) (Ping timeout: 248 seconds)
04:35:12 alfiee joins (~alfiee@user/alfiee)
04:39:33 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
04:39:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:44:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
04:55:14 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:55:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:55:50 × k_hachig_ quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 252 seconds)
04:59:30 × Flow quits (~none@gentoo/developer/flow) (Ping timeout: 246 seconds)
04:59:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
05:06:58 Flow joins (~none@gentoo/developer/flow)
05:07:43 florida joins (~florida@2a02:ab88:7200:6a00:762b:62ff:fe83:1a1b)
05:10:05 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
05:10:39 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:13:09 × swamp_ quits (~zmt00@user/zmt00) (Read error: Connection reset by peer)
05:14:32 zmt00 joins (~zmt00@user/zmt00)
05:16:13 × k_hachig_ quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 245 seconds)
05:17:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
05:20:36 alfiee joins (~alfiee@user/alfiee)
05:24:41 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
05:28:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:32:47 _xor joins (~xor@ip-66-42-132-175.dynamic.fuse.net)
05:32:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
05:33:57 × iteratee quits (~kyle@162.218.222.207) (Ping timeout: 252 seconds)
05:34:19 × _xor4 quits (~xor@ip-66-42-132-175.dynamic.fuse.net) (Ping timeout: 252 seconds)
05:34:19 × koz quits (~koz@121.99.240.58) (Ping timeout: 252 seconds)
05:34:36 koz joins (~koz@121.99.240.58)
05:37:21 michalz joins (~michalz@185.246.207.222)
05:42:21 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
05:43:25 iteratee joins (~kyle@162.218.222.207)
05:43:25 synchromesh joins (~john@2406:5a00:24cf:bb00:2c32:43e6:1cbf:396a)
05:44:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:45:55 hsw__ joins (~hsw@2001:b030:2303:104:172:25:12:132)
05:47:01 × img quits (~img@user/img) (Ping timeout: 248 seconds)
05:47:31 × deriamis_ quits (nobody@2600:3c0a::f03c:95ff:fee8:f335) (Quit: ZNC - https://znc.in)
05:47:40 img joins (~img@user/img)
05:47:51 × jbalint quits (~jbalint@2600:6c44:117f:e98a:40bb:52ad:62b8:5122) (Remote host closed the connection)
05:48:04 jbalint joins (~jbalint@2600:6c44:117f:e98a:40bb:52ad:62b8:5122)
05:48:17 × hsw_ quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
05:48:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
05:48:37 × feetwind quits (~mike@user/feetwind) (Ping timeout: 248 seconds)
05:48:56 feetwind joins (~mike@user/feetwind)
05:49:22 deriamis joins (nobody@172-232-162-115.ip.linodeusercontent.com)
05:54:35 × sabathan quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
05:57:51 sabathan joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:59:26 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:02:11 alp joins (~alp@2001:861:8ca0:4940:cf02:35f:1502:8681)
06:04:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:06:00 alfiee joins (~alfiee@user/alfiee)
06:08:48 × j1n37- quits (~j1n37@user/j1n37) (Quit: Ich bin der Welt abhanden gekommen)
06:09:34 j1n37 joins (~j1n37@user/j1n37)
06:10:31 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
06:12:03 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:13:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:15:21 j1n37 joins (~j1n37@user/j1n37)
06:17:31 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:18:01 takuan joins (~takuan@d8D86B601.access.telenet.be)
06:18:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
06:21:40 j1n37 joins (~j1n37@user/j1n37)
06:23:35 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:27:53 j1n37 joins (~j1n37@user/j1n37)
06:29:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:30:08 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:32:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
06:33:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
06:35:17 j1n37 joins (~j1n37@user/j1n37)
06:41:47 × CryptLab quits (NSA@gateway/vpn/protonvpn/commanderbond007) (Ping timeout: 252 seconds)
06:44:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:49:52 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:50:18 ensyde joins (~ensyde@2601:5c6:c200:6dc0::46e1)
06:51:43 alfiee joins (~alfiee@user/alfiee)
06:56:12 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
06:56:43 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
06:56:52 acidjnk_new joins (~acidjnk@p200300d6e7283f90a88c11223635ddf2.dip0.t-ipconnect.de)
07:00:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:04:47 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:05:23 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
07:08:07 × ft quits (~ft@p3e9bc68d.dip0.t-ipconnect.de) (Quit: leaving)
07:09:55 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
07:10:17 × euleritian quits (~euleritia@dynamic-176-006-140-040.176.6.pool.telefonica.de) (Ping timeout: 268 seconds)
07:10:45 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
07:11:15 euleritian joins (~euleritia@dynamic-176-006-140-035.176.6.pool.telefonica.de)
07:11:16 Lord_of_Life_ is now known as Lord_of_Life
07:16:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:16:49 bilegeek_ joins (~bilegeek@2600:1008:b014:2c7:531b:7b59:1891:ee3a)
07:18:49 bilegeek__ joins (~bilegeek@2600:1008:b061:9e8:b6a7:1e21:b590:dc2)
07:19:29 × bilegeek quits (~bilegeek@2600:1008:b01f:5f7b:5bb4:d486:4e63:9b64) (Ping timeout: 260 seconds)
07:20:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
07:21:25 × bilegeek_ quits (~bilegeek@2600:1008:b014:2c7:531b:7b59:1891:ee3a) (Ping timeout: 248 seconds)
07:27:38 × florida quits (~florida@2a02:ab88:7200:6a00:762b:62ff:fe83:1a1b) (Quit: Leaving)
07:27:47 <kqr> Noob Haskell question: I have this expression: `or [isJust a, isJust b, isJust c]` and I'd like to translate it into `any isJust [a, b, c]` but this does not work because none of a, b, or c are of the same type. At first I thought I would be able to do something like `any isJust (map ($> ()) [a, b, c])` but of course this runs into the same problem! What are my alternatives here?
07:31:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:31:47 <[exa]> kqr: putting a,b,c into the same list is gonna be an issue. if you just want simpler code, you could abuse the monads a bit
07:33:05 <[exa]> https://play.haskell.org/saved/atW1eEnR <- kqr does this work for you?
07:33:05 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
07:33:48 <[exa]> (you can also do like isJust (a>>b>>c) or so, to have it inline. But you can't really put the abc into a single container.
07:34:24 <kqr> Oh. Yeah, that definitely works. I just have to wrap my head around how the heck it works!
07:34:30 <[exa]> ah wayit actually
07:34:33 <Leary> :t let { x ~|~ y = void x <|> void y; infixr 2 ~|~ } in \a b c -> isJust $ a ~|~ b ~|~ c
07:34:33 <[exa]> you have "or" there
07:34:34 <lambdabot> Maybe a1 -> Maybe a2 -> Maybe a3 -> Bool
07:34:39 <[exa]> mine does "and"
07:34:49 <kqr> Oh, true.
07:34:58 <kqr> But <|> maybe?
07:34:59 <[exa]> for "or" you want to di as Keart says, with something like the <
07:35:04 <[exa]> yes.
07:35:49 <[exa]> On the very other side of the problem, you could do existential-style polymorphic lists to contain all possible justs in there. But don't if you don't have to.
07:36:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
07:36:57 <kqr> I'm just aiming for conciseness and readability here. The original code said isJust a || isJust b || isJust c but the expressions a, b, and c are in reality longer and made the logic of the whole line difficult to overview
07:37:22 <kqr> Well actually the original code had only the first two terms, and when I added the third it became more difficult to read
07:37:28 alfiee joins (~alfiee@user/alfiee)
07:37:41 <[exa]> the <|> is probably good there, it's going to give you the first "valid" choice if you're after it
07:37:53 × Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds)
07:38:08 <kqr> The <|> is not good because
07:38:10 <kqr> :t (<|>)
07:38:12 <lambdabot> Alternative f => f a -> f a -> f a
07:38:12 <[exa]> ah wait no not really because the types again
07:38:15 j1n37 joins (~j1n37@user/j1n37)
07:38:16 <kqr> Yeah, I just realised
07:38:17 <[exa]> :(
07:38:34 <kqr> Ah what the heck, I'll just pop `isJust` in front of each element of the list. It is perfectly readable still.
07:40:14 <Leary> % :t \cases{ Nothing Nothing Nothing -> False; _ _ _ -> True }
07:40:14 <yahb2> \cases{ Nothing Nothing Nothing -> False; _ _ _ -> True } ; :: Maybe a1 -> Maybe a2 -> Maybe a3 -> Bool
07:40:47 <kqr> I guess what I'm after is some sort of Alternative f => f a -> f b -> f () which is what Leary suggested first.
07:41:55 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
07:43:18 agumonke` joins (~user@tri69-h04-89-85-120-232.dsl.sta.abo.bbox.fr)
07:45:30 CiaoSen joins (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922)
07:45:42 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
07:46:52 × pointlessslippe1 quits (~pointless@62.106.85.17) (Read error: Connection reset by peer)
07:46:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:49:20 j1n37 joins (~j1n37@user/j1n37)
07:49:59 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
07:52:09 pointlessslippe1 joins (~pointless@62.106.85.17)
07:53:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:54:46 j1n37 joins (~j1n37@user/j1n37)
07:56:24 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
07:57:32 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
08:00:00 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:01:08 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:01:09 caconym joins (~caconym@user/caconym)
08:01:14 × pointlessslippe1 quits (~pointless@62.106.85.17) (Read error: Connection reset by peer)
08:02:09 j1n37 joins (~j1n37@user/j1n37)
08:02:19 chele joins (~chele@user/chele)
08:03:10 × Googulator78 quits (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) (Ping timeout: 240 seconds)
08:03:10 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:04:39 pointlessslippe1 joins (~pointless@62.106.85.17)
08:05:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:06:09 j1n37 joins (~j1n37@user/j1n37)
08:07:19 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:08:06 j1n37 joins (~j1n37@user/j1n37)
08:09:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
08:09:30 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:11:24 CryptLab joins (~NSA@171.33.191.92)
08:11:36 × CryptLab quits (~NSA@171.33.191.92) (Read error: Connection reset by peer)
08:12:23 CryptLab joins (NSA@gateway/vpn/protonvpn/commanderbond007)
08:13:08 j1n37 joins (~j1n37@user/j1n37)
08:14:25 × acidjnk_new quits (~acidjnk@p200300d6e7283f90a88c11223635ddf2.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
08:14:56 × k0zy quits (~user@user/k0zy) (Ping timeout: 252 seconds)
08:14:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:16:29 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:18:00 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
08:19:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
08:19:38 j1n37 joins (~j1n37@user/j1n37)
08:19:56 vpan joins (~vpan@212.117.1.172)
08:22:17 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:22:30 × bilegeek__ quits (~bilegeek@2600:1008:b061:9e8:b6a7:1e21:b590:dc2) (Quit: Leaving)
08:23:12 alfiee joins (~alfiee@user/alfiee)
08:27:33 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
08:30:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:30:27 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
08:32:30 tabaqui1 joins (~root@87.200.129.102)
08:35:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
08:35:07 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:35:15 × ensyde quits (~ensyde@2601:5c6:c200:6dc0::46e1) (Ping timeout: 276 seconds)
08:35:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:40:26 __monty__ joins (~toonn@user/toonn)
08:44:05 j1n37 joins (~j1n37@user/j1n37)
08:45:39 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:48:09 misterfish joins (~misterfis@84.53.85.146)
08:49:24 j1n37 joins (~j1n37@user/j1n37)
08:50:08 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:51:19 acidjnk_new joins (~acidjnk@p200300d6e7283f90151e54128007b3e3.dip0.t-ipconnect.de)
08:53:04 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
08:54:20 j1n37 joins (~j1n37@user/j1n37)
08:54:34 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Ping timeout: 260 seconds)
08:56:23 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
08:56:58 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
08:59:09 ljdarj joins (~Thunderbi@user/ljdarj)
08:59:28 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
09:01:13 j1n37 joins (~j1n37@user/j1n37)
09:01:54 × k_hachig_ quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 244 seconds)
09:02:31 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:03:03 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
09:04:08 mange joins (~user@user/mange)
09:05:44 j1n37 joins (~j1n37@user/j1n37)
09:08:03 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
09:08:34 rvalue joins (~rvalue@user/rvalue)
09:08:56 alfiee joins (~alfiee@user/alfiee)
09:12:22 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:12:32 × AlexZenon quits (~alzenon@178.34.162.44) (Ping timeout: 244 seconds)
09:13:10 <cheater> how can you have [isJust a, isJust b] if a and b are different types
09:13:15 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
09:13:18 <cheater> % :t isJust
09:13:18 <yahb2> <interactive>:1:1: error: [GHC-88464] ; Variable not in scope: isJust ; Suggested fix: ; Perhaps use data constructor ‘Just’ (imported from Prelude)
09:13:28 <cheater> ah right
09:13:34 <cheater> it gets rid of the type
09:15:35 j1n37 joins (~j1n37@user/j1n37)
09:17:20 AlexZenon joins (~alzenon@178.34.162.44)
09:18:49 JuanDaugherty joins (~juan@user/JuanDaugherty)
09:20:10 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:21:00 lxsameer joins (~lxsameer@Serene/lxsameer)
09:23:14 j1n37 joins (~j1n37@user/j1n37)
09:25:11 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:28:16 j1n37 joins (~j1n37@user/j1n37)
09:29:03 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:32:43 j1n37 joins (~j1n37@user/j1n37)
09:32:45 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:36:31 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 244 seconds)
09:36:37 j1n37 joins (~j1n37@user/j1n37)
09:37:36 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
09:39:04 × sarna quits (~sarna@d224-52.icpnet.pl) (Ping timeout: 260 seconds)
09:43:17 rvalue- joins (~rvalue@user/rvalue)
09:44:27 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 268 seconds)
09:48:15 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:49:49 rvalue- is now known as rvalue
09:53:42 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 268 seconds)
09:54:40 alfiee joins (~alfiee@user/alfiee)
09:58:43 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
10:01:45 j1n37 joins (~j1n37@user/j1n37)
10:01:47 × mange quits (~user@user/mange) (Read error: Connection reset by peer)
10:02:14 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
10:05:55 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:08:14 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
10:08:55 j1n37 joins (~j1n37@user/j1n37)
10:09:53 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:15:45 j1n37 joins (~j1n37@user/j1n37)
10:20:21 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:24:03 j1n37 joins (~j1n37@user/j1n37)
10:26:12 Googulator joins (~Googulato@81.183.235.203)
10:27:23 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:31:15 j1n37 joins (~j1n37@user/j1n37)
10:34:24 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:34:57 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
10:34:57 × agumonke` quits (~user@tri69-h04-89-85-120-232.dsl.sta.abo.bbox.fr) (Ping timeout: 248 seconds)
10:38:03 × sand-witch quits (~m-mzmz6l@vmi833741.contaboserver.net) (Remote host closed the connection)
10:38:58 j1n37 joins (~j1n37@user/j1n37)
10:40:24 alfiee joins (~alfiee@user/alfiee)
10:42:36 sand-witch joins (~m-mzmz6l@vmi833741.contaboserver.net)
10:44:31 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
10:45:30 mange joins (~user@user/mange)
10:48:47 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:54:51 j1n37 joins (~j1n37@user/j1n37)
10:55:21 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
10:59:39 j1n37 joins (~j1n37@user/j1n37)
11:00:19 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:01:17 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:cd99:ecc5:f78b:848b)
11:01:26 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
11:04:37 j1n37 joins (~j1n37@user/j1n37)
11:04:56 × vgtw quits (~vgtw@user/vgtw) (Ping timeout: 272 seconds)
11:06:13 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:07:58 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
11:09:26 j1n37 joins (~j1n37@user/j1n37)
11:09:39 × mange quits (~user@user/mange) (Quit: Zzz...)
11:10:31 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:13:27 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
11:15:24 ski . o O ( `isJust :: (exists a. Maybe a) -> Bool' )
11:16:32 j1n37 joins (~j1n37@user/j1n37)
11:18:09 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:19:24 × k_hachig_ quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 260 seconds)
11:21:51 <ncf> isJust :: (forall a. a -> Maybe a) -> Bool
11:21:55 <ncf> isJust Just = True
11:21:59 <ncf> (joking)
11:22:08 jespada joins (~jespada@2800:a4:2319:bf00:2482:f961:7f45:5c3d)
11:22:18 × jespada quits (~jespada@2800:a4:2319:bf00:2482:f961:7f45:5c3d) (Client Quit)
11:25:01 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 244 seconds)
11:29:12 alfiee joins (~alfiee@user/alfiee)
11:33:36 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
11:34:21 drlong67 joins (~david@user/drlong67)
11:36:21 hackshell joins (~hackshell@2001-14ba-466-5800-35e5-5c75-8df8-d2c8.rev.dnainternet.fi)
11:36:48 × drlong67 quits (~david@user/drlong67) (Client Quit)
11:39:28 j1n37 joins (~j1n37@user/j1n37)
11:40:20 × hackshell quits (~hackshell@2001-14ba-466-5800-35e5-5c75-8df8-d2c8.rev.dnainternet.fi) (Client Quit)
11:40:23 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:43:19 vgtw joins (~vgtw@user/vgtw)
11:43:22 j1n37 joins (~j1n37@user/j1n37)
11:45:55 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:48:01 × CiaoSen quits (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) (Ping timeout: 248 seconds)
11:48:54 j1n37 joins (~j1n37@user/j1n37)
11:50:32 × vgtw quits (~vgtw@user/vgtw) (Ping timeout: 252 seconds)
11:50:47 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:52:45 Miroboru joins (~myrvoll@178-164-114.82.3p.ntebredband.no)
11:53:31 vgtw joins (~vgtw@user/vgtw)
11:53:54 j1n37 joins (~j1n37@user/j1n37)
11:54:59 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
11:59:33 j1n37 joins (~j1n37@user/j1n37)
12:00:48 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
12:02:00 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
12:05:14 j1n37 joins (~j1n37@user/j1n37)
12:09:25 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
12:13:03 j1n37 joins (~j1n37@user/j1n37)
12:15:28 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
12:15:52 j1n37 joins (~j1n37@user/j1n37)
12:16:29 manwithluck joins (~manwithlu@2a09:bac5:5085:2387::38a:37)
12:16:46 × manwithluck` quits (~manwithlu@2a09:bac1:5ba0:20::49:b4) (Ping timeout: 268 seconds)
12:16:47 alfiee joins (~alfiee@user/alfiee)
12:17:05 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
12:21:09 Digitteknohippie joins (~user@user/digit)
12:21:33 × Digit quits (~user@user/digit) (Ping timeout: 246 seconds)
12:21:34 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
12:24:17 xff0x joins (~xff0x@2405:6580:b080:900:decf:3f06:84d:1232)
12:25:54 × manwithluck quits (~manwithlu@2a09:bac5:5085:2387::38a:37) (Ping timeout: 248 seconds)
12:26:52 manwithluck joins (~manwithlu@2a09:bac1:5b80:20::38a:33)
12:29:48 × Digitteknohippie quits (~user@user/digit) (Ping timeout: 272 seconds)
12:32:18 × manwithluck quits (~manwithlu@2a09:bac1:5b80:20::38a:33) (Remote host closed the connection)
12:34:54 × puke quits (~puke@user/puke) (Ping timeout: 252 seconds)
12:35:04 j1n37- joins (~j1n37@user/j1n37)
12:35:11 manwithluck joins (~manwithlu@185-183-33-218.hosted-by-worldstream.net)
12:35:38 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds)
12:38:50 agumonke` joins (~user@val59-h07-89-85-120-232.dsl.sta.abo.bbox.fr)
12:39:11 vanishingideal joins (~vanishing@user/vanishingideal)
12:45:54 × malte quits (~malte@mal.tc) (Ping timeout: 252 seconds)
12:56:02 × Googulator quits (~Googulato@81.183.235.203) (Quit: Client closed)
12:56:17 Googulator joins (~Googulato@81.183.235.203)
12:57:27 <mauke> isJust :: a -> a -- that's just how it is
13:02:52 alfiee joins (~alfiee@user/alfiee)
13:07:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
13:07:56 Googulator78 joins (~Googulato@81.183.235.203)
13:11:40 × Googulator quits (~Googulato@81.183.235.203) (Ping timeout: 240 seconds)
13:17:49 × yegorc quits (~yegorc@user/yegorc) (Ping timeout: 268 seconds)
13:37:19 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:42:44 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
13:43:17 × euleritian quits (~euleritia@dynamic-176-006-140-035.176.6.pool.telefonica.de) (Ping timeout: 248 seconds)
13:44:36 × zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds)
13:45:31 L29Ah joins (~L29Ah@wikipedia/L29Ah)
13:48:36 alfiee joins (~alfiee@user/alfiee)
13:49:23 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
13:53:05 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
13:55:31 zungi joins (~tory@user/andrewchawk)
14:00:42 × synchromesh quits (~john@2406:5a00:24cf:bb00:2c32:43e6:1cbf:396a) (Read error: Connection reset by peer)
14:01:59 synchromesh joins (~john@2406:5a00:24cf:bb00:2c32:43e6:1cbf:396a)
14:03:19 × chele quits (~chele@user/chele) (Remote host closed the connection)
14:05:47 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:15:38 × zungi quits (~tory@user/andrewchawk) (Remote host closed the connection)
14:16:05 zungi joins (~tory@user/andrewchawk)
14:23:24 ft joins (~ft@p3e9bc68d.dip0.t-ipconnect.de)
14:34:20 alfiee joins (~alfiee@user/alfiee)
14:36:11 sarna joins (~sarna@d168-237.icpnet.pl)
14:38:33 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
14:39:32 k_hachig_ joins (~k_hachig@70.29.50.103)
14:39:42 <tomsmeding> can I convince ghci to drop the reference to something that I saved in a variable before?
14:40:33 <tomsmeding> that is to say, after I wrote "a = 42", can I get ghci to give me a "Variable not in scope" error when trying to use "a", without restarting ghci or resetting the heap?
14:40:47 <tomsmeding> (I want to test some finalizers)
14:41:46 <int-e> Can you shadow the binding instead, maybe? Not sure how much hope I have of that working...
14:42:54 <int-e> What should definitely work though is to put your value into an IORef and then change that.
14:45:00 <cheater> i don't think ghci has a "delet", and i'm sure people can remember me mentioning that term in the past
14:46:09 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
14:46:55 <cheater> of course, chris had to spoil the fun and call it "unlet", but that's just him https://gist.github.com/chrisdone/74180331c64e8cff47e447cb15087ad0
14:47:46 <tomsmeding> "delet" is a much better name
14:48:30 <cheater> of course it is
14:49:31 <cheater> i can't imagine it being very difficult to implement in ghc
14:50:09 <tomsmeding> int-e: shadowing doesn't seem to work (it would've been too good to be true), but the IORef trick does! And my finalizer works! :)
14:50:20 <tomsmeding> (or rather: it runs)
14:50:32 Sgeo joins (~Sgeo@user/sgeo)
14:50:41 <tomsmeding> (which, when it comes to stuff like finalizers, is an achievement on its own)
14:55:08 jathan joins (~jathan@69.61.93.38)
14:58:48 JuanDaugherty joins (~juan@user/JuanDaugherty)
15:10:03 × manwithluck quits (~manwithlu@185-183-33-218.hosted-by-worldstream.net) (Ping timeout: 268 seconds)
15:10:11 jespada joins (~jespada@2800:a4:2319:bf00:b8ce:b197:cf38:dadc)
15:13:33 manwithluck joins (~manwithlu@185-183-33-218.hosted-by-worldstream.net)
15:20:04 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
15:20:22 × agumonke` quits (~user@val59-h07-89-85-120-232.dsl.sta.abo.bbox.fr) (Read error: Connection reset by peer)
15:20:44 alfiee joins (~alfiee@user/alfiee)
15:20:50 agumonke` joins (~user@2a04:cec0:1900:908b:c7a:f6ae:8f:6b06)
15:20:57 × jespada quits (~jespada@2800:a4:2319:bf00:b8ce:b197:cf38:dadc) (Read error: Connection reset by peer)
15:21:19 jespada joins (~jespada@2800:a4:2319:bf00:b8ce:b197:cf38:dadc)
15:22:19 × manwithluck quits (~manwithlu@185-183-33-218.hosted-by-worldstream.net) (Read error: Connection reset by peer)
15:23:41 manwithluck joins (~manwithlu@185-183-33-218.hosted-by-worldstream.net)
15:25:02 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
15:26:07 × jespada quits (~jespada@2800:a4:2319:bf00:b8ce:b197:cf38:dadc) (Quit: My Mac has gone to sleep. ZZZzzz…)
15:29:32 notdabs joins (~Owner@2600:6c40:4300:950:cc75:6335:c59d:cd1)
15:43:05 × vpan quits (~vpan@212.117.1.172) (Quit: Leaving.)
15:45:43 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
15:53:45 wootehfoot joins (~wootehfoo@user/wootehfoot)
15:55:04 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.1)
15:57:36 <cheater> finally!
15:58:58 vanishingideal joins (~vanishing@user/vanishingideal)
16:02:22 GdeVolpi1 joins (~GdeVolpia@user/GdeVolpiano)
16:02:33 × GdeVolpiano quits (~GdeVolpia@user/GdeVolpiano) (Read error: Connection reset by peer)
16:03:48 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 264 seconds)
16:04:29 stiell joins (~stiell@gateway/tor-sasl/stiell)
16:04:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Read error: Connection reset by peer)
16:06:28 alfiee joins (~alfiee@user/alfiee)
16:10:51 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
16:11:19 × Googulator78 quits (~Googulato@81.183.235.203) (Quit: Client closed)
16:11:54 Googulator78 joins (~Googulato@81.183.235.203)
16:12:36 sprotte24 joins (~sprotte24@p200300d16f44db00e82c8bd776d1241a.dip0.t-ipconnect.de)
16:16:56 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
16:19:20 s3 joins (~s3@user/bn)
16:19:42 srazkvt joins (~sarah@user/srazkvt)
16:25:13 Digit joins (~user@user/digit)
16:27:56 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 272 seconds)
16:28:29 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
16:39:58 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:cd99:ecc5:f78b:848b) (Quit: ubert)
16:48:39 ash3en1 joins (~Thunderbi@146.70.124.222)
16:49:59 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
16:50:15 __jmcantrell__ joins (~weechat@user/jmcantrell)
16:50:17 jmcantrell is now known as Guest4825
16:50:17 × Guest4825 quits (644f1bed9a@user/jmcantrell) (Killed (lead.libera.chat (Nickname regained by services)))
16:50:17 __jmcantrell__ is now known as jmcantrell
16:50:26 jmcantrell_ joins (644f1bed9a@user/jmcantrell)
16:50:34 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 260 seconds)
16:50:34 ash3en1 is now known as ash3en
16:50:58 yu joins (~yu@dmc516.resnet.ust.hk)
16:56:13 alfiee joins (~alfiee@user/alfiee)
16:56:21 × Digit quits (~user@user/digit) (Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50))
16:56:41 × acidjnk_new quits (~acidjnk@p200300d6e7283f90151e54128007b3e3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
16:57:34 Digitteknohippie joins (~user@user/digit)
16:58:02 zungi_ joins (~tory@user/andrewchawk)
16:58:05 × zungi quits (~tory@user/andrewchawk) (Remote host closed the connection)
17:00:33 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
17:00:34 Digitteknohippie is now known as Digit
17:04:13 acidjnk_new joins (~acidjnk@p200300d6e7283f90d472fd3bae079d4a.dip0.t-ipconnect.de)
17:10:18 × yu quits (~yu@dmc516.resnet.ust.hk) (Quit: Client closed)
17:10:37 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
17:11:07 Googulator79 joins (~Googulato@81.183.235.203)
17:14:40 × Googulator78 quits (~Googulato@81.183.235.203) (Ping timeout: 240 seconds)
17:15:28 misterfish joins (~misterfis@84.53.85.146)
17:18:49 × ash3en quits (~Thunderbi@146.70.124.222) (Quit: ash3en)
17:21:53 × agumonke` quits (~user@2a04:cec0:1900:908b:c7a:f6ae:8f:6b06) (Remote host closed the connection)
17:23:05 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
17:25:15 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
17:28:53 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
17:32:01 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
17:32:34 × dolio quits (~dolio@130.44.140.168) (Ping timeout: 260 seconds)
17:35:30 dolio joins (~dolio@130.44.140.168)
17:36:31 euphores joins (~SASL_euph@user/euphores)
17:42:17 alfiee joins (~alfiee@user/alfiee)
17:46:38 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
17:47:48 weary-traveler joins (~user@user/user363627)
17:48:56 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 265 seconds)
17:48:56 jmcantrell_ is now known as jmcantrell
17:51:59 target_i joins (~target_i@user/target-i/x-6023099)
17:59:00 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds)
17:59:12 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
18:02:39 misterfish joins (~misterfis@84.53.85.146)
18:08:38 × k_hachig_ quits (~k_hachig@70.29.50.103) (Ping timeout: 272 seconds)
18:10:33 × synchromesh quits (~john@2406:5a00:24cf:bb00:2c32:43e6:1cbf:396a) (Read error: Connection reset by peer)
18:10:39 gmg joins (~user@user/gehmehgeh)
18:11:35 synchromesh joins (~john@2406:5a00:24cf:bb00:2c32:43e6:1cbf:396a)
18:12:39 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
18:14:31 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 244 seconds)
18:20:01 __jmcantrell__ joins (~weechat@user/jmcantrell)
18:24:40 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
18:26:48 ljdarj joins (~Thunderbi@user/ljdarj)
18:29:22 alfiee joins (~alfiee@user/alfiee)
18:31:46 Square joins (~Square@user/square)
18:33:25 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
18:34:14 × __jmcantrell__ quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds)
18:37:02 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
18:37:10 × Googulator79 quits (~Googulato@81.183.235.203) (Ping timeout: 240 seconds)
18:44:51 × fmira quits (~user@user/fmira) (Remote host closed the connection)
18:45:00 fmira joins (~user@user/fmira)
18:45:57 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 265 seconds)
18:51:00 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
18:54:24 × remexre quits (~remexre@user/remexre) (Ping timeout: 252 seconds)
18:55:44 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
18:58:48 × k_hachig_ quits (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca) (Ping timeout: 246 seconds)
18:59:01 × tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 265 seconds)
19:02:37 __jmcantrell__ joins (~weechat@user/jmcantrell)
19:02:37 jmcantrell is now known as Guest3095
19:02:37 × Guest3095 quits (644f1bed9a@user/jmcantrell) (Killed (silver.libera.chat (Nickname regained by services)))
19:02:37 __jmcantrell__ is now known as jmcantrell
19:02:46 jmcantrell_ joins (644f1bed9a@user/jmcantrell)
19:15:07 alfiee joins (~alfiee@user/alfiee)
19:18:46 pavonia joins (~user@user/siracusa)
19:19:00 misterfish joins (~misterfis@84.53.85.146)
19:19:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
19:20:42 × zungi_ quits (~tory@user/andrewchawk) (Remote host closed the connection)
19:22:21 zungi joins (~tory@user/andrewchawk)
19:23:02 k_hachig_ joins (~k_hachig@138-51-68-231-lsn-2.nat.utoronto.ca)
19:28:01 × k_hachig_ quits (~k_hachig@138-51-68-231-lsn-2.nat.utoronto.ca) (Ping timeout: 265 seconds)
19:33:46 Googulator79 joins (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu)
19:42:59 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
19:45:17 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
19:46:27 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
19:47:29 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 260 seconds)
19:48:25 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
19:49:07 j1n37 joins (~j1n37@user/j1n37)
19:50:05 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:54:19 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
20:00:02 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:42 caconym joins (~caconym@user/caconym)
20:00:55 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
20:01:12 alfiee joins (~alfiee@user/alfiee)
20:03:10 killy joins (~killy@terminal-3-187.retsat1.com.pl)
20:03:12 × zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds)
20:05:31 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
20:10:26 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
20:12:29 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 265 seconds)
20:13:13 JuanDaugherty joins (~juan@user/JuanDaugherty)
20:15:37 halloy-user joins (~halloy-us@76.78.190.80)
20:15:51 × halloy-user quits (~halloy-us@76.78.190.80) (Client Quit)
20:16:24 zenna joins (~zenna@76.78.190.80)
20:17:03 × zenna quits (~zenna@76.78.190.80) (Client Quit)
20:17:17 azenna joins (~azenna@76.78.190.80)
20:19:14 × azenna quits (~azenna@76.78.190.80) (Changing host)
20:19:14 azenna joins (~azenna@user/azenna)
20:20:06 k_hachig_ joins (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca)
20:20:11 zungi joins (~tory@user/andrewchawk)
20:32:24 × k_hachig_ quits (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca) (Ping timeout: 260 seconds)
20:33:34 × azenna quits (~azenna@user/azenna) (Ping timeout: 260 seconds)
20:36:06 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 246 seconds)
20:37:05 <danso> is there a name for monoids which choose "something" over nothing, with kind *?
20:37:13 <danso> as in the function `choose_str str1 str2 = if null str1 then str2 else str1`
20:39:31 <ncf> huh?
20:39:55 <danso> or `and b1 b2 = if b1 then True else b2`
20:40:26 weary-traveler joins (~user@user/user363627)
20:40:41 <Rembane> danso: Like monoids with some other preference than left associativity?
20:40:42 <danso> UH that function should be called `or` ...
20:41:00 <danso> yes Rembane, exactly
20:42:04 <ncf> i am not following. what is the common pattern here?
20:42:25 <Rembane> danso: Just out of curiosity, what do you want to use this enhanced monoid for?
20:42:42 <monochrom> It's Alternative. Nothing <|> Just 5 = Just 5.
20:43:00 <tomsmeding> but it's not *, it's on * -> *
20:43:11 <danso> the hakyll Routes monoid instance is an example of this, even tho Routes also has a compose function which combines two routes
20:43:14 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:43:16 <danso> https://hackage.haskell.org/package/hakyll-4.16.6.0/docs/src/Hakyll.Core.Routes.html#Routes
20:43:24 <monochrom> OK, but if instance Alternative T, then Monoid (T a).
20:43:42 <monochrom> OK there is a newtype wrapper, I'm looking it up.
20:43:45 k_hachig_ joins (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca)
20:43:46 <ncf> an example of what? it's just a monoid
20:44:39 <danso> `r1 <> r2` will choose the first route if it "succeeds", and otherwise choose the second route
20:45:09 <danso> at the end of the file there's a function `composeRoutes` which does what i was expecting (<>) to do
20:45:41 <monochrom> the wrapper is Alt. If Alterative T, then Monoid (Alt T a).
20:46:21 <geekosaur> the problem here is that many types have many (sometimes infinitely many) monoids, but Haskell has to pick one
20:46:24 <monochrom> So, Alt Nothing <> Alt (Just 5) = Alt (Just 5)
20:46:35 misterfish joins (~misterfis@84.53.85.146)
20:46:36 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
20:46:42 <monochrom> "ticket closed"
20:46:44 <geekosaur> which one gets picked for any given type is somewhat arbitrary but generally guided by usefulness
20:47:03 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
20:47:27 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
20:47:38 <danso> right geekosaur, in my mind "combining" monoids are usually the most obvious choice, but also "first which succeeds (for some definition of success)" is often useful too
20:47:42 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
20:47:56 alfiee joins (~alfiee@user/alfiee)
20:48:16 <ncf> but this is not a property of a monoid, it's an implementation detail
20:48:16 <Rembane> danso: Both of those are valid monoids. They're just different.
20:48:24 <geekosaur> yeh, and there's just no good way to provide both in Haskell
20:48:37 <geekosaur> nor are they mathematical properties as such
20:48:45 <tomsmeding> > First 2 <> First 3
20:48:47 <lambdabot> error:
20:48:47 <lambdabot> • No instance for (Num (Maybe ())) arising from a use of ‘e_123’
20:48:47 <lambdabot> • In the expression: e_123
20:48:57 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
20:49:03 <danso> i was hoping somebody had given names to these patterns ("combining"/"first")
20:49:17 <tomsmeding> > Data.Semigroup.First 2 <> Data.Semigroup.First 3
20:49:18 <lambdabot> error:
20:49:18 <lambdabot> Not in scope: data constructor ‘Data.Semigroup.First’
20:49:18 <lambdabot> No module named ‘Data.Semigroup’ is imported.error:
20:49:24 <Rembane> > First 'a' <> First 'b'
20:49:25 <lambdabot> error:
20:49:25 <lambdabot> • Couldn't match expected type ‘Maybe a’ with actual type ‘Char’
20:49:25 <lambdabot> • In the first argument of ‘First’, namely ‘'a'’
20:49:26 <danso> but i guess it's pretty hard to nail down exactly what they are
20:49:27 <Rembane> Meh
20:49:30 <tomsmeding> > First (Just 2) <> First (Just 3)
20:49:31 <lambdabot> First {getFirst = Just 2}
20:49:38 <tomsmeding> it requires a Maybe otherwise it's not a monoid, just a semigroup
20:49:45 <Rembane> Oh
20:49:51 <tomsmeding> danso: the First monoid exists
20:50:02 × k_hachig_ quits (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca) (Ping timeout: 244 seconds)
20:50:08 <tomsmeding> takes the first result of a bunch of Maybes
20:50:48 <danso> tomsmeding, First is what i'm talking about for Maybe, but it won't generalise to [] or whatever
20:51:17 <tomsmeding> I've never heard a name specifically for those _kinds_ of monoids
20:52:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
20:52:21 <ncf> those are free monoids on left zero semigroups
20:52:40 <ncf> your `choose_str str1 str2 = if null str1 then str2 else str1` is an example of that, but that's not the usual list monoid
20:54:56 <danso> "disjunction monoids"? idk
20:54:59 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 260 seconds)
20:54:59 jmcantrell_ is now known as jmcantrell
20:55:23 <danso> it seems a useful pattern
20:56:52 ash3en joins (~Thunderbi@146.70.124.222)
20:59:17 L29Ah joins (~L29Ah@wikipedia/L29Ah)
21:00:12 weary-traveler joins (~user@user/user363627)
21:01:47 k_hachig_ joins (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca)
21:02:30 × kimiamania8 quits (~65804703@user/kimiamania) (Quit: PegeLinux)
21:02:54 kimiamania8 joins (~65804703@user/kimiamania)
21:05:06 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
21:05:41 × ash3en quits (~Thunderbi@146.70.124.222) (Quit: ash3en)
21:06:36 × k_hachig_ quits (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca) (Ping timeout: 272 seconds)
21:07:24 × zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds)
21:09:42 × killy quits (~killy@terminal-3-187.retsat1.com.pl) (Ping timeout: 252 seconds)
21:10:29 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 265 seconds)
21:12:43 × sprotte24 quits (~sprotte24@p200300d16f44db00e82c8bd776d1241a.dip0.t-ipconnect.de) (Quit: Leaving)
21:15:49 sprotte24 joins (~sprotte24@p200300d16f44db00402a6a5cf9d1162b.dip0.t-ipconnect.de)
21:16:13 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 245 seconds)
21:27:07 × Googulator79 quits (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu) (Quit: Client closed)
21:27:24 Googulator79 joins (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu)
21:32:35 k_hachig_ joins (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca)
21:33:20 alfiee joins (~alfiee@user/alfiee)
21:36:49 × k_hachig_ quits (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca) (Ping timeout: 252 seconds)
21:37:33 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
21:40:26 × Googulator79 quits (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu) (Quit: Client closed)
21:40:42 Googulator79 joins (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu)
21:52:14 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
21:53:25 __jmcantrell__ joins (~weechat@user/jmcantrell)
21:58:55 Everything joins (~Everythin@46.211.105.36)
22:02:55 k_hachig_ joins (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca)
22:05:12 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
22:07:46 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
22:07:48 × k_hachig_ quits (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca) (Ping timeout: 246 seconds)
22:08:42 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
22:09:24 k_hachig_ joins (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca)
22:09:50 × __jmcantrell__ quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds)
22:14:16 bilegeek joins (~bilegeek@2600:1008:b083:f9b:4ea6:8944:ad90:a41f)
22:16:23 <c_wraith> huh. Is there something in the space of "gloss, but with enough features to be useful"? Like, Gloss would be good enough for me if I could just query the current bounds of a Picture, but it doesn't allow even that much
22:19:04 alfiee joins (~alfiee@user/alfiee)
22:20:20 × synchromesh quits (~john@2406:5a00:24cf:bb00:2c32:43e6:1cbf:396a) (Read error: Connection reset by peer)
22:21:14 synchromesh joins (~john@2406:5a00:24cf:bb00:bc6d:a873:1cc2:c331)
22:23:39 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
22:32:47 <Leary> c_wraith: Good question; I had much the same one recently. I investigated all the graphics libraries I could find but there was no answer among them, so I'm currently in the process of rolling my own with cairo and sdl2. My 'cairo-declarative' wrapper is pretty much done, but the rest is very much a WIP. Still, I'll see about putting them on github soon and send you links when I do.
22:34:45 × k_hachig_ quits (~k_hachig@138-51-74-124-lsn-2.nat.utoronto.ca) (Ping timeout: 246 seconds)
22:35:23 fp joins (~Thunderbi@87-92-155-24.rev.dnainternet.fi)
22:36:04 × petrichor quits (~znc-user@user/petrichor) (Ping timeout: 260 seconds)
22:36:06 k_hachig_ joins (~k_hachig@2605:b100:12d:f432:30da:d313:60c:c771)
22:39:05 petrichor joins (~znc-user@user/petrichor)
22:39:18 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
22:45:28 × k_hachig_ quits (~k_hachig@2605:b100:12d:f432:30da:d313:60c:c771) (Ping timeout: 244 seconds)
22:47:34 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds)
22:48:30 <c_wraith> also... Diagrams hasn't been updated to build on current GHC since 9.0 came out? Is that really the case?
22:48:50 <c_wraith> ah, it's not.
22:48:55 <c_wraith> Some other dependency is at fault
22:49:06 azenna joins (~azenna@76.78.190.77)
22:49:21 × azenna quits (~azenna@76.78.190.77) (Client Quit)
22:49:40 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
22:50:48 <c_wraith> Ok, found it. false alarm.
22:52:38 tomboy64 joins (~tomboy64@user/tomboy64)
22:54:54 × messewix quits (~jmc@user/messewix) (Read error: Connection reset by peer)
22:57:49 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:01:09 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 248 seconds)
23:02:18 <haskellbridge> <Liamzee> hope this is not too obnoxious, but do single-library webapp applications exist?
23:02:48 <haskellbridge> <Liamzee> as in, you define your program in objects / datatypes, then you use different compile functions to render the objects / datatypes to backend, frontend (multiplatform)?
23:03:59 <c_wraith> there are attempts in that direction, but they're all still pretty awkward to use.
23:04:10 <haskellbridge> <Liamzee> honestly this might be something haskell is good for
23:04:16 <haskellbridge> <Liamzee> due to lazy evaluation
23:04:40 <c_wraith> like https://github.com/obsidiansystems/obelisk is along those lines
23:04:46 <haskellbridge> <Liamzee> because in a strict language, if you have the server components of objects
23:04:50 <c_wraith> But I think it's not really maintained anymore
23:05:07 <haskellbridge> <Liamzee> they have to be fully evaluated, or rendered as tokens
23:05:28 alfiee joins (~alfiee@user/alfiee)
23:05:43 <haskellbridge> <Liamzee> whereas in Haskell, due to lazy evaluation and a concept of action, you don't have to evaluate the datatype parts, and this is completely native and idiomatic to haskell (well, not the object aspect)
23:06:18 <haskellbridge> <Liamzee> whereas you're looking at macros and tokens (which require ADTs to be remotely reasonable) in other languages
23:06:29 <haskellbridge> <Liamzee> erm, don't have to evaluate the backend server actions
23:07:08 <c_wraith> It doesn't *really* work that way, thanks to needing to compile eagerly
23:07:40 <c_wraith> obelisk's trick is to change the libraries grabbed by a particular name depending on what it's targeting
23:08:33 × michalz quits (~michalz@185.246.207.222) (Remote host closed the connection)
23:10:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
23:11:49 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Ping timeout: 244 seconds)
23:12:32 <haskellbridge> <Liamzee> i mean it can be done on a function level
23:13:30 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:16:44 <geekosaur> it's possible to pick a backend at runtime by using something like environment variables, but this turns out to require low level enough hackery that it has to be done in C/C++ even though conceptually it's just populating a struct of function pointers (because populating that struct requires dlopen/dlsym)
23:16:59 × fp quits (~Thunderbi@87-92-155-24.rev.dnainternet.fi) (Ping timeout: 244 seconds)
23:19:23 × dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
23:19:52 × Pozyomka quits (~pyon@user/pyon) (Quit: WeeChat 4.5.1)
23:20:07 Pozyomka joins (~pyon@user/pyon)
23:20:49 × bilegeek quits (~bilegeek@2600:1008:b083:f9b:4ea6:8944:ad90:a41f) (Ping timeout: 260 seconds)
23:20:54 dolio joins (~dolio@130.44.140.168)
23:24:11 <haskellbridge> <Liamzee> tbh i mean it's just free monad interpreter, but have different interpreter functions
23:26:05 bilegeek joins (~bilegeek@123.sub-174-228-103.myvzw.com)
23:27:32 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
23:28:30 × dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
23:29:30 dolio joins (~dolio@130.44.140.168)
23:30:05 <geekosaur> well, except ideally you don't want to have to statically compile in every backend
23:30:07 k_hachig_ joins (~k_hachig@bras-base-toroon0247w-grc-123-70-29-50-103.dsl.bell.ca)
23:31:19 × poscat quits (~poscat@user/poscat) (Ping timeout: 260 seconds)
23:32:39 poscat joins (~poscat@user/poscat)
23:33:05 <haskellbridge> <Liamzee> but is my hunch correct, that, say, there is value in being able to define your frontend and your backend at the same time?
23:35:07 <geekosaur> one would think so, but then one must ask why only obelisk did so and it's pretty much dead. I wonder if there's a "lessons from" somewhere
23:35:27 remexre joins (~remexre@user/remexre)
23:35:41 <haskellbridge> <Liamzee> reflex received an update in january
23:35:56 <haskellbridge> <Liamzee> i'd see reflex's mistakes as being, #1, nix-bound, #2, FRP
23:36:00 <haskellbridge> <Liamzee> overloaded the novelty budget
23:36:28 <haskellbridge> <Liamzee> being lens/optics-based makes it dumb enough for commodity programmers, being cabal-based means that you don't require learning nix on top of everything else
23:37:29 <haskellbridge> <Liamzee> also iirc Obsidian had a business model of providing support for users, which isn't good for uptake
23:37:42 <geekosaur> not sure I'd call them mistakes considering their website suggests they have a decent number of commercial users
23:39:28 <haskellbridge> <Liamzee> actually they're doing better than i remembered
23:40:34 <haskellbridge> <Liamzee> https://hackage.haskell.org/package/reflex
23:41:03 <haskellbridge> <Liamzee> obsidian does direct work, but they also got screwed by being bound to 8.8 because of the old GHCJS being abandonware
23:41:13 × Googulator79 quits (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu) (Quit: Client closed)
23:41:26 Googulator79 joins (~Googulato@2a01-036d-0106-14b2-c443-5a96-b49d-1dd5.pool6.digikabel.hu)
23:44:29 <haskellbridge> <Liamzee> the reflex package was also updated last month
23:44:40 Sgeo_ joins (~Sgeo@user/sgeo)
23:46:45 Sgeo__ joins (~Sgeo@user/sgeo)
23:47:44 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 252 seconds)
23:49:12 × Sgeo_ quits (~Sgeo@user/sgeo) (Ping timeout: 252 seconds)
23:50:52 alfiee joins (~alfiee@user/alfiee)
23:51:19 messewix joins (~jmc@user/messewix)
23:51:48 <haskellbridge> <Liamzee> thanks for the discussion!
23:52:16 <c_wraith> there's still room for something like obelisk when the new JS backend for GHC stabilizes
23:52:32 <c_wraith> But yeah, being dependent on ghcjs definitely hurt it
23:53:25 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
23:53:37 <c_wraith> obelisk also needed a better story for server-side services - a way to say "this calculation needs to run on the server. If this is a client, make a remote call"
23:54:08 <c_wraith> doing that was a major pain point when I tried it out
23:55:14 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
23:55:30 <haskellbridge> <Liamzee> data Object = MkObject {frontend :: FrontEnd, client :: ClientCode, backend :: BackEnd}
23:55:45 yegorc joins (~yegorc@user/yegorc)
23:57:00 <c_wraith> that doesn't work when you have to compile eagerly
23:58:00 <c_wraith> Do you want to compile the postgres driver into your frontend?
23:58:03 yegorc parts (~yegorc@user/yegorc) ()
23:58:07 <c_wraith> No?
23:58:21 <c_wraith> Well then, you need to have different dependencies on each target
23:58:33 <haskellbridge> <Liamzee> libraries
23:58:45 <c_wraith> so... different dependencies on each target?
23:58:48 <haskellbridge> <Liamzee> ah, yes, i see what you mean
23:59:26 <haskellbridge> <Liamzee> no, but if the functions aren't used at all, shouldn't they be excluded from the binary?
23:59:36 <c_wraith> Only at link time
23:59:44 <c_wraith> They have to have built before that.

All times are in UTC on 2025-02-28.