2025/07/31

2025-07-31 00:04:09 +0200caubert(~caubert@user/caubert) (Ping timeout: 252 seconds)
2025-07-31 00:05:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 00:07:19 +0200califax(~califax@user/califx) (Ping timeout: 244 seconds)
2025-07-31 00:08:38 +0200califax(~califax@user/califx) califx
2025-07-31 00:09:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 00:14:34 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-07-31 00:16:31 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 00:20:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 00:25:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-07-31 00:29:17 +0200jreicher(~user@user/jreicher) jreicher
2025-07-31 00:33:39 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-07-31 00:34:07 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-07-31 00:35:00 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2025-07-31 00:36:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 00:40:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 00:51:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 00:56:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 01:07:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 01:11:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 01:22:40 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 01:27:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-07-31 01:34:58 +0200trickard(~trickard@cpe-54-98-47-163.wireline.com.au) (Ping timeout: 245 seconds)
2025-07-31 01:35:27 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 01:38:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 01:39:08 +0200infinity0(~infinity0@pwned.gg) (Ping timeout: 245 seconds)
2025-07-31 01:42:54 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 01:50:04 +0200sprotte24(~sprotte24@p200300d16f05730029e3edc0993e5705.dip0.t-ipconnect.de) (Quit: Leaving)
2025-07-31 01:50:48 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Ping timeout: 245 seconds)
2025-07-31 01:53:36 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 01:53:55 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 01:58:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 01:59:51 +0200jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-07-31 01:59:51 +0200infinity0(~infinity0@pwned.gg) infinity0
2025-07-31 02:03:40 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-07-31 02:06:52 +0200DragonMaus(~dragonmau@user/dragonmaus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2025-07-31 02:07:40 +0200DragonMaus(~dragonmau@user/dragonmaus) DragonMaus
2025-07-31 02:08:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 02:09:56 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 02:10:10 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 02:11:17 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-07-31 02:13:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 02:23:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 02:24:55 +0200ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-07-31 02:28:26 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-07-31 02:29:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-07-31 02:31:10 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Quit: ZNC 1.10.1 - https://znc.in)
2025-07-31 02:31:50 +0200down200(~down200@shell.lug.mtu.edu) down200
2025-07-31 02:35:01 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 02:35:13 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 02:35:16 +0200 <Axman6> I remember when I first started using Haskell, be in 20 dickety 8, seeing the Edison library, and even then, it felt like an ancient relic. I came across it again today, and found that a) it's still being maintained, and b) it was originally written by Chris Okasaki himself. Just thought that was interesting
2025-07-31 02:37:16 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-07-31 02:37:27 +0200jackdk(uid373013@cssa/life/jackdk) jackdk
2025-07-31 02:41:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 02:45:38 +0200acidjnk(~acidjnk@p200300d6e72d7b44ad4e219a14911733.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-07-31 02:46:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 02:47:20 +0200jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 252 seconds)
2025-07-31 02:47:44 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 02:47:57 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 02:48:25 +0200jmorris(uid604645@id-604645.hampstead.irccloud.com) jmorris
2025-07-31 02:55:05 +0200hakutaku_(~textual@chen.yukari.eu.org)
2025-07-31 02:56:36 +0200hakutaku(~textual@chen.yukari.eu.org) (Ping timeout: 252 seconds)
2025-07-31 02:57:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 03:01:40 +0200 <Axman6> (I should say EdisonAPI specifically)
2025-07-31 03:02:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-07-31 03:04:52 +0200jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-07-31 03:12:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 03:14:39 +0200xff0x(~xff0x@2405:6580:b080:900:a1bc:22ca:8bd:b4a5) (Ping timeout: 260 seconds)
2025-07-31 03:15:31 +0200machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Quit: leaving)
2025-07-31 03:16:57 +0200machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-07-31 03:16:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 03:17:35 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-07-31 03:24:33 +0200ridcully(~ridcully@pd951f729.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-07-31 03:27:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 03:32:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 03:35:44 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2)
2025-07-31 03:38:01 +0200ridcully(~ridcully@p57b526e9.dip0.t-ipconnect.de) ridcully
2025-07-31 03:39:25 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) (Remote host closed the connection)
2025-07-31 03:41:32 +0200poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 03:42:07 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 03:43:01 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 03:43:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 03:43:35 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 03:43:38 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 03:43:49 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 03:45:19 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 03:45:45 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 03:47:30 +0200trickard_trickard
2025-07-31 03:47:51 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 03:47:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-07-31 03:48:15 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 03:58:09 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 03:58:45 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 03:58:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 04:00:40 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 04:00:48 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2)
2025-07-31 04:01:24 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-07-31 04:03:46 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 04:04:11 +0200MelGibsongod
2025-07-31 04:04:28 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 04:04:41 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 04:05:26 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 04:05:30 +0200godsoitgoes
2025-07-31 04:06:27 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 04:06:40 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 04:08:21 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-07-31 04:10:37 +0200soitgoes(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) (Changing host)
2025-07-31 04:10:37 +0200soitgoes(~MelGibson@user/MelGibson) MelGibson
2025-07-31 04:11:01 +0200soitgoes(~MelGibson@user/MelGibson) (Remote host closed the connection)
2025-07-31 04:11:20 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2)
2025-07-31 04:12:50 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 04:12:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 04:13:10 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 04:13:53 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) (Remote host closed the connection)
2025-07-31 04:13:59 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 04:14:10 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 04:14:11 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) MelGibson
2025-07-31 04:14:11 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) (Changing host)
2025-07-31 04:14:11 +0200MelGibson(~MelGibson@user/MelGibson) MelGibson
2025-07-31 04:15:38 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-07-31 04:15:50 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-07-31 04:17:12 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-07-31 04:17:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 04:19:36 +0200MelGibsonsoitgoes
2025-07-31 04:21:09 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 04:21:38 +0200poscat0x04(~poscat@user/poscat) poscat
2025-07-31 04:23:30 +0200soitgoes(~MelGibson@user/MelGibson) (Remote host closed the connection)
2025-07-31 04:23:47 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2)
2025-07-31 04:23:47 +0200MelGibsonsoitgoes
2025-07-31 04:23:47 +0200soitgoes(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) (Changing host)
2025-07-31 04:23:47 +0200soitgoes(~MelGibson@user/MelGibson) MelGibson
2025-07-31 04:24:04 +0200remmie(ianremsen@tilde.team) (Ping timeout: 260 seconds)
2025-07-31 04:25:49 +0200poscat(~poscat@user/poscat) (Ping timeout: 260 seconds)
2025-07-31 04:29:56 +0200dolio(~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
2025-07-31 04:30:13 +0200soitgoes(~MelGibson@user/MelGibson) (Quit: soitgoes)
2025-07-31 04:30:30 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2)
2025-07-31 04:30:30 +0200MelGibson(~MelGibson@2600:1700:5d4:8b00:dccc:7b66:b103:40e2) (Changing host)
2025-07-31 04:30:30 +0200MelGibson(~MelGibson@user/MelGibson) MelGibson
2025-07-31 04:30:30 +0200MelGibsonsoitgoes
2025-07-31 04:31:00 +0200dolio(~dolio@130.44.140.168) dolio
2025-07-31 04:35:44 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2025-07-31 04:40:47 +0200remmie(ianremsen@tilde.team) remsense
2025-07-31 04:48:18 +0200Square(~Square@user/square) Square
2025-07-31 05:21:14 +0200jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.7.0)
2025-07-31 05:26:03 +0200aforemny_(~aforemny@2001:9e8:6cc0:bc00:fef4:3a8e:168a:abdb) aforemny
2025-07-31 05:27:13 +0200aforemny(~aforemny@i59F4C6A5.versanet.de) (Ping timeout: 248 seconds)
2025-07-31 05:41:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 05:43:06 +0200kimjetwav(~user@2607:fea8:25a3:a100:d659:4ee6:e67a:606a) (Quit: time to reboot!)
2025-07-31 05:46:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 05:49:40 +0200soitgoes(~MelGibson@user/MelGibson) (Remote host closed the connection)
2025-07-31 05:57:59 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
2025-07-31 06:02:04 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 06:06:48 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-07-31 06:06:54 +0200caubert(~caubert@user/caubert) (Ping timeout: 252 seconds)
2025-07-31 06:09:09 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-07-31 06:10:59 +0200dolio(~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
2025-07-31 06:12:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 06:14:12 +0200dolio(~dolio@130.44.140.168) dolio
2025-07-31 06:16:55 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 06:17:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 06:21:51 +0200caubert(~caubert@user/caubert) (Ping timeout: 276 seconds)
2025-07-31 06:28:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 06:32:53 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-07-31 06:32:54 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-07-31 06:34:17 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-07-31 06:35:14 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 06:36:39 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
2025-07-31 06:38:45 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 06:40:28 +0200caubert(~caubert@user/caubert) (Ping timeout: 240 seconds)
2025-07-31 06:41:31 +0200euphores(~SASL_euph@user/euphores) euphores
2025-07-31 06:43:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 06:47:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-07-31 06:48:11 +0200jmorris(uid604645@id-604645.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2025-07-31 06:54:08 +0200trickard(~trickard@cpe-54-98-47-163.wireline.com.au) (Ping timeout: 245 seconds)
2025-07-31 06:54:31 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 06:59:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 07:03:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-07-31 07:07:49 +0200michalz(~michalz@185.246.207.193)
2025-07-31 07:11:03 +0200tuxpaint(~a@put.gay) (Quit: gn)
2025-07-31 07:11:16 +0200tuxpaint(~a@2600:3c06::f03c:93ff:fea6:ef0e)
2025-07-31 07:13:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 07:18:07 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 07:19:03 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-07-31 07:29:01 +0200marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-07-31 07:29:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 07:34:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 07:34:58 +0200caubert(~caubert@user/caubert) (Ping timeout: 240 seconds)
2025-07-31 07:44:58 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
2025-07-31 07:45:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 07:47:17 +0200kimiamania99(~65804703@user/kimiamania) (Quit: PegeLinux)
2025-07-31 07:48:47 +0200kimiamania99(~65804703@user/kimiamania) kimiamania
2025-07-31 07:49:40 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 07:52:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-07-31 07:53:03 +0200xff0x_(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-07-31 07:54:25 +0200caubert(~caubert@user/caubert) (Ping timeout: 248 seconds)
2025-07-31 07:55:14 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds)
2025-07-31 07:58:12 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-07-31 07:58:48 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 08:00:41 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-07-31 08:03:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 08:08:10 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-07-31 08:08:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-07-31 08:08:34 +0200jmorris(uid604645@id-604645.hampstead.irccloud.com) jmorris
2025-07-31 08:09:53 +0200caubert(~caubert@user/caubert) (Ping timeout: 248 seconds)
2025-07-31 08:13:34 +0200jle`(~jle`@2603:8001:3b00:11:be7f:e3c6:6141:6bdc) (Ping timeout: 276 seconds)
2025-07-31 08:15:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 08:19:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 08:20:11 +0200jle`(~jle`@syn-023-240-067-073.res.spectrum.com) jle`
2025-07-31 08:23:41 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 08:28:37 +0200caubert(~caubert@user/caubert) (Ping timeout: 248 seconds)
2025-07-31 08:30:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 08:31:36 +0200biberu(~biberu@user/biberu) biberu
2025-07-31 08:35:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-07-31 08:37:15 +0200Square(~Square@user/square) (Remote host closed the connection)
2025-07-31 08:39:13 +0200trickard_trickard
2025-07-31 08:43:40 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 08:45:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 08:49:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-07-31 08:50:24 +0200ft(~ft@p3e9bcd7f.dip0.t-ipconnect.de) (Quit: leaving)
2025-07-31 08:50:25 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 248 seconds)
2025-07-31 08:55:41 +0200jreicher(~user@user/jreicher) (Quit: In transit)
2025-07-31 08:58:41 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a)
2025-07-31 09:00:02 +0200caconym747(~caconym@user/caconym) (Quit: bye)
2025-07-31 09:00:42 +0200caconym747(~caconym@user/caconym) caconym
2025-07-31 09:01:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 09:06:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-07-31 09:07:27 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2025-07-31 09:10:12 +0200marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-07-31 09:16:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 09:20:23 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 09:26:59 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-07-31 09:47:01 +0200trickard(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 09:47:15 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 09:50:33 +0200fp(~Thunderbi@wireless-86-50-140-9.open.aalto.fi) fp
2025-07-31 09:51:28 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds)
2025-07-31 10:00:43 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-07-31 10:02:58 +0200vpan(~vpan@212.117.1.172)
2025-07-31 10:03:16 +0200vpanGuest1293
2025-07-31 10:03:23 +0200Guest1293vpan
2025-07-31 10:05:41 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-07-31 10:06:26 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 10:06:40 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 10:07:07 +0200merijn(~merijn@77.242.116.146) merijn
2025-07-31 10:07:41 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 10:09:14 +0200__monty__(~toonn@user/toonn) toonn
2025-07-31 10:09:25 +0200puke(~puke@user/puke) puke
2025-07-31 10:12:11 +0200lbseale(~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
2025-07-31 10:12:33 +0200caubert(~caubert@user/caubert) (Ping timeout: 248 seconds)
2025-07-31 10:13:02 +0200jreicher(~user@user/jreicher) jreicher
2025-07-31 10:13:28 +0200lbseale(~quassel@user/ep1ctetus) ep1ctetus
2025-07-31 10:13:36 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-07-31 10:21:33 +0200fp(~Thunderbi@wireless-86-50-140-9.open.aalto.fi) (Ping timeout: 252 seconds)
2025-07-31 10:24:52 +0200jreicher(~user@user/jreicher) (Remote host closed the connection)
2025-07-31 10:25:24 +0200jreicher(~user@user/jreicher) jreicher
2025-07-31 10:28:40 +0200fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-07-31 10:28:57 +0200acidjnk(~acidjnk@p200300d6e72d7b77bc5728ea616be3b0.dip0.t-ipconnect.de) acidjnk
2025-07-31 10:31:28 +0200mm_x_(~mm@user/mm-x-:64963) (Quit: Konversation terminated!)
2025-07-31 10:33:40 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 10:35:35 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 10:35:49 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 10:36:35 +0200LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-07-31 10:39:57 +0200caubert(~caubert@user/caubert) (Ping timeout: 252 seconds)
2025-07-31 10:43:05 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-07-31 10:44:07 +0200 <kuribas> I read the progress and preservation properties only hold for static programming, however couldn't you say that a dynamic program is unityped, and always typesafe?
2025-07-31 10:44:53 +0200 <kuribas> In the sense that every function checks the type, and evaluates to a runtime error if the type is invalid.
2025-07-31 10:45:18 +0200 <kuribas> So the small step evaluation progresses to a terminal value, the type error.
2025-07-31 10:48:11 +0200jmorris(uid604645@id-604645.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2025-07-31 10:50:54 +0200 <kuribas> It's a very boring property, not very useful, but it seems to contradict the claim that these properties don't hold for dynamic programs.
2025-07-31 10:53:47 +0200Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-07-31 10:55:03 +0200ubert1(~Thunderbi@178.165.167.35.wireless.dyn.drei.com) ubert
2025-07-31 10:57:11 +0200 <apache2> kuribas: "runtime error" is a bit vague - is crashing due to an uncaught signal a runtime error?
2025-07-31 10:58:35 +0200trickard_trickard
2025-07-31 10:59:19 +0200 <apache2> but yeah, you can model a lot of dynamically typed languages as a statically typed language where there is one GADT type, some mixed-type languages do that and even expose this "supertype"
2025-07-31 11:03:09 +0200 <apache2> kuribas: this doesn't necessarily imply that you have Progress, but it can help.
2025-07-31 11:03:43 +0200 <__monty__> kuribas: Runtime errors don't mean the type is invalid. Type checking is a static process. The Python program that results in a TypeError at runtime is still a valid program that would've passed typechecking.
2025-07-31 11:05:00 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2025-07-31 11:05:10 +0200AVA(~AVA@84.54.80.58)
2025-07-31 11:05:39 +0200Lycurgus(~juan@user/Lycurgus) (Quit: irc.renjuan.org (juan@acm.org))
2025-07-31 11:06:22 +0200kimiamania99(~65804703@user/kimiamania) (Quit: Ping timeout (120 seconds))
2025-07-31 11:06:28 +0200 <apache2> __monty__: right, you can say (by definition) that raising an exception about a type mismatch is the way to handle an unexpected type, like if you have a function in the error monad that returns an error when a sumtype value has an unexpected constructor, or a integer type is negative, or whatever. then you can typecheck your valid program that legally outputs TypeError errors
2025-07-31 11:06:45 +0200kimiamania99(~65804703@user/kimiamania) kimiamania
2025-07-31 11:07:06 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2025-07-31 11:08:41 +0200 <apache2> kuribas: it's not immediately useful, but it paves the way for typechecking subsets of the legal programs with a less forgiving type system, and then an optimizing compiler can work on those sub-languages. JIT compilers for dynamic languages or gradually typed languages often do something similar.
2025-07-31 11:08:51 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 11:11:15 +0200 <kuribas> apache2: sure, sbcl is quite good in inferring types. But still, I found I needed a lot of type annotations to make some compression algorithm efficient.
2025-07-31 11:12:20 +0200 <kuribas> __monty__: I mean that a dynamically program always typechecks, in some trivial way.
2025-07-31 11:12:26 +0200haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-07-31 11:12:43 +0200 <apache2> re: contradiction/claim: what exactly is the claim you want to contradict?
2025-07-31 11:13:22 +0200 <kuribas> apache2: That the progress and preservation property does not hold for dynamic programming languages.
2025-07-31 11:13:30 +0200chele(~chele@user/chele) chele
2025-07-31 11:13:34 +0200caubert(~caubert@user/caubert) (Ping timeout: 260 seconds)
2025-07-31 11:13:47 +0200 <apache2> finding instances where they does not contradict a claim that they do not always hold
2025-07-31 11:13:53 +0200 <apache2> they do*
2025-07-31 11:14:32 +0200 <kuribas> Well, maybe I misread the claim...
2025-07-31 11:15:40 +0200merijn(~merijn@77.242.116.146) merijn
2025-07-31 11:15:43 +0200 <apache2> "dynamic" and "static" are fluid concepts, I'd be wary of treating conjectures that talk about "dynamic programming languages" as formal conjectures
2025-07-31 11:15:58 +0200 <kuribas> true
2025-07-31 11:16:10 +0200 <kuribas> like with gradual typing you could have the properties failing...
2025-07-31 11:16:49 +0200 <kuribas> Or a static analyser that shows some expression always throws a type error.
2025-07-31 11:17:23 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 11:18:21 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-07-31 11:18:54 +0200 <apache2> type checking is usually used to verify that the program is internally consistent, not that it works. "internally consistent" is also a fluid concept, "with respect to which properties" is the follow-up question you can ask, and that the operational semantics should answer
2025-07-31 11:20:27 +0200 <kuribas> Couldn't you say that it is about making sure the domains of functions are respected?
2025-07-31 11:20:52 +0200 <apache2> ie you may be able to rule out stalling Progress due to Int<->Float mismatch, but you may not be able to rule out stalling due to unterminating functions
2025-07-31 11:21:11 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 11:21:28 +0200 <apache2> kuribas: sure, ensuring domains+codomains match up is a useful and common thing to achieve in a type checker
2025-07-31 11:22:51 +0200 <apache2> but if you can't prove that functions terminate, it's hard to talk about codomains. then you end up with "iff the function terminates, the result has the correct type"
2025-07-31 11:23:20 +0200 <apache2> which is a hell of a lot better than "yolo" but it doesn't mean your program will do what it was intended to do
2025-07-31 11:23:35 +0200 <kuribas> So total programming is better...
2025-07-31 11:24:11 +0200 <__monty__> It's interesting at least.
2025-07-31 11:25:22 +0200 <kuribas> progress also disregards exceptions in many language, no?
2025-07-31 11:25:40 +0200 <kuribas> An that any expression can throw any exception.
2025-07-31 11:25:54 +0200 <apache2> kuribas: it's better if your aim is to prove things about the results :) it may not be better if your goal is to write a program that performs the task at hand - the more complicated the type system, the less likely the programmer is to terminate :)
2025-07-31 11:26:32 +0200 <apache2> kuribas: throwing an exception is usually considered progress.
2025-07-31 11:28:06 +0200 <kuribas> I just think most practical programs are trivially total.
2025-07-31 11:28:17 +0200 <apache2> segfaults leading to program termination is usually not, but you could define a language where that is a valid outcome
2025-07-31 11:28:34 +0200 <apache2> it's a definition game
2025-07-31 11:29:35 +0200 <apache2> kuribas: in python you can write a program `while True: print("SPAM")` which clearly does not terminate
2025-07-31 11:29:43 +0200sprout(~sprout@84-80-106-227.fixed.kpn.net) (Remote host closed the connection)
2025-07-31 11:30:14 +0200 <apache2> it can still be a practical program, UNIX "yes" is an example of such
2025-07-31 11:30:19 +0200LainIwakura(~LainIwaku@user/LainIwakura) (Ping timeout: 272 seconds)
2025-07-31 11:31:21 +0200 <apache2> I don't know about trivial, in languages where you can ask the type checker to check that your functions are total (like Agda) it's often *not trivial* to convince the type checker that that's the case
2025-07-31 11:31:31 +0200 <__monty__> As soon as you have something long running like a daemon or a GUI, termination checking sounds like it should get hard to me.
2025-07-31 11:32:59 +0200 <apache2> __monty__: I guess if you can prove things about the inner loop, you can often prove that the program doesn't terminate
2025-07-31 11:34:15 +0200 <apache2> but if you can write the inner loop as a step that you can prove termination for, then you can have a small runner, and you know the inner loop won't get stuck
2025-07-31 11:35:30 +0200trickard(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 11:35:44 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 11:39:16 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a)
2025-07-31 11:41:00 +0200Digit(~user@user/digit) (Ping timeout: 276 seconds)
2025-07-31 11:44:57 +0200sprout(~sprout@84-80-106-227.fixed.kpn.net)
2025-07-31 11:45:19 +0200LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-07-31 11:46:49 +0200inline_(~inline@ip-005-146-197-054.um05.pools.vodafone-ip.de) (Quit: Leaving)
2025-07-31 11:48:52 +0200 <kuribas> __monty__: you use fuel. You just run the deamon as long as there is fuel.
2025-07-31 11:48:59 +0200 <kuribas> Then in practice you run with infinite fuel.
2025-07-31 11:49:35 +0200 <kuribas> The important part is of course that you get results with bounded fuel.
2025-07-31 11:49:56 +0200 <__monty__> There's the rub, isn't it?
2025-07-31 11:50:06 +0200 <kuribas> The whole loop is not total, but the input -> result part is total.
2025-07-31 11:50:41 +0200 <mauke> non-terminating, but productive
2025-07-31 11:55:07 +0200jackdk(uid373013@cssa/life/jackdk) (Quit: Connection closed for inactivity)
2025-07-31 11:56:39 +0200dextaa(~dan@user/dextaa) dextaa
2025-07-31 11:57:09 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
2025-07-31 11:58:32 +0200VictorHugenay(~VictorHug@user/VictorHugenay) VictorHugenay
2025-07-31 11:59:19 +0200inline(~inline@ip-005-146-197-054.um05.pools.vodafone-ip.de) Inline
2025-07-31 12:02:34 +0200caubert(~caubert@user/caubert) (Ping timeout: 260 seconds)
2025-07-31 12:08:08 +0200hsw(~hsw@112-104-9-97.adsl.dynamic.seed.net.tw) (Remote host closed the connection)
2025-07-31 12:09:44 +0200VictorHugenay(~VictorHug@user/VictorHugenay) (Quit: Konversation terminated!)
2025-07-31 12:11:41 +0200Digit(~user@user/digit) Digit
2025-07-31 12:13:10 +0200b7r6(~user@user/b7r6) (Remote host closed the connection)
2025-07-31 12:14:49 +0200XPMUser(~XPMUser@2607:fea8:e81:d900:544a:85b1:dc6f:f5f5)
2025-07-31 12:16:21 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 12:18:27 +0200VictorHugenay(~VictorHug@user/VictorHugenay) VictorHugenay
2025-07-31 12:18:54 +0200XPMUser(~XPMUser@2607:fea8:e81:d900:544a:85b1:dc6f:f5f5) (Client Quit)
2025-07-31 12:19:14 +0200XPMUser(~XPMUser@2607:fea8:e81:d900:544a:85b1:dc6f:f5f5)
2025-07-31 12:22:42 +0200ubert1(~Thunderbi@178.165.167.35.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2025-07-31 12:23:09 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-07-31 12:23:34 +0200XPMUser(~XPMUser@2607:fea8:e81:d900:544a:85b1:dc6f:f5f5) (Client Quit)
2025-07-31 12:23:53 +0200XPMUser(~XPMUser@2607:fea8:e81:d900:544a:85b1:dc6f:f5f5)
2025-07-31 12:27:19 +0200LainIwakura(~LainIwaku@user/LainIwakura) (Ping timeout: 272 seconds)
2025-07-31 12:27:52 +0200xff0x_(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Quit: xff0x_)
2025-07-31 12:28:04 +0200sprotte24(~sprotte24@p200300d16f0ea9003c5fb6edece4b8f3.dip0.t-ipconnect.de)
2025-07-31 12:29:48 +0200VictorHugenay(~VictorHug@user/VictorHugenay) (Quit: Konversation terminated!)
2025-07-31 12:29:59 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-07-31 12:30:58 +0200fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 276 seconds)
2025-07-31 12:31:50 +0200 <__monty__> kuribas: The thing is that "Just do this little thing and then the problem's trivial," doesn't work with things like the halting problem.
2025-07-31 12:31:58 +0200machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
2025-07-31 12:32:05 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 12:32:18 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-07-31 12:32:53 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2025-07-31 12:40:41 +0200XPMUser(~XPMUser@2607:fea8:e81:d900:544a:85b1:dc6f:f5f5) (Quit: Client closed)
2025-07-31 12:41:15 +0200sprotte24(~sprotte24@p200300d16f0ea9003c5fb6edece4b8f3.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-07-31 12:41:23 +0200merijn(~merijn@77.242.116.146) merijn
2025-07-31 12:42:49 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
2025-07-31 12:43:28 +0200zlqrvx(~zlqrvx@101.175.150.247)
2025-07-31 12:45:14 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 12:46:39 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-07-31 12:49:20 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-07-31 12:51:02 +0200trickard__(~trickard@cpe-49-98-47-163.wireline.com.au)
2025-07-31 12:51:34 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Ping timeout: 260 seconds)
2025-07-31 12:52:59 +0200LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-07-31 12:57:06 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Ping timeout: 252 seconds)
2025-07-31 13:00:04 +0200caconym747(~caconym@user/caconym) (Quit: bye)
2025-07-31 13:00:23 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
2025-07-31 13:02:07 +0200caconym747(~caconym@user/caconym) caconym
2025-07-31 13:03:44 +0200trickard__trickard
2025-07-31 13:04:35 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 13:05:56 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-07-31 13:05:57 +0200LainIwakura(~LainIwaku@user/LainIwakura) (Ping timeout: 272 seconds)
2025-07-31 13:09:12 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2025-07-31 13:11:54 +0200AVA(~AVA@84.54.80.58) (Quit: Leaving)
2025-07-31 13:17:38 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2025-07-31 13:19:53 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-07-31 13:20:11 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2025-07-31 13:20:38 +0200Yumemi(~Yumemi@chamoin.net) (Remote host closed the connection)
2025-07-31 13:21:13 +0200Lord_of_Life_Lord_of_Life
2025-07-31 13:23:23 +0200fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-07-31 13:24:30 +0200LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-07-31 13:24:44 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-07-31 13:25:28 +0200Yumemi(~Yumemi@chamoin.net) Yumemi
2025-07-31 13:26:01 +0200vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2025-07-31 13:31:15 +0200zlqrvx(~zlqrvx@101.175.150.247) (Quit: ZNC 1.10.0 - https://znc.in)
2025-07-31 13:34:13 +0200trickard(~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 13:34:27 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au)
2025-07-31 13:35:26 +0200merijn(~merijn@77.242.116.146) merijn
2025-07-31 13:39:18 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 276 seconds)
2025-07-31 13:40:46 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 13:45:48 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-07-31 13:48:22 +0200acidjnk_new(~acidjnk@2a02:3030:b:f1c:78a4:f074:fb0b:58dc) acidjnk
2025-07-31 13:49:18 +0200acidjnk_new3(~acidjnk@p200300d6e716dd19bc5728ea616be3b0.dip0.t-ipconnect.de) acidjnk
2025-07-31 13:49:37 +0200acidjnk(~acidjnk@p200300d6e72d7b77bc5728ea616be3b0.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-07-31 13:52:49 +0200acidjnk_new(~acidjnk@2a02:3030:b:f1c:78a4:f074:fb0b:58dc) (Ping timeout: 248 seconds)
2025-07-31 13:53:00 +0200acidjnk(~acidjnk@2a02:3030:b:f1c:78a4:f074:fb0b:58dc) acidjnk
2025-07-31 13:53:57 +0200acidjnk_new3(~acidjnk@p200300d6e716dd19bc5728ea616be3b0.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-07-31 13:59:37 +0200LainIwakura(~LainIwaku@user/LainIwakura) (Quit: Client closed)
2025-07-31 14:00:35 +0200LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-07-31 14:02:19 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-07-31 14:03:54 +0200hakutaku_(~textual@chen.yukari.eu.org) (Remote host closed the connection)
2025-07-31 14:04:29 +0200hakutaku(~textual@chen.yukari.eu.org)
2025-07-31 14:05:18 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 272 seconds)
2025-07-31 14:07:25 +0200merijn(~merijn@77.242.116.146) merijn
2025-07-31 14:09:24 +0200 <__monty__> I'm having a hard time finding a reference for let-bindings in pattern match guards, anyone know where to look?
2025-07-31 14:13:51 +0200 <__monty__> In particular I want to check whether I'm imagining guards can occur inside of them.
2025-07-31 14:15:16 +0200ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-07-31 14:18:17 +0200hseg(~gesh@46.120.20.122)
2025-07-31 14:18:32 +0200Reality2point0(~Reality2p@2a02:3035:665:a078:7ac6:f05a:b961:839e)
2025-07-31 14:20:01 +0200 <Reality2point0> Hi. I noticed that data definitions are the only ones that don’t use indentation syntax, and rely on curly braces by default. Is there some extension I can enable to just write data record definitions by indenting and no curly braces?
2025-07-31 14:21:02 +0200 <__monty__> Reality2point0: I think you're conflating { ...; ... } (blocks) with { ..., ...} (records).
2025-07-31 14:21:55 +0200 <__monty__> The context-free grammar in the 2010 report confirms I didn't imagine it, IIUC.
2025-07-31 14:24:19 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
2025-07-31 14:30:19 +0200 <Reality2point0> __monty__: I mean for *defining* a data type. Like this: `data MyData = MyData { getA :: A, getB :: B }` I wish I could write that like this: `data MyData = MyData\n  getA :: A\n  getB :: B\n`
2025-07-31 14:30:39 +0200 <Reality2point0> (IRC doesn’t support line breaks, does it?)
2025-07-31 14:31:11 +0200 <dutchie> no, you'd need to use a pastebin site for anything of any length
2025-07-31 14:32:57 +0200 <kuribas> Reality2point0: That's record syntax, as __monty__ says.
2025-07-31 14:33:07 +0200 <kuribas> it's the same for defining as for destructuring.
2025-07-31 14:36:20 +0200 <Reality2point0> kuribas: Uuum, the latter way, how I wish I could write it… That’s not legal Haskell, is it?
2025-07-31 14:36:32 +0200 <Reality2point0> kuribas: Maybe look at this instead: https://pastebin.com/FMwBMt0U
2025-07-31 14:36:49 +0200 <Reality2point0> Is that legal?
2025-07-31 14:37:43 +0200 <kuribas> no
2025-07-31 14:37:55 +0200 <Reality2point0> Exactly. I want this to be legal.
2025-07-31 14:38:10 +0200 <kuribas> I want to be rich.
2025-07-31 14:38:44 +0200 <Reality2point0> I get it, I want you to be less condescending,and that’s not happening either, right? :P
2025-07-31 14:39:05 +0200 <kuribas> no :)
2025-07-31 14:39:15 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 14:39:15 +0200 <Reality2point0> 😂
2025-07-31 14:39:53 +0200 <kuribas> Reality2point0: You could make a change request for that syntax, but it has 0 chance to succeed.
2025-07-31 14:39:56 +0200 <Reality2point0> I want you to know that #haskell was always an exceptionally nice channel, and I hope this is still the case.
2025-07-31 14:40:04 +0200 <Reality2point0> kuribas: Why?
2025-07-31 14:41:00 +0200 <kuribas> Reality2point0: Because record syntax has nothing to do with indentation rule.
2025-07-31 14:41:07 +0200 <kuribas> It just shares the brace.
2025-07-31 14:41:18 +0200 <Reality2point0> Then that is what should be changed.
2025-07-31 14:41:28 +0200notzmv(~umar@user/notzmv) notzmv
2025-07-31 14:41:46 +0200 <Reality2point0> I mean I can write my own preprocessor that gives me that. So of course GHC can. Or is there a catch that I’m not seeing?
2025-07-31 14:42:13 +0200LainIwakura(~LainIwaku@user/LainIwakura) (Ping timeout: 272 seconds)
2025-07-31 14:42:55 +0200 <kuribas> Well, introducing a lot of ambiguity I'd think.
2025-07-31 14:43:11 +0200 <kuribas> Being a major effort to introduce, and little actual gain.
2025-07-31 14:44:13 +0200caubert(~caubert@user/caubert) (Ping timeout: 276 seconds)
2025-07-31 14:44:36 +0200Reality2point0(~Reality2p@2a02:3035:665:a078:7ac6:f05a:b961:839e) (Quit: Client closed)
2025-07-31 14:45:40 +0200 <kuribas> And also, record syntax is easy to recognize now. If you introduce the indataion rule for it, it would not be.
2025-07-31 14:47:26 +0200Reality2point0(~Reality2p@2a02:3035:665:a078:7ac6:f05a:b961:839e)
2025-07-31 14:47:34 +0200 <lortabac> actually it may be doable without ambiguity for type declarations, but for record construction/matching it looks harder
2025-07-31 14:48:54 +0200 <Reality2point0> Well, if a line starts with `data `, it’s gonna be a data declatation. If the lines below it are indented, they go into that. Seems very straightforward for me. Am I missing something?
2025-07-31 14:49:00 +0200 <Reality2point0> *declaration
2025-07-31 14:49:57 +0200 <kuribas> But it would depend on the presence of "::".
2025-07-31 14:50:10 +0200 <lortabac> I have no idea. Personally I'd be fine with s-expressions as the universal syntax for all languages :)
2025-07-31 14:50:24 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a)
2025-07-31 14:50:55 +0200 <Reality2point0> kuribas: Hmm, is there valid syntax for what goes inside `data` that doesn’t use a `::`?
2025-07-31 14:51:44 +0200 <kuribas> data Foo = Foo Int
2025-07-31 14:51:49 +0200 <kuribas> Int could be on a new line.
2025-07-31 14:51:59 +0200 <lortabac> the GHC parser is already **extremely** complex, introducing yet another special case makes me very uncomfortable, even if it turns out to be straightforward
2025-07-31 14:52:10 +0200xff0x(~xff0x@2405:6580:b080:900:d00e:8764:de20:d052)
2025-07-31 14:52:28 +0200 <Reality2point0> lortabac: :D I’d use a visual representation of category theory. But with pure keyboard input, so it still looks like a movie hacker when I code. :D
2025-07-31 14:53:03 +0200 <Reality2point0> lortabac: Well, of course it is extremely complex when it has two separate parsers and syntaxes wher it only needs one. :D
2025-07-31 14:54:58 +0200 <Reality2point0> kuribas: Okay, the indentation syntax should only be allowed for the syntax where you name each field. So you are right, it depends on the `::`. But there’s actually no reason to not allow `data Foo = Foo\n  Int`. I don’t think mixing both syntaxes would be necessary though.
2025-07-31 14:55:07 +0200 <jreicher> kuribas: I don't think "dynamic typechecking" actually exists. When a runtime for a dynamic language is "consulting" the type, it's not performing a check.
2025-07-31 14:55:13 +0200 <__monty__> Reality2point0: It's just kind of a weird thing to want. Why not the same for List and String?
2025-07-31 14:55:29 +0200 <Reality2point0> __monty__: Yeah, why not?
2025-07-31 14:55:44 +0200 <Reality2point0> List comprehensions too
2025-07-31 14:56:07 +0200 <Reality2point0> Emergence! SpongebobRainbowMeme.jpg
2025-07-31 14:56:21 +0200 <__monty__> I mean, now we're not far off from "Yeah, but why doesn't GHC accept JavaScript/C/Python syntax?"
2025-07-31 14:56:43 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 14:56:55 +0200 <kuribas> Some syntax constructs bring the expression into indentation scope, like let, do, ... Then the parser inserts '{' and ';' at appropriate places.
2025-07-31 14:57:10 +0200 <kuribas> It's not the case for data rhs.
2025-07-31 14:57:11 +0200 <Reality2point0> Look, all I want is that when everything uses that indentation synax, to quash the weirdo exception where it for some arcane reason doesn’t, and hence simplify both the parser and coding.
2025-07-31 14:57:27 +0200 <kuribas> Reality2point0: and it's pointed out that this is not an exception?
2025-07-31 14:57:46 +0200acidjnk_new(~acidjnk@p200300d6e7171990bc5728ea616be3b0.dip0.t-ipconnect.de) acidjnk
2025-07-31 14:57:56 +0200 <Reality2point0> kuribas: And I pointed out that that is the problem then. :D
2025-07-31 14:58:16 +0200 <__monty__> Reality2point0: But it's *not* a weirdo exception, it uses comma for separators. The layout rule introduces semicolons.
2025-07-31 14:59:14 +0200 <Reality2point0> __monty__: So you are saying it is not weird because it is a weird outlier in even more ways than I thought. :D
2025-07-31 15:00:05 +0200 <__monty__> I'm saying your expectation is weird and it's not one I've ever shared or seen anyone else share.
2025-07-31 15:00:09 +0200 <Reality2point0> But hey, if we go all the way, then there really shouldn’t be three separate languages in Haskell. The normal one (runs at run time), the type one (runs at compile time), and the kind one (ask Nyarlathotep). :D
2025-07-31 15:00:29 +0200 <kuribas> Reality2point0: I implemented the haskell syntax in emacs lisp, so I think I do know how it works.
2025-07-31 15:00:55 +0200 <kuribas> Reality2point0: I suggest idris2, it has only one language :)
2025-07-31 15:01:05 +0200acidjnk(~acidjnk@2a02:3030:b:f1c:78a4:f074:fb0b:58dc) (Ping timeout: 248 seconds)
2025-07-31 15:01:18 +0200 <kuribas> And IMO it's much more ergonomic for doing type level computation.
2025-07-31 15:01:30 +0200 <Reality2point0> __monty__: Calling my expectation to reduce weirdness weird is super-weird to be frank. I really cannot follow how you consider less complexity weird and cannot see how it’s an outlier. It feels like my point is not getting through.
2025-07-31 15:01:59 +0200 <__monty__> It's objectively more complex though.
2025-07-31 15:02:03 +0200 <Reality2point0> kuribas: I didn’t say you don’t know how it works, did I? If it came across like that, then I’m sorry.
2025-07-31 15:02:29 +0200 <Reality2point0> __monty__: How is having two separate parsers instead of one “more” complex?
2025-07-31 15:03:20 +0200 <Reality2point0> kuribas: I’ll look into idris2. (Is it the successor to a precursor to Haskell?)
2025-07-31 15:03:31 +0200 <__monty__> That's just not how it works. The layout rule is implemented more or less like a lexer pass.
2025-07-31 15:03:32 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 265 seconds)
2025-07-31 15:04:04 +0200 <__monty__> Idris is a dependently typed language with a lot of Haskell influence.
2025-07-31 15:04:33 +0200 <kuribas> Reality2point0: idris2 is the successor of idris. It's dependently typed, meaning types are just values, instead of having it's only level.
2025-07-31 15:05:22 +0200 <kuribas> Reality2point0: So there are no kinds.
2025-07-31 15:05:23 +0200 <Reality2point0> __monty__: “That’s just how it works.” … Okay, I think we’ll stop here. This is not a rational discussion anymore.
2025-07-31 15:06:16 +0200 <kuribas> Reality2point0: how long do you know haskell?
2025-07-31 15:06:30 +0200 <Reality2point0> kuribas: Sounds nice. Though I still see two different syntaxes in the examples. (The `:` and `->` one, and the other one.)
2025-07-31 15:06:35 +0200Digitteknohippie(~user@user/digit) Digit
2025-07-31 15:07:42 +0200Digit(~user@user/digit) (Ping timeout: 276 seconds)
2025-07-31 15:07:44 +0200 <Reality2point0> kuribas: Hard to define, since I know it since Haskell 98 came out, but I didn’t use it as my main language for a long time.
2025-07-31 15:07:49 +0200 <Reality2point0> kuribas: Why?
2025-07-31 15:08:10 +0200 <kuribas> I am not being condescending. I implemented the layout rule in emacs, and it is quite complex/subtle. I am pretty sure noone is waiting for adding more complexity to it.
2025-07-31 15:10:43 +0200 <Reality2point0> In fact I started using Haskell because I designed my own language at the time, and it just did all the things I planned, but was much more developed, so I just used Haskell instead. It still has some ugly points where it is lacking to what I would consider ideal. (E.g. the loads of boilerplate. And the record syntax. Plus TemplateHaskell seems
2025-07-31 15:10:44 +0200 <Reality2point0> like the wrong way o go for me.)
2025-07-31 15:10:52 +0200acidjnk_new(~acidjnk@p200300d6e7171990bc5728ea616be3b0.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-07-31 15:11:13 +0200 <kuribas> Reality2point0: idris2 only resembles haskell superficially, it has many differences. Dependently typed, strict, other syntaxes, allowing for overloading do, list syntax, ...
2025-07-31 15:11:21 +0200 <TMA> the complexity of the layout rules of haskell made me hate the language for several years, don't make it more complex
2025-07-31 15:11:30 +0200 <kuribas> It doesn't have guards, but has views.
2025-07-31 15:12:42 +0200 <Reality2point0> kuribas: Yes, I just recently implemented a different layout rule for a file syntax of my own. It is indeed more complex than one thinks. But it’s not _that_ complex. Or rather, one should prioritize highly emergent rules, and rather alter the syntax than make the parser more complex. (Which is why I suggested not having a separate parser for
2025-07-31 15:12:42 +0200 <Reality2point0> data definition with records in the first place.)
2025-07-31 15:13:02 +0200 <Reality2point0> TMA: My whole point was to make it simpler.
2025-07-31 15:13:19 +0200 <kuribas> I think layout rule is just way overcomplicated, and often confusing for newbees.
2025-07-31 15:13:28 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-07-31 15:14:16 +0200 <Leary> {;} syntax is used for things that /can/ be layout, because they have a layout /herald/, such as `do`, `of`, `let` or `where`. Data constructors don't have one, and making data constructors themselves herald layout would break existing syntax. So you'd need to introduce a new herald or reuse an existing one for the purpose.
2025-07-31 15:14:22 +0200 <kuribas> I am not even fan of indentation sensitive syntax, but at least python is way easier.
2025-07-31 15:15:10 +0200 <TMA> Reality2point0: simpler? just get rid of the 2D syntax altogether.
2025-07-31 15:15:36 +0200 <Reality2point0> kuribas: I noticed that I rediscover the “view” concept quite often in programming, in general. E.g. in Plan9, files could just be views of something else, via a file server. Under Linux, you can mount your own FUSE file system consisting of a single file that is live generated on read.
2025-07-31 15:16:57 +0200 <kuribas> Reality2point0: view in dependently typed language are different, in that they also change the normalisation of expressions.
2025-07-31 15:17:00 +0200 <Reality2point0> TMA: No, not simpler at the expense of power. That is just dumbing down. That’s what commercial software companies are for. XD … More *emergent*! Aka more power for less complexity. Like you can combine a very few different types of LEGO bricks to countless things.
2025-07-31 15:17:01 +0200DigitteknohippieDigit
2025-07-31 15:19:30 +0200 <Reality2point0> kuribas: Let’s correct that to: The layout rule has too many quirks. It should have few rules but those should be as powerful as possible. If you just want extremely simple, just get a rock. (Or a perfectly featureless slice of mirror. Aka an iPhone 50 or so. ;) ) It’s perfectly simple. And useless.
2025-07-31 15:20:03 +0200 <Reality2point0> Leary: What would it break exactly?
2025-07-31 15:20:42 +0200 <kuribas> It's just syntax, I don't see why that should be so complex.
2025-07-31 15:20:49 +0200 <Reality2point0> kuribas: Easy is not a good thing. The easiest thing in life is to just lay there and vegetate or die.
2025-07-31 15:21:01 +0200 <kuribas> I am even happy with lisps.
2025-07-31 15:21:01 +0200 <Reality2point0> kuribas: Correct.
2025-07-31 15:21:26 +0200 <__monty__> Am I the only one to consider it inconsistent that System.FilePath.isRelative considers ~ prefixed paths relative but System.Directory.{makeAbsolute,canonicalizePath} prepend the PWD?
2025-07-31 15:21:28 +0200 <Leary> Reality2point0: If the data constructor `Foo` heralds layout, then `Foo bar baz` is parsed as `Foo (bar baz)`. To get the expected result without line breaks requires `Foo{bar;baz}`.
2025-07-31 15:21:54 +0200 <Reality2point0> Yes, Lisp is very nicely emergent. But humans are not good with repetitivity. So the closing braces piling up is its downfall.
2025-07-31 15:22:17 +0200 <kuribas> You don't even look at braces, you just let the editor handle them.
2025-07-31 15:22:39 +0200 <kuribas> The only thing I don't like is that indentation advances so fast.
2025-07-31 15:23:21 +0200 <Reality2point0> __monty__ "~" as in "a directory with the actual name "~" is a relative path. "~" as in "getting expanded to $HOME" is an absolute path.
2025-07-31 15:24:02 +0200 <__monty__> > System.Directory.makeAbsolute "~/some/path"
2025-07-31 15:24:03 +0200 <lambdabot> error:
2025-07-31 15:24:03 +0200 <lambdabot> Not in scope: ‘System.Directory.makeAbsolute’
2025-07-31 15:24:03 +0200 <lambdabot> No module named ‘System.Directory’ is imported.
2025-07-31 15:24:34 +0200 <__monty__> yahb2: System.Directory.makeAbsolute "~/some/path"
2025-07-31 15:25:17 +0200 <Reality2point0> Leary: Wait, why `Foo (bar baz)`? I thought it was `(((Foo) bar) baz)`.
2025-07-31 15:25:52 +0200 <Leary> That's the result of ordinary function application, yes. Layout heralds are not that.
2025-07-31 15:26:08 +0200 <Leary> The data constructor becomes special syntax.
2025-07-31 15:26:25 +0200 <Leary> Strictly speaking, I should have said `Foo{bar baz}`.
2025-07-31 15:26:38 +0200 <Reality2point0> Leary: “Special synax” is what I have a problem with.
2025-07-31 15:28:45 +0200Reality2point0(~Reality2p@2a02:3035:665:a078:7ac6:f05a:b961:839e) (Gotta go do some actual work. :D)
2025-07-31 15:31:27 +0200 <__monty__> Right, my mistake, I keep wanting to expect shell expansion of ~ where it has no reason to be.
2025-07-31 15:35:39 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 15:35:52 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au)
2025-07-31 15:38:19 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 15:38:50 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 15:39:34 +0200pavonia(~user@user/siracusa) (Ping timeout: 260 seconds)
2025-07-31 15:47:46 +0200jespada(~jespada@2800:a4:23a6:4500:e9b2:a2a:2e38:8f01) jespada
2025-07-31 15:55:52 +0200acidjnk(~acidjnk@p200300d6e7171990ed578ca2f3c5a653.dip0.t-ipconnect.de) acidjnk
2025-07-31 16:00:21 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 276 seconds)
2025-07-31 16:01:18 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-07-31 16:06:14 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-07-31 16:08:26 +0200trickard_trickard
2025-07-31 16:11:29 +0200 <EvanR> syntax is nice when different syntax means different things, and uniform syntax means uniform things
2025-07-31 16:11:59 +0200 <EvanR> no syntax + many different things gets nutty
2025-07-31 16:15:00 +0200 <jreicher> IMO that's Lisp
2025-07-31 16:15:20 +0200 <sshine> I just wish I could ignore the parentheses.
2025-07-31 16:15:51 +0200 <sshine> I'm sold on the concept.
2025-07-31 16:16:47 +0200Digitteknohippie(~user@user/digit) Digit
2025-07-31 16:17:54 +0200Digit(~user@user/digit) (Ping timeout: 276 seconds)
2025-07-31 16:18:18 +0200jespada(~jespada@2800:a4:23a6:4500:e9b2:a2a:2e38:8f01) (Ping timeout: 272 seconds)
2025-07-31 16:20:24 +0200jespada(~jespada@r186-48-25-255.dialup.adsl.anteldata.net.uy) jespada
2025-07-31 16:21:36 +0200 <jreicher> Lists in haskell use brackets as well, so I'm not sure it's possible to do better...?
2025-07-31 16:21:49 +0200DigitteknohippieDigit
2025-07-31 16:23:53 +0200fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 252 seconds)
2025-07-31 16:26:09 +0200 <jreicher> But from a functional point of view, I still hesitate with Lisp. It's kind of nice that the homoiconicity brought first-class functions (accidentally?) to programmers, but by the same token it also brought unlimited mutability.
2025-07-31 16:29:26 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2025-07-31 16:31:48 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 16:36:18 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-07-31 16:36:33 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-07-31 16:37:46 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-07-31 16:41:33 +0200DigitDigitteknohippie
2025-07-31 16:43:16 +0200Digit(~user@user/digit) Digit
2025-07-31 16:44:59 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a)
2025-07-31 16:46:25 +0200caubert(~caubert@user/caubert) (Ping timeout: 276 seconds)
2025-07-31 16:46:43 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-07-31 16:49:22 +0200jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-07-31 16:49:41 +0200tabaqui1(~tabaqui@167.71.80.236) (Quit: WeeChat 4.5.1)
2025-07-31 16:56:30 +0200d34db33f(~d34db33f@user/d34db33f) d34db33f
2025-07-31 16:57:51 +0200jespada(~jespada@r186-48-25-255.dialup.adsl.anteldata.net.uy) (Read error: Connection reset by peer)
2025-07-31 16:58:53 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 17:01:44 +0200puke(~puke@user/puke) (Quit: puke)
2025-07-31 17:03:49 +0200caubert(~caubert@user/caubert) (Ping timeout: 248 seconds)
2025-07-31 17:09:14 +0200 <haskellbridge> <eldritchcookie> if i have {-#LANGUAGE Trustyworthy#-} and i call ghc with -xSafe can i import unsafe modules?
2025-07-31 17:09:14 +0200 <haskellbridge> <Bowuigi> sshine There's a ton of proposals on indentation-sensitive syntax, see: https://github.com/jumper149/haskeme or https://srfi.schemers.org/srfi-119/srfi-119.html (https://readable.sourceforge.io/) or https://srfi.schemers.org/srfi-110/srfi-110.html or https://srfi.schemers.org/srfi-49/srfi-49.html
2025-07-31 17:10:44 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 17:14:01 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-07-31 17:14:43 +0200 <sshine> Bowuigi: cool, thanks :)
2025-07-31 17:16:20 +0200ubert(~Thunderbi@178.165.167.35.wireless.dyn.drei.com) ubert
2025-07-31 17:16:44 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 17:19:38 +0200 <__monty__> eldritchcookie: Not an answer but I think SafeHaskell is being deprecated?
2025-07-31 17:23:39 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-07-31 17:24:10 +0200 <int-e> eldritchcookie: Yes, I believe this is being deprecated, because it has like 1 user. But no, the module is still unsafe. However, if a Trustworthy module exported by a package that is *trusted* then that module can be imported into a Safe module.
2025-07-31 17:24:24 +0200 <int-e> @bot
2025-07-31 17:24:24 +0200 <lambdabot> :)
2025-07-31 17:24:27 +0200 <int-e> (the user)
2025-07-31 17:26:16 +0200 <int-e> (that trust is managed through ghc's -trust flag (and a few others) and also the `ghc-pkg trust` command)
2025-07-31 17:26:45 +0200d34db33f(~d34db33f@user/d34db33f) (Ping timeout: 248 seconds)
2025-07-31 17:26:59 +0200d34db33f(~d34db33f@user/d34db33f) d34db33f
2025-07-31 17:29:37 +0200 <int-e> The main issue with SafeHaskell is that it captures a binary distinction, where safety is not breaking the type system (no unsafeCoerce or unsafePerformIO), so it's useless if you want other guarantees even if the inference mechanism would be the same (only controlling imports and exports); you'd have to redo the entire libary ecosystem to use that new safety notion.
2025-07-31 17:29:42 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-07-31 17:29:42 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-07-31 17:29:42 +0200haritz(~hrtz@user/haritz) haritz
2025-07-31 17:33:52 +0200amadaluzia_(~amadaluzi@user/amadaluzia) amadaluzia
2025-07-31 17:34:29 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Ping timeout: 240 seconds)
2025-07-31 17:35:12 +0200ttybitnik(~ttybitnik@user/wolper) (Remote host closed the connection)
2025-07-31 17:41:57 +0200chele(~chele@user/chele) (Remote host closed the connection)
2025-07-31 17:42:36 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-07-31 17:43:18 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 17:44:07 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 17:47:56 +0200poscat(~poscat@user/poscat) poscat
2025-07-31 17:48:00 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a)
2025-07-31 17:49:39 +0200poscat0x04(~poscat@user/poscat) (Ping timeout: 260 seconds)
2025-07-31 18:03:33 +0200jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 248 seconds)
2025-07-31 18:11:13 +0200trickard(~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 18:11:26 +0200trickard(~trickard@cpe-49-98-47-163.wireline.com.au)
2025-07-31 18:17:47 +0200 <asivitz> How are C/C++ sources supposed to work in a cabal build? From looking at logs it seems like they get built after the haskell files. Wouldn't that be a problem in the case where TH wants to call code from the C sources? Or maybe I don't understand how TH works
2025-07-31 18:21:16 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-07-31 18:22:11 +0200d34db33f(~d34db33f@user/d34db33f) (Ping timeout: 265 seconds)
2025-07-31 18:22:35 +0200d34db33f(~d34db33f@user/d34db33f) d34db33f
2025-07-31 18:23:29 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-07-31 18:32:48 +0200ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-07-31 18:34:18 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 18:34:46 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 18:37:31 +0200ttybitnik(~ttybitnik@user/wolper) (Read error: Connection reset by peer)
2025-07-31 18:38:52 +0200ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-07-31 18:39:38 +0200vpan(~vpan@212.117.1.172)
2025-07-31 18:39:44 +0200Guest2(~Guest2@182.8.183.199)
2025-07-31 18:40:03 +0200vpanGuest8324
2025-07-31 18:40:13 +0200Guest2(~Guest2@182.8.183.199) (Client Quit)
2025-07-31 18:40:25 +0200Guest8324vpan
2025-07-31 18:44:48 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 18:44:58 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 240 seconds)
2025-07-31 18:45:45 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 18:46:57 +0200vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2025-07-31 18:47:45 +0200d34db33f(~d34db33f@user/d34db33f) (Read error: Connection reset by peer)
2025-07-31 18:48:05 +0200d34db33f(~d34db33f@user/d34db33f) d34db33f
2025-07-31 18:49:46 +0200connrs(~connrs@user/connrs) (Read error: Connection reset by peer)
2025-07-31 18:50:43 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-07-31 18:59:11 +0200puke(~puke@user/puke) puke
2025-07-31 18:59:34 +0200connrs(~connrs@user/connrs) connrs
2025-07-31 18:59:40 +0200DragonMaus(~dragonmau@user/dragonmaus) (Ping timeout: 276 seconds)
2025-07-31 19:00:48 +0200puke(~puke@user/puke) (Client Quit)
2025-07-31 19:02:25 +0200DragonMaus(~dragonmau@user/dragonmaus) DragonMaus
2025-07-31 19:25:06 +0200caubert(~caubert@user/caubert) (Ping timeout: 248 seconds)
2025-07-31 19:28:10 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-07-31 19:29:00 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-07-31 19:31:29 +0200dolio(~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
2025-07-31 19:32:48 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 19:34:00 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-07-31 19:36:32 +0200dolio(~dolio@130.44.140.168) dolio
2025-07-31 19:37:45 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 19:39:11 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 19:43:43 +0200caubert(~caubert@user/caubert) (Ping timeout: 252 seconds)
2025-07-31 19:44:09 +0200hsw(~hsw@112-104-9-97.adsl.dynamic.seed.net.tw) hsw
2025-07-31 19:48:18 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 19:51:41 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-07-31 19:51:51 +0200ttybitnik(~ttybitnik@user/wolper) (Remote host closed the connection)
2025-07-31 19:53:32 +0200tromp(~textual@2001:1c00:3487:1b00:b928:de3f:1dfd:983a)
2025-07-31 19:53:44 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 19:55:56 +0200caubert(~caubert@user/caubert) caubert
2025-07-31 20:08:17 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Quit: Frostillicus)
2025-07-31 20:08:50 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds)
2025-07-31 20:16:18 +0200ft(~ft@p3e9bcd7f.dip0.t-ipconnect.de) ft
2025-07-31 20:17:39 +0200sprotte24(~sprotte24@p200300d16f0ea900695e5c34e214ebde.dip0.t-ipconnect.de)
2025-07-31 20:18:26 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 20:24:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-07-31 20:26:37 +0200machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-07-31 20:28:22 +0200ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-07-31 20:34:55 +0200puke(~puke@user/puke) puke
2025-07-31 20:35:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 20:37:04 +0200jespada(~jespada@2800:a4:23a6:4500:69f9:9eb4:e901:4312) jespada
2025-07-31 20:37:53 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-07-31 20:39:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 20:44:37 +0200jespada_(~jespada@2800:a4:23a6:4500:35b6:5289:35c0:44d7) jespada
2025-07-31 20:47:14 +0200jespada(~jespada@2800:a4:23a6:4500:69f9:9eb4:e901:4312) (Ping timeout: 248 seconds)
2025-07-31 20:50:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 20:54:27 +0200jespada(~jespada@2800:a4:23a6:4500:cf2:f7f6:710c:55e9) jespada
2025-07-31 20:55:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-07-31 20:57:03 +0200jespada_(~jespada@2800:a4:23a6:4500:35b6:5289:35c0:44d7) (Ping timeout: 252 seconds)
2025-07-31 21:00:02 +0200caconym747(~caconym@user/caconym) (Quit: bye)
2025-07-31 21:00:41 +0200caconym747(~caconym@user/caconym) caconym
2025-07-31 21:02:52 +0200target_i(~target_i@user/target-i/x-6023099) target_i
2025-07-31 21:04:33 +0200hseg(~gesh@46.120.20.122) (Ping timeout: 245 seconds)
2025-07-31 21:06:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 21:08:41 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-07-31 21:10:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-07-31 21:11:00 +0200amadaluzia_(~amadaluzi@user/amadaluzia) (Ping timeout: 252 seconds)
2025-07-31 21:21:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 21:24:28 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2025-07-31 21:26:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-07-31 21:28:18 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds)
2025-07-31 21:31:01 +0200trickard(~trickard@cpe-49-98-47-163.wireline.com.au) (Ping timeout: 248 seconds)
2025-07-31 21:31:06 +0200trickard__(~trickard@cpe-48-98-47-163.wireline.com.au)
2025-07-31 21:34:38 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-07-31 21:35:29 +0200trickard__(~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 21:36:06 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-07-31 21:36:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-07-31 21:38:28 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-07-31 21:38:39 +0200d34db33f(~d34db33f@user/d34db33f) (Remote host closed the connection)
2025-07-31 21:40:26 +0200Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-07-31 21:41:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-07-31 21:41:26 +0200trickard_(~trickard@cpe-48-98-47-163.wireline.com.au)