Logs on 2025-12-18 (liberachat/#haskell)
| 00:00:54 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 00:04:05 | × | xff0x quits (~xff0x@2405:6580:b080:900:1f37:fc57:df55:8ce4) (Quit: xff0x) |
| 00:05:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:10:31 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 00:10:34 | → | xff0x joins (~xff0x@ai083123.d.east.v6connect.net) |
| 00:14:50 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 00:20:38 | × | Googulator quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 00:20:52 | → | Googulator joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 00:20:58 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:28:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 00:37:16 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 00:39:01 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:39:05 | × | jle` quits (~jle`@2603:8001:3b00:11:a23f:f454:6842:2ec4) (Ping timeout: 245 seconds) |
| 00:39:54 | → | jle` joins (~jle`@2603:8001:3b00:11:19da:f73a:84bb:c3b2) |
| 00:43:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 00:50:45 | × | Googulator quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 00:50:50 | → | Googulator60 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 00:59:57 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 00:59:57 | × | Pozyomka quits (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 01:04:43 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 255 seconds) |
| 01:07:35 | × | Tuplanolla quits (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Ping timeout: 240 seconds) |
| 01:10:03 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 01:18:43 | × | xff0x quits (~xff0x@ai083123.d.east.v6connect.net) (Ping timeout: 246 seconds) |
| 01:20:42 | × | Googulator60 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 01:20:46 | → | Googulator58 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 01:24:33 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 01:25:00 | → | divlamir joins (~divlamir@user/divlamir) |
| 01:26:56 | → | omidmash9 joins (~omidmash@user/omidmash) |
| 01:28:22 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 01:29:28 | × | omidmash quits (~omidmash@user/omidmash) (Ping timeout: 260 seconds) |
| 01:29:28 | omidmash9 | is now known as omidmash |
| 01:44:16 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds) |
| 01:45:03 | × | spew quits (~spew@user/spew) (Ping timeout: 244 seconds) |
| 01:50:43 | → | Googulator56 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 01:50:46 | × | Googulator58 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 01:50:53 | → | spew joins (~spew@user/spew) |
| 01:58:57 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 02:02:55 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 02:06:55 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 02:08:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:09:38 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 02:13:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 02:17:49 | × | acidjnk quits (~acidjnk@p200300d6e7171931a1bb0b767d660e96.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 02:19:55 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 02:20:38 | → | Googulator46 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 02:21:03 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 02:21:19 | × | Googulator56 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 02:21:56 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 02:24:01 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:24:05 | trickard_ | is now known as trickard |
| 02:25:29 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 02:28:22 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 02:36:44 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving) |
| 02:39:25 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 02:39:33 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:39:39 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 02:44:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 02:45:52 | trickard_ | is now known as trickard |
| 02:47:57 | → | jj joins (~apropos@d154-20-120-135.bchsia.telus.net) |
| 02:48:38 | × | jj quits (~apropos@d154-20-120-135.bchsia.telus.net) (Remote host closed the connection) |
| 02:54:37 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds) |
| 02:55:18 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:00:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 03:02:16 | → | jj joins (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) |
| 03:03:02 | → | karenw joins (~karenw@user/karenw) |
| 03:10:16 | ← | jmcantrell parts (~weechat@user/jmcantrell) (WeeChat 4.8.1) |
| 03:10:44 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 03:10:50 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:15:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 03:20:05 | × | somemathguy quits (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1) |
| 03:26:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:31:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 03:38:15 | × | td_ quits (~td@i5387090B.versanet.de) (Ping timeout: 240 seconds) |
| 03:40:30 | → | td_ joins (~td@i53870911.versanet.de) |
| 03:41:21 | × | spew quits (~spew@user/spew) (Quit: nyaa~) |
| 03:42:23 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:47:24 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:50:12 | × | omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat) |
| 03:54:38 | → | omidmash joins (~omidmash@user/omidmash) |
| 03:57:37 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 03:58:12 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:58:55 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds) |
| 03:59:10 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 04:00:21 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Client Quit) |
| 04:01:16 | → | xff0x_ joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 04:03:00 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:03:55 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 264 seconds) |
| 04:06:09 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 04:10:15 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds) |
| 04:13:48 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:20:33 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 04:20:53 | → | Googulator53 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 04:21:15 | × | Googulator46 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 04:22:35 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 04:26:25 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 264 seconds) |
| 04:31:51 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:34:39 | → | ystael joins (~ystael@user/ystael) |
| 04:36:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:36:53 | → | AlexNoo_ joins (~AlexNoo@5.139.232.96) |
| 04:37:45 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 04:39:15 | × | AlexZenon quits (~alzenon@178.34.161.6) (Ping timeout: 252 seconds) |
| 04:39:55 | × | AlexNoo quits (~AlexNoo@178.34.161.6) (Ping timeout: 240 seconds) |
| 04:44:18 | → | AlexZenon joins (~alzenon@5.139.232.96) |
| 04:45:35 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 04:47:30 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 04:47:37 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:53:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 04:58:06 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 05:00:13 | → | Pozyomka joins (~pyon@user/pyon) |
| 05:05:00 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:06:47 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 05:09:11 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 05:09:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 05:10:27 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 05:20:46 | × | Googulator53 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 05:20:46 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:20:51 | → | Googulator94 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 05:21:03 | → | mechanov joins (~kianbrode@76.127.143.150) |
| 05:23:18 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 05:24:36 | ← | mechanov parts (~kianbrode@76.127.143.150) () |
| 05:25:07 | × | raym quits (~ray@user/raym) (Ping timeout: 246 seconds) |
| 05:25:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 05:28:08 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 05:28:08 | × | Googulator94 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 05:28:23 | → | Googulator94 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 05:28:34 | → | mechanov_ joins (~mechanov_@user/mechanov-:31724) |
| 05:30:44 | × | mechanov_ quits (~mechanov_@user/mechanov-:31724) (Client Quit) |
| 05:31:05 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 05:32:10 | → | raym joins (~ray@user/raym) |
| 05:35:43 | × | Square quits (~Square4@user/square) (Ping timeout: 240 seconds) |
| 05:36:33 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:38:01 | × | jj quits (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) (Remote host closed the connection) |
| 05:39:02 | × | Axman6 quits (~Axman6@user/axman6) (*.net *.split) |
| 05:39:02 | × | superbil quits (~superbil@114-32-231-70.hinet-ip.hinet.net) (*.net *.split) |
| 05:39:37 | × | mange quits (~mange@user/mange) (Quit: Quittin' time!) |
| 05:40:44 | → | jj joins (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) |
| 05:41:23 | → | superbil joins (~superbil@114-32-231-70.hinet-ip.hinet.net) |
| 05:41:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 05:50:41 | × | Googulator94 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 05:50:46 | → | Googulator8 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 05:51:57 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:58:31 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 05:59:19 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 06:03:16 | → | werneta joins (~werneta@71.83.160.242) |
| 06:03:42 | → | michalz joins (~michalz@185.246.207.193) |
| 06:09:59 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:14:39 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 06:16:54 | × | jmcantrell quits (~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1) |
| 06:17:48 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 06:17:50 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 06:20:39 | → | Googulator60 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 06:20:48 | × | Googulator8 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 06:25:47 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:31:04 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 06:36:09 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 265 seconds) |
| 06:37:19 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 06:40:53 | → | Axman6 joins (~Axman6@user/axman6) |
| 06:41:35 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:45:27 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 06:46:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 06:50:40 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:55:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 06:55:46 | → | itaipu joins (~itaipu@168.121.97.28) |
| 07:00:35 | × | EvanR quits (~EvanR@user/evanr) (Quit: Leaving) |
| 07:05:37 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 255 seconds) |
| 07:06:28 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:07:51 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 07:08:32 | × | hiredman quits (~hiredman@frontier1.downey.family) (Ping timeout: 265 seconds) |
| 07:11:53 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 07:12:29 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 250 seconds) |
| 07:15:59 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 07:17:32 | → | karenw joins (~karenw@user/karenw) |
| 07:17:53 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:20:16 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 244 seconds) |
| 07:22:16 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:22:53 | × | annamalai quits (~annamalai@2409:4042:2319:cd57::21e0:60a5) (Ping timeout: 250 seconds) |
| 07:27:05 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 07:28:09 | → | humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 07:29:44 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 07:29:58 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 07:30:01 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 07:33:17 | × | werneta quits (~werneta@71.83.160.242) (Remote host closed the connection) |
| 07:38:03 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:39:37 | → | annamalai joins (~annamalai@157.32.125.111) |
| 07:42:49 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 07:47:10 | humasect_ | is now known as humasect |
| 07:51:42 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:51:47 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 07:56:14 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 260 seconds) |
| 07:56:49 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 08:00:35 | <probie> | Is there a good way to union recursive types? My current approach is https://play.haskell.org/saved/DFZQfeiw but is there a better way to do this? |
| 08:03:19 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 08:03:58 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 08:04:08 | → | milan2 joins (~milan@88.212.61.169) |
| 08:05:57 | <opqdonut> | yeah you take the union of the f-algebras and then fix, that's what I would've done |
| 08:07:17 | <opqdonut> | I probably would've written the union out as a datatype if there are only 1-2 cases |
| 08:07:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 08:07:45 | <opqdonut> | I mean, 1-2 applications of the OneOf' pattern |
| 08:07:57 | <opqdonut> | but that's just a stylistic change |
| 08:09:59 | → | chele joins (~chele@user/chele) |
| 08:10:09 | trickard_ | is now known as trickard |
| 08:11:19 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:12:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 08:18:08 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 08:20:41 | × | Googulator60 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 08:20:48 | → | Googulator43 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 08:23:00 | → | karenw joins (~karenw@user/karenw) |
| 08:23:11 | → | euphores joins (~SASL_euph@user/euphores) |
| 08:23:55 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 08:26:48 | → | acidjnk joins (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) |
| 08:41:26 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 08:45:40 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 246 seconds) |
| 08:48:16 | → | tromp joins (~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl) |
| 08:50:45 | → | Googulator77 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 08:50:50 | × | Googulator43 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 08:51:37 | × | sp1ff` quits (~user@2601:1c2:4c00:55a0::59db) (Ping timeout: 246 seconds) |
| 09:03:20 | × | milan2 quits (~milan@88.212.61.169) (Quit: WeeChat 4.5.2) |
| 09:07:55 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 09:09:58 | → | merijn joins (~merijn@77.242.116.146) |
| 09:16:31 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 09:20:41 | → | Googulator36 joins (~Googulato@80-95-87-105.pool.digikabel.hu) |
| 09:20:46 | × | Googulator77 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 09:22:05 | → | sp1ff` joins (~user@2601:1c2:4701:900::327f) |
| 09:35:55 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 09:44:48 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 09:46:29 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:46:57 | × | Googulator36 quits (~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed) |
| 09:47:13 | → | Googulator36 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 09:47:30 | → | haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 09:47:30 | × | haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 09:47:30 | → | haritz joins (~hrtz@user/haritz) |
| 09:48:27 | → | merijn joins (~merijn@77.242.116.146) |
| 09:48:59 | → | troydm joins (~troydm@user/troydm) |
| 09:50:53 | → | Googulator95 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 09:51:17 | × | Googulator36 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Client Quit) |
| 09:52:52 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 09:56:58 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 09:57:11 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 09:59:45 | → | merijn joins (~merijn@77.242.116.146) |
| 10:01:07 | → | fp joins (~Thunderbi@2001:708:20:1406::1370) |
| 10:10:12 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 10:13:39 | × | xff0x_ quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
| 10:20:16 | × | Googulator95 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 10:20:31 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 246 seconds) |
| 10:20:33 | → | Googulator95 joins (~Googulato@80-95-87-105.pool.digikabel.hu) |
| 10:22:03 | trickard_ | is now known as trickard |
| 10:35:29 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 10:35:30 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Read error: Connection reset by peer) |
| 10:38:11 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 10:46:51 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 10:47:05 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 10:57:08 | AlexNoo_ | is now known as AlexNoo |
| 10:57:08 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 10:58:25 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 11:06:08 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 11:07:11 | → | somemathguy joins (~somemathg@user/somemathguy) |
| 11:11:04 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 260 seconds) |
| 11:18:55 | → | xff0x joins (~xff0x@2405:6580:b080:900:e22e:72a9:5af7:ae26) |
| 11:19:54 | × | troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 11:20:30 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 11:20:43 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 11:25:39 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 260 seconds) |
| 11:26:14 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 11:31:12 | × | fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
| 11:31:30 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 11:31:43 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 11:38:10 | → | merijn joins (~merijn@77.242.116.146) |
| 11:38:13 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 11:43:49 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 11:44:31 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 11:45:29 | → | fp joins (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) |
| 11:48:15 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 245 seconds) |
| 11:56:49 | → | merijn joins (~merijn@77.242.116.146) |
| 12:01:49 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 12:02:17 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 12:04:26 | → | jackneill__ joins (~Jackneill@178-164-234-79.pool.digikabel.hu) |
| 12:06:35 | × | Jackneill_ quits (~Jackneill@178-164-177-109.pool.digikabel.hu) (Ping timeout: 240 seconds) |
| 12:12:31 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 246 seconds) |
| 12:12:36 | → | merijn joins (~merijn@77.242.116.146) |
| 12:23:10 | × | GoldsteinQ quits (~goldstein@goldstein.rs) (Quit: ZNC 1.9.1 - https://znc.in) |
| 12:26:12 | → | GoldsteinQ joins (~goldstein@goldstein.lol) |
| 12:26:44 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 12:35:52 | → | Googulator52 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 12:36:22 | × | Googulator95 quits (~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed) |
| 12:39:42 | × | tromp quits (~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:45:52 | trickard_ | is now known as trickard |
| 12:46:49 | × | lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 264 seconds) |
| 12:46:50 | × | fp quits (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) (Remote host closed the connection) |
| 12:47:54 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 12:49:54 | × | pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 244 seconds) |
| 12:52:04 | × | lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 244 seconds) |
| 12:52:57 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 12:54:49 | → | fp joins (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) |
| 12:58:39 | × | fp quits (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) (Remote host closed the connection) |
| 13:01:11 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds) |
| 13:06:20 | → | pabs3 joins (~pabs3@user/pabs3) |
| 13:18:06 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 13:18:33 | → | fp joins (~Thunderbi@2001:708:150:10::7e06) |
| 13:21:03 | × | fp quits (~Thunderbi@2001:708:150:10::7e06) (Remote host closed the connection) |
| 13:22:57 | → | fp1 joins (~Thunderbi@2001:708:20:1406::10c5) |
| 13:24:58 | → | qqe joins (~qqq@185.54.20.98) |
| 13:25:14 | fp1 | is now known as fp |
| 13:27:46 | → | tromp joins (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 13:27:48 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 252 seconds) |
| 13:28:33 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:29:50 | Googulator52 | is now known as Googulator |
| 13:30:15 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 13:40:44 | × | Googulator quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 13:40:51 | → | Googulator72 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 13:48:29 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 13:48:37 | × | merijn quits (~merijn@77.242.116.146) (Quit: restart) |
| 13:49:20 | → | merijn joins (~merijn@77.242.116.146) |
| 13:51:32 | → | smeik5005 joins (~smeik5005@2a06:93c1:301:3:914d:b7d0:703d:161b) |
| 13:56:23 | × | tromp quits (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:01:26 | → | comerijn joins (~merijn@77.242.116.146) |
| 14:01:47 | × | smeik5005 quits (~smeik5005@2a06:93c1:301:3:914d:b7d0:703d:161b) (Ping timeout: 265 seconds) |
| 14:04:09 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 250 seconds) |
| 14:04:12 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 265 seconds) |
| 14:20:46 | → | shaeto joins (~Shaeto@94.25.234.244) |
| 14:25:16 | × | shaeto quits (~Shaeto@94.25.234.244) (Ping timeout: 255 seconds) |
| 14:27:03 | → | shaeto joins (~Shaeto@94.25.234.244) |
| 14:28:42 | → | shaeto_ joins (~Shaeto@94.25.234.244) |
| 14:31:34 | × | shaeto quits (~Shaeto@94.25.234.244) (Ping timeout: 255 seconds) |
| 14:31:38 | → | shaeto__ joins (~Shaeto@94.25.234.244) |
| 14:32:52 | → | shaeto joins (~Shaeto@78.37.15.179) |
| 14:33:28 | × | shaeto_ quits (~Shaeto@94.25.234.244) (Ping timeout: 260 seconds) |
| 14:35:43 | × | shaeto__ quits (~Shaeto@94.25.234.244) (Ping timeout: 240 seconds) |
| 14:36:31 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 240 seconds) |
| 14:36:41 | → | shaeto_ joins (~Shaeto@78.37.15.179) |
| 14:37:25 | × | shaeto quits (~Shaeto@78.37.15.179) (Ping timeout: 255 seconds) |
| 14:37:25 | <shaeto_> | hi, question, how to see code produced by "deriving (Eq, Ord)" for Peano numbers ? is it pure recursive or some hack for performance ? |
| 14:37:46 | <tomsmeding> | the deriving-generated code is generally not very clever |
| 14:38:31 | <tomsmeding> | shaeto_: you can pass -ddump-deriv to GHC to have deriving-generated code printed to stderr; an easy way to do this for a single module is to put {-# OPTIONS -ddump-deriv #-} at the top of the file |
| 14:38:54 | <tomsmeding> | https://downloads.haskell.org/ghc/latest/docs/users_guide/flags.html#compiler-debugging-options |
| 14:40:00 | <shaeto_> | @tomsmeding thank you, will try, i just want to understand it for learning purposes |
| 14:40:00 | <lambdabot> | Unknown command, try @list |
| 14:40:14 | <tomsmeding> | (we generally don't use @ on irc) |
| 14:40:52 | → | itaipu joins (~itaipu@168.121.97.28) |
| 14:41:16 | → | __monty__ joins (~toonn@user/toonn) |
| 14:41:27 | <shaeto_> | tomsmeding: thank you |
| 14:49:42 | × | carbolymer_ quits (~carbolyme@delirium.systems) () |
| 14:49:54 | → | carbolymer joins (carbolymer@delirium.systems) |
| 14:50:20 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 245 seconds) |
| 14:58:53 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:01:07 | → | itaipu joins (~itaipu@168.121.97.28) |
| 15:08:08 | → | shaeto joins (~Shaeto@94.25.234.244) |
| 15:11:03 | × | shaeto_ quits (~Shaeto@78.37.15.179) (Ping timeout: 244 seconds) |
| 15:17:11 | × | fp quits (~Thunderbi@2001:708:20:1406::10c5) (Quit: fp) |
| 15:20:00 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 15:20:42 | → | tromp joins (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 15:40:31 | × | somemathguy quits (~somemathg@user/somemathguy) (Ping timeout: 264 seconds) |
| 15:44:22 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 15:53:28 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 15:53:47 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 250 seconds) |
| 15:56:54 | → | merijn joins (~merijn@77.242.116.146) |
| 16:00:08 | → | somemathguy joins (~somemathg@user/somemathguy) |
| 16:00:10 | × | qqe quits (~qqq@185.54.20.98) (Quit: Lost terminal) |
| 16:02:12 | × | somemathguy quits (~somemathg@user/somemathguy) (Client Quit) |
| 16:07:38 | × | merijn quits (~merijn@77.242.116.146) (Quit: leaving) |
| 16:22:53 | × | polux quits (~polux@51-15-169-172.rev.poneytelecom.eu) (Remote host closed the connection) |
| 16:23:37 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 16:29:32 | → | polux joins (~polux@51-15-169-172.rev.poneytelecom.eu) |
| 16:29:40 | × | lucabtz quits (~lucabtz@user/lucabtz) (Quit: Lost terminal) |
| 16:30:30 | × | tromp quits (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:31:32 | → | Square2 joins (~Square@user/square) |
| 16:32:52 | → | tromp joins (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 16:40:27 | → | merijn joins (~merijn@77.242.116.146) |
| 16:44:48 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:00:08 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 17:02:30 | <machinedgod> | Hi everyone. Does anyone here have a bit of experience with linear-base and LinearTypes? I can't seem to figure out how to get projection functions on my datatypes to be linear. |
| 17:03:10 | <machinedgod> | Second issue: when I hide prelude and import Prelude.Linear - it seems like I lose ability to derive stock classes easily. Is this correct or I'm doing it wrong? |
| 17:05:24 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 17:14:44 | <tomsmeding> | machinedgod: I've never used Prelude.Linear, but I've used linear-base a bit; can you give a small code snippet showing precisely what projection functions you want? |
| 17:15:24 | → | jbob joins (~jbob@172.59.173.118) |
| 17:16:09 | × | jbob quits (~jbob@172.59.173.118) (Client Quit) |
| 17:18:35 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 17:20:14 | <machinedgod> | tomsmeding: Hey, thank you for replying! What I meant was, sorry for misusing a wrong term - a record selector function. Basically, a datatype with a named field - I would presume those auto-genned functions would be linear, when LinearTypes are enabled? |
| 17:27:49 | <tomsmeding> | aparently not! |
| 17:28:20 | <tomsmeding> | machinedgod: ah, see point 6 here https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/linear_types.html#limitations |
| 17:28:40 | <tomsmeding> | ah no that's not quite your question |
| 17:31:46 | <tomsmeding> | machinedgod: the constructor of a data type _is_ linear by default, unless you explicitly make it not so using GADTSyntax |
| 17:31:58 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 17:33:41 | <tomsmeding> | on reflection, yes, that bullet in the limitations _is_ your questoin |
| 17:33:47 | <tomsmeding> | *question |
| 17:40:12 | → | spew joins (~spew@user/spew) |
| 17:41:14 | <machinedgod> | tomsmeding: Aye, that's a good answer! Thank you, I did check the user manual and I did look into limitations - but I misread the part about records. |
| 17:42:20 | <machinedgod> | I am attempting to find a correct, uh... 'meta pattern' to use linear types. Its mainly to get some experience in usage. Do you maybe know what could I look at? |
| 17:43:15 | <tomsmeding> | I'm not sure. I used it once for a very specific purpose, and it worked fine for that, but there are still a lot of rough edges, I think |
| 17:43:40 | <tomsmeding> | decide what exactly you want to do with linearity, and find ways to accomplish that, is what I would say |
| 17:43:52 | <tomsmeding> | making your whole program "linear" is not really a thing |
| 17:48:38 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 17:49:04 | <machinedgod> | You're reading my mind :) One good advice I've gotten was to separate observation from mutation, and to add 'authority' tokens which have linear access. That's what I'm going to attempt to do, and see how far I get. |
| 17:49:51 | <machinedgod> | But yeah, I honestly don't really have a clear goal on what do I want to accomplish - I have a toy project specifically crafted just so that I could toy around with lineary and 'real' problems and see what is doable, what isn't and what are the pros/cons. I've done the same thing when datakinds became a thing :) |
| 17:51:14 | <tomsmeding> | "authority tokens" sound like a design pattern to simplify writing APIs that use linearity to enforce certain invariants. That still requires you to have an idea beforehand what invariants you want to enforce, exactly :) |
| 17:51:30 | <tomsmeding> | I think that if you know that, it'll become clearer how to use linearity to accomplish that |
| 17:51:34 | <tomsmeding> | (and if it doesn't, come back) |
| 17:52:14 | <tomsmeding> | this is not to discourage you from experimenting, by the way! :) |
| 17:55:43 | <machinedgod> | tomsmeding: Oh, I didn't feel like you're being discouraging, quite the oppoosite! You're here, spending time of your life to consult me for free - if that isn't practical encouraging, I don't know what is :) and, I am taking your advice to heart, I've just poured myself another cup of coffee, and rather than typing more code, I'm gonna sit, look at it and think for a bit |
| 17:55:57 | <machinedgod> | Thank you, both for time and knowledge! |
| 17:56:07 | <tomsmeding> | nice, have fun :) |
| 17:56:27 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 18:00:47 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 18:01:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 18:06:21 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 18:15:32 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 18:15:44 | → | trickard joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 18:17:13 | → | merijn joins (~merijn@62.45.136.136) |
| 18:17:21 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 18:17:25 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds) |
| 18:17:29 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 18:17:48 | jmcantrell_ | is now known as jmcantrell |
| 18:19:38 | × | Pozyomka quits (~pyon@user/pyon) (Quit: bbl) |
| 18:21:54 | × | merijn quits (~merijn@62.45.136.136) (Ping timeout: 256 seconds) |
| 18:29:50 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 18:30:38 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 18:32:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 18:39:06 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 18:42:18 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 18:44:36 | × | acidjnk quits (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 18:50:35 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 18:54:24 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 18:55:20 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 18:55:37 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 18:59:27 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
| 18:59:27 | ljdarj1 | is now known as ljdarj |
| 19:02:37 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 19:04:15 | × | tromp quits (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 19:14:50 | → | acidjnk joins (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) |
| 19:18:24 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 19:19:06 | → | talismanick joins (~user@2601:644:8502:d340::cd3d) |
| 19:20:21 | → | Tuplanolla joins (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) |
| 19:20:55 | → | weary-traveler joins (~user@user/user363627) |
| 19:22:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 19:26:50 | × | shaeto quits (~Shaeto@94.25.234.244) (Quit: WeeChat 4.1.1) |
| 19:27:37 | → | shaeto joins (~Shaeto@94.25.234.244) |
| 19:28:19 | × | shaeto quits (~Shaeto@94.25.234.244) (Client Quit) |
| 19:28:52 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 244 seconds) |
| 19:29:51 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 19:32:20 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 19:32:56 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 19:33:40 | Lord_of_Life_ | is now known as Lord_of_Life |
| 19:34:11 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 19:39:08 | → | pavonia joins (~user@user/siracusa) |
| 19:39:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 19:49:55 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 19:51:21 | → | lockna joins (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) |
| 19:51:55 | × | lockna quits (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Remote host closed the connection) |
| 19:52:10 | → | lockna joins (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) |
| 19:52:12 | → | l0ckna joins (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) |
| 19:52:45 | × | lockna quits (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Remote host closed the connection) |
| 19:55:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 20:03:39 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 20:08:39 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 20:12:58 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 20:14:10 | <haskellbridge> | <Liamzee> is the real reason people don't want to use Haskell as an orchestrator that Haskell concurrency + FFI is cursed? |
| 20:15:39 | <monochrom> | Is Haskell concurrency + FFI cursed? |
| 20:15:51 | <haskellbridge> | <Liamzee> I mean you can always blame C etc for it |
| 20:16:03 | <haskellbridge> | <Liamzee> From experienced production devs: is it cursed? |
| 20:16:33 | <haskellbridge> | <Liamzee> I've been trying to build a wrapper around the tinyfiledialogs library, and it turns out that traverse_ forkIO, on Macos, at least, will cause the script runner to jam buffers |
| 20:16:47 | <monochrom> | I am not interested in blaming C, or blaming anything, at least for now. |
| 20:17:36 | <monochrom> | Have you heard of forkOS? |
| 20:17:36 | <haskellbridge> | <Liamzee> So, now I'm thinking no-inline unsafePerformIO global locks. ??? |
| 20:17:42 | <haskellbridge> | <Liamzee> yes, I've used it. |
| 20:18:17 | <haskellbridge> | <Liamzee> Still, if I'm trying to build a library wrapper, I can't control whether the end user is using forkIO or forkOS |
| 20:18:23 | → | qqe joins (~qqq@185.54.20.98) |
| 20:19:17 | <monochrom> | You can assume that the end user has made the correct choice between forkIO and forkOS. |
| 20:19:27 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 20:19:28 | <int-e> | C libraries don't control from which threads they're called either |
| 20:20:41 | → | Googulator75 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 20:21:06 | <monochrom> | If you want tight control on which thread does what, the technique of "worker thread pool" has been well known for decades. |
| 20:21:38 | × | Googulator72 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 20:21:47 | × | omidmash quits (~omidmash@user/omidmash) (Quit: Ping timeout (120 seconds)) |
| 20:21:53 | <monochrom> | And is particularly sweet in Haskell because Haskell has a much better API for sending messages to worker threads and/or pools. |
| 20:22:00 | → | omidmash joins (~omidmash@user/omidmash) |
| 20:22:35 | <monochrom> | (How better? You can send a f**king IO action as a message too. It doesn't even need to be data!) |
| 20:22:55 | <monochrom> | (It's what gtk2hs does.) |
| 20:23:31 | <int-e> | And fwiw, as FFIs go Haskell's is actually pretty nice, especially considering how old it is. |
| 20:24:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 20:24:08 | <int-e> | Other languages had you write dozens of lines of marshalling code by hand for the most trivial functions. |
| 20:26:53 | <haskellbridge> | <Liamzee> Honestly, I just had AI tell me that FFI + Haskell green threads / concurrency model is seriously difficult, especially if the wrapped library has global state |
| 20:27:03 | <haskellbridge> | <Liamzee> I mean, I can leave it unsafe, but I guess I put a premium on child safety |
| 20:27:15 | <monochrom> | "AI" |
| 20:27:18 | <haskellbridge> | <Liamzee> I'm asking here beceause AI hallucinates and is a bullshit machine, so I'd rather ask real humans |
| 20:27:34 | <monochrom> | Public LLMs are only as good as Internet trash. |
| 20:28:45 | <monochrom> | Hutton already explained why Haskell anything is seriously difficult. |
| 20:29:02 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 20:29:27 | <monochrom> | Programming is seriously difficult. Haskell is just being honest about it. Other languages try to sugar-coat it. |
| 20:31:11 | <haskellbridge> | <Liamzee> I mean the explanation is that other languages with their concurrency / FFI model is intended to be childsafe, i.e, it deliberately brain damages the concurrency + FFI model to avoid the overhead of childsafe-ing on the library designer side, but locks every user into the childsafe model, even when it's unnecessary |
| 20:31:15 | <monochrom> | But Haskell solutions have been well-known for decades for concurrently FFI-ing to C libs with global states and/or thread-local states. |
| 20:32:28 | <haskellbridge> | <Liamzee> the objective remark seems to be: Haskell concurrency + FFI is not childsafe (defined as, being brain-dead robust). It's the responsibility of the library builder to make it such. Or would you contest that? |
| 20:34:51 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 20:35:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 20:35:40 | <monochrom> | Which languages are childsafe? |
| 20:36:01 | <int-e> | brainfuck |
| 20:36:46 | × | l0ckna quits (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Quit: Leaving) |
| 20:36:57 | <haskellbridge> | <Liamzee> The AI comment was: "every language with worse concurrency", i.e, Py is an example because of how hard concurrency is, and Go is apparently another example. |
| 20:38:22 | <sprout> | Liamzee: that wasn't what the AI stated. and FFI-ing into something that isn't threadsafe of course is going to give you problems, no matter the language |
| 20:38:23 | <monochrom> | As a first-order approximation: Mutex is not childsafe unless used under Haskell's bracket idiom or Python's recent "with" idiom or C++'s RAII idiom. That immediately cuts down the candidates to just 4: Haskell, Python, C++, maybe Rust. |
| 20:39:08 | <monochrom> | However, none of those 4 force you to use those safe idioms. That further cuts down the candidates to 0. |
| 20:40:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 20:41:03 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 20:41:03 | <haskellbridge> | <Liamzee> Does Py etc use blocking FFI? |
| 20:41:11 | <haskellbridge> | <Liamzee> Go? |
| 20:43:13 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds) |
| 20:43:13 | ljdarj1 | is now known as ljdarj |
| 20:43:20 | <sprout> | Liamzee: your AI gave you a statement of fact that is true for any language |
| 20:43:44 | <sprout> | whether it's exceptionally difficult for Haskell is debatable |
| 20:46:11 | × | michalz quits (~michalz@185.246.207.193) (Remote host closed the connection) |
| 20:47:53 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 20:48:52 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 20:50:43 | × | Googulator75 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 20:50:51 | → | Googulator73 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 20:51:00 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 20:54:01 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 20:55:46 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 21:04:40 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 21:11:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 21:14:49 | × | dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in) |
| 21:16:48 | → | Pozyomka joins (~pyon@user/pyon) |
| 21:22:13 | → | dolio joins (~dolio@130.44.140.168) |
| 21:22:43 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 21:27:42 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 21:37:42 | <haskellbridge> | <Liamzee> The example I was tossed was green threads (virtual threads) in FFI |
| 21:38:04 | <haskellbridge> | <Liamzee> But either case, is it worth trying to specialize in the concurrency + FFI combo? |
| 21:38:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 21:39:09 | <haskellbridge> | <Liamzee> Until SIMD support in GHC becomes fully mature, it'll be very difficult to compete with Rust, and the simplest way might simply be to FFI to C/C++/Rust in the interim. FFI on its own is relatively easy, concurrency in Haskell is also easy, but once you mix FFI and concurrency, whether it's Haskell specific or not, it becomes a bit more of a headache. |
| 21:43:22 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 21:46:23 | × | gabiruh_ quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 21:46:47 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 21:51:02 | × | trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 21:51:16 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 21:54:18 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 21:55:35 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 21:56:33 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 21:58:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 22:01:03 | <haskellbridge> | <loonycyborg> I'm pretty sure that haskell is one of the most safe environments to do threading, because having to be explicit about effects also makes it easier to see when synchronization is needed. |
| 22:03:36 | <haskellbridge> | <loonycyborg> And immutable structures don't need synchronization. |
| 22:05:44 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds) |
| 22:09:08 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 22:09:16 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 22:10:05 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 22:15:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 22:15:35 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 22:17:49 | × | xff0x quits (~xff0x@2405:6580:b080:900:e22e:72a9:5af7:ae26) (Ping timeout: 244 seconds) |
| 22:22:01 | → | xff0x joins (~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) |
| 22:25:53 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 22:30:37 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 22:38:16 | × | vetkat quits (~vetkat@user/vetkat) (Read error: Connection reset by peer) |
| 22:38:40 | → | vetkat joins (~vetkat@user/vetkat) |
| 22:41:41 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 22:43:10 | × | infinity0 quits (~infinity0@pwned.gg) (Quit: WeeChat 4.7.2) |
| 22:44:56 | → | infinity0 joins (~infinity0@pwned.gg) |
| 22:48:49 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 22:49:51 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 244 seconds) |
| 22:50:26 | → | EvanR joins (~EvanR@user/evanr) |
| 22:51:59 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 22:54:05 | → | tromp joins (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 22:56:28 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 22:57:43 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 240 seconds) |
| 22:58:55 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 22:59:09 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 23:03:11 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 23:07:29 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 23:09:59 | → | infinity0 joins (~infinity0@pwned.gg) |
| 23:12:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 23:20:52 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 23:20:55 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 23:24:08 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 23:24:21 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 23:25:19 | × | xff0x quits (~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) (Ping timeout: 250 seconds) |
| 23:29:09 | × | tromp quits (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:30:01 | → | xff0x joins (~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) |
| 23:40:23 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 23:41:39 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 23:51:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 23:56:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
All times are in UTC on 2025-12-18.