2025-05-21 00:04:14 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-21 00:05:48 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:06:09 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:11:12 +0200 | nurupo | (~nurupo.ga@user/nurupo) (Quit: nurupo.ga) |
2025-05-21 00:11:47 +0200 | nurupo | (~nurupo.ga@user/nurupo) nurupo |
2025-05-21 00:12:27 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:12:51 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:15:38 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 00:17:09 +0200 | xff0x | (~xff0x@om126236151042.32.openmobile.ne.jp) |
2025-05-21 00:18:15 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:18:35 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:21:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-21 00:25:25 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:25:51 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:26:38 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2025-05-21 00:31:23 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 00:31:56 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:32:19 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:36:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-21 00:38:41 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:39:05 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:41:49 +0200 | driib318 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2025-05-21 00:44:15 +0200 | <EvanR> | LAC-Tech, there's imprecise exceptions |
2025-05-21 00:45:04 +0200 | <EvanR> | so technically unknown "pure code" containing no unsafePerformIO is not guaranteed to be deterministic |
2025-05-21 00:46:09 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:46:30 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:47:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 00:48:50 +0200 | <haskellbridge> | <sm> we’re talking about asynchronous exceptions, right ? |
2025-05-21 00:49:11 +0200 | <EvanR> | no |
2025-05-21 00:49:29 +0200 | <EvanR> | like error "foo" + error "bar" |
2025-05-21 00:50:10 +0200 | <geekosaur> | if the compiler can determine that multiple paths all lead to bottoms, it can arbitrarily pick one |
2025-05-21 00:52:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-21 00:52:58 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 00:53:19 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 00:59:17 +0200 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
2025-05-21 01:02:58 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 01:04:26 +0200 | <haskellbridge> | <hellwolf> why is things like whenM not in base? I see that ghc and extra packages have them. |
2025-05-21 01:05:15 +0200 | <haskellbridge> | <hellwolf> I am exploring the design space of caving into monadic bang vs. having these specialized fooM functions. |
2025-05-21 01:05:40 +0200 | <haskellbridge> | <hellwolf> hence the question |
2025-05-21 01:07:39 +0200 | <c_wraith> | Usually something like traverse_ is better anyway. |
2025-05-21 01:07:40 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-21 01:07:44 +0200 | <EvanR> | normal language: bool does a lot of heavy lifting, in haskell I feel like it got relegated to tier 4 control technology. Because you pattern match on more meaningful things most of time |
2025-05-21 01:07:45 +0200 | tolgo | (~Thunderbi@199.115.144.130) |
2025-05-21 01:08:02 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:08:23 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:08:34 +0200 | <c_wraith> | and that's because you generally try to avoid Bool, yeah |
2025-05-21 01:08:56 +0200 | tolgo | (~Thunderbi@199.115.144.130) (Remote host closed the connection) |
2025-05-21 01:10:13 +0200 | <LAC-Tech> | EvanR: interesting. General impression I'm getting is "it's mostly solved by the IO boundaries but there's a few annoying edge cases" |
2025-05-21 01:11:07 +0200 | <EvanR> | haskell is like the jumping off point to new languages with more guarantees rather than the destination |
2025-05-21 01:11:17 +0200 | <c_wraith> | Well, without IO you can't distinguish between different bottoms anyway |
2025-05-21 01:11:51 +0200 | <c_wraith> | So it doesn't really matter what exception is thrown, the value is a bottom. |
2025-05-21 01:11:54 +0200 | <EvanR> | but also if you mutate your perspective enough you can say haskell guarantees this or that ^ |
2025-05-21 01:12:20 +0200 | <EvanR> | the less actual stuff you care about the more abstract haskell gets |
2025-05-21 01:12:59 +0200 | <EvanR> | e.g. next you could just ignore bottom entirely |
2025-05-21 01:14:05 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:14:27 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:18:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 01:20:37 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:20:59 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:22:09 +0200 | <haskellbridge> | <sm> LAC-Tech: I think it’s a recurring topic of language geeks but it doesn’t feel like a common annoyance for people building with haskell, we generally feel pretty confident in the “pure” parts of our code |
2025-05-21 01:23:05 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-05-21 01:23:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-21 01:25:11 +0200 | <haskellbridge> | <sm> eg I’ve been building small-medium Haskell apps for the last 18 years, they feel pretty deterministic |
2025-05-21 01:25:44 +0200 | <LAC-Tech> | the property I am looking for is: same inputs, same outputs. notably this does not preclude mutable data structures, as long as they're internal - I'm not sure "pure" extends that far. system clocks, RNG, IO (maybe RNG falls under IO...), disk, network... that's stuff I'd want to exclude statically, if possible |
2025-05-21 01:26:09 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:26:32 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:26:35 +0200 | Nosrep | (~Nosrep@user/nosrep) (Remote host closed the connection) |
2025-05-21 01:29:35 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-21 01:29:56 +0200 | <haskellbridge> | <sm> Yes, all those require the IO type |
2025-05-21 01:32:17 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:32:27 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-05-21 01:32:44 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:33:23 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-21 01:34:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 01:37:27 +0200 | <LAC-Tech> | aha, I thought so |
2025-05-21 01:39:07 +0200 | sprotte24 | (~sprotte24@p200300d16f05e6007d40c893d0bf5242.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-05-21 01:40:13 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:40:25 +0200 | <haskellbridge> | <sm> Haskell code universally enforces this. There’s an escape hatch called unsafePerformIO which low level libs may use when it’s guaranteed harmless but you can statically check that too |
2025-05-21 01:40:35 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:40:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-21 01:42:47 +0200 | <haskellbridge> | <sm> (or even high level code, I do use it occasionally but that’s a choice) |
2025-05-21 01:44:15 +0200 | <EvanR> | LAC-Tech, it's cool that you can use mutable structures in "pure code" via ST |
2025-05-21 01:44:33 +0200 | <EvanR> | the user of the code doesn't have to know |
2025-05-21 01:46:30 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f69dd73fba2cf3982fe.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2025-05-21 01:47:02 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:47:24 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:52:10 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 01:52:12 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-21 01:52:30 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
2025-05-21 01:54:32 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 01:54:54 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 01:56:45 +0200 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
2025-05-21 01:57:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-05-21 02:02:35 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 02:02:54 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 02:03:46 +0200 | jespada | (~jespada@r190-133-13-145.dialup.adsl.anteldata.net.uy) (Ping timeout: 252 seconds) |
2025-05-21 02:03:50 +0200 | xff0x | (~xff0x@om126236151042.32.openmobile.ne.jp) (Read error: Connection reset by peer) |
2025-05-21 02:07:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 02:08:19 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 245 seconds) |
2025-05-21 02:12:25 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2025-05-21 02:12:29 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 02:12:52 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 02:13:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-21 02:15:04 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2025-05-21 02:15:36 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) chexum |
2025-05-21 02:17:07 +0200 | arahael | (~arahael@user/arahael) arahael |
2025-05-21 02:17:25 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2025-05-21 02:19:00 +0200 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
2025-05-21 02:21:39 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 02:22:02 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 02:23:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-21 02:28:35 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection) |
2025-05-21 02:28:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-21 02:28:57 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-21 02:32:12 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-05-21 02:33:28 +0200 | califax | (~califax@user/califx) califx |