Home liberachat/#haskell: Logs Calendar

Logs on 2025-04-26 (liberachat/#haskell)

00:02:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
00:04:37 × jespada quits (~jespada@179.26.245.3) (Ping timeout: 252 seconds)
00:13:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:18:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:28:29 × ZLima12 quits (~zlima12@user/meow/ZLima12) (Remote host closed the connection)
00:29:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:29:38 ZLima12 joins (~zlima12@user/meow/ZLima12)
00:40:43 × acidjnk_new quits (~acidjnk@p200300d6e71c4f84d9d34579eebef444.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
00:43:22 × otto_s quits (~user@p4ff2799b.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
00:45:16 otto_s joins (~user@p5b044fbe.dip0.t-ipconnect.de)
00:52:47 × euleritian quits (~euleritia@77.23.248.47) (Remote host closed the connection)
00:53:05 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
01:03:28 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
01:14:30 × Pozyomka quits (~pyon@user/pyon) (Read error: Connection reset by peer)
01:16:34 arahael joins (~arahael@user/arahael)
01:21:52 × Buliarous quits (~gypsydang@46.232.210.139) (Remote host closed the connection)
01:22:20 Buliarous joins (~gypsydang@46.232.210.139)
01:32:27 × tv quits (~tv@user/tv) (Quit: derp)
01:33:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
01:34:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:35:32 tv joins (~tv@user/tv)
01:38:26 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
01:38:59 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
01:43:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
01:44:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:49:00 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:51:08 harveypwca joins (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
01:59:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:03:08 × Square2 quits (~Square@user/square) (Ping timeout: 244 seconds)
02:12:56 × drewr quits (~drew@user/drewr) (Ping timeout: 272 seconds)
02:15:38 Pozyomka joins (~pyon@user/pyon)
02:22:08 × td_ quits (~td@i5387092B.versanet.de) (Ping timeout: 276 seconds)
02:23:46 td_ joins (~td@i5387090C.versanet.de)
02:28:43 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
02:29:02 euleritian joins (~euleritia@dynamic-176-006-135-115.176.6.pool.telefonica.de)
02:32:51 poscat0x04 joins (~poscat@user/poscat)
02:36:04 × poscat quits (~poscat@user/poscat) (Ping timeout: 268 seconds)
02:47:46 × down200 quits (~down200@shell.lug.mtu.edu) (Quit: ZNC - https://znc.in)
02:54:25 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
02:55:47 chiselfuse joins (~chiselfus@user/chiselfuse)
03:02:42 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds)
03:02:59 j1n37- joins (~j1n37@user/j1n37)
03:03:22 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
03:04:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
03:10:53 down200 joins (~down200@shell.lug.mtu.edu)
03:12:58 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
03:13:36 chiselfuse joins (~chiselfus@user/chiselfuse)
03:14:37 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
03:15:03 ChaiTRex joins (~ChaiTRex@user/chaitrex)
03:16:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:20:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
03:26:33 aforemny_ joins (~aforemny@i59f4c58e.versanet.de)
03:27:34 × aforemny quits (~aforemny@2001:9e8:6ce4:fd00:2b9b:42c6:1d6:b68) (Ping timeout: 260 seconds)
03:31:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:52:41 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:12:06 hgolden joins (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e)
04:18:16 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e) (Remote host closed the connection)
04:19:48 j1n37 joins (~j1n37@user/j1n37)
04:21:04 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds)
04:21:22 LainIwakura joins (~LainIwaku@user/LainIwakura)
04:21:53 hgolden joins (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e)
04:36:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
04:44:05 takuan joins (~takuan@d8D86B601.access.telenet.be)
04:48:10 × notdabs quits (~Owner@2600:1700:69cf:9000:6538:81e8:865e:540d) (Read error: Connection reset by peer)
04:49:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:51:21 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
04:51:37 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
04:53:34 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
04:54:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
05:00:47 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e) (Remote host closed the connection)
05:02:10 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
05:03:18 hgolden joins (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e)
05:04:38 j1n37- joins (~j1n37@user/j1n37)
05:05:16 × euleritian quits (~euleritia@dynamic-176-006-135-115.176.6.pool.telefonica.de) (Ping timeout: 276 seconds)
05:05:27 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:05:34 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 260 seconds)
05:05:53 euleritian joins (~euleritia@77.23.248.47)
05:23:28 × Buliarous quits (~gypsydang@46.232.210.139) (Remote host closed the connection)
05:23:56 Buliarous joins (~gypsydang@46.232.210.139)
05:26:30 × sm quits (~znc@plaintextaccounting/sm) (Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in)
05:26:57 sm joins (znc@plaintextaccounting/sm)
05:31:12 × j1n37- quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
05:34:54 j1n37 joins (~j1n37@user/j1n37)
05:36:29 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
05:39:34 j1n37 joins (~j1n37@user/j1n37)
05:42:52 dontdieych2 joins (~quassel@user/dontdieych2)
06:02:35 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
06:03:09 pabs3 joins (~pabs3@user/pabs3)
06:04:44 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
06:05:50 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds)
06:07:08 j1n37 joins (~j1n37@user/j1n37)
06:11:05 × machinedgod quits (~machinedg@108.173.18.100) (Ping timeout: 260 seconds)
06:11:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
06:13:52 Typedfern joins (~Typedfern@242.red-83-37-36.dynamicip.rima-tde.net)
06:14:39 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:14:48 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
06:15:06 × Typedfern quits (~Typedfern@242.red-83-37-36.dynamicip.rima-tde.net) (Remote host closed the connection)
06:16:11 Typedfern joins (~Typedfern@242.red-83-37-36.dynamicip.rima-tde.net)
06:17:26 × typedfern_ quits (~Typedfern@242.red-83-37-36.dynamicip.rima-tde.net) (Ping timeout: 276 seconds)
06:19:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:21:45 × __jmcantrell__ quits (~weechat@user/jmcantrell) (Quit: WeeChat 4.6.1)
06:30:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:35:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
06:40:25 __jmcantrell__ joins (~weechat@user/jmcantrell)
06:46:27 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:50:36 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds)
06:57:00 × euleritian quits (~euleritia@77.23.248.47) (Read error: Connection reset by peer)
06:57:13 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:58:12 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
07:00:03 × caconym7 quits (~caconym@user/caconym) (Quit: bye)
07:00:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:00:43 caconym7 joins (~caconym@user/caconym)
07:01:50 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
07:02:46 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Client Quit)
07:03:52 acidjnk_new joins (~acidjnk@p200300d6e71c4f09f807266196b93226.dip0.t-ipconnect.de)
07:03:54 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
07:04:21 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
07:12:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:19:44 × __jmcantrell__ quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds)
07:20:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:21:05 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
07:21:30 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:21:51 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
07:21:58 Sgeo joins (~Sgeo@user/sgeo)
07:22:28 Lord_of_Life_ is now known as Lord_of_Life
07:31:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:41:17 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
07:42:04 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
07:44:13 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
07:44:59 ss4 joins (~wootehfoo@user/wootehfoot)
07:46:38 × dontdieych2 quits (~quassel@user/dontdieych2) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
07:47:03 × jacopovalanzano quits (~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net) (Quit: Client closed)
07:51:40 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
07:59:29 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:00:17 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
08:02:32 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
08:05:15 gentauro joins (~gentauro@user/gentauro)
08:14:17 chiselfuse joins (~chiselfus@user/chiselfuse)
08:17:38 × acidjnk_new quits (~acidjnk@p200300d6e71c4f09f807266196b93226.dip0.t-ipconnect.de) (Remote host closed the connection)
08:17:56 acidjnk_new joins (~acidjnk@p200300d6e71c4f09f807266196b93226.dip0.t-ipconnect.de)
08:23:36 gmg joins (~user@user/gehmehgeh)
08:28:05 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
08:28:14 euleritian joins (~euleritia@dynamic-176-006-135-115.176.6.pool.telefonica.de)
08:36:10 × euleritian quits (~euleritia@dynamic-176-006-135-115.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
08:36:42 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
08:42:38 ljdarj joins (~Thunderbi@user/ljdarj)
08:54:25 × acidjnk_new quits (~acidjnk@p200300d6e71c4f09f807266196b93226.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
08:55:27 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:56:11 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
09:04:01 × ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
09:07:32 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:26:55 × byte quits (~mu@user/byte) (Read error: Connection reset by peer)
09:28:00 × driib318 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:28:08 byte joins (~mu@user/byte)
09:29:56 driib318 joins (~driib@vmi931078.contaboserver.net)
09:36:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
09:47:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:50:28 __monty__ joins (~toonn@user/toonn)
09:52:54 × p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.9.1 - https://znc.in)
09:53:52 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
09:55:05 × driib318 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:58:45 driib318 joins (~driib@vmi931078.contaboserver.net)
10:04:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:07:57 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:08:46 nek0 joins (~nek0@user/nek0)
10:11:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
10:16:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:32:11 × segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Remote host closed the connection)
10:32:11 rustisafungus joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
10:40:21 acidjnk_new joins (~acidjnk@p200300d6e71c4f09b99977e2980f359e.dip0.t-ipconnect.de)
10:48:32 p3n joins (~p3n@217.198.124.246)
10:51:39 <tomsmeding> EvanR: still seems a bit of an odd name for such a synonym
10:53:40 × xff0x quits (~xff0x@2405:6580:b080:900:a16e:31f3:ac48:6e3d) (Ping timeout: 276 seconds)
10:55:37 × Digit quits (~user@user/digit) (Ping timeout: 276 seconds)
10:59:19 Digit joins (~user@user/digit)
10:59:59 Digitteknohippie joins (~user@user/digit)
11:01:52 jespada joins (~jespada@r167-61-127-55.dialup.adsl.anteldata.net.uy)
11:03:28 adamCS_ joins (~adamCS@70.19.85.77)
11:04:54 × adamCS quits (~adamCS@70.19.85.77) (Ping timeout: 244 seconds)
11:04:54 adamCS_ is now known as adamCS
11:14:58 xff0x joins (~xff0x@2405:6580:b080:900:a16e:31f3:ac48:6e3d)
11:20:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
11:26:31 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:28:54 × acidjnk_new quits (~acidjnk@p200300d6e71c4f09b99977e2980f359e.dip0.t-ipconnect.de) (Remote host closed the connection)
11:29:16 acidjnk_new joins (~acidjnk@p200300d6e71c4f09b99977e2980f359e.dip0.t-ipconnect.de)
11:32:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:36:29 × Digitteknohippie quits (~user@user/digit) (Quit: oops double login again)
11:36:49 Digit is now known as Digitteknohippie
11:36:54 Digitteknohippie is now known as Digit
11:47:50 cstml joins (~Thunderbi@user/cstml)
12:02:21 <haskellbridge> <Liamzee> btw cursed code as a result of switching to Hasql:
12:03:13 × cstml quits (~Thunderbi@user/cstml) (Ping timeout: 276 seconds)
12:03:15 <haskellbridge> <Liamzee> https://paste.tomsmeding.com/7ZNwEdJi
12:04:05 <haskellbridge> <Liamzee> i guess there's always https://hackage.haskell.org/package/extra-1.8/docs/Data-Tuple-Extra.html ?
12:05:53 <haskellbridge> <Liamzee> oh fine, lambdas inserted, but abusing 2-tuple nesting this way, at least, is funny
12:06:28 × acidjnk_new quits (~acidjnk@p200300d6e71c4f09b99977e2980f359e.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
12:09:53 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
12:10:11 ljdarj joins (~Thunderbi@user/ljdarj)
12:12:23 × CalimeroTeknik quits (~calimero@ctkarch.org) (Changing host)
12:12:23 CalimeroTeknik joins (~calimero@user/calimeroteknik)
12:13:11 jespada_ joins (~jespada@r179-25-121-156.dialup.adsl.anteldata.net.uy)
12:14:54 × jespada quits (~jespada@r167-61-127-55.dialup.adsl.anteldata.net.uy) (Ping timeout: 252 seconds)
12:19:24 <haskellbridge> <Liamzee> actually, that code still doesn't work, oh well, contramap is fun, i guess
12:26:53 <Miroboru> When using guards one can use "otherwise" to capture all other options. Is there an equivalent for "case" ?
12:27:21 <Miroboru> I am getting "Pattern matching is non-exhaustive"
12:29:32 <__monty__> Miroboru: Wildcard pattern (might not actually be the name) `_`?
12:30:59 <Miroboru> I was using Char (case x of) where x is a Char. I just tried using just _ with no quotes and it works...
12:32:38 <Miroboru> I am sure I tried it before though, but I think that I indented it by one space which leads to an error... A bit brittle methinks, but now I know
12:33:24 <jackdk> If you don't write Haskell with braces and semicolons, it's a layout-sensitive language
12:33:44 <jackdk> Also, nobody writes Haskell with braces and semicolons.
12:34:11 <jackdk> (To at least a first approximation)
12:34:14 <__monty__> I think there's a Simon who's wont to do exactly that.
12:34:24 <jackdk> I stand corrected, then
12:37:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
12:40:15 <haskellbridge> <Liamzee> there we go
12:40:16 <haskellbridge> <Liamzee> https://paste.tomsmeding.com/az4bXqgs
12:40:28 <haskellbridge> <Liamzee> go is the standard Haskell way to indicate what OCamlers mean by aux
12:40:35 <haskellbridge> <Liamzee> what's the standard symbolic Haskell override?
12:43:34 target_i joins (~target_i@user/target-i/x-6023099)
12:45:16 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Ping timeout: 252 seconds)
12:45:38 <haskellbridge> <Liamzee> erm, standard Haskell operator helper?
12:45:55 <haskellbridge> <Liamzee> "cursed" technically counts, I guess, hmmm
12:46:08 <__monty__> Don't think there is one because of the convenient backtick syntax.
12:46:33 <haskellbridge> <Liamzee> ah
12:47:09 <__monty__> And I think the pattern using a local `go` is called worker-wrapper?
12:47:40 <haskellbridge> <Liamzee> basically, i had a ton of code repetition, i'd have normally handled it via a helper but the data format meant that i couldn't use foldMap to handle it
12:47:51 <haskellbridge> <Liamzee> erm, the typing (variable typing) meant I couldn't use foldmap to handle it
12:48:01 <haskellbridge> <Liamzee> the easiest way, imo, is to do a scoped override of *, but that feels cursed
12:48:19 <haskellbridge> <Liamzee> imagine the code sample with the helper operator inlined
12:49:02 Square2 joins (~Square@user/square)
12:49:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:49:12 <haskellbridge> <Liamzee> this is interesting, ~ works
12:49:47 <__monty__> I don't see a good reason to use an operator here.
12:55:18 × LainIwakura quits (~LainIwaku@user/LainIwakura) (Ping timeout: 240 seconds)
12:56:40 <haskellbridge> <Liamzee> if i didn't have block patterns on, you could say it would be to avoid having to stuff a $ before the lambda
12:56:56 <haskellbridge> <Liamzee> go usually indicates a helper function, at least for me, as opposed to an attempt to avoid code repetition
12:57:42 sixfourtwelve joins (~ethanmorg@82.18.82.103)
12:58:07 <haskellbridge> <Liamzee> tilde is actually not used, since it'd be syntax for irrefutable pattern match, hmmm
12:59:56 <__monty__> Haven't really seen `go` outside of recursive functions that pass in an initial value for an accumulator or such.
13:00:38 <haskellbridge> <Liamzee> why am I even attempting to fold anyways, at this length I might as well manually use the semigroup operator
13:00:41 <__monty__> If there's a useful name for the helper it should have that name instead. And if it is more generally useful, it shouldn't be a local binding at all.
13:01:16 LainIwakura joins (~LainIwaku@user/LainIwakura)
13:01:18 <haskellbridge> <Liamzee> it's a local binding precisely because it's an operator
13:01:27 <haskellbridge> <Liamzee> so it doesn't pollute the operator namespace
13:01:58 <haskellbridge> <Liamzee> come to think of it, why am i even bothering with fold?
13:06:04 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:07:05 gorignak joins (~gorignak@user/gorignak)
13:10:30 <haskellbridge> <Liamzee> @ is actually safest
13:13:47 <haskellbridge> <Liamzee> because no one ever uses it, fearing as pattern collision, and if it does cause an as pattern collision, the code will refuse to compile if both arguments are used (unless you're overriding something so a default vaule will continue to exist)
13:17:48 <__monty__> I most commonly use `op` actually.
13:20:34 <haskellbridge> <Liamzee> for go? or for this kind of code replication reduction?
13:21:58 <__monty__> For operators.
13:22:07 <haskellbridge> <Liamzee> ah
13:25:11 ski usually calls a local worker `loop', if no other relevant name suggests itself
13:31:37 haritz joins (~hrtz@152.37.68.178)
13:31:37 × haritz quits (~hrtz@152.37.68.178) (Changing host)
13:31:37 haritz joins (~hrtz@user/haritz)
13:35:20 acidjnk_new joins (~acidjnk@p200300d6e71c4f09b99977e2980f359e.dip0.t-ipconnect.de)
13:43:34 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds)
13:43:58 j1n37 joins (~j1n37@user/j1n37)
13:49:39 ss4 joins (~wootehfoo@user/wootehfoot)
13:51:17 × adamCS quits (~adamCS@70.19.85.77) (Ping timeout: 248 seconds)
13:53:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
13:57:37 cstml joins (~Thunderbi@user/cstml)
14:00:57 adamCS joins (~adamCS@70.19.85.77)
14:04:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:06:28 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
14:11:30 j1n37 joins (~j1n37@user/j1n37)
14:11:35 × ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
14:24:10 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
14:28:50 TheCoffeMaker_ joins (~TheCoffeM@186.136.173.186)
14:29:12 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 244 seconds)
14:30:05 harveypwca joins (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
14:36:26 × Square2 quits (~Square@user/square) (Ping timeout: 252 seconds)
14:46:12 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
14:53:50 weary-traveler joins (~user@user/user363627)
14:56:46 × acidjnk_new quits (~acidjnk@p200300d6e71c4f09b99977e2980f359e.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
15:02:55 j1n37- joins (~j1n37@user/j1n37)
15:03:55 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds)
15:04:21 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving)
15:06:08 __jmcantrell__ joins (~weechat@user/jmcantrell)
15:12:02 fp joins (~Thunderbi@vpn.espressohouse.com)
15:22:54 × LainIwakura quits (~LainIwaku@user/LainIwakura) (Ping timeout: 240 seconds)
15:22:54 × LainIwakura41 quits (~LainIwaku@user/LainIwakura) (Ping timeout: 240 seconds)
15:33:10 × fp quits (~Thunderbi@vpn.espressohouse.com) (Ping timeout: 276 seconds)
15:40:58 × __jmcantrell__ quits (~weechat@user/jmcantrell) (Ping timeout: 276 seconds)
15:42:28 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
15:46:33 × Buliarous quits (~gypsydang@46.232.210.139) (Remote host closed the connection)
15:47:02 Buliarous joins (~gypsydang@46.232.210.139)
15:49:55 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
15:55:35 fp joins (~Thunderbi@vpn.espressohouse.com)
16:06:23 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Quit: leaving)
16:08:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
16:17:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:19:41 j1n37 joins (~j1n37@user/j1n37)
16:21:16 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds)
16:22:47 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:25:58 JoeRayner123 joins (~Thunderbi@31.217.12.231)
16:26:10 __jmcantrell__ joins (~weechat@user/jmcantrell)
16:28:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
16:30:32 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
16:31:43 zenstoic joins (uid461840@id-461840.hampstead.irccloud.com)
16:32:08 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:34:45 talisman` parts (~user@2601:644:937c:ed10::ae5) (ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.1))
16:34:50 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
16:41:25 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:46:41 × fp quits (~Thunderbi@vpn.espressohouse.com) (Ping timeout: 248 seconds)
16:47:14 kilolympus5 joins (~kilolympu@vmi1102682.contaboserver.net)
16:47:36 × kilolympus quits (~kilolympu@vmi1102682.contaboserver.net) (Read error: Connection reset by peer)
16:47:36 kilolympus5 is now known as kilolympus
16:54:17 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
16:58:23 gehmehgeh joins (~user@user/gehmehgeh)
16:58:24 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds)
17:00:51 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
17:02:06 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:02:26 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
17:03:26 acidjnk_new joins (~acidjnk@p200300d6e71c4f09dd015a3d7ff7998d.dip0.t-ipconnect.de)
17:03:39 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:04:14 Sgeo joins (~Sgeo@user/sgeo)
17:06:03 j1n37- joins (~j1n37@user/j1n37)
17:06:10 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 260 seconds)
17:17:10 × __jmcantrell__ quits (~weechat@user/jmcantrell) (Ping timeout: 276 seconds)
17:19:31 lxsameer joins (~lxsameer@Serene/lxsameer)
17:20:40 <lxsameer> hey folks, I have a wrapper type around the Text, how can I overload it? like OverloadedStrings
17:22:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
17:22:37 <[exa]> lxsameer: implement IsString typeclass instance for it
17:22:56 <lxsameer> cheers
17:23:00 <[exa]> I think it's in Data.String or so
17:23:21 <lxsameer> found it
17:24:02 <[exa]> text already has fromString so the instances are typically like fromString = MyWrap . fromString
17:26:10 <lxsameer> thank you, i did that exactly
17:26:19 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
17:28:26 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
17:29:07 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:33:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:41:57 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
17:45:07 × acidjnk_new quits (~acidjnk@p200300d6e71c4f09dd015a3d7ff7998d.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
18:02:05 <EvanR> to implement classes on newtype wrappers in the dumbest possible way, you can use GeneralizedNewtypeDeriving
18:14:48 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:15:01 ebbe joins (~ebbe@pd9e2b0ae.dip0.t-ipconnect.de)
18:19:04 xkuru joins (~xkuru@user/xkuru)
18:19:24 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
18:19:40 × JoeRayner123 quits (~Thunderbi@31.217.12.231) (Ping timeout: 260 seconds)
18:20:50 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 4.6.0)
18:21:32 <lxsameer> EvanR: thanks for the tip
18:22:33 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
18:22:44 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
18:22:56 JoeRayner123 joins (~Thunderbi@31.217.12.231)
18:23:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:34:08 emmanuelux joins (~emmanuelu@user/emmanuelux)
18:34:18 pavonia joins (~user@user/siracusa)
18:36:57 acidjnk_new joins (~acidjnk@p200300d6e71c4f09ad59765f396bb04f.dip0.t-ipconnect.de)
18:37:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
18:38:09 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:40:34 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
18:40:41 × zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
18:40:46 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
18:41:35 gmg joins (~user@user/gehmehgeh)
18:42:08 <haskellbridge> <Liamzee> ugh, i have a pyramid of doom because i'm using hasql and trying to merge its exceptions with those from crypton
18:42:19 <haskellbridge> <Liamzee> should I just do exception-catching?
18:42:38 <haskellbridge> <Liamzee> like, in case of error, throw, and catch at the top level and reconvert to a fresh exception?
18:46:08 × CalimeroTeknik quits (~calimero@user/calimeroteknik) (Ping timeout: 252 seconds)
18:46:48 × xkuru quits (~xkuru@user/xkuru) (Quit: Unvirtualizing)
18:47:57 <davean> Whats the actual problem here?
18:48:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:48:51 <davean> Generally one handles exceptions seperately, what do you mean by "merge"? You COULD convert them all to the same type, but its rather unclear why you would want to.
18:52:29 <haskellbridge> <Liamzee> hasql claims to be typesafe, so every exception it generates ends up being the left side of an either
18:52:40 CalimeroTeknik joins (~calimero@ctkarch.org)
18:52:50 <haskellbridge> <Liamzee> crypton seems to do the same with the cryptofailable type
18:53:12 <haskellbridge> <Liamzee> so, I have an IO action that can generate either-style exceptions either of crypton or hasql
18:54:06 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
18:54:08 <haskellbridge> <Liamzee> i'm trying to build a library for some sql defaults
18:54:39 <davean> Those aren't exceptions.
18:55:20 <haskellbridge> <Liamzee> what do you call them, then?
18:55:27 <haskellbridge> <Liamzee> they're not IO exceptions, etc, the stuff that can only be caught in IO
18:55:33 <haskellbridge> <Liamzee> what I'm doing right now is a newtype over either
18:55:34 <davean> results, values
18:56:17 <davean> You can easily project into a shared type because they're normal values if you want
18:56:30 <davean> if you DID for some reason want to
18:58:16 <haskellbridge> <Liamzee> are there reasons I shouldn't?
18:58:58 <davean> Oh because if there is an error why would you continue past that point without dealing with it?
18:59:59 <haskellbridge> <Liamzee> because i'm trying to create a library for people who want to just pull a library off the shelf, get a postgresql table off the shelf, and get e-mail verified user accounts on their webpage
19:00:03 × caconym7 quits (~caconym@user/caconym) (Quit: bye)
19:00:03 <haskellbridge> <Liamzee> *their website
19:00:19 <davean> Still don't see how that changes how you write your code
19:00:20 <haskellbridge> <Liamzee> so it'd be the end user's decision as to how to deal with the resulting exceptions
19:00:48 × pointlessslippe1 quits (~pointless@62.106.85.17) (Ping timeout: 252 seconds)
19:00:50 caconym7 joins (~caconym@user/caconym)
19:01:27 <davean> Not the error though. Either your code can correct something or it needs to fail out.
19:01:54 <haskellbridge> <Liamzee> yeah, of course, but i'm writing it to fail out by emitting the Left on the IO (Either a b)
19:05:26 <davean> So your EitherT monad rolls back and you generate an exception with proper details for your users?
19:05:55 pointlessslippe1 joins (~pointless@62.106.85.17)
19:06:40 <davean> Sorry I shouldn't say rolls back
19:06:42 rvalue- joins (~rvalue@user/rvalue)
19:06:49 <davean> https://hackage.haskell.org/package/mtl-2.3.1/docs/Control-Monad-Except.html#t:ExceptT note the type there
19:07:24 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
19:08:44 <haskellbridge> <Liamzee> i guess what i'm really asking for is
19:09:20 <haskellbridge> <Liamzee> yeah i guess thaht's standard
19:09:55 xkuru joins (~xkuru@user/xkuru)
19:10:07 <haskellbridge> <Liamzee> so either I wrap everything in monad transformers, or I throwIO the exceptions up to a handler which packages it back into IO (Either MyExceptionType PromisedResultType)
19:10:10 × Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection)
19:10:40 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:10:58 Goodbye_Vincent1 joins (cyvahl@freakshells.net)
19:11:09 <EvanR> so basically how to "properly" bubble the inner libraries detailed errors to the user of your wrapper, when you also have your own errors on top of that
19:11:27 <EvanR> if at all
19:11:28 <davean> You only have your own errors
19:11:35 rvalue- is now known as rvalue
19:11:51 <EvanR> if only have your own errors if you handle all the possible errors from the wrapped library and do a masking or conversion
19:12:07 <davean> At the end of the day, one way or antoher. They might just be someone else's passed through
19:12:25 <EvanR> well passing them through unchanged would then be "not your errors"
19:12:29 sprotte24 joins (~sprotte24@p200300d16f0edb008da0b43d58ccc511.dip0.t-ipconnect.de)
19:12:37 <davean> Sure they are, they're your API now
19:12:58 <haskellbridge> <Liamzee> btw thanks for the work on xkcd
19:13:04 <EvanR> all you're doing now is obstructing the problem description from being stated
19:13:19 <davean> EvanR: No I think this is actually critical to program design
19:13:26 <EvanR> if that's supposed to be a solution I don't know exactly what is being proposed
19:13:37 <EvanR> because I'm still not clear what the problem is
19:13:37 <haskellbridge> <Liamzee> i mean i already have a solution, it's just ugly
19:13:43 <haskellbridge> <Liamzee> because i end up with a pyramid of doom pattern
19:13:47 <EvanR> what is your solution
19:13:54 <EvanR> keep wrapping stuff in more Lefts?
19:14:43 LainIwakura joins (~LainIwaku@user/LainIwakura)
19:14:47 <haskellbridge> <Liamzee> https://paste.tomsmeding.com/iChs4zTJ
19:15:02 <EvanR> there was an extensible variant paper which has this as a possible application, "merging" errors
19:15:31 <EvanR> probably infeasible and overengineered without language support
19:16:18 <EvanR> another way is to embrace Exception and throw those in IO instead of trying to do everything with Either
19:16:30 <haskellbridge> <Liamzee> yeah i know
19:16:43 <haskellbridge> <Liamzee> to get rid of the pyramid of doom i could just do throwIO for the exceptions should they emerge
19:16:51 <haskellbridge> <Liamzee> then catch before the do block
19:16:55 <EvanR> you could also use Exception internally if you have IO
19:17:05 <EvanR> and return Either if it's your exceptions
19:17:09 <EvanR> Left
19:17:26 <haskellbridge> <Liamzee> although I was thinking of moving it to MonadIO, which would make things way more complicated
19:17:34 <haskellbridge> <Liamzee> well, not really
19:18:01 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
19:18:16 <EvanR> not sure what MonadIO gets you
19:18:17 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
19:19:31 <haskellbridge> <Liamzee> bleh, maybe i'll just finish the early iteration of the library, post to github, post a "please halp" thread somewhere, and then go from there
19:20:02 <haskellbridge> <Liamzee> MonadIO: people who love classy monads are now happy
19:22:20 <EvanR> if the user shouldn't care what you used to interface with postgres, then it would seem they shouldn't get those errors either
19:22:23 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
19:22:26 × pointlessslippe1 quits (~pointless@62.106.85.17) (Ping timeout: 252 seconds)
19:22:41 <EvanR> i.e. return a simplified or abstract set of errors instead, then you don't need to merge them
19:23:15 pointlessslippe1 joins (~pointless@62.106.85.17)
19:27:00 Square2 joins (~Square@user/square)
19:33:40 roaccess joins (~roaccess@user/roaccess)
19:37:11 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:39:22 michalz joins (~michalz@185.246.207.205)
19:46:47 <__monty__> There's Haskell work on XKCD?
19:46:52 × roaccess quits (~roaccess@user/roaccess) (Quit: leaving)
19:52:25 <[exa]> "haskell work" ?
19:53:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
19:53:31 <__monty__> Going off of the "btw thanks for the work on xkcd" from Liamzee.
19:53:47 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 272 seconds)
19:53:54 × Buliarous quits (~gypsydang@46.232.210.139) (Remote host closed the connection)
19:54:23 Buliarous joins (~gypsydang@46.232.210.139)
19:55:36 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
19:57:42 fp joins (~Thunderbi@hof1.kyla.fi)
19:59:57 <EvanR> thanks you got doxxed
20:01:39 <haskellbridge> <Liamzee> he mentioned it here a long time ago
20:05:03 × cstml quits (~Thunderbi@user/cstml) (Read error: Connection reset by peer)
20:05:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:05:19 × Buliarous quits (~gypsydang@46.232.210.139) (Remote host closed the connection)
20:05:21 cstml joins (~Thunderbi@user/cstml)
20:05:34 <EvanR> :t when
20:05:35 <lambdabot> Applicative f => Bool -> f () -> f ()
20:05:46 Buliarous joins (~gypsydang@46.232.210.139)
20:06:12 <EvanR> Module ‘Control.Applicative’ does not export ‘when’
20:06:29 <[exa]> wasn't it always in .Monad ?
20:06:31 <EvanR> 😵
20:06:47 <[exa]> oic.
20:07:02 <[exa]> this is serious.
20:07:03 <EvanR> it was always in monad, and "always" Monad m => Bool -> m () -> m ()
20:07:23 <__monty__> But was it Haskell-related work?
20:07:24 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:07:50 <haskellbridge> <Liamzee> https://www.explainxkcd.com/wiki/index.php/1312:_Haskell
20:08:46 × ebbe quits (~ebbe@pd9e2b0ae.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
20:08:50 notdabs joins (~Owner@2600:1700:69cf:9000:6cf1:9b1a:eb92:4847)
20:10:10 <[exa]> that wikipage has strong "you wanna hear a haskell joke" vibes
20:11:02 <haskellbridge> <Liamzee> but yeah, xkcd at least used to have a Haskell backend
20:11:49 <[exa]> EvanR: on a similar topic, do module re-exports cause ambiguous import errors?
20:12:02 [exa] afk momentarily
20:12:37 <int-e> [exa]: that would be fun! Prelude reexports a ton of functions from, for example, Data.List
20:13:03 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
20:13:10 <haskellbridge> <Liamzee> interestingly enough, you can't have explicit imports + qualified imports at the same time?
20:13:20 <EvanR> if the name goes to the same thing that shouldn't be a big deal
20:13:47 <EvanR> you can import the module many times many ways
20:15:56 ljdarj1 joins (~Thunderbi@user/ljdarj)
20:17:43 <int-e> EvanR: I was trying to say that if you couldn't, then you probably would've noticed by now :-)
20:17:57 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
20:17:57 ljdarj1 is now known as ljdarj
20:18:10 <haskellbridge> <Liamzee> i guess the relevant part of the xkcd page is the part where their sysadmin likes their privacy, whoops
20:19:07 __jmcantrell__ joins (~weechat@user/jmcantrell)
20:19:48 <haskellbridge> <Liamzee> afaik the reimport ultimately points to the same object, right? it's only a problem when you have version clashes among your imported libraries
20:21:02 <EvanR> erm
20:21:15 <EvanR> importing different versions of the same library??
20:21:22 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:21:53 <geekosaur> ghc will happily do so and the resulting error messages are from the linker and quite confusing
20:22:34 <geekosaur> well, not always, sometimes they're detected by ghc while resolving typeclass instances and those errors are even more confusing
20:23:24 <geekosaur> cabal and stack both prevent these unless you hit them over the head in just the wrong way; you pretty much have to use ghc directly to run into them
20:25:04 <haskellbridge> <Liamzee> for a while i was a fan of directly using ghc to compile small scripts
20:25:07 <haskellbridge> <Liamzee> then i migrated to cabal scripts
20:25:20 <EvanR> cabal is nice
20:25:27 Inst joins (~Inst@user/Inst)
20:25:30 <EvanR> you heard it here first folks
20:25:55 <haskellbridge> <Liamzee> what, it is, it doesn't deserve its reputation
20:26:11 <int-e> there is no Haskell cabal
20:26:38 <geekosaur> what's the CLC, then? 😛
20:26:42 <haskellbridge> <Liamzee> correction, there are many Haskell cabals
20:27:58 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
20:28:21 <int-e> "core libraries committee" -- there aren't even enough a-s in there to spell "cabal".
20:28:24 euleritian joins (~euleritia@dynamic-176-006-131-107.176.6.pool.telefonica.de)
20:28:24 <int-e> :P
20:29:17 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:30:47 <haskellbridge> <Liamzee> btw, speaking of gossip, are you guys watching miso in matrix?
20:30:58 <haskellbridge> <Liamzee> *folks
20:33:37 <EvanR> protip on how to show off some haskell code to the uninitiated, fearful and prejudiced https://paste.tomsmeding.com/xtk26ylz
20:35:25 <haskellbridge> <Liamzee> miso is probably less than 8 months away from being deployable on android and ios
20:35:46 <haskellbridge> <Liamzee> could be done by august, not sure, but the dev team seems to have done a lot of frenetic work recently
20:36:10 <haskellbridge> <Liamzee> EvanR: do it in freer monads?
20:36:19 <EvanR> instance Hmm {-# REDACTED #-} where Pure x >>= f = f x ... etc
20:36:24 <EvanR> er
20:36:40 <EvanR> instance {-# REDACTED #-} Hmm where
20:37:09 <haskellbridge> <Liamzee> were you always such a big fan of free monads?
20:37:29 <EvanR> "warm fuzzy thing" is less likely to convince
20:38:02 <EvanR> REDACTED suggests there's something potent being withheld for your own protection
20:40:31 <EvanR> Liamzee, well it's one way to disengage the algorithm from the incidental things an algorithm needs, that might be taken for granted in C or something
20:41:24 <EvanR> in this case the I/O
20:41:28 <EvanR> mostly I
20:41:37 <EvanR> and early bailout
20:41:58 <EvanR> but don't say monad
20:43:08 <haskellbridge> <Liamzee> generic with a mapping method, a creation method, and a nesting removal method, all with contracts
20:43:50 <haskellbridge> <Liamzee> damnit, i think i lost contact with granin over politics, but otherwise i'd go finish his book on why Free monads are the One True architectural pattern
20:44:45 × euleritian quits (~euleritia@dynamic-176-006-131-107.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
20:44:54 JuanDaugherty joins (~juan@user/JuanDaugherty)
20:45:04 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
20:45:55 <geekosaur> …once you figure out how to make them performant
20:45:59 × Inst quits (~Inst@user/Inst) (Remote host closed the connection)
20:48:42 <EvanR> yeeeeah
20:49:00 <monochrom> Clearly free monads are not the one true architectural pattern. So you can safely disregard anything that says so.
20:50:44 <EvanR> quantum woo, free monads, and you. $59.99 $49.99 canadian
20:51:13 monochrom writes "free monads for building perpetual machines and proving flat earth"
20:51:57 × michalz quits (~michalz@185.246.207.205) (Remote host closed the connection)
20:52:33 <haskellbridge> <Liamzee> but i can see where he's coming from, free monads are a rehash of Gang Of Four interpreter pattern, which is apparently the OOP pattern that survives and doesn't get knocked
20:52:54 <haskellbridge> <Liamzee> for people from certain backgrounds it's the most comfortable pattern despite the performance collapse
20:53:42 <monochrom> Good examples of good use cases of free monads (and why) are worth learning. Claims of "you need nothing else" should be disregarded.
20:54:35 <monochrom> Even the Gang of Four does not claim that you only need to learn one design pattern. Hell, they say there are going to be more.
20:56:23 <JuanDaugherty> it was enough for me to see they were a way get a hs monad for any functor
20:56:53 <JuanDaugherty> during which i kept thinking, 'no free lunch'
20:57:52 <JuanDaugherty> *hs functor
20:57:54 <EvanR> if lunch = monads, then yes, it's possible
20:58:06 <EvanR> hence the burritos
20:58:18 <haskellbridge> <Liamzee> maybe it's too extreme
20:58:26 <haskellbridge> <Liamzee> not sure, i should go read his book
20:58:29 tromp joins (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3)
20:58:32 <haskellbridge> <Liamzee> i have it next to me
20:59:23 <monochrom> Have you consider the alternative stance "algebraic effects are the one true architectural pattern" which, if you know the math, has as much right as free monads for claiming that?
20:59:45 <haskellbridge> <Liamzee> :%s/extreme/extreme a characterisation of his position
21:00:46 <haskellbridge> <Liamzee> i wouldn't know, all i know is that i hate mtl
21:00:51 × fp quits (~Thunderbi@hof1.kyla.fi) (Ping timeout: 276 seconds)
21:01:07 <haskellbridge> <Liamzee> otherwise i'd have already gone to exceptT and called it a day
21:01:14 <monochrom> Have you also considered that certain parsers are not even monads, just alternatives, so there is no way either any family of monads or any family of algebraic effects can be the one true architectural pattern?
21:01:41 JuanDaugherty is now known as ColinRobinson
21:03:35 × euleritian quits (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
21:07:54 euleritian joins (~euleritia@dynamic-176-006-131-107.176.6.pool.telefonica.de)
21:09:15 <monochrom> I know the one true trick of rationalizing claims of "one true X": Dismiss any problem/scenerio outside the scope of X.
21:09:50 × euleritian quits (~euleritia@dynamic-176-006-131-107.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
21:10:08 euleritian joins (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de)
21:17:41 <EvanR> wasn't there a claim of "the mother of all monads"
21:17:47 <EvanR> where did that originate
21:18:07 <geekosaur> someone (I think sigfpe?) claimed Cont was the mother of all monads
21:18:55 fp joins (~Thunderbi@hof1.kyla.fi)
21:24:38 <monochrom> http://blog.sigfpe.com/2008/12/mother-of-all-monads.html
21:24:49 <monochrom> yeah sigfpe
21:25:09 × abrar quits (~abrar@static-96-245-187-163.phlapa.fios.verizon.net) (Ping timeout: 248 seconds)
21:26:15 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
21:27:19 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:30:10 <EvanR> suppose someone (obviously, carmen san diego) stole all the monads and do notation
21:30:25 <EvanR> clearly you could define >>= and use \x -> ...
21:30:33 <EvanR> not that terrible xD
21:30:47 <geekosaur> .andthen()
21:30:49 <EvanR> instead of going into Cont
21:31:25 <monochrom> Did you know that the Doom franchise and the Carmen San Diego franchise once tried to collaborate and make a Where in Hell is Carmen San Diego? >:)
21:31:36 <geekosaur> you can do lots of things with Cont but that way lies madness
21:31:39 <monochrom> or at least rumoured too
21:31:42 <monochrom> s/too/to/
21:32:18 <EvanR> the original post sigfpe cites is... not there :(
21:32:55 <EvanR> Where in [the] hell is carmen san diego lol
21:35:19 <geekosaur> https://web.archive.org/web/20100520080436/http://sneezy.cs.nott.ac.uk/fplunch/weblog/?m=200712
21:35:42 <geekosaur> newer snapshots redirect to another site that's not there
21:47:58 × tromp quits (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:55:20 <EvanR> so it's the mother of all monads as well as the mother of all classical proofs xD
22:04:30 × LainIwakura quits (~LainIwaku@user/LainIwakura) (Ping timeout: 240 seconds)
22:06:19 LainIwakura joins (~LainIwaku@user/LainIwakura)
22:08:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:11:38 ljdarj1 joins (~Thunderbi@user/ljdarj)
22:14:43 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
22:14:43 ljdarj1 is now known as ljdarj
22:18:12 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:21:22 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
22:22:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:23:19 × fp quits (~Thunderbi@hof1.kyla.fi) (Ping timeout: 276 seconds)
22:31:16 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:34:34 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
22:41:15 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
22:42:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:42:55 j1n37 joins (~j1n37@user/j1n37)
22:42:57 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 248 seconds)
22:49:55 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
22:51:44 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
22:51:52 × JoeRayner123 quits (~Thunderbi@31.217.12.231) (Read error: Connection reset by peer)
22:52:05 JoeRayner123 joins (~Thunderbi@31.217.12.231)
22:52:14 × JoeRayner123 quits (~Thunderbi@31.217.12.231) (Remote host closed the connection)
22:57:15 × noteness quits (~noteness@user/noteness) (Quit: bye)
22:58:29 noteness joins (~noteness@user/noteness)
23:07:51 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
23:08:38 L29Ah joins (~L29Ah@wikipedia/L29Ah)
23:28:21 todi1 joins (~todi@p57803331.dip0.t-ipconnect.de)
23:28:58 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
23:30:40 × kimiamania9 quits (~65804703@user/kimiamania) (Quit: PegeLinux)
23:32:08 kimiamania99 joins (~65804703@user/kimiamania)
23:36:04 × kimiamania99 quits (~65804703@user/kimiamania) (Client Quit)
23:37:34 kimiamania99 joins (~65804703@user/kimiamania)
23:46:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
23:53:31 × sprotte24 quits (~sprotte24@p200300d16f0edb008da0b43d58ccc511.dip0.t-ipconnect.de) (Quit: Leaving)
23:58:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)

All times are in UTC on 2025-04-26.