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.