Home liberachat/#haskell: Logs Calendar

Logs on 2026-01-12 (liberachat/#haskell)

00:03:12 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
00:05:22 trickard_ is now known as trickard
00:06:42 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:11:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
00:18:07 werneta joins (~werneta@71.83.160.242)
00:21:04 peterbecich joins (~Thunderbi@71.84.33.135)
00:22:29 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:27:37 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
00:30:09 jmcantrell_ joins (~weechat@user/jmcantrell)
00:36:49 jmcantrell_ is now known as jmcantrell
00:38:16 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:43:21 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
00:43:21 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
00:46:12 × Tuplanolla quits (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.)
00:53:25 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
00:54:00 × cptaffe quits (~cptaffe@user/cptaffe) (Ping timeout: 252 seconds)
00:54:04 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:58:25 cptaffe joins (~cptaffe@user/cptaffe)
00:59:25 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
01:04:36 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:09:50 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:14:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
01:24:42 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
01:25:00 divlamir joins (~divlamir@user/divlamir)
01:25:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:28:23 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 265 seconds)
01:29:13 × attlin quits (~user@user/attlin) (Read error: Connection reset by peer)
01:29:52 attlin joins (~user@user/attlin)
01:29:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
01:36:09 DetourNe- joins (DetourNetw@user/DetourNetworkUK)
01:36:36 × DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer)
01:38:10 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:38:23 DetourNe- is now known as DetourNetworkUK
01:39:11 califax joins (~califax@user/califx)
01:41:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:43:11 × trickard quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
01:43:37 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
01:44:39 × attlin quits (~user@user/attlin) (Quit: Leaving)
01:45:47 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
01:47:05 attlin joins (~user@user/attlin)
01:47:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
01:49:11 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
01:49:33 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
01:50:05 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
01:50:28 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
01:52:52 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
01:53:16 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
01:54:14 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
01:55:08 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
01:56:40 omidmash3 joins (~omidmash@user/omidmash)
01:58:10 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds)
01:58:10 omidmash3 is now known as omidmash
01:59:04 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:01:15 weary-traveler joins (~user@user/user363627)
02:03:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:04:21 × weary-traveler quits (~user@user/user363627) (Client Quit)
02:04:24 × acidjnk quits (~acidjnk@p200300d6e7171930d5713a59355b93ee.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
02:04:39 weary-traveler joins (~user@user/user363627)
02:10:36 annamalai joins (~annamalai@157.33.236.194)
02:10:53 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Ping timeout: 272 seconds)
02:14:51 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:15:23 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
02:18:35 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
02:18:53 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
02:20:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
02:20:09 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
02:20:12 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
02:20:32 Guest87 joins (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01)
02:20:54 × Guest87 quits (~Guest87@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
02:24:41 NotsoRoyal joins (~NotsoRoya@2600:1006:b100:85b5:0:48:60fc:9f01)
02:26:02 × NotsoRoyal quits (~NotsoRoya@2600:1006:b100:85b5:0:48:60fc:9f01) (Client Quit)
02:27:15 NotsoRoyal joins (~NotsoRoya@user/notsoroyal)
02:30:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:34:06 × NotsoRoyal quits (~NotsoRoya@user/notsoroyal) (Quit: Client closed)
02:35:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:45:59 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
02:46:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:49:14 omidmash joins (~omidmash@user/omidmash)
02:51:47 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
03:02:04 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:02:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:02:17 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
03:07:06 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:17:59 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:23:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
03:26:39 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
03:26:55 weary-traveler joins (~user@user/user363627)
03:33:47 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:34:08 werneta_ joins (~werneta@71.83.160.242)
03:36:28 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:39:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
03:40:20 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:40:34 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
03:43:42 × werneta quits (~werneta@71.83.160.242) (Quit: Lost terminal)
03:45:45 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
03:46:16 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:50:27 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:50:37 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
03:52:30 karenw joins (~karenw@user/karenw)
03:54:46 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
04:05:49 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:10:45 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
04:13:13 × itaipu quits (~itaipu@168.121.99.54) (Ping timeout: 264 seconds)
04:21:25 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
04:21:35 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:21:38 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
04:25:03 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
04:28:05 itaipu joins (~itaipu@168.121.99.54)
04:28:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:31:08 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
04:32:10 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
04:32:46 × bggd quits (~bgg@user/bggd) (Remote host closed the connection)
04:36:48 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
04:39:38 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:42:25 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
04:44:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
04:53:13 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
04:55:22 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:00:16 trickard_ is now known as trickard
05:00:37 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
05:04:40 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
05:05:43 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
05:07:19 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
05:07:23 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
05:10:59 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:15:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:17:53 × trickard quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
05:18:07 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
05:26:46 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:27:43 wickedjargon joins (~user@2605:8d80:5431:4382:688d:97ac:bae8:f52)
05:30:27 trickard_ is now known as trickard
05:31:45 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:35:42 vanishingideal joins (~vanishing@user/vanishingideal)
05:40:28 × trickard quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Ping timeout: 246 seconds)
05:40:43 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
05:41:19 × mange quits (~mange@user/mange) (Remote host closed the connection)
05:42:33 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:46:45 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
05:47:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
05:49:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:50:32 michalz joins (~michalz@185.246.207.201)
05:50:55 Square2 joins (~Square4@user/square)
05:53:19 trickard___ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
05:54:01 × Square quits (~Square@user/square) (Ping timeout: 264 seconds)
05:54:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:54:44 trickard___ is now known as trickard
05:55:13 × trickard_ quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Ping timeout: 264 seconds)
05:57:18 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
06:05:42 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:07:21 × jreicher quits (~joelr@user/jreicher) (Quit: In transit)
06:09:47 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
06:11:39 Brumaire joins (~no@94.140.114.73)
06:12:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:17:32 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
06:17:56 × Pozyomka quits (~pyon@user/pyon) (Quit: brb)
06:20:04 × Brumaire quits (~no@94.140.114.73) (Remote host closed the connection)
06:23:30 acidjnk joins (~acidjnk@p200300d6e717193058c1de10ab6941e8.dip0.t-ipconnect.de)
06:23:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:23:54 Pozyomka joins (~pyon@user/pyon)
06:28:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:36:54 × attlin quits (~user@user/attlin) (Quit: Leaving)
06:39:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:41:04 attlin joins (~user@user/attlin)
06:44:21 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:48:59 akegalj joins (~akegalj@78-1-99-9.adsl.net.t-com.hr)
06:53:58 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
06:55:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:58:03 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:59:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
07:02:04 Lycurgus joins (~juan@user/Lycurgus)
07:11:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:13:29 × xff0x quits (~xff0x@2405:6580:b080:900:bec2:3356:308f:6c3f) (Ping timeout: 265 seconds)
07:15:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
07:16:19 xff0x joins (~xff0x@ai083101.d.east.v6connect.net)
07:23:44 jreicher joins (~joelr@user/jreicher)
07:26:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:31:46 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
07:34:29 × trickard quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
07:34:43 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
07:37:27 peterbecich joins (~Thunderbi@71.84.33.135)
07:42:42 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:43:18 chele joins (~chele@user/chele)
07:49:18 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
07:49:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:50:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:51:47 wickedja` joins (~user@64.114.24.74)
07:53:44 × wickedjargon quits (~user@2605:8d80:5431:4382:688d:97ac:bae8:f52) (Ping timeout: 260 seconds)
07:55:48 × trickard_ quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
07:55:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:56:02 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
07:58:53 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:02:49 tromp joins (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4)
08:05:33 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
08:08:29 × werneta_ quits (~werneta@71.83.160.242) (Quit: Lost terminal)
08:13:46 × karenw quits (~karenw@user/karenw) (Ping timeout: 246 seconds)
08:16:51 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
08:17:07 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
08:25:30 × akegalj quits (~akegalj@78-1-99-9.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
08:41:24 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
08:42:28 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds)
08:42:47 danza joins (~danza@user/danza)
08:51:39 × newmind quits (~newmind@91-133-90-252.dyn.cablelink.at) (Quit: Client closed)
08:52:58 merijn joins (~merijn@77.242.116.146)
09:02:07 DetourNe- joins (~DetourNet@user/DetourNetworkUK)
09:03:31 × DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer)
09:04:20 DetourNe- is now known as DetourNetworkUK
09:14:16 × danza quits (~danza@user/danza) (Remote host closed the connection)
09:14:22 akegalj joins (~akegalj@78-1-51-122.adsl.net.t-com.hr)
09:28:13 × simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 264 seconds)
09:28:37 simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
09:28:49 danza joins (~danza@user/danza)
09:36:37 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
09:48:52 merijn joins (~merijn@77.242.116.146)
09:51:46 × olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 246 seconds)
10:02:27 olivial joins (~benjaminl@user/benjaminl)
10:07:00 vanishingideal joins (~vanishing@user/vanishingideal)
10:24:22 × tromp quits (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:26:04 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
10:29:40 tromp joins (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4)
10:30:32 Googulator8 joins (~Googulato@2a01-036d-0106-4994-d043-6d2a-58f7-29ea.pool6.digikabel.hu)
10:32:08 fp joins (~Thunderbi@2001:708:20:1406::10c5)
10:34:23 × Googulator quits (~Googulato@178-164-235-64.pool.digikabel.hu) (Ping timeout: 272 seconds)
10:36:11 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 250 seconds)
10:38:09 × foul_owl quits (~kerry@94.156.149.97) (Ping timeout: 256 seconds)
10:39:21 × libertyprime quits (~libertypr@121.74.62.77) (Quit: leaving)
10:43:09 merijn joins (~merijn@77.242.116.146)
10:51:06 __monty__ joins (~toonn@user/toonn)
10:52:41 foul_owl joins (~kerry@94.156.149.96)
10:55:43 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
11:05:46 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
11:08:16 merijn joins (~merijn@77.242.116.146)
11:08:35 poscat joins (~poscat@user/poscat)
11:15:19 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
11:26:14 merijn joins (~merijn@77.242.116.146)
11:30:54 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
11:31:29 danz61599 joins (~danza@user/danza)
11:33:39 × danza quits (~danza@user/danza) (Ping timeout: 260 seconds)
11:35:15 merijn joins (~merijn@77.242.116.146)
11:39:31 trickard_ is now known as trickard
11:46:34 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 265 seconds)
11:51:19 × zlqrvx quits (~zlqrvx@user/zlqrvx) (Ping timeout: 264 seconds)
11:59:25 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
12:02:15 srazkvt joins (~sarah@user/srazkvt)
12:04:27 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
12:04:37 newmind joins (~newmind@91-133-90-252.dyn.cablelink.at)
12:05:32 merijn joins (~merijn@77.242.116.146)
12:08:38 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
12:19:35 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds)
12:26:36 merijn joins (~merijn@77.242.116.146)
12:36:13 × tromp quits (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:57:30 × AlexZenon quits (~alzenon@178.34.150.203) (Quit: ;-)
12:58:12 × AlexNoo quits (~AlexNoo@178.34.150.203) (Quit: Leaving)
13:00:02 comerijn joins (~merijn@77.242.116.146)
13:02:52 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
13:12:45 Googulator8 is now known as Googulator
13:20:10 tromp joins (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4)
13:20:19 AlexNoo joins (~AlexNoo@178.34.150.203)
13:23:49 AlexZenon joins (~alzenon@178.34.150.203)
13:28:07 × AlexZenon quits (~alzenon@178.34.150.203) (Ping timeout: 240 seconds)
13:32:59 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 252 seconds)
13:33:25 AlexZenon joins (~alzenon@178.34.150.203)
13:34:43 Alex_test_ joins (~al_test@178.34.150.203)
13:38:55 × Alex_test_ quits (~al_test@178.34.150.203) (Ping timeout: 240 seconds)
13:45:12 Alex_test_ joins (~al_test@178.34.150.203)
13:46:13 × Square2 quits (~Square4@user/square) (Ping timeout: 264 seconds)
13:46:19 Alex_test_ is now known as Alex_test
13:47:12 vanishingideal joins (~vanishing@user/vanishingideal)
13:51:14 gmg joins (~user@user/gehmehgeh)
13:51:39 chexum_ joins (~quassel@gateway/tor-sasl/chexum)
13:52:03 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 252 seconds)
13:54:04 Miroboru joins (~myrvoll@188.113.115.67)
13:54:51 × chexum_ quits (~quassel@gateway/tor-sasl/chexum) (Client Quit)
13:56:49 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
14:04:11 chexum joins (~quassel@gateway/tor-sasl/chexum)
14:05:37 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 252 seconds)
14:05:46 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
14:05:56 chexum joins (~quassel@gateway/tor-sasl/chexum)
14:07:26 gmg joins (~user@user/gehmehgeh)
14:08:32 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
14:08:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
14:13:24 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:16:35 rekahsoft joins (~rekahsoft@70.51.99.245)
14:16:43 × cstml3 quits (~cstml@user/cstml) (Quit: ZNC 1.10.1 - https://znc.in)
14:16:59 cstml joins (~cstml@user/cstml)
14:22:53 × trickard quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
14:23:06 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
14:23:46 Inline joins (~User@cgn-195-14-218-118.nc.de)
14:31:19 Lycurgus joins (~juan@user/Lycurgus)
14:33:27 rainbyte joins (~rainbyte@186.22.19.214)
14:49:49 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
14:50:25 merijn joins (~merijn@77.242.116.146)
15:01:22 qqq joins (~qqq@185.54.21.105)
15:07:49 × wickedja` quits (~user@64.114.24.74) (Ping timeout: 264 seconds)
15:20:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
15:22:17 trickard_ is now known as trickard
15:31:09 danza joins (~danza@user/danza)
15:31:48 × fp quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 265 seconds)
15:32:17 phoeniciavore joins (~phoenicia@85.195.216.252)
15:32:21 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
15:32:55 × danz61599 quits (~danza@user/danza) (Ping timeout: 240 seconds)
15:33:29 <phoeniciavore> Hello! Does anyone have stack working successfully in a nix shell on macOS? No matter what I configure, I always get `<<loop>>` when I try to run something.
15:35:44 merijn joins (~merijn@77.242.116.146)
15:35:54 <danza> phoeniciavore: seems a bit specific, there is #nixos
15:35:56 <haskellbridge> <Morj> It's a recent bug in stack in nixos
15:36:16 <haskellbridge> <Morj> In nixpkgs rather
15:36:25 phoeniciavore48 joins (~phoenicia@185.159.157.200)
15:36:30 <haskellbridge> <Morj> phoeniciavore https://github.com/commercialhaskell/stack/issues/6824
15:36:47 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds)
15:37:18 <haskellbridge> <Morj> For now I'm just using an older version of stack before this got introduced
15:37:45 <phoeniciavore48> oh wow holy crap, I've wasted a day on this. I don't know how I didn't manage to find that page, thanks so much
15:38:21 <haskellbridge> <Morj> Are you on latest nixpkgs unstable? I hoped it would be fixed by now
15:38:55 <haskellbridge> <Morj> I mean the fix got merged, but I don't know if it's hit unstable yet
15:39:01 × phoeniciavore quits (~phoenicia@85.195.216.252) (Ping timeout: 272 seconds)
15:39:20 <phoeniciavore48> I'm still kind of a noob at nix, but I have a mostly-fresh installation, I don't think I've added unstable packages
15:40:33 × danza quits (~danza@user/danza) (Remote host closed the connection)
15:45:05 × tromp quits (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:46:10 danza joins (~danza@user/danza)
15:49:59 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
16:01:35 × phoeniciavore48 quits (~phoenicia@185.159.157.200) (Quit: Client closed)
16:10:20 tromp joins (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4)
16:12:35 × akegalj quits (~akegalj@78-1-51-122.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
16:25:13 karenw joins (~karenw@user/karenw)
16:40:09 jmcantrell_ joins (~weechat@user/jmcantrell)
16:42:28 Enrico63 joins (~Enrico63@host-87-7-181-238.retail.telecomitalia.it)
16:47:33 st_aldini joins (~Thunderbi@2605:a601:a07c:7426:52e7:74e7:d63d:c18b)
16:48:11 spew joins (~spew@user/spew)
16:56:03 × danza quits (~danza@user/danza) (Remote host closed the connection)
16:59:58 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
17:05:43 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
17:07:16 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:11:19 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
17:11:37 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:11:45 merijn joins (~merijn@77.242.116.146)
17:12:27 peterbecich joins (~Thunderbi@71.84.33.135)
17:15:01 × Enrico63 quits (~Enrico63@host-87-7-181-238.retail.telecomitalia.it) (Quit: Client closed)
17:16:39 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
17:19:49 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
17:24:12 aliston joins (~Thunderbi@2409:40d2:3055:3e4b:5b0f:9800:efe1:c98)
17:32:05 × aliston quits (~Thunderbi@2409:40d2:3055:3e4b:5b0f:9800:efe1:c98) (Quit: aliston)
17:32:24 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds)
17:33:49 × trickard quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
17:34:03 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
17:34:37 aliston joins (~Thunderbi@2409:40d2:3055:3e4b:5b0f:9800:efe1:c98)
17:46:01 × aliston quits (~Thunderbi@2409:40d2:3055:3e4b:5b0f:9800:efe1:c98) (Remote host closed the connection)
17:52:03 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
17:52:15 Tuplanolla joins (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi)
17:56:46 × synchromesh quits (~john@2406:5a00:2412:2c00:6135:a28e:b853:ee07) (Read error: Connection reset by peer)
17:57:43 synchromesh joins (~john@2406:5a00:2412:2c00:6135:a28e:b853:ee07)
18:04:52 vanishingideal joins (~vanishing@user/vanishingideal)
18:20:11 trickard_ is now known as trickard
18:20:24 × qqq quits (~qqq@185.54.21.105) (Remote host closed the connection)
18:29:40 ljdarj joins (~Thunderbi@user/ljdarj)
18:33:37 × karenw quits (~karenw@user/karenw) (Ping timeout: 246 seconds)
18:40:24 hakutaku joins (~textual@chen.yukari.eu.org)
18:48:49 × tromp quits (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:52:22 Guest27 joins (~Guest27@84.88.223.225)
18:52:57 × hakutaku quits (~textual@chen.yukari.eu.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:53:21 × Guest27 quits (~Guest27@84.88.223.225) (Client Quit)
19:00:51 tromp joins (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4)
19:11:05 Enrico63 joins (~Enrico63@host-87-7-181-238.retail.telecomitalia.it)
19:15:39 × rekahsoft quits (~rekahsoft@70.51.99.245) (Ping timeout: 260 seconds)
19:22:30 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
19:23:29 <Enrico63> Hello. I've just read this 2020 post by Alexis King (https://lexi-lambda.github.io/blog/2020/01/19/no-dynamic-type-systems-are-not-inherently-more-open/), and I'd like some help to interpret the part I've highlighted in bold in the paragraph below (I'm including the first half of the paragraph for context).
19:23:30 <Enrico63> > That said, while you can emulate the dynamic typing of pickle.load() if you really want to by deferring the type check until the last possible moment, the reality is that doing so is almost never actually useful. At some point, you have to make assumptions about the structure of the value in order to use it, and you know what those assumptions
19:23:30 <Enrico63> are because you wrote the code. **While there are extremely rare exceptions to this that require true dynamic code loading (such as, say, implementing a REPL for your programming language), they do not occur in day-to-day programming, and programmers in statically-typed languages are perfectly happy to supply their assumptions up front.**
19:23:31 <Enrico63> This paragraph is not representative of the whole post, which is about the idea that _static type systems are not fundamentally worse than dynamic type systems at processing data with an open or partially-known structure_; however, the highlighted portion of the paragraph I quoted just piques my curiosity about a different topic, which is "when is
19:23:31 <lambdabot> <hint>:1:10: error: parse error on input `,'
19:23:31 <Enrico63> a dynamic language (or a feature) really necessary?", and I'm curious as to why "implementing a REPL for your programming language" is such a case.
19:23:50 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
19:23:59 <Enrico63> Oh, forgot that the leading > has a meaning, sorry
19:24:33 <Enrico63> I known the question is not about Haskell, but I assume many people in here can help me understand :/
19:28:17 <dolio> Implementing a REPL basically by-definition requires that.
19:28:29 <tomsmeding> Enrico63: if you implement a REPL, you genuinely have no assumptions about the values that the user might produce inside that REPL. So assuming that you represent those values somehow in the implementation of your REPL, you will be able to do no better than "it's a value"
19:28:38 <dolio> Because you type code into a REPL and it gets dynamically loaded.
19:29:11 <tomsmeding> I think this is what Alexis is getting at, in any case
19:30:00 <tomsmeding> more concretely, if you implement an interpreter for a language, then how do you represent the values computed in the language you're interpreting?
19:30:15 <tomsmeding> (I say "more concretely" because a REPL may well be compiled and not interpreted, like GHCi is)
19:30:39 <tomsmeding> (though the boundary between "compiled" and "interpreted" is a bit fuzzy here)
19:33:39 <Enrico63> Mmmmmmm. Say I have a language XYZ. And I tell that in XYZ you can write something like `eval("this is XYZ code")`. If this is possible, do you deduce that XYZ is necessarily a dynamically typed langauge?
19:33:59 <EvanR> if you're implementing a REPL for a language with a static type system, it just means you need to be dynamically adding to the static type definitions, so future inputs can be parsed and checked
19:34:17 <EvanR> the repl input is basically that eval (in some context)
19:34:37 <EvanR> doesn't require dynamic typing at all
19:34:42 <EvanR> see haskell
19:35:29 <EvanR> ghci
19:35:50 <tomsmeding> Enrico63: you can have a type with dynamic structure in a statically typed language: see aeson's Value
19:36:09 <EvanR> also that though it didn't seem to be the subject of the post
19:36:21 <tomsmeding> the "interpreter" example is an argument why you may not know what structure a particular type has, not that a statically-typed language is fundamentally unsuitable
19:37:09 <tomsmeding> in this case, note that aeson's Value is an explicit data type in Haskell that forces you to announce that an object comes now (Object), or a string comes now (String), etc.
19:37:32 <tomsmeding> whereas in a dynamically typed language, what was represented by that Value could simply be a nesting of objects and strings without intervening data constructors
19:37:36 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:37:37 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
19:37:52 <EvanR> interpreter for a language always has to parse its input before doing anything. If it's statically typed it means you have more checks after the parsing, this isn't that much of a fundamental difference between languages
19:37:54 <tomsmeding> so for this very dynamic use case, we have to do a bit more work in a statically-typed language than we do in a dynamically-typed language
19:38:11 × trickard quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
19:38:24 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
19:38:25 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
19:38:55 Lord_of_Life_ is now known as Lord_of_Life
19:39:05 <tomsmeding> (notable side track: if the language you're interpreting is itself typed and the AST you're interpreting is type-indexed in haskell too, you can write a strongly-typed interpreter that doesn't need such "tags" (data constructors))
19:39:16 <Enrico63> "if you implement an interpreter for a language, then how do you represent the values computed in the language you're interpreting?" Can you explain? It isn't obvious to me
19:40:42 <EvanR> can I get a reaction to your eval question.
19:40:46 <EvanR> > ord 'a'
19:40:47 <lambdabot> 97
19:40:55 <EvanR> > chr 'a'
19:40:56 <lambdabot> Couldn't match expected type ‘Int’ with actual type ‘Char’
19:40:56 <lambdabot> In the first argument of ‘chr’, namely ‘'a'’
19:40:56 <lambdabot> In the expression: chr 'a'
19:41:08 <EvanR> it's evalling the 'string' but it's not a dynamically typed language
19:41:56 <EvanR> the string ord 'a'
19:42:09 <Enrico63> What is the language under > ?
19:42:29 × trickard_ quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
19:42:31 <Enrico63> Haskell?
19:42:37 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
19:42:48 <tomsmeding> Enrico63: https://play.haskell.org/saved/nOqh7N84 this is a little interpreter for a stupid little language that only has integers and pairs
19:42:53 <Enrico63> Oh, ord is not in prelude, that's why I don't see it in ghci :D
19:42:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
19:43:05 <EvanR> import Data.Char
19:43:45 <tomsmeding> Enrico63: note Value in my snippet: to represent the value morally written "(2, 3)", I have to write "VPair (VI 2) (VI 3)"
19:43:59 <Enrico63> Yeah, EvanR, yeah. Given what it is I thought it was in Prelude, but when I tried in ghci I got the error, and questioned myself why I was giving for granted it was Haskell.
19:44:05 <tomsmeding> the VPair takes the place of the (,), but the VI are strictly extra compared to the "typed" representation "(2, 3)"
19:44:58 <tomsmeding> this Value is quite dynamic: given a Value, we only know what grammar values follow, but inside that there may be anything
19:45:16 <tomsmeding> it's not very "typed"
19:46:11 <tomsmeding> in a dynamically typed language, there'd be no need for the VI as you'd just stuff integers in pairs and call it a day
19:47:18 <EvanR> .oO( there could plausibly be a language where you don't need the VI but it's not dynamically typed )
19:48:06 <tomsmeding> this dynamic/static typing is very much "I know it when I see it" terminology; it's hard to impossible (and probably unproductive) to give a strict definition, but particular languages are generally agreed to be either the one or the other
19:48:33 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
19:49:02 <tomsmeding> bonus treat: by making the embedded language strongly typed, we can remove some of the dynamism https://play.haskell.org/saved/a3yS25TF
19:49:03 <EvanR> for a long time I felt the distinction comes down to not really the language itself but the workflow, your shit is checked immediately or at the last possible minute
19:49:32 <tomsmeding> (note that the error cases in 'interpret' are gone!)
19:50:10 <EvanR> for instance, elixir is very dynamic, but is currently being heavily checked in the IDE using what they're calling "a type system"
19:50:21 <EvanR> so it's getting pretty similar in some way to a static language
19:50:37 <EvanR> but it's the same language as before
19:51:47 <tomsmeding> Enrico63: remember that Alexis' point was that you can simulate dynamic typing in a statically-typed language by deferring checks until the last possible moment (see my first 'interpret' function that errors at the last possible moment), and that you generally do _not_ want to do this except for the specific case of writing an interpreter
19:51:56 euphores joins (~SASL_euph@user/euphores)
19:52:07 <tomsmeding> her point was not that you must use a dynamically-typed language here
19:53:24 <tomsmeding> that is: if you're parsing JSON with aeson, you generally *don't* want to parse to a Value ( https://hackage.haskell.org/package/aeson-2.2.3.0/docs/Data-Aeson.html#t:Value ) and deal with wrong keys/types later
19:53:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:53:40 <tomsmeding> but exceptions to that "generally" exist, and an interpreter is one of them
19:55:00 <tomsmeding> (is there a Rice's theorem for rules? Every rule that says something nontrivial has exceptions)
19:55:43 <EvanR> someone's law: all rules have exceptions, including someone's law
19:56:11 <tomsmeding> indeed, the trivial rules
19:56:41 <tomsmeding> thus we conclude that all rules with no exceptions are trivial
19:57:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
19:57:57 <Enrico63> I'm re-reading from the beginning :|
20:00:37 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
20:00:57 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:03:35 × sp1ff quits (~user@2601:1c2:4701:900::327f) (Read error: Connection reset by peer)
20:07:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
20:11:40 × Jackneill quits (~Jackneill@94-21-195-8.pool.digikabel.hu) (Read error: Connection reset by peer)
20:11:42 Jackneill_ joins (~Jackneill@94-21-195-8.pool.digikabel.hu)
20:13:25 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:17:11 <Enrico63> tomsmeding, I see that in the two code snippets you have an interpreter for a weakly vs strongly typed language. If nothing else, I can `interpret $ Plus (Pair (I 2) (I 3)) (I 4)`, which errors at runtime vs fails to compile. Understood. But when you write "this Value is quite dynamic: given a Value, we only know what grammar values follow, but
20:17:11 <Enrico63> inside that there may be anything", what does that exactly mean? Is it that given a Value (in the first snippet) I have to match on constructors (something that happens at runtime), whereas Value (in the second snippet), being parametric carries information in its type?
20:17:44 × spew quits (~spew@user/spew) (Quit: nyaa~)
20:18:16 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
20:18:56 jmcantrell_ joins (~weechat@user/jmcantrell)
20:19:38 × Googulator quits (~Googulato@2a01-036d-0106-4994-d043-6d2a-58f7-29ea.pool6.digikabel.hu) (Quit: Client closed)
20:19:39 jzargo joins (~jzargo@user/jzargo)
20:19:54 Googulator joins (~Googulato@2a01-036d-0106-4994-d043-6d2a-58f7-29ea.pool6.digikabel.hu)
20:27:00 <tomsmeding> Enrico63: the second snippet is more of a side-note that muddles the waters in this discussion
20:27:38 <tomsmeding> the point in the first snippet is that when interpreting 'Fst e', I have to pattern-match on the result of 'interpret e' to check if it is VPair or something else
20:28:16 <Enrico63> Ok. I see that.
20:28:33 <tomsmeding> this is a check at the last possible time: there is some kind of assumption on the shape of this value (because Fst requires a pair), but our data representation does not encode that assumption
20:29:10 <tomsmeding> normally, in a statically typed language, we try to avoid this: when you use 'fst' in haskell, you'd rather like the type system to ensure that the argument to 'fst' is indeed a pair!
20:29:12 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:29:32 <Enrico63> Because our data representation is just an Expr, whatever it contains
20:30:00 <tomsmeding> this is in contrast to a dynamically typed language, where any use of 'fst' (usually written like [0], or .0, or .first, etc.) may throw because it actually turns out to be a file handle, for example
20:30:13 <tomsmeding> Enrico63: no, I'm talking about Value, not Expr
20:30:23 <Enrico63> Well, same thing, right?
20:30:34 <EvanR> no way
20:30:34 <tomsmeding> true, they're both dynamic
20:30:35 <Enrico63> It's a single type that hides multiple shapes, no?
20:30:50 <tomsmeding> but for Expr, every value is interpretable, whereas certainly not all Value values are valid
20:31:08 <tomsmeding> (well, not really every Expr is interpretable either!)
20:31:25 <tomsmeding> ("Fst (I 2)" is indeed bad, and you're right that this is yet another example of the same)
20:31:42 <EvanR> isn't the secret sauce that a Value evaluates to itself
20:32:07 <EvanR> is the output of evaluation
20:32:20 <tomsmeding> Alexis' point here, I think, is that my first snippet is fine Haskell code, _despite_ doing a check that is "too late"
20:32:49 <tomsmeding> my addendum to that is that Haskell is actually strong enough that if you're lucky enough to be interpreting a typed language, you can fix this
20:32:53 <tomsmeding> -> my second snippet
20:33:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
20:34:30 vanishingideal joins (~vanishing@user/vanishingideal)
20:35:45 <Enrico63> No, I don't get it. Your first snippet is Haskell code full stop; fine or not is an opinion. Her words refer to "rare exceptions [...] that **require** true dynamic code loading".
20:36:24 <tomsmeding> Enrico63: I interpret that "dynamic code loading" as applying to my 'interpret': it's loading code (Expr) dynamically (at runtime)
20:36:26 <Enrico63> Now, whether I look at the first or second snippet of yours, those are both interpreters, no?
20:37:07 <Enrico63> Yeah, and in your second snippet you are not doing that. So where's the "require"?
20:37:29 <Enrico63> If something is required, you ought to do it, you can't avoid. Right?
20:37:29 <tomsmeding> writing an interpreter by definition requires you to interpret code at runtime -- that's what an interpreter does
20:38:08 fp joins (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi)
20:38:13 <tomsmeding> I think there is little more to the statement than this
20:39:02 <tomsmeding> I think it's simply false that all exceptions to the stated "rule" require dynamic code loading; Alexis is simply stating that there are exceptions, _such as_ those that require dynamic code loading
20:39:47 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 252 seconds)
20:39:55 <EvanR> "rare exceptions of dynamic code loading", every computer game out there with a "mod API"
20:40:29 <EvanR> ever loaded a TTF font? xD
20:40:43 <tomsmeding> or loaded a pickle
20:40:45 <EvanR> or a pdf
20:40:57 <geekosaur> and glibc does it all the time: name services, locale stuff…
20:42:31 <tomsmeding> (the python pickle format includes the ability to call arbitrary functions https://docs.python.org/3/library/pickle.html#restricting-globals )
20:42:44 <EvanR> does it run the code as a matter of course during loading?
20:42:48 <tomsmeding> yes
20:42:54 <EvanR> can you disable it? xD
20:42:58 <tomsmeding> which is why using pickle.loads on unsafe input is highly insecure
20:43:06 <tomsmeding> read the docs :p
20:43:14 <EvanR> python sounds terrifying
20:43:43 <tomsmeding> well the docs are rather loud about this
20:44:10 × myme quits (~myme@2a01:799:d5e:5f00:ff65:28ea:98bb:7f03) (Ping timeout: 246 seconds)
20:44:59 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:45:16 myme joins (~myme@2a01:799:d5e:5f00:182f:237f:5285:8c47)
20:46:12 × oxapentane quits (~oxapentan@user/oxapentane) (Remote host closed the connection)
20:46:30 oxapentane joins (~oxapentan@user/oxapentane)
20:47:14 <EvanR> good
20:47:32 <tomsmeding> it's also a staple in beginner hacking challenges
20:47:36 <EvanR> I'm tired of C getting all the blame for security xD
20:49:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
20:51:45 a_peirogon joins (~a_peirogo@user/a-peirogon:62807)
20:54:52 a_peirogon parts (~a_peirogo@user/a-peirogon:62807) (WeeChat 4.7.1)
20:55:57 <geekosaur> that's lazy people looking for a quick no-thinking belief
20:56:10 <geekosaur> (and usually trying to justify their language…)
21:00:35 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:02:25 gmg joins (~user@user/gehmehgeh)
21:04:07 × michalz quits (~michalz@185.246.207.201) (Remote host closed the connection)
21:05:52 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
21:06:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
21:14:25 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:15:40 × newmind quits (~newmind@91-133-90-252.dyn.cablelink.at) (Quit: Client closed)
21:19:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
21:23:17 × trickard_ quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
21:23:30 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
21:25:33 <hc> You mean nonstrict people? :D
21:29:11 peterbecich joins (~Thunderbi@71.84.33.135)
21:30:12 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:30:34 jmcantrell_ is now known as jmcantrell
21:32:05 hakutaku joins (~textual@chen.yukari.eu.org)
21:34:04 marlino joins (~marlino@96-8-193-71.block0.gvtc.com)
21:35:29 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
21:40:35 × comonad quits (~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
21:46:08 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:46:31 × lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 264 seconds)
21:46:55 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
21:47:25 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 264 seconds)
21:51:24 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
21:53:56 pavonia joins (~user@user/siracusa)
21:57:56 lbseale joins (~quassel@user/ep1ctetus)
22:01:41 × housemate quits (~housemate@203.56.146.214) (Quit: https://ineedsomeacidtocalmmedown.space/)
22:01:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:06:46 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
22:09:55 × trickard_ quits (~trickard@cpe-48-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
22:10:13 trickard_ joins (~trickard@cpe-48-98-47-163.wireline.com.au)
22:10:17 Plane9 joins (~Plane9@2a02:3037:608:ad96:bf2:5d7:81f6:16a1)
22:17:45 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:18:40 × polykernel quits (~polykerne@user/polykernel) (Ping timeout: 246 seconds)
22:22:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:32:34 trickard_ is now known as trickard
22:33:25 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:35:11 × tromp quits (~textual@2001:1c00:3487:1b00:e166:97e2:1b74:68c4) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:38:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:38:26 tromp joins (~textual@2001:1c00:3487:1b00:e84f:e407:7aee:4080)
22:39:40 × fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 246 seconds)
22:42:20 Lycurgus joins (~juan@user/Lycurgus)
22:46:20 × Enrico63 quits (~Enrico63@host-87-7-181-238.retail.telecomitalia.it) (Quit: Client closed)
22:49:13 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:52:08 × tromp quits (~textual@2001:1c00:3487:1b00:e84f:e407:7aee:4080) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:52:57 vanishingideal joins (~vanishing@user/vanishingideal)
22:54:05 × Plane9 quits (~Plane9@2a02:3037:608:ad96:bf2:5d7:81f6:16a1) (Quit: Client closed)
22:54:16 Plane9 joins (~Plane9@2a02:3037:608:ad96:bf2:5d7:81f6:16a1)
22:55:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:59:12 × peterbecich quits (~Thunderbi@71.84.33.135) (Quit: peterbecich)
22:59:28 peterbecich joins (~Thunderbi@71.84.33.135)
23:03:32 × Plane9 quits (~Plane9@2a02:3037:608:ad96:bf2:5d7:81f6:16a1) (Quit: Client closed)
23:04:01 Plane9 joins (~Plane9@2a02:3037:608:ad96:bf2:5d7:81f6:16a1)
23:07:15 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:09:58 Sgeo joins (~Sgeo@user/sgeo)
23:11:56 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
23:16:39 comonad joins (~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de)
23:19:00 Square joins (~Square@user/square)
23:21:43 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:22:38 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:22:49 × rainbyte quits (~rainbyte@186.22.19.214) (Ping timeout: 264 seconds)
23:25:31 × attlin quits (~user@user/attlin) (Ping timeout: 246 seconds)
23:25:41 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:27:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
23:38:13 m0lok joins (~m0lok@user/m0lok)
23:38:16 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:41:03 mange joins (~mange@user/mange)
23:43:24 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
23:52:06 gmg joins (~user@user/gehmehgeh)
23:54:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:58:21 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
23:59:22 jmcantrell_ joins (~weechat@user/jmcantrell)

All times are in UTC on 2026-01-12.