Logs on 2025-11-14 (liberachat/#haskell)
| 00:00:35 | × | annamalai quits (~annamalai@157.33.224.236) (Ping timeout: 256 seconds) |
| 00:03:25 | × | deptype quits (~deptype@2406:b400:3a:73c2:bb74:878e:87fe:72b5) (Remote host closed the connection) |
| 00:03:38 | → | deptype joins (~deptype@2406:b400:3a:73c2:b60:8c10:d3ef:43c0) |
| 00:05:54 | trickard_ | is now known as trickard |
| 00:08:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:12:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 00:16:05 | → | saurcron joins (uid575716@user/saurcron) |
| 00:23:28 | × | deptype quits (~deptype@2406:b400:3a:73c2:b60:8c10:d3ef:43c0) (Remote host closed the connection) |
| 00:23:41 | → | deptype joins (~deptype@2406:b400:3a:73c2:6261:a427:7258:fcb4) |
| 00:24:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:28:08 | → | bggd joins (~bgg@2a01:e0a:819:1510:761:a174:4d6f:f8ab) |
| 00:28:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 00:32:12 | × | ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:37:13 | → | acarrico1 joins (~acarrico@rb-sip-237.greenmountainaccess.net) |
| 00:39:07 | × | mreh quits (~matthew@host86-146-25-125.range86-146.btcentralplus.com) (Ping timeout: 256 seconds) |
| 00:39:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:41:33 | × | acarrico1 quits (~acarrico@rb-sip-237.greenmountainaccess.net) (Ping timeout: 244 seconds) |
| 00:43:30 | × | deptype quits (~deptype@2406:b400:3a:73c2:6261:a427:7258:fcb4) (Remote host closed the connection) |
| 00:44:06 | → | deptype joins (~deptype@2406:b400:3a:73c2:d1ef:54e1:33d0:7e62) |
| 00:44:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 00:46:26 | → | notzmv joins (~umar@user/notzmv) |
| 00:49:54 | × | xff0x quits (~xff0x@2405:6580:b080:900:7b8c:bddf:6c13:ed0c) (Ping timeout: 256 seconds) |
| 00:50:33 | × | acidjnk quits (~acidjnk@p200300d6e71719864849111020082051.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 00:50:59 | kitties | is now known as Catty |
| 00:52:09 | × | Tuplanolla quits (~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) (Ping timeout: 256 seconds) |
| 00:53:04 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 00:54:49 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:55:57 | → | Googulator93 joins (~Googulato@2a01-036d-0106-0180-68e2-7394-b68d-da19.pool6.digikabel.hu) |
| 00:56:22 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 00:59:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 01:03:32 | × | deptype quits (~deptype@2406:b400:3a:73c2:d1ef:54e1:33d0:7e62) (Remote host closed the connection) |
| 01:03:45 | → | deptype joins (~deptype@2406:b400:3a:73c2:29fc:b984:2878:681b) |
| 01:08:56 | × | jreicher quits (~user@user/jreicher) (Ping timeout: 244 seconds) |
| 01:09:35 | → | jreicher joins (~user@user/jreicher) |
| 01:10:13 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:14:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 01:15:28 | × | trickard quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Ping timeout: 246 seconds) |
| 01:15:57 | → | trickard_ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 01:16:13 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 264 seconds) |
| 01:23:04 | → | looking joins (~looking@2600:4040:2678:9600:b1c4:ced3:242d:1252) |
| 01:25:06 | × | looking quits (~looking@2600:4040:2678:9600:b1c4:ced3:242d:1252) (Client Quit) |
| 01:25:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:26:52 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 01:29:36 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 252 seconds) |
| 01:31:04 | × | deptype quits (~deptype@2406:b400:3a:73c2:29fc:b984:2878:681b) (Remote host closed the connection) |
| 01:31:17 | → | deptype joins (~deptype@2406:b400:3a:73c2:d817:93dd:2198:fe22) |
| 01:32:09 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 250 seconds) |
| 01:32:23 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 01:35:26 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 01:41:15 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:42:12 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 01:43:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:48:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 01:53:24 | × | jumper149 quits (~jumper149@base.felixspringer.xyz) (Quit: WeeChat 4.7.1) |
| 01:56:32 | × | trickard_ quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 01:56:47 | → | trickard_ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 01:57:36 | × | otto_s quits (~user@p5b044407.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 01:59:00 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:03:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 02:04:52 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Remote host closed the connection) |
| 02:05:14 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 02:07:49 | → | otto_s joins (~user@p4ff27f5d.dip0.t-ipconnect.de) |
| 02:14:23 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:14:47 | × | Nachtgespenst quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 02:15:02 | → | Nachtgespenst joins (~user@user/siracusa) |
| 02:15:28 | × | myxos quits (~myxos@wsip-70-166-126-146.ph.ph.cox.net) (Quit: myxos) |
| 02:16:27 | → | humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 02:18:51 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 02:22:49 | × | humasect_ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 02:23:54 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 02:23:55 | <jackdk> | Maybe look up Alexis King's work on eff? |
| 02:24:37 | <jreicher> | Yeah I did. That's one of the first introductions to it all I had. |
| 02:24:55 | <jreicher> | But I couldn't find her spending much time on shift/reset. It was more about prompt/control and then prompt/control0 |
| 02:29:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:34:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 02:34:29 | → | ubert1 joins (~Thunderbi@178.165.175.248.wireless.dyn.drei.com) |
| 02:37:33 | × | ubert quits (~Thunderbi@178.165.182.105.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 02:37:33 | ubert1 | is now known as ubert |
| 02:41:28 | × | bggd quits (~bgg@2a01:e0a:819:1510:761:a174:4d6f:f8ab) (Remote host closed the connection) |
| 02:44:22 | <monochrom> | jreicher: My https://www.vex.net/~trebla/haskell/cont.xhtml#shift-reset (or the whole thing) |
| 02:45:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:46:55 | → | myxos joins (~myxos@2001:579:8380:f20:1406:c18d:98b3:27d1) |
| 02:50:01 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 256 seconds) |
| 02:50:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 02:51:22 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 02:51:59 | → | deptype_ joins (~deptype@124.123.128.236) |
| 02:52:01 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 02:53:23 | → | deptype__ joins (~deptype@124.123.128.236) |
| 02:55:08 | × | deptype quits (~deptype@2406:b400:3a:73c2:d817:93dd:2198:fe22) (Ping timeout: 256 seconds) |
| 02:55:13 | <jreicher> | OK, so the exercises you give there can be done in terms of shift/reset. In your experience is shift/reset "usually" enough for "most" situations? (I realise that's a vague question) |
| 02:55:34 | <jreicher> | monochrom: ^ |
| 02:55:35 | <monochrom> | Yes. |
| 02:56:19 | <jreicher> | That's interesting. I couldn't tell for sure from the "theoretical" difference between static and dynamic, but it seemed to me it would be. |
| 02:56:24 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 244 seconds) |
| 02:56:49 | × | deptype_ quits (~deptype@124.123.128.236) (Ping timeout: 256 seconds) |
| 02:59:03 | <monochrom> | I may be wrong in saying "lexically scoped". If you define "foo = shift ...", then it is foo's call sites that determines the corresponding reset. That is dynamic rather than static. |
| 03:00:11 | <monochrom> | (In the same sense as: If you define "bar = x + 1", and if it is bar's call site that determines what x means, that is dynamic scoping.) |
| 03:00:34 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:01:45 | <jreicher> | I think lexically scoped is correct. When shift captures the evaluation context it includes the reset, which is certainly a lexical scoping before anything else is done, and then the continuation is captured with that reset in exactly the same spot, which is effectively the same "spirit" as capture-avoiding substitution for beta-reduction, and so the lexical scoping is preserved. At least that's my take on it. |
| 03:02:18 | <jreicher> | I meant to say "...and then the continuation is constructed..." |
| 03:06:54 | → | annamalai joins (~annamalai@157.32.194.69) |
| 03:07:36 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 03:11:25 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 03:16:49 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 03:18:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:23:01 | × | jmcantrell quits (~weechat@user/jmcantrell) (Quit: WeeChat 4.7.1) |
| 03:23:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 03:24:16 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 03:27:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:27:16 | × | trickard_ quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 03:27:30 | → | trickard_ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 03:28:00 | × | td__ quits (~td@i53870917.versanet.de) (Ping timeout: 256 seconds) |
| 03:29:49 | → | td_ joins (~td@i53870933.versanet.de) |
| 03:31:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 03:42:33 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:47:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 03:56:48 | <jreicher> | monochrom: Oh wait. Are you saying shift/reset might be dynamic in the sense that shift can be substituted into the scope of a reset? |
| 03:57:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:02:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:12:16 | <monochrom> | Yeah |
| 04:13:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:14:24 | <jreicher> | Are you sure it can? There's a "shift v -> v" reduction rule, so if you had "\f shift f" and were reducing to a strong normal form, you'd get \f f, no? |
| 04:15:12 | <jreicher> | Sorry that should asy reset instead of shift |
| 04:15:53 | <jreicher> | I suspect if we dig into the semantics we'd find a barrier to the kind of substitution we're talking about |
| 04:17:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 04:28:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:33:09 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 04:35:36 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 04:38:29 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 265 seconds) |
| 04:44:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:51:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 04:56:28 | × | Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!) |
| 04:59:07 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 05:01:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:04:35 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 265 seconds) |
| 05:06:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 05:08:37 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 255 seconds) |
| 05:13:48 | × | amadaluzia quits (~amadaluzi@user/amadaluzia) (Remote host closed the connection) |
| 05:13:56 | → | amadaluzia joins (~amadaluzi@user/amadaluzia) |
| 05:17:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:21:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:26:54 | × | fired quits (~la@173-255-196-82.ip.linodeusercontent.com) (Quit: ZNC 1.9.1+deb1 - https://znc.in) |
| 05:29:15 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 256 seconds) |
| 05:29:22 | <jreicher> | If I've understood the semantics given by the extended CEK machine in the "static vs dynamic" paper, the shift is evaluated outside the context of a reset before the kind of substitution we're talking about, because it's a call-by-value machine. |
| 05:32:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:35:59 | × | mange quits (~mange@user/mange) (Remote host closed the connection) |
| 05:37:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 05:43:12 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 05:47:46 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 255 seconds) |
| 05:48:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:53:03 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 05:54:57 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 05:57:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:58:48 | → | craunts795335385 joins (~craunts@175.176.18.204) |
| 06:01:42 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 06:02:24 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 244 seconds) |
| 06:04:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:04:09 | → | trickard__ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 06:05:19 | × | trickard_ quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Ping timeout: 255 seconds) |
| 06:06:53 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 250 seconds) |
| 06:07:49 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 06:08:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 06:10:38 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 256 seconds) |
| 06:13:07 | → | michalz joins (~michalz@185.246.207.197) |
| 06:19:12 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 06:19:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:20:09 | × | jreicher quits (~user@user/jreicher) (Read error: Connection reset by peer) |
| 06:21:08 | → | jreicher joins (~user@user/jreicher) |
| 06:23:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 06:28:46 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 256 seconds) |
| 06:29:22 | → | Sgeo_ joins (~Sgeo@user/sgeo) |
| 06:30:37 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 264 seconds) |
| 06:34:55 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:38:39 | → | Pixi joins (~Pixi@user/pixi) |
| 06:41:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 06:42:46 | × | jreicher quits (~user@user/jreicher) (Quit: brb) |
| 06:49:05 | × | trickard__ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 06:49:18 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 06:49:35 | → | jreicher joins (~user@user/jreicher) |
| 06:52:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:57:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 06:58:40 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 06:59:44 | → | poscat joins (~poscat@user/poscat) |
| 07:02:11 | × | Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:02:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:07:17 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 07:08:48 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 07:09:28 | → | poscat joins (~poscat@user/poscat) |
| 07:11:16 | × | craunts795335385 quits (~craunts@175.176.18.204) (Quit: The Lounge - https://thelounge.chat) |
| 07:18:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:22:24 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 07:22:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 07:26:26 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 07:26:42 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 07:28:49 | × | annamalai quits (~annamalai@157.32.194.69) (Ping timeout: 264 seconds) |
| 07:29:27 | × | jreicher quits (~user@user/jreicher) (Quit: brb) |
| 07:30:12 | → | jreicher joins (~user@user/jreicher) |
| 07:33:01 | × | bliminse quits (~bliminse@user/bliminse) (Quit: leaving) |
| 07:33:12 | sprout_ | is now known as sprout |
| 07:33:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:34:57 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 07:38:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 07:47:16 | × | jreicher quits (~user@user/jreicher) (Quit: brb) |
| 07:47:58 | → | jreicher joins (~user@user/jreicher) |
| 07:48:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:48:54 | → | bliminse joins (~bliminse@user/bliminse) |
| 07:50:42 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 07:53:07 | × | Googulator93 quits (~Googulato@2a01-036d-0106-0180-68e2-7394-b68d-da19.pool6.digikabel.hu) (Ping timeout: 250 seconds) |
| 07:53:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 08:03:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:04:04 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:06:40 | → | vektor73 joins (~vektor@2a02:b98:8a00:6b00:c51f:7bef:7501:f469) |
| 08:08:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 08:13:01 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 08:14:42 | → | annamalai joins (~annamalai@157.32.197.187) |
| 08:18:08 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 256 seconds) |
| 08:19:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:26:03 | × | vektor73 quits (~vektor@2a02:b98:8a00:6b00:c51f:7bef:7501:f469) (Quit: Client closed) |
| 08:26:04 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 08:36:49 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 256 seconds) |
| 08:37:11 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:40:20 | → | tromp joins (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) |
| 08:45:16 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 09:04:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 09:06:19 | → | mreh joins (~matthew@host86-146-25-125.range86-146.btcentralplus.com) |
| 09:07:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 09:13:45 | × | jreicher quits (~user@user/jreicher) (Quit: Last restart) |
| 09:14:27 | → | jreicher joins (~user@user/jreicher) |
| 09:21:36 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 09:24:13 | → | Googulator93 joins (~Googulato@team.broadbit.hu) |
| 09:24:40 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 09:24:54 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 09:28:10 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:28:23 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 256 seconds) |
| 09:30:18 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
| 09:30:56 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 09:34:09 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 09:35:03 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 09:35:17 | × | Inline quits (~inlinE@2001-4dd7-ae97-0-4674-ae6d-2607-c022.ipv6dyn.netcologne.de) (Remote host closed the connection) |
| 09:37:30 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 09:38:48 | → | acidjnk joins (~acidjnk@p200300d6e717192040ac95c287188d84.dip0.t-ipconnect.de) |
| 09:42:15 | → | j1n37 joins (~j1n37@user/j1n37) |
| 09:45:28 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 09:49:18 | → | __monty__ joins (~toonn@user/toonn) |
| 09:55:36 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 256 seconds) |
| 09:58:53 | × | Googulator93 quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 09:59:13 | → | Googulator93 joins (~Googulato@team.broadbit.hu) |
| 10:01:14 | → | Taneb joins (~username@host-95-251-57-201.retail.telecomitalia.it) |
| 10:10:34 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Ping timeout: 255 seconds) |
| 10:10:51 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 10:11:45 | × | ubert quits (~Thunderbi@178.165.175.248.wireless.dyn.drei.com) (Quit: ubert) |
| 10:12:01 | → | ubert joins (~Thunderbi@178.165.175.248.wireless.dyn.drei.com) |
| 10:20:29 | → | myxokephale joins (~myxos@2001:579:8380:f20:bec3:508e:c208:bae7) |
| 10:23:35 | × | myxos quits (~myxos@2001:579:8380:f20:1406:c18d:98b3:27d1) (Ping timeout: 265 seconds) |
| 10:33:00 | → | zeenk joins (~zeenk@82.78.233.217) |
| 10:38:22 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 10:42:51 | × | tromp quits (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:50:50 | → | tromp joins (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) |
| 11:07:46 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.10.1 - https://znc.in) |
| 11:09:00 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 11:12:00 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 11:32:49 | × | Googulator93 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 11:38:02 | trickard_ | is now known as trickard |
| 11:41:59 | × | Vajb quits (~Vajb@n60ck02t8pyq870qtsc-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 11:43:08 | → | Vajb joins (~Vajb@n5zpdagy4txm6luukqy-1.v6.elisa-mobile.fi) |
| 11:45:31 | × | superbil quits (~superbil@114-32-231-70.hinet-ip.hinet.net) (Ping timeout: 240 seconds) |
| 11:47:23 | → | superbil joins (~superbil@114-32-231-70.hinet-ip.hinet.net) |
| 11:52:01 | × | superbil quits (~superbil@114-32-231-70.hinet-ip.hinet.net) (Ping timeout: 240 seconds) |
| 11:52:24 | → | superbil joins (~superbil@114-32-231-70.hinet-ip.hinet.net) |
| 11:54:34 | → | Nachtgespenst joins (~user@user/siracusa) |
| 11:54:55 | × | Vajb quits (~Vajb@n5zpdagy4txm6luukqy-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds) |
| 11:55:50 | → | Vajb joins (~Vajb@n60ck02t8pyq870qtsc-1.v6.elisa-mobile.fi) |
| 12:20:25 | × | trickard quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 12:20:37 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 12:22:54 | → | Googulator93 joins (~Googulato@team.broadbit.hu) |
| 12:26:29 | × | wbrawner quits (~wbrawner@129.146.105.153) (Remote host closed the connection) |
| 12:26:46 | → | wbrawner joins (~wbrawner@129.146.105.153) |
| 12:29:00 | → | acarrico1 joins (~acarrico@pppoe-209-99-223-51.greenmountainaccess.net) |
| 12:30:37 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Ping timeout: 264 seconds) |
| 12:31:27 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 12:31:29 | → | xff0x joins (~xff0x@2405:6580:b080:900:6f96:f3d0:3ad2:3838) |
| 12:36:13 | × | lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 246 seconds) |
| 12:39:57 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 12:56:10 | × | tromp quits (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:56:29 | → | fp joins (~Thunderbi@wireless-86-50-140-45.open.aalto.fi) |
| 13:02:26 | → | tromp joins (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) |
| 13:26:05 | → | DetourNe- joins (~DetourNet@user/DetourNetworkUK) |
| 13:26:31 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 13:28:19 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 13:28:24 | DetourNe- | is now known as DetourNetworkUK |
| 13:32:38 | Googulator93 | is now known as Googulator |
| 13:33:43 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 13:34:11 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 13:39:45 | trickard_ | is now known as trickard |
| 13:42:30 | × | p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.10.1 - https://znc.in) |
| 13:50:59 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 13:54:18 | → | p3n joins (~p3n@217.198.124.246) |
| 13:54:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 14:04:21 | × | fp quits (~Thunderbi@wireless-86-50-140-45.open.aalto.fi) (Ping timeout: 256 seconds) |
| 14:06:53 | → | gorignak joins (~gorignak@user/gorignak) |
| 14:07:31 | × | annamalai quits (~annamalai@157.32.197.187) (Remote host closed the connection) |
| 14:09:47 | → | annamalai joins (~annamalai@157.32.201.89) |
| 14:11:04 | → | fp joins (~Thunderbi@2001:708:150:10::7e06) |
| 14:13:46 | → | fp1 joins (~Thunderbi@wireless-86-50-140-45.open.aalto.fi) |
| 14:13:50 | × | fp quits (~Thunderbi@2001:708:150:10::7e06) (Client Quit) |
| 14:13:51 | fp1 | is now known as fp |
| 14:36:30 | <bwe> | Why does `Parsec Void Text` has no Eq? I am asking because I generate parsers and want to create unit tests, however realise now that Eq is missing... |
| 14:37:15 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:37:43 | <merijn> | bwe: Because it's basically a function from text to a result? |
| 14:38:03 | <merijn> | bwe: And identity on functions is notoriously hard problem, assuming you can even define what that means |
| 14:38:13 | <merijn> | @quote strings.to.things |
| 14:38:13 | <lambdabot> | No quotes match. Sorry. |
| 14:38:17 | <merijn> | @quote string.to.things |
| 14:38:18 | <lambdabot> | No quotes match. Maybe you made a typo? |
| 14:38:19 | <merijn> | aww |
| 14:38:24 | <merijn> | lambdabot, quit failing me |
| 14:40:14 | <merijn> | @quote parser.for.things |
| 14:40:14 | <lambdabot> | Dr._Seuss says: `type Parser a = String -> [(a,String)]' -- "A Parser for Things / is a function from Strings / to Lists of Pairs / of Things and Strings!" -- <https://willamette.edu/~fruehr/haskell/ |
| 14:40:14 | <lambdabot> | seuss.html> |
| 14:40:17 | <merijn> | There we go |
| 14:45:15 | <merijn> | bwe: If you think about `Parsec Void Text e a` being approximately `Text -> Either e a` it's fairly self-explanatory why Eq does not exist. |
| 14:45:39 | <merijn> | Well, I guess `Text -> Either e (a, Text)`, but you get the idea |
| 14:46:03 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 14:49:33 | × | trickard quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 14:49:48 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 14:52:49 | → | pterobull1 joins (~Thunderbi@S0106f8790a53b594.cg.shawcable.net) |
| 14:54:19 | × | pterobull1 quits (~Thunderbi@S0106f8790a53b594.cg.shawcable.net) (Client Quit) |
| 15:02:43 | × | acarrico1 quits (~acarrico@pppoe-209-99-223-51.greenmountainaccess.net) (Ping timeout: 256 seconds) |
| 15:04:03 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds) |
| 15:07:07 | → | pterobull joins (~Thunderbi@S0106f8790a53b594.cg.shawcable.net) |
| 15:07:46 | × | fp quits (~Thunderbi@wireless-86-50-140-45.open.aalto.fi) (Ping timeout: 246 seconds) |
| 15:10:56 | trickard_ | is now known as trickard |
| 15:11:35 | × | pterobull quits (~Thunderbi@S0106f8790a53b594.cg.shawcable.net) (Quit: pterobull) |
| 15:13:50 | → | pterobul joins (~Thunderbi@S0106f8790a53b594.cg.shawcable.net) |
| 15:15:12 | → | comerijn joins (~merijn@77.242.116.146) |
| 15:15:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Read error: Connection reset by peer) |
| 15:20:41 | → | spew joins (~spew@user/spew) |
| 15:23:42 | × | Taneb quits (~username@host-95-251-57-201.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
| 15:25:18 | × | spew quits (~spew@user/spew) (Client Quit) |
| 15:29:16 | × | YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:9f50:13f1:779b:4aa6) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
| 15:29:36 | → | YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:5e58:dbf4:c0b:fbb3) |
| 15:30:09 | → | spew joins (~spew@user/spew) |
| 15:32:00 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 15:37:57 | × | pterobul quits (~Thunderbi@S0106f8790a53b594.cg.shawcable.net) (Changing host) |
| 15:37:57 | → | pterobul joins (~Thunderbi@user/pterobul) |
| 15:48:18 | × | ubert quits (~Thunderbi@178.165.175.248.wireless.dyn.drei.com) (Ping timeout: 244 seconds) |
| 15:48:38 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 15:50:49 | → | megeve joins (sid727922@id-727922.lymington.irccloud.com) |
| 15:52:54 | <dolio> | jreicher: In unison, we have a sort of algebraic effects that shift/reset is not enough to (easily) support. The difference is that you can have 'shallow' handlers that don't handle all the occurrences of an effect in the scope they're installed onto. That sort of corresponds to a single `reset` not guarding all the `shift` occurrences in its scope.... |
| 15:53:31 | <dolio> | However, I think the vast majority of the time, people actually do define the 'deep' handler which does correspond to shift/reset. |
| 15:53:45 | <lucabtz> | is there a way to have something similar to algebraic effects in haskell? |
| 15:54:23 | <comerijn> | lucabtz: Only about a gazillion libraries |
| 15:54:29 | <lucabtz> | cool |
| 15:57:15 | <kuribas> | lol |
| 15:57:54 | <[exa]> | the only thing more vast than the number of effect libraries in hackage is their accumulated time since last upload |
| 15:58:09 | <[exa]> | lucabtz: you might like heftia |
| 15:58:20 | <dolio> | mtl is like algebraic effects. |
| 15:58:54 | <kuribas> | I still don't see the point of algebraic effects. |
| 16:00:18 | <kuribas> | I could do "myFunction :: Monad m => (m UTCTime) -> ... -> m Result", I am now abstracted over currentTime. |
| 16:01:00 | <kuribas> | if possible just "myFunction :: UTCTime -> ... -> Result" |
| 16:01:01 | <geekosaur> | I see the point (better composition of effects ability to e.g. have two state effects and select by type) but I still am concerned that some effects aren't algebraic and pretending they are will just caause possibly subtle or corner-case breakage |
| 16:01:14 | <comerijn> | What geekosaur said :p |
| 16:01:59 | <geekosaur> | mtl is very careful to forbid combinations of effects that aren't safe |
| 16:02:39 | <[exa]> | kuribas: imagine you have so much effect kinds that you think that an algebra over them would help you. |
| 16:03:37 | <kuribas> | [exa]: I don't even see why I would want that... |
| 16:03:59 | <comerijn> | Sometimes you gotta deal with things you don't want :p |
| 16:04:02 | <kuribas> | I'd try to better separate pure from effectul code. |
| 16:04:06 | <comerijn> | Because the alternative is worse |
| 16:04:20 | <comerijn> | kuribas: I mean, that's nice and may work for you, but that doesn't mean it works for everything |
| 16:04:42 | <kuribas> | comerijn: sure, maybe I haven't gotten a usecase where I would need it. |
| 16:06:49 | <kuribas> | The only part where it sucks is in logging. |
| 16:07:08 | <kuribas> | Because pure functions become IO due to logging. |
| 16:09:41 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 16:13:30 | <lucabtz> | [exa] i dont know a lot about algebraic effects but i dont see the point like kuribas |
| 16:18:01 | × | Googulator quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 16:18:18 | → | Googulator joins (~Googulato@team.broadbit.hu) |
| 16:19:06 | <dolio> | I think it's more like there are many small 'points.' |
| 16:20:48 | <dolio> | Like, Either is a bad way to implement exceptions, and assuming you use continuations to support your algebraic effects, the corresponding algebraic effect is automatically better, I think. |
| 16:24:49 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 16:25:06 | → | DetourNe- joins (DetourNetw@user/DetourNetworkUK) |
| 16:25:49 | × | spew quits (~spew@user/spew) (Quit: WeeChat 4.6.3) |
| 16:26:23 | <dolio> | And then having that baked in can influence the large scale design of things. You can do something better than Either in Haskell, but how many things are you going to have to wrap from returning Either? |
| 16:26:43 | <dolio> | What if they could be designed the other way to begin with? |
| 16:27:22 | DetourNe- | is now known as DetourNetworkUK |
| 16:28:02 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 16:28:36 | <kuribas> | I just use IO exceptions |
| 16:28:51 | <kuribas> | For exceptional things. Either for expected things (parser error, etc...). |
| 16:29:08 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 16:29:19 | <comerijn> | I'd rather have checked IO exceptions, though |
| 16:29:22 | Lord_of_Life_ | is now known as Lord_of_Life |
| 16:29:50 | <dolio> | 'Just dump everything in IO' doesn't sound like a better answer. |
| 16:30:23 | × | lucabtz quits (~lucabtz@user/lucabtz) (Remote host closed the connection) |
| 16:30:31 | <kuribas> | RIO is just fine for most of my applications. |
| 16:30:41 | → | Googulator44 joins (~Googulato@team.broadbit.hu) |
| 16:30:46 | → | Inline joins (~inlinE@2001-4dd7-ae97-0-4674-ae6d-2607-c022.ipv6dyn.netcologne.de) |
| 16:30:49 | <kuribas> | Still much better than a mess of global state in other languages. |
| 16:30:52 | × | DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 16:31:11 | <dolio> | I mean, that is how you get well performing exceptions in GHC, but what if you could have catchable exceptions that performed that well, but were sound to use outside of IO? |
| 16:31:40 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 16:33:59 | × | Googulator quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 16:34:14 | → | DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK) |
| 16:38:42 | <haskellbridge> | <loonycyborg> They're in IO only because the order they actually happen in at runtime is undefined. |
| 16:38:59 | → | Anarchos joins (~Anarchos@91-161-254-16.subs.proxad.net) |
| 16:39:26 | <haskellbridge> | <loonycyborg> I think it's possible to have pure exceptions too but then you'd have to get whole list of exceptions that happened, not random one of them |
| 16:39:48 | <haskellbridge> | <loonycyborg> and then items in list can be in different order |
| 16:40:08 | <haskellbridge> | <loonycyborg> so that should be unordered list which isn't a built-in feature in haskell |
| 16:40:42 | → | bggd joins (~bgg@2a01:e0a:819:1510:cb15:dfb4:31e5:1dfe) |
| 16:43:21 | <haskellbridge> | <loonycyborg> In fact having a set(which is a list in no particular order) as a basic builtin type for a language like haskell would make sense I think :P |
| 16:44:21 | × | Googulator44 quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 16:44:28 | <haskellbridge> | <loonycyborg> It's just implementing such containers is generally done via hashing and it just wasn't a widespread thing when haskell was originally designed |
| 16:44:36 | → | Googulator44 joins (~Googulato@team.broadbit.hu) |
| 16:50:49 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:50:50 | → | Googulator16 joins (~Googulato@team.broadbit.hu) |
| 16:52:07 | → | img joins (~img@user/img) |
| 16:52:15 | <geekosaur> | well, in Haskell's case it had more to do with it being originally intended as a teaching and FP exploration language |
| 16:52:33 | <geekosaur> | I mean, Perl, Python, and even awk already existed when Haskell was designed |
| 16:52:40 | <geekosaur> | and Javascript |
| 16:53:16 | <Leary> | loonycyborg: The issue with pure exceptions in Haskell is undefined evaluation order due to /laziness/. An effect system can easily provide deterministic, pure exception handling, so long as it imposes a strict sequencing of operations. |
| 16:53:55 | × | Googulator44 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 16:53:55 | <comerijn> | geekosaur: What? |
| 16:54:03 | <comerijn> | perl and awk, sure |
| 16:54:09 | <comerijn> | Python's first public release was 1991 |
| 16:54:42 | <comerijn> | So Haskell 1.0 predates it by a year |
| 16:54:46 | → | acarrico1 joins (~acarrico@pppoe-209-99-223-51.greenmountainaccess.net) |
| 16:54:52 | <geekosaur> | python 1.0 and perl 32.0 came out the same week. I was comp.sources.misc moderator at the time and approved both |
| 16:55:28 | <geekosaur> | which made it late 1980s |
| 16:55:28 | <comerijn> | geekosaur: Wikipedia lists "Python implementation began in December 1989.[43] Van Rossum first released it in 1991 as Python 0.9.0" |
| 16:57:44 | <comerijn> | The Haskell Committee started in 1987, predating python and the Haskell 1.0 was 1990. Not sure which compiler was first |
| 16:58:00 | <comerijn> | iirc it was Lennart's compiler in Lazy ML? |
| 16:59:29 | <dolio> | That's the usual story. |
| 16:59:29 | <comerijn> | And Javascript coming out in 1995 was waaaay later |
| 16:59:58 | <kuribas> | I wish I could write production code in idris. |
| 17:00:32 | <comerijn> | I'm also confused by the qualifier "even" awk, as if awk is more modern than Perl and Python |
| 17:00:49 | <comerijn> | Given that the first awk is from 1977 |
| 17:02:04 | <haskellbridge> | <geekosaur> Mm right about ja |
| 17:02:37 | <haskellbridge> | <Zemyla> Perl 32.0? I thought they were still working on Perl 6. |
| 17:02:52 | <haskellbridge> | <geekosaur> Sorry I'm on my way to the store (sister's driving) |
| 17:03:08 | × | Fijxu quits (~Fijxu@user/fijxu) (Ping timeout: 256 seconds) |
| 17:03:09 | × | tromp quits (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:03:23 | <haskellbridge> | <geekosaur> 3.0 not typing well |
| 17:03:30 | <comerijn> | This should be obvious, given javascript was named after java, which is substantially newer than both Python and Haskell (since Java cribbed immutable strings from python, and python cribbed list comprehensions from haskell) |
| 17:03:32 | <dolio> | Anyhow, back when I was working on ermine, I recall one thing we did was unsafe coerce exceptions into ST to try to borrow the more efficient handling that IO has. |
| 17:03:41 | <haskellbridge> | <geekosaur> Bad time for me to be trying to do this |
| 17:03:46 | <dolio> | We never really got to fruition with that implementation, though. |
| 17:04:01 | <dolio> | But, like, what if you had that and it wasn't "you shouldn't be doing this." |
| 17:05:43 | → | Googulator4 joins (~Googulato@team.broadbit.hu) |
| 17:05:47 | <dolio> | You probably do get that with the continuation-based algebraic effect things in Haskell. Because it's doing sort of the same thing for exceptions. |
| 17:05:55 | <haskellbridge> | <geekosaur> But I'm pretty sure Perl and something claiming to be "Python" were late 80s |
| 17:07:14 | <haskellbridge> | <loonycyborg> Leary: strict sequencing isn't necessarily a good thing. I'd prefer to embrace laziness(at least by default) and adapt to it. |
| 17:08:07 | <haskellbridge> | <loonycyborg> And I see a way for that like this: gather all exceptions that happened into an unordered list and then pattern-match on it to find exception you want to handle. |
| 17:09:05 | × | Googulator16 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 17:10:12 | × | polykernel quits (~polykerne@user/polykernel) (Remote host closed the connection) |
| 17:10:35 | → | polykernel joins (~polykerne@user/polykernel) |
| 17:15:42 | → | Googulator85 joins (~Googulato@team.broadbit.hu) |
| 17:16:16 | <jreicher> | dolio: is unison lazy? Since monochrom put me on to the question I've been trying to find examples of an implementation (or formal semantics) for delimited continuation operators on a lazy machine, as I think there does need to be something preventing a shift/control/etc "crossing" a reset/prompt/etc during substitution. |
| 17:16:48 | <dolio> | No, it's not lazy. |
| 17:17:38 | → | sindu joins (~sindu@2.151.25.127.tmi.telenormobil.no) |
| 17:18:04 | → | tromp joins (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) |
| 17:18:16 | <haskellbridge> | <Zemyla> Okay, I'm trying to figure out how much performance I'd get if I made a mutable Seq in ST. |
| 17:19:03 | × | Googulator4 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 17:19:30 | <haskellbridge> | <Zemyla> freeze would be safe and O(log n). |
| 17:19:30 | <dolio> | Delimited continuations are effectful, so what happens if you allow them with laziness gets difficult to think about. And you'd have to commit to a particular lazy evaluation order, I think. |
| 17:20:03 | <dolio> | Unlike Haskell where the exact order is somewhat unspecified (which can be an advantage). |
| 17:20:24 | × | polykernel quits (~polykerne@user/polykernel) (Remote host closed the connection) |
| 17:20:44 | <comerijn> | dolio: It's not "somewhat unspecified" it's explicitly undefined |
| 17:24:10 | <haskellbridge> | <Zemyla> You wouldn't have to de/reconstruct the digits. |
| 17:24:14 | <jreicher> | dolio: No, I'm not sure they are inherently effectful. From what I can see you can still have church-rosser for delimited continuations |
| 17:25:31 | × | acidjnk quits (~acidjnk@p200300d6e717192040ac95c287188d84.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 17:28:46 | × | tromp quits (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:30:28 | → | tromp joins (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) |
| 17:30:41 | → | Googulator89 joins (~Googulato@team.broadbit.hu) |
| 17:32:43 | <dolio> | reset ((shift _. 1) + (shift _. 2)) |
| 17:32:49 | <dolio> | Is that 1 or 2? |
| 17:33:47 | × | Googulator85 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 17:35:18 | <haskellbridge> | <Zemyla> Also, I'm wondering if you'd get any kind of significant savings by having sized :: Sized a => a -> Int# instead of a -> Int. |
| 17:36:05 | <Leary> | loonycyborg: When an exception is raised, it prevents further execution. As such, there will only ever be one exception to handle. The issue is that it's undefined /which/ exception that will be. |
| 17:36:30 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 17:38:04 | <haskellbridge> | <loonycyborg> It's not necessarily true for particular runtime. They still can evaluate other parts of complex value even if got exception from one of the parts |
| 17:38:09 | <jreicher> | dolio: I don't know, but I can see in the literature references to delimited continuations with church-rosser. I'm trying to figure out how they work now. They build on lambda-mu, but even lambda-mu doesn't have church-rosser I think. |
| 17:39:24 | <haskellbridge> | <loonycyborg> You can implement exceptions as any type implicitly becoming Either |
| 17:40:06 | × | tromp quits (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:41:43 | <haskellbridge> | <loonycyborg> That's the whole deal with "pure" exceptions, all parts of evaluation chain exist no matter what. But runtime can evaluate them in any order |
| 17:42:03 | <dolio> | The only ways I know of off hand to fix this are 1) enforce linear use of continuations and 2) fix an evaluation order so that Church-Rosser is a vacuous property. |
| 17:42:13 | <haskellbridge> | <loonycyborg> if runtime picks just one exception among them then whole calculation isn't pure anymore |
| 17:42:34 | <haskellbridge> | <loonycyborg> but if it takes all in no particular order it still can be pure |
| 17:42:41 | <dolio> | But maybe there are others. |
| 17:43:08 | → | tromp joins (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) |
| 17:43:46 | <haskellbridge> | <loonycyborg> Like exceptions will be as deterministic as non-exceptional values |
| 17:45:21 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 17:45:35 | × | acarrico1 quits (~acarrico@pppoe-209-99-223-51.greenmountainaccess.net) (Ping timeout: 244 seconds) |
| 17:45:54 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 17:48:26 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 17:52:50 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 17:55:47 | → | Googulator43 joins (~Googulato@team.broadbit.hu) |
| 17:57:24 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:58:55 | × | Googulator89 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:01:03 | <haskellbridge> | <Zemyla> In practice, how much does it matter that exceptions are non-deterministic? If they show up in a pure computation, then that computation was hosed anyway. If they show up in non-parallel IO, then it's deterministic. And if they show up in parallel IO, then you either handled them incorrectly or it was hosed. |
| 18:02:50 | <davean> | wait who said it was deterministic if it showed up in non-parallel IO? |
| 18:03:01 | <davean> | and what do you mean that the computation for pure computation was hosed anyway? |
| 18:03:11 | <davean> | You could just rerun it and not get the exception. |
| 18:03:29 | <haskellbridge> | <Zemyla> If you have quot 1 0 + quot minBound (-1), does it really matter whether it threw a division by zero or an overflow? |
| 18:04:05 | <davean> | Yes, that says something about what type you're in. More importantly thoguh it matters a LOT if what it threw was OutOfMemory |
| 18:04:23 | <davean> | or AsyncException |
| 18:04:26 | <davean> | or ... |
| 18:06:03 | → | Googulator78 joins (~Googulato@team.broadbit.hu) |
| 18:08:26 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 18:09:19 | × | Googulator43 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:09:34 | × | tromp quits (~textual@2001:1c00:3487:1b00:f8db:b16d:6074:eae9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:10:32 | → | eron joins (~eron@187.56.155.181) |
| 18:10:47 | → | Googulator15 joins (~Googulato@team.broadbit.hu) |
| 18:14:05 | × | Googulator78 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:16:02 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 18:20:38 | → | myxos joins (~myxos@2001:579:8380:f20:e1c:e3b9:dc1a:668f) |
| 18:22:17 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 18:23:04 | × | myxokephale quits (~myxos@2001:579:8380:f20:bec3:508e:c208:bae7) (Ping timeout: 246 seconds) |
| 18:23:21 | <dolio> | Zemyla: The problem is catching them. |
| 18:25:20 | <jreicher> | dolio: I think the problem in your example is that the "handler" is given in the shift operator. The problem is solved if it's given in the reset operator. Then there can be only one handler per capture scope. |
| 18:25:39 | → | Googulator53 joins (~Googulato@team.broadbit.hu) |
| 18:26:07 | <jreicher> | Doesn't mean there aren't still other problems though |
| 18:26:34 | <dolio> | Algebraic effects have handlers that let you handle the effects, but then you need the effects to have a deterministic order to get deterministic handler results. |
| 18:27:55 | <jreicher> | That's what I would expect. I'm still thinking it through, and I'm still trying to figure out how the different calculi and operator designs relate. |
| 18:28:49 | × | Googulator15 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:28:55 | <jreicher> | Have to head off for a bit. Thanks heaps for your thoughts; helps a lot. |
| 18:30:55 | <dolio> | My example is just using shift/reset to implement exceptions. |
| 18:31:18 | <dolio> | The exact same problem happens if you use algebraic effects for them. |
| 18:31:55 | <dolio> | handle (raise 1 + raise 2) with cases {r} -> r ; {raise n -> _} -> n |
| 18:34:05 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 18:39:16 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 18:46:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:48:45 | × | Googulator53 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:48:56 | → | humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 18:49:39 | → | humasec__ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 18:49:49 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds) |
| 18:54:06 | × | eron quits (~eron@187.56.155.181) (Quit: Client closed) |
| 18:54:35 | → | polykernel joins (~polykerne@user/polykernel) |
| 18:55:04 | × | humasec__ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 256 seconds) |
| 18:56:16 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 19:00:08 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 19:04:09 | <haskellbridge> | <loonycyborg> davean: I don't think you'd be ever able to handle out of memory error as a pure exception. Because if results are determined by something other than values themselves(like where are they stored) then things are most definitely not pure anymore. |
| 19:04:47 | <haskellbridge> | <loonycyborg> While something like integer overflow can be handled as a pure exception. Because same calculation with same values will always cause overflow |
| 19:06:11 | <haskellbridge> | <loonycyborg> Basically if same calculation gives different results when repeated then it's not pure. |
| 19:09:34 | <haskellbridge> | <loonycyborg> If you have a tuple with two values that both cause some overflow exception or other deterministic condition like that then you still can get a deterministic list of those exceptions and entire thing will be pure because it depends only on input values |
| 19:09:42 | <davean> | Leary: you can't handle them in the pure code, but you CAN handle them in the IO and then retry |
| 19:10:15 | <haskellbridge> | <loonycyborg> while memory overflow handling depends on other parameters that we don't track so it cannot ever be pure |
| 19:12:43 | <haskellbridge> | <loonycyborg> I guess we could track memory as extra value(s) and make things pure that way but that would be just excessively complex :P |
| 19:14:16 | <davean> | I mean you can see it failed, free memory, and then try again |
| 19:15:45 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 19:18:38 | → | Square3 joins (~Square@user/square) |
| 19:21:40 | × | humasect_ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 19:21:55 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 19:24:51 | <haskellbridge> | <loonycyborg> This will have to be done in IO monad in any case. |
| 19:25:21 | <haskellbridge> | <loonycyborg> Unless runtime handles it transparently for the program. |
| 19:25:24 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 260 seconds) |
| 19:27:33 | <haskellbridge> | <loonycyborg> Handling out-of-memory conditions is notoriously hard problem. In this OOM state you can't rely on any functions that allocate more memory for any reason. |
| 19:27:49 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:31:30 | × | notzmv quits (~umar@user/notzmv) (Ping timeout: 244 seconds) |
| 19:32:18 | <haskellbridge> | <loonycyborg> In practice any OOM handlers don't get much workout either. If PC runs out of memory OS either moves things to swapfile or kills some processes with signal that can't be trapped |
| 19:32:46 | <davean> | Actually there is a clear signal if you don't have overcommit, you get an alloc fail |
| 19:34:03 | <davean> | Lots of quality software handles these signals. Thats not the point though, the point is that exceptions in pure code *are not deterministic* |
| 19:36:24 | <haskellbridge> | <loonycyborg> Some of them most definitely aren't |
| 19:38:21 | <haskellbridge> | <loonycyborg> And trying to handle them purely would violate all sort of things like referential transparency :P |
| 19:39:10 | <haskellbridge> | <loonycyborg> But things like integer overflow and divide by zero are deterministic and can be considered separate form of resulting value. |
| 19:39:43 | → | eron joins (~eron@187.56.155.181) |
| 19:40:31 | × | mreh quits (~matthew@host86-146-25-125.range86-146.btcentralplus.com) (Quit: Lost terminal) |
| 19:44:07 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 19:52:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 19:53:23 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:53:27 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 19:55:44 | → | ZLima12_ joins (~zlima12@user/meow/ZLima12) |
| 19:56:19 | × | ZLima12 quits (~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds) |
| 19:57:57 | × | deptype__ quits (~deptype@124.123.128.236) (Ping timeout: 256 seconds) |
| 19:58:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 20:00:12 | → | deptype joins (~deptype@2406:b400:3a:73c2:10ea:4f19:b27b:3bbc) |
| 20:03:32 | <EvanR> | tracking memory usage in the type system is a possibility. Probably not in haskell which relies heavily on allocating willy nilly |
| 20:04:12 | <EvanR> | a simple version would simply not run a program known to need X memory if you can't reserve X memory at startup |
| 20:05:20 | <EvanR> | it sounds infeasible until you think about how a web service handler is defacto designed with a whole page of limits and guardrails |
| 20:06:26 | <EvanR> | maximum request body, maximum numeric field values, assuming the body can be decoded, which itself has limits baked into the parser |
| 20:06:31 | → | fp joins (~Thunderbi@2001-14ba-6e24-3000--19a.rev.dnainternet.fi) |
| 20:06:47 | <EvanR> | maximum number of elements submitted in the request |
| 20:07:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:08:42 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 20:11:47 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 20:13:03 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 20:13:53 | → | polykernel_ joins (~polykerne@user/polykernel) |
| 20:14:12 | → | shr\ke joins (~shrike@user/paxhumana) |
| 20:14:12 | × | shr\ke quits (~shrike@user/paxhumana) (Changing host) |
| 20:14:12 | → | shr\ke joins (~shrike@user/shrke:31298) |
| 20:16:06 | × | polykernel quits (~polykerne@user/polykernel) (Ping timeout: 256 seconds) |
| 20:16:06 | polykernel_ | is now known as polykernel |
| 20:16:13 | × | Square3 quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 20:20:35 | × | deptype quits (~deptype@2406:b400:3a:73c2:10ea:4f19:b27b:3bbc) (Remote host closed the connection) |
| 20:20:50 | → | deptype joins (~deptype@2406:b400:3a:73c2:566e:3c9f:8ac3:f831) |
| 20:29:53 | <haskellbridge> | <Zemyla> Yeah, it'd definitely be a different language, one more like Rust. |
| 20:34:42 | × | eron quits (~eron@187.56.155.181) (Quit: Client closed) |
| 20:35:41 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 20:40:40 | × | deptype quits (~deptype@2406:b400:3a:73c2:566e:3c9f:8ac3:f831) (Remote host closed the connection) |
| 20:40:53 | → | deptype joins (~deptype@2406:b400:3a:73c2:cdc4:150f:4f12:1dd1) |
| 20:44:51 | → | karenw joins (~karenw@user/karenw) |
| 20:47:49 | × | fp quits (~Thunderbi@2001-14ba-6e24-3000--19a.rev.dnainternet.fi) (Quit: fp) |
| 20:47:52 | fgarcia | causes a thunk |
| 20:48:48 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Read error: Connection reset by peer) |
| 20:49:04 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 20:51:12 | → | djspacewhale joins (~djspacewh@user/djspacewhale) |
| 20:51:23 | tomsmeding | forces fgarcia's thunk |
| 20:52:45 | → | humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 20:52:58 | × | humasect_ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 20:54:09 | <dolio> | If you handle an OOM error in pure code, maybe some memory has already been freed so it's no longer a problem. :) |
| 20:54:37 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 20:55:11 | × | td_ quits (~td@i53870933.versanet.de) (Ping timeout: 256 seconds) |
| 20:55:37 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 20:56:46 | → | Fijxu_ joins (~Fijxu@user/fijxu) |
| 20:56:53 | <dolio> | Anyhow, the point isn't really to catch those kind of exceptions. The point is that some pure-ish code wants to use exceptions, but having them return `Either` or `Maybe` for that is a bad implementation. |
| 20:57:07 | → | td_ joins (~td@i5387092A.versanet.de) |
| 20:57:11 | gentauro_ | is now known as gentauro |
| 20:57:54 | <davean> | loonycyborg: We *already lack referential transparency* because of the non-determinism of exceptions. |
| 20:57:56 | × | gentauro quits (~gentauro@91.226.144.99) (Changing host) |
| 20:57:56 | → | gentauro joins (~gentauro@user/gentauro) |
| 20:58:16 | <dolio> | Like, if bounds checked array access causes the result to be a Maybe, that's extra bad. |
| 20:58:28 | <davean> | We only have referntial transparency in a few respects, not all. |
| 20:58:48 | <davean> | Thats litterly how they're a problem |
| 21:01:12 | × | deptype quits (~deptype@2406:b400:3a:73c2:cdc4:150f:4f12:1dd1) (Remote host closed the connection) |
| 21:01:25 | → | deptype joins (~deptype@2406:b400:3a:73c2:6877:dc6f:cb6b:d011) |
| 21:03:51 | × | djspacewhale quits (~djspacewh@user/djspacewhale) (Remote host closed the connection) |
| 21:14:28 | × | michalz quits (~michalz@185.246.207.197) (Remote host closed the connection) |
| 21:15:58 | → | Tuplanolla joins (~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) |
| 21:17:13 | × | karenw quits (~karenw@user/karenw) (Quit: Deep into that darkness peering...) |
| 21:21:14 | × | deptype quits (~deptype@2406:b400:3a:73c2:6877:dc6f:cb6b:d011) (Remote host closed the connection) |
| 21:21:26 | → | deptype joins (~deptype@2406:b400:3a:73c2:bf7a:ffa7:efb4:9422) |
| 21:23:24 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 21:27:47 | × | fgarcia quits (~lei@user/fgarcia) (Quit: Remote host closed the connection) |
| 21:34:13 | → | acidjnk joins (~acidjnk@p200300d6e717192040ac95c287188d84.dip0.t-ipconnect.de) |
| 21:35:45 | → | Googulator53 joins (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) |
| 21:39:58 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 256 seconds) |
| 21:41:16 | × | deptype quits (~deptype@2406:b400:3a:73c2:bf7a:ffa7:efb4:9422) (Remote host closed the connection) |
| 21:41:52 | → | deptype joins (~deptype@2406:b400:3a:73c2:6d41:ff93:4f91:8353) |
| 21:42:32 | → | notzmv joins (~umar@user/notzmv) |
| 21:44:50 | → | polykernel_ joins (~polykerne@user/polykernel) |
| 21:47:23 | × | polykernel quits (~polykerne@user/polykernel) (Ping timeout: 244 seconds) |
| 21:47:23 | polykernel_ | is now known as polykernel |
| 21:49:41 | → | foul_owl joins (~kerry@94.156.149.94) |
| 21:50:56 | <c_wraith> | We just declare referential transparency only applies to non-bottom values because pure code can't distinguish between bottoms anyway. |
| 21:53:02 | <c_wraith> | (and then quietly admit that your Haskell program *can* distinguish between them as soon as you get IO involved, and unsafePerformIO exists, and oh god. What have we done?) |
| 21:59:09 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 22:00:51 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 22:01:18 | × | deptype quits (~deptype@2406:b400:3a:73c2:6d41:ff93:4f91:8353) (Remote host closed the connection) |
| 22:01:31 | → | deptype joins (~deptype@2406:b400:3a:73c2:8cd7:cdeb:acf0:2831) |
| 22:03:01 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 264 seconds) |
| 22:03:17 | <int-e> | c_wraith: we've made the language more useful :P |
| 22:03:45 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 22:03:53 | <c_wraith> | technically it's unsafePerformIO breaking referential transparency there anyway. And that's basically half of the reason it even exists. |
| 22:04:18 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 22:05:47 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 22:06:27 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 22:08:25 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:09:07 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 22:10:15 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 22:10:38 | × | Googulator53 quits (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed) |
| 22:10:39 | → | Googulator16 joins (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) |
| 22:12:41 | <haskellbridge> | <loonycyborg> And compiler can never prove that unsafePerformIO doesn't do something that makes everything else lack any sense |
| 22:12:52 | <haskellbridge> | <loonycyborg> with great power comes great responsibility |
| 22:14:47 | → | looking joins (~looking@2600:4040:2678:9600:b1c4:ced3:242d:1252) |
| 22:15:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:16:50 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds) |
| 22:17:34 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 22:21:21 | × | deptype quits (~deptype@2406:b400:3a:73c2:8cd7:cdeb:acf0:2831) (Remote host closed the connection) |
| 22:21:33 | → | deptype joins (~deptype@2406:b400:3a:73c2:f09b:56e3:42c5:f885) |
| 22:21:39 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 22:22:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 22:25:16 | → | tromp joins (~textual@2001:1c00:3487:1b00:c091:8d2b:d263:84cc) |
| 22:26:14 | <c_wraith> | it doesn't even try. It assumes the programmer got it right. |
| 22:27:01 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 22:28:07 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 256 seconds) |
| 22:29:49 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 246 seconds) |
| 22:31:48 | → | Sgeo_ joins (~Sgeo@user/sgeo) |
| 22:31:59 | → | AlexNoo_ joins (~AlexNoo@5.139.233.178) |
| 22:32:24 | → | Nachtgespenst_ joins (~user@user/siracusa) |
| 22:32:41 | → | AlexZenon_2 joins (~alzenon@5.139.233.178) |
| 22:33:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:33:45 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 22:34:04 | → | collide29541 joins (~collide29@user/collide2954) |
| 22:34:50 | → | zeenk_ joins (~zeenk@82.78.233.217) |
| 22:35:45 | → | Googulator62 joins (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) |
| 22:35:46 | → | malte_ joins (~malte@mal.tc) |
| 22:35:48 | × | Googulator16 quits (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed) |
| 22:35:53 | × | tromp quits (~textual@2001:1c00:3487:1b00:c091:8d2b:d263:84cc) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:37:10 | → | vanishing joins (~vanishing@user/vanishingideal) |
| 22:38:06 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 22:38:12 | → | tzh_ joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 22:38:20 | → | pterobul1 joins (~Thunderbi@user/pterobul) |
| 22:38:43 | → | comerijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:38:49 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 22:39:07 | → | divlamir joins (~divlamir@user/divlamir) |
| 22:39:25 | → | opencircuit_ joins (~quassel@user/opencircuit) |
| 22:39:26 | → | codolio joins (~dolio@130.44.140.168) |
| 22:39:51 | → | p3n_ joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
| 22:40:21 | → | j1n37- joins (~j1n37@user/j1n37) |
| 22:40:37 | × | AlexZenon_2 quits (~alzenon@5.139.233.178) (Ping timeout: 256 seconds) |
| 22:40:37 | × | Anarchos quits (~Anarchos@91-161-254-16.subs.proxad.net) (Ping timeout: 256 seconds) |
| 22:40:37 | × | pterobul quits (~Thunderbi@user/pterobul) (Ping timeout: 256 seconds) |
| 22:40:37 | × | annamalai quits (~annamalai@157.32.201.89) (Ping timeout: 256 seconds) |
| 22:40:37 | × | haskellbridge quits (~hackager@96.28.224.214) (Ping timeout: 256 seconds) |
| 22:40:37 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Ping timeout: 256 seconds) |
| 22:40:37 | × | FANTOM quits (~fantom@212.228.181.156) (Ping timeout: 256 seconds) |
| 22:40:37 | × | foul_owl quits (~kerry@94.156.149.94) (Ping timeout: 256 seconds) |
| 22:40:38 | × | traxex quits (traxex@user/traxex) (Ping timeout: 256 seconds) |
| 22:40:38 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 22:40:38 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 22:40:38 | × | p3n quits (~p3n@217.198.124.246) (Ping timeout: 256 seconds) |
| 22:40:38 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 256 seconds) |
| 22:40:38 | × | dolio quits (~dolio@130.44.140.168) (Ping timeout: 256 seconds) |
| 22:40:38 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 22:40:38 | × | opencircuit quits (~quassel@user/opencircuit) (Ping timeout: 256 seconds) |
| 22:40:39 | pterobul1 | is now known as pterobul |
| 22:41:11 | → | td__ joins (~td@2001:9e8:19c5:1800:ec98:e836:5d0:9712) |
| 22:41:11 | × | deptype quits (~deptype@2406:b400:3a:73c2:f09b:56e3:42c5:f885) (*.net *.split) |
| 22:41:11 | × | td_ quits (~td@i5387092A.versanet.de) (*.net *.split) |
| 22:41:11 | × | shr\ke quits (~shrike@user/shrke:31298) (*.net *.split) |
| 22:41:11 | × | sindu quits (~sindu@2.151.25.127.tmi.telenormobil.no) (*.net *.split) |
| 22:41:12 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split) |
| 22:41:12 | × | Sgeo quits (~Sgeo@user/sgeo) (*.net *.split) |
| 22:41:12 | × | Nachtgespenst quits (~user@user/siracusa) (*.net *.split) |
| 22:41:12 | × | zeenk quits (~zeenk@82.78.233.217) (*.net *.split) |
| 22:41:12 | × | vanishingideal quits (~vanishing@user/vanishingideal) (*.net *.split) |
| 22:41:12 | × | saurcron quits (uid575716@user/saurcron) (*.net *.split) |
| 22:41:12 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (*.net *.split) |
| 22:41:12 | × | mstksg quits (~jle`@2603:8001:3b00:11:7b1b:9c2a:d864:1c7b) (*.net *.split) |
| 22:41:12 | × | malte quits (~malte@mal.tc) (*.net *.split) |
| 22:41:12 | × | collide2954 quits (~collide29@user/collide2954) (*.net *.split) |
| 22:41:12 | × | AlexNoo quits (~AlexNoo@5.139.233.178) (*.net *.split) |
| 22:41:12 | × | EvanR quits (~EvanR@2600:1700:ba69:10:fc0b:ad5:c171:5a72) (*.net *.split) |
| 22:41:12 | × | AlexZenon quits (~alzenon@5.139.233.178) (*.net *.split) |
| 22:41:12 | × | Xe quits (~Xe@perl/impostor/xe) (*.net *.split) |
| 22:41:12 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (*.net *.split) |
| 22:41:12 | × | sp1ff quits (~user@2601:1c2:4c00:6820::8bad) (*.net *.split) |
| 22:41:12 | × | comonad quits (~comonad@p200300d02741a000c6934c09e8b46dfd.dip0.t-ipconnect.de) (*.net *.split) |
| 22:41:12 | × | olivial quits (~benjaminl@user/benjaminl) (*.net *.split) |
| 22:41:12 | × | arahael quits (~wetfoot@user/arahael) (*.net *.split) |
| 22:41:12 | × | elenril quits (~elenril@tutturu.khirnov.net) (*.net *.split) |
| 22:41:12 | × | tuxpaint quits (~a@2600:3c06::f03c:93ff:fea6:ef0e) (*.net *.split) |
| 22:41:14 | malte_ | is now known as malte |
| 22:41:14 | collide29541 | is now known as collide2954 |
| 22:41:16 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 22:41:16 | ChanServ | sets mode +v lambdabot |
| 22:41:21 | Lord_of_Life_ | is now known as Lord_of_Life |
| 22:41:23 | → | shr\ke joins (~shrike@user/paxhumana) |
| 22:41:23 | × | shr\ke quits (~shrike@user/paxhumana) (Changing host) |
| 22:41:23 | → | shr\ke joins (~shrike@user/shrke:31298) |
| 22:41:39 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 22:42:28 | → | deptype joins (~deptype@2406:b400:3a:73c2:f3b6:2436:37c8:5abf) |
| 22:43:11 | → | annamalai joins (~annamalai@2409:4042:4c48:4ad4::9e4a:ad13) |
| 22:43:24 | → | haskellbridge joins (~hackager@96.28.224.214) |
| 22:43:24 | ChanServ | sets mode +v haskellbridge |
| 22:43:41 | → | FANTOM joins (~fantom@212.228.181.156) |
| 22:44:13 | trickard | is now known as 092AAJ4NW |
| 22:44:20 | → | tromp joins (~textual@2001:1c00:3487:1b00:c091:8d2b:d263:84cc) |
| 22:44:22 | → | sindu joins (~sindu@77.19.134.151.tmi.telenormobil.no) |
| 22:44:22 | → | AlexZenon joins (~alzenon@5.139.233.178) |
| 22:44:22 | → | Xe_ joins (~Xe@perl/impostor/xe) |
| 22:44:22 | → | saurcron joins (uid575716@user/saurcron) |
| 22:44:22 | → | mstksg joins (~jle`@2603:8001:3b00:11:7b1b:9c2a:d864:1c7b) |
| 22:44:22 | → | EvanR joins (~EvanR@2600:1700:ba69:10:fc0b:ad5:c171:5a72) |
| 22:44:22 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 22:44:22 | → | sp1ff joins (~user@2601:1c2:4c00:6820::8bad) |
| 22:44:22 | → | comonad joins (~comonad@p200300d02741a000c6934c09e8b46dfd.dip0.t-ipconnect.de) |
| 22:44:22 | → | olivial joins (~benjaminl@user/benjaminl) |
| 22:44:22 | → | arahael joins (~wetfoot@user/arahael) |
| 22:44:22 | → | elenril joins (~elenril@tutturu.khirnov.net) |
| 22:44:22 | → | tuxpaint joins (~a@2600:3c06::f03c:93ff:fea6:ef0e) |
| 22:46:55 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:48:53 | AlexNoo_ | is now known as AlexNoo |
| 22:49:17 | → | edwtjo joins (~edwtjo@fsf/member/edwtjo) |
| 22:51:17 | → | foul_owl joins (~kerry@94.156.149.94) |
| 22:53:17 | × | tzh_ quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: svjks) |
| 22:58:53 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:01:43 | × | pterobul quits (~Thunderbi@user/pterobul) (Quit: pterobul) |
| 23:01:55 | × | deptype quits (~deptype@2406:b400:3a:73c2:f3b6:2436:37c8:5abf) (Remote host closed the connection) |
| 23:02:30 | → | deptype joins (~deptype@2406:b400:3a:73c2:5d92:b87c:3090:d399) |
| 23:03:05 | Nachtgespenst_ | is now known as Nachtgespenst |
| 23:21:37 | → | cgnarne joins (~pk@user/cgnarne) |
| 23:21:57 | × | deptype quits (~deptype@2406:b400:3a:73c2:5d92:b87c:3090:d399) (Remote host closed the connection) |
| 23:22:13 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 264 seconds) |
| 23:22:32 | → | deptype joins (~deptype@2406:b400:3a:73c2:8f81:4d70:d1e9:c538) |
| 23:25:03 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:30:22 | × | Googulator62 quits (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed) |
| 23:30:37 | → | Googulator62 joins (~Googulato@2a01-036d-0106-0180-4475-80b4-5cdc-43d6.pool6.digikabel.hu) |
| 23:33:54 | × | tromp quits (~textual@2001:1c00:3487:1b00:c091:8d2b:d263:84cc) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:34:51 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 23:35:00 | × | sindu quits (~sindu@77.19.134.151.tmi.telenormobil.no) (Ping timeout: 256 seconds) |
| 23:38:43 | × | comerijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 23:42:03 | × | deptype quits (~deptype@2406:b400:3a:73c2:8f81:4d70:d1e9:c538) (Remote host closed the connection) |
| 23:42:18 | → | deptype joins (~deptype@2406:b400:3a:73c2:2054:e5ed:d26e:b2fa) |
| 23:49:25 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:50:26 | → | weary-traveler joins (~user@user/user363627) |
| 23:55:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 23:58:25 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
All times are in UTC on 2025-11-14.