| 2025-12-28 00:01:15 +0000 | hsw | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Ping timeout: 240 seconds) |
| 2025-12-28 00:06:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 00:11:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 00:11:34 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds) |
| 2025-12-28 00:19:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 00:24:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 00:33:04 +0000 | <haskellbridge> | <Liamzee> apparently apple silicon (and psosibly modern ARM in general) is designed to be very resistant to segfaults; double free would throw an error, but not a segfault |
| 2025-12-28 00:33:29 +0000 | <haskellbridge> | <Liamzee> we ended up having to point a pointer at kernel memory just to trigger a segfault |
| 2025-12-28 00:34:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 00:37:06 +0000 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.10.1+deb1 - https://znc.in) |
| 2025-12-28 00:39:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 00:50:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 00:54:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 00:58:18 +0000 | collide2954 | (~collide29@user/collide2954) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-28 01:02:08 +0000 | <geekosaur> | there are malloc libraries which do that (it's not up to the hardware) |
| 2025-12-28 01:03:06 +0000 | <geekosaur> | which doesn't mean you can't segfault on them, just that common errors like double free, use after free, and overreading/writing a block are detected and reported instead of corrupting memory or crashing |
| 2025-12-28 01:04:57 +0000 | <geekosaur> | they're really nice in conjunction with debuggers because you can break on the error entry point and catch things like that immediately instead of after something reveals memory corruption |
| 2025-12-28 01:06:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 01:07:05 +0000 | <geekosaur> | (that said, I think memcheck has superseded all of them…) |
| 2025-12-28 01:10:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 01:11:58 +0000 | <int-e> | presumably this is about ARM's "pointer authentication" feature |
| 2025-12-28 01:12:50 +0000 | Hafydd | (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2025-12-28 01:14:10 +0000 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-28 01:15:46 +0000 | omidmash2 | (~omidmash@user/omidmash) omidmash |
| 2025-12-28 01:16:19 +0000 | collide2954 | (~collide29@user/collide2954) collide2954 |
| 2025-12-28 01:17:35 +0000 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 2025-12-28 01:17:35 +0000 | omidmash2 | omidmash |
| 2025-12-28 01:18:55 +0000 | hsw | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw |
| 2025-12-28 01:19:21 +0000 | hsw_ | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw |
| 2025-12-28 01:19:36 +0000 | hsw_ | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
| 2025-12-28 01:21:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 01:24:44 +0000 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2025-12-28 01:24:56 +0000 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2025-12-28 01:28:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 01:31:49 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 2025-12-28 01:33:34 +0000 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-28 01:38:57 +0000 | Hafydd | (~Hafydd@user/hafydd) Hafydd |
| 2025-12-28 01:39:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 01:40:22 +0000 | Hafydd | (~Hafydd@user/hafydd) (Read error: Connection reset by peer) |
| 2025-12-28 01:40:28 +0000 | Hafydd_ | (~Hafydd@user/hafydd) Hafydd |
| 2025-12-28 01:43:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 01:45:14 +0000 | Tuplanolla | (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-12-28 01:49:35 +0000 | annamalai | (~annamalai@157.32.142.174) (Ping timeout: 240 seconds) |
| 2025-12-28 01:55:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 02:00:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 02:10:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 02:14:10 +0000 | Hafydd_ | (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2025-12-28 02:15:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 02:22:05 +0000 | Hafydd | (~Hafydd@user/hafydd) Hafydd |
| 2025-12-28 02:26:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 02:27:49 +0000 | annamalai | (~annamalai@157.33.228.123) annamalai |
| 2025-12-28 02:31:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 02:42:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 02:47:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 02:53:47 +0000 | acidjnk | (~acidjnk@p200300d6e7171962095fe0be59254d80.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2025-12-28 02:58:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 03:03:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-28 03:05:02 +0000 | op_4 | (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
| 2025-12-28 03:05:39 +0000 | op_4 | (~tslil@user/op-4/x-9116473) op_4 |
| 2025-12-28 03:14:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 03:18:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 03:22:03 +0000 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-28 03:29:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 03:35:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 03:40:15 +0000 | <Leary> | "variance introduced by outliers: -9223372036854775808% (severely inflated)" |
| 2025-12-28 03:40:19 +0000 | <Leary> | Thanks, criterion. |
| 2025-12-28 03:45:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 03:50:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 03:50:46 +0000 | Hafydd | (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2025-12-28 04:01:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 04:04:27 +0000 | <monochrom> | That number looks awfully familar. |
| 2025-12-28 04:06:11 +0000 | <monochrom> | > 2^63 |
| 2025-12-28 04:06:12 +0000 | <lambdabot> | 9223372036854775808 |
| 2025-12-28 04:06:16 +0000 | <monochrom> | That. :) |
| 2025-12-28 04:06:29 +0000 | <Leary> | > minBound :: Int |
| 2025-12-28 04:06:30 +0000 | <lambdabot> | -9223372036854775808 |
| 2025-12-28 04:06:37 +0000 | <Leary> | Or that. |
| 2025-12-28 04:07:52 +0000 | <monochrom> | But if variance is negative, that's severely deflated or imploded, not inflated. >:) |
| 2025-12-28 04:08:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 04:14:21 +0000 | <Leary> | (turns out I'd forgotten to wait on forked threads, so criterion was measuring a load of nonsense) |
| 2025-12-28 04:15:25 +0000 | <monochrom> | oh heh |
| 2025-12-28 04:19:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 04:24:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 04:28:25 +0000 | Hafydd | (~Hafydd@user/hafydd) Hafydd |
| 2025-12-28 04:35:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 04:40:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 04:49:31 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: bbl) |
| 2025-12-28 04:51:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 04:55:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-28 05:01:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 05:01:20 +0000 | iqubic | (~sophia@2601:602:9203:1660:c40f:f996:91cc:d34) iqubic |
| 2025-12-28 05:03:27 +0000 | <iqubic> | I have a Haskell design question. How do I decide if I should make a typeclass to describe a particular constraint or just use and pass around a record of functions. |
| 2025-12-28 05:05:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 05:29:23 +0000 | <haskellbridge> | <slack1256> Iqubic: the standard answer some years ago was that if you could give "algebraic laws" relating the operations between themselves or super classes you were in the right path |
| 2025-12-28 05:29:31 +0000 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-28 05:30:52 +0000 | <haskellbridge> | <slack1256> The second case was that the class admitted obvious instances. For example show and read. Foldable was obvious even if kind of adhoc because `toList` was the only real method and everything else was a more efficient way to avoid the conversion to lists. |
| 2025-12-28 05:31:18 +0000 | <ski> | does the type determine a canonical instance ? or would it make sense to want to pass different records, at different times, for the same type ? |
| 2025-12-28 05:31:31 +0000 | <haskellbridge> | <slack1256> In summary, you had abstraction power via laws or you had a simple model ln the instances |
| 2025-12-28 05:32:22 +0000 | <ski> | yea, you also most likely should not be making a type class, unless you already have at least two different instances in mind |
| 2025-12-28 05:32:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 05:36:37 +0000 | <iqubic> | In the thing that I'm modelling, the same type could very easily have different implementations. And I don't want to jump through newtype wrappers like Sum and Product for the two different Monoids over integers. |
| 2025-12-28 05:36:56 +0000 | <iqubic> | The more I actually think about this, the more it makes sense to use a record of functions. |
| 2025-12-28 05:37:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 05:37:35 +0000 | <haskellbridge> | <slack1256> Record of functions can be used everywhere else. Most importantly where the provenance is a deciding factor on what the functions should do, not just the type. This is a fine concept, these records of functions are modules as ocaml sense |
| 2025-12-28 05:39:17 +0000 | <iqubic> | Essentially, I'm trying to model simple combinatorial games like "nim" where I can write a function like "nextMoves :: a -> [a]", but then I realized that different games might have the type for the state variable. |
| 2025-12-28 05:39:28 +0000 | <ski> | yea, sounds like record of operations is more sensible, then |
| 2025-12-28 05:40:43 +0000 | rekahsoft | (~rekahsoft@70.51.99.245) (Remote host closed the connection) |
| 2025-12-28 05:40:46 +0000 | <ski> | btw, sometimes it makes sense to make a function from a record-of-operations, to another (possibly existential) record-of-operations. this being one way to do something similar to the parameterized modules in the module system of the MLs (SML,OCaml) (cf. Backpack) |
| 2025-12-28 05:41:11 +0000 | <iqubic> | Yeah, I get what you mean. |
| 2025-12-28 05:41:16 +0000 | rekahsoft | (~rekahsoft@70.51.99.245) rekahsoft |
| 2025-12-28 05:41:29 +0000 | <haskellbridge> | <slack1256> I liked backpack... |
| 2025-12-28 05:42:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 05:42:45 +0000 | <ski> | you'd open the returned record in a scope, bringing the skolem into scope, and then use the operations directly. this is a way to do Abstract Data Types |
| 2025-12-28 05:43:03 +0000 | <iqubic> | In the basic game of "nim" you have a bunch of distinct piles, and each pile has a bunch of objects. Players take turns removing any amount of objects from a single pile. The winner is the player to make the last valid move. In other words, if you can't make a move, you lose. |
| 2025-12-28 05:43:34 +0000 | <ski> | (unlike doing OO via existentials, where you'd open the record, apply an operation to the current state, and then rewrap new state with the operations again, every time) |
| 2025-12-28 05:44:52 +0000 | <iqubic> | I can model this as with a state of [Int]. But if I want a similar game, but with the constraint of "after each move, the piles must all have a coprime number of objects", that's also a state of type "[Int]" but a different "nextMoves :: a -> [a]" function. |
| 2025-12-28 05:45:16 +0000 | <iqubic> | BTW, Conway et al. call that version "prim", I think. |
| 2025-12-28 05:45:41 +0000 | <haskellbridge> | <slack1256> These combinatorial games are not related in anyway right? They just happen to implement a nextMoves function, the lack of laws pushes you to record of functions |
| 2025-12-28 05:46:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 05:46:56 +0000 | <iqubic> | Yeah, correct. |
| 2025-12-28 05:47:12 +0000 | <iqubic> | It's mainly just the "nextMoves" function that relates them. |
| 2025-12-28 05:47:24 +0000 | <iqubic> | And I have no laws, because I have just the one function. |
| 2025-12-28 05:47:42 +0000 | <haskellbridge> | <slack1256> Right, which is also a non obvious function |
| 2025-12-28 05:48:54 +0000 | <ski> | presumably iterating `nextMoves' is meant to lead to a tree where no path is infinite ? |
| 2025-12-28 05:49:23 +0000 | <iqubic> | Correct. I'm only interested in finite games here. |
| 2025-12-28 05:49:33 +0000 | <ski> | some kind of well-founded order thing |
| 2025-12-28 05:51:06 +0000 | <haskellbridge> | <slack1256> Multiple implementations for that in no way related to the days structure to give an instance |
| 2025-12-28 05:51:12 +0000 | <ski> | all the outputs of `nextMoves' are presumably strictly less than the input |
| 2025-12-28 05:51:17 +0000 | <iqubic> | Basically, I've been reading the book "Winning Ways For Your Mathematical Plays" by Berlekamp, Guy, and Conway, and I want to implement some of these things in Haskell. |
| 2025-12-28 05:51:17 +0000 | <haskellbridge> | <slack1256> Data* |
| 2025-12-28 05:51:33 +0000 | <iqubic> | ski: For some definition of "strictly less", yeah. |
| 2025-12-28 05:52:02 +0000 | <ski> | yea, some arbitrary partial order |
| 2025-12-28 05:52:30 +0000 | <ski> | (that is well-founded) |
| 2025-12-28 05:52:47 +0000 | <iqubic> | But my main question was "Do I model this as a typeclass with one function or a record of one function"? |
| 2025-12-28 05:53:12 +0000 | <ski> | yep. the latter seems more reasonable |
| 2025-12-28 05:53:45 +0000 | <ski> | (you could put the order relation as a second operation in the record .. but perhaps you have no use for it, at all, at run-time) |
| 2025-12-28 05:54:08 +0000 | <iqubic> | I agree. Because different games with completely different rules might want to use similar state representations. |
| 2025-12-28 05:54:30 +0000 | <iqubic> | ski: Currently my planned API doesn't need a way to tell which states are smaller. |
| 2025-12-28 05:55:01 +0000 | <ski> | in any case, even without an explicit order relation (computationally irrelevant or not), you should still be able to express a well-foundedness law for `nextMoves' |
| 2025-12-28 05:55:20 +0000 | <ski> | (iow, you don't need more than one operation, to be able to have a law) |
| 2025-12-28 05:55:43 +0000 | <iqubic> | What do you mean by well-foundedness? |
| 2025-12-28 05:58:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 05:58:38 +0000 | <ski> | for a strict order relation `<', a property like `forall P. (forall x. (forall y. y < x -> P y) -> P x) -> forall x. P x'. if we were talking about natural numbers, this would be called "strong induction" : you can prove a property `P' holds for all `x', if you can prove it holds for all `x', under the assumption it holds for all `y' that are strictly less than `x' |
| 2025-12-28 05:59:14 +0000 | <iqubic> | Right I see. |
| 2025-12-28 06:00:53 +0000 | <ski> | in terms of `nextMoves', instead of `forall y. y < x -> P y', we'd say `forall y. elem y (nextMoves x) = True -> P y'. iow, assuming that it holds for all the possible next states, it should be able to show it holds for the current state |
| 2025-12-28 06:02:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-28 06:02:39 +0000 | <iqubic> | forall a. let a' = nextMoves a in all [ length (nextMoves opt) < length a' | opt <- nextMoves a] |
| 2025-12-28 06:02:51 +0000 | <iqubic> | Or something like that. |
| 2025-12-28 06:03:27 +0000 | <iqubic> | Basically, if you keep iterating nextMoves function, you should keep getting less and less options. |
| 2025-12-28 06:03:55 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
| 2025-12-28 06:07:06 +0000 | <ski> | not necessarily |
| 2025-12-28 06:08:21 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-28 06:08:22 +0000 | <ski> | a tree that at each node at depth `n' has either zero or `n' branches of that node could still be well-founded |
| 2025-12-28 06:09:17 +0000 | <ski> | the important part is that each state is getting closer to a minimal element (a leaf, one which has zero successors), on each step |
| 2025-12-28 06:09:53 +0000 | <ski> | you could have the branching explode, and still have finite depth for every path |
| 2025-12-28 06:10:16 +0000 | <iqubic> | Yeah. But in my case, I want you to always have strictly less moves as you go along. That's the main case I'm interested in exploring. |
| 2025-12-28 06:10:47 +0000 | <ski> | (there's not even a need for the branching to be finite, it could still be well-founded. although, possibly, in your case, you're only interested in finite branching) |
| 2025-12-28 06:11:02 +0000 | <ski> | ah, okay |
| 2025-12-28 06:13:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 06:18:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 06:29:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 06:34:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 06:35:20 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:7842:6802:4767:2e5b) (Read error: Connection reset by peer) |
| 2025-12-28 06:36:46 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:7842:6802:4767:2e5b) synchromesh |
| 2025-12-28 06:40:06 +0000 | <iqubic> | Essentially, if a level of my tree has N members, then all children there should have strictly less than N descendants, except for the root. |
| 2025-12-28 06:40:54 +0000 | <iqubic> | Except, it's more like a DAG, because there might be multiple possible ways to get from the current state to some future state. |
| 2025-12-28 06:42:24 +0000 | <iqubic> | But this mathematical theory has little to do with Haskell at this point and I have gotten my orginal design question answered already. |
| 2025-12-28 06:45:19 +0000 | <hololeap> | are there any language extensions now days that can let you write a Functor instance for Set? some way to inject a constraint requirement into an existing function, or something? |
| 2025-12-28 07:02:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 07:06:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 07:13:20 +0000 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-28 07:18:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 07:23:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-28 07:29:18 +0000 | euphores | (~SASL_euph@user/euphores) euphores |
| 2025-12-28 07:31:12 +0000 | sroso | (~sroso@user/SrOso) (Quit: Leaving :)) |
| 2025-12-28 07:33:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 07:38:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 07:45:32 +0000 | <[exa]> | hololeap: you can wrap the set in a newtype that imposes the constraint, with similar tradeoffs like with other newtype wraps (inconvenient but coerces well) and typeclass constraints on data types (generally hated) |
| 2025-12-28 07:49:00 +0000 | <[exa]> | iqubic: people usually have these "operation records" for various backend implementations for whatever, e.g. here: https://hackage-content.haskell.org/package/tls-2.1.13/docs/Network-TLS.html#t:Backend or here: https://hackage.haskell.org/package/selda-0.5.2.0/docs/Database-Selda-Backend.html#t:SeldaBackend . TBH quite easy to go that way, and very easy to slap on a typeclass later, in case you |
| 2025-12-28 07:49:02 +0000 | <[exa]> | decide you want to infer which backend to use where. |
| 2025-12-28 07:49:15 +0000 | <hololeap> | hm, ok. I was looking into a different instance of Apply for Map (different than the one defined in semigroupoids) and ultimately it requires (Ord k, Semigroup a) => Map k a |
| 2025-12-28 07:49:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 07:50:04 +0000 | <hololeap> | but Apply is a class for Type -> Type |
| 2025-12-28 07:50:19 +0000 | <[exa]> | hololeap: why though (kinda curious, and also usually this has been a common instance of xyz issues) |
| 2025-12-28 07:51:15 +0000 | <hololeap> | mostly just out of curiosity. the current Apply instance feels very niche since it uses Map.intersectionWith under the hood |
| 2025-12-28 07:53:26 +0000 | <hololeap> | I was looking into an instance that would use something like Map.unionWith (<>) |
| 2025-12-28 07:53:39 +0000 | <hololeap> | though not exactly that |
| 2025-12-28 07:53:47 +0000 | <Leary> | That sounds like `Semigroup` instance instead. |
| 2025-12-28 07:53:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 07:54:39 +0000 | ystael | (~ystael@user/ystael) (Ping timeout: 260 seconds) |
| 2025-12-28 07:55:04 +0000 | <[exa]> | hololeap: that can't do applicative though, right? (you'd need a default function and default parameter) |
| 2025-12-28 07:55:26 +0000 | <hololeap> | right, Apply is Applicative sans `pure`, |
| 2025-12-28 07:55:30 +0000 | <[exa]> | so yeah that would be a (specialized) semigroup |
| 2025-12-28 07:55:47 +0000 | <hololeap> | just the <*> part of Applicative |
| 2025-12-28 07:55:50 +0000 | <[exa]> | no in this case even `ap` would require the defaults |
| 2025-12-28 07:56:47 +0000 | ystael | (~ystael@user/ystael) ystael |
| 2025-12-28 07:57:06 +0000 | <hololeap> | anyway, this wasn't really a problem I needed to solve, just an exploration of ideas |
| 2025-12-28 07:58:58 +0000 | <hololeap> | @hackage quickcheck-classes -- makes it easy to verify the Apply laws |
| 2025-12-28 07:58:58 +0000 | <lambdabot> | https://hackage.haskell.org/package/quickcheck-classes -- makes it easy to verify the Apply laws |
| 2025-12-28 08:00:01 +0000 | tt1231607 | (~tt1231@75.185.104.199) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-28 08:03:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 08:05:33 +0000 | tt1231607 | (~tt1231@75.185.104.199) tt1231 |
| 2025-12-28 08:08:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 08:19:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 08:25:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 08:37:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 08:41:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 08:50:49 +0000 | <[exa]> | hololeap: kinda wondering if there could be a monoid adaptor for this case, like we have with Sum... could be Keyed or so |
| 2025-12-28 08:52:14 +0000 | <hololeap> | there's some in the monoidal-containers package if you mean making (<>) = Map.unionWith (<>) |
| 2025-12-28 08:52:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 08:52:41 +0000 | <[exa]> | still that ain't gonna typecheck the functions there for Apply |
| 2025-12-28 08:52:55 +0000 | <[exa]> | I'll think about it. :D |
| 2025-12-28 08:57:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-28 09:02:39 +0000 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2025-12-28 09:03:36 +0000 | califax | (~califax@user/califx) califx |
| 2025-12-28 09:03:44 +0000 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-28 09:04:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 09:08:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 09:10:06 +0000 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds) |
| 2025-12-28 09:20:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 09:23:27 +0000 | <hololeap> | I get fleetwood mac songs stuck in my head a lot, even though I only really hear them on the radio in stores and such |
| 2025-12-28 09:24:49 +0000 | <hololeap> | oops, wrong channel :p |
| 2025-12-28 09:24:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 09:35:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 09:36:53 +0000 | <Hecate> | hololeap: no you're right, let's talk about the things that matter. I love The Chain :D |
| 2025-12-28 09:38:02 +0000 | <hololeap> | I agree |
| 2025-12-28 09:39:45 +0000 | <hololeap> | really, that whole album is epic. stevie nicks has an incredible unique voice |
| 2025-12-28 09:40:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-28 09:48:00 +0000 | itaipu | (~itaipu@168.121.98.38) itaipu |
| 2025-12-28 09:48:35 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds) |
| 2025-12-28 09:51:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 09:57:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 09:59:00 +0000 | acidjnk | (~acidjnk@p200300d6e7171990e8909c854c213001.dip0.t-ipconnect.de) acidjnk |
| 2025-12-28 10:02:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 10:03:08 +0000 | itaipu | (~itaipu@168.121.98.38) (Ping timeout: 244 seconds) |
| 2025-12-28 10:05:58 +0000 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2025-12-28 10:06:30 +0000 | Tuplanolla | (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) Tuplanolla |
| 2025-12-28 10:06:56 +0000 | califax | (~califax@user/califx) califx |
| 2025-12-28 10:08:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 10:17:27 +0000 | itaipu | (~itaipu@168.121.98.38) itaipu |
| 2025-12-28 10:22:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 10:26:52 +0000 | oneeyedalien | (~oneeyedal@user/oneeyedalien) oneeyedalien |
| 2025-12-28 10:27:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-28 10:32:31 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-28 10:38:27 +0000 | oneeyedalien | (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
| 2025-12-28 10:40:50 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-12-28 10:49:51 +0000 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-28 10:51:41 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-12-28 10:56:17 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 2025-12-28 10:56:33 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-28 10:57:01 +0000 | euphores | (~SASL_euph@user/euphores) euphores |
| 2025-12-28 11:05:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 11:10:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 11:10:54 +0000 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-28 11:15:32 +0000 | danza | (~danza@user/danza) danza |
| 2025-12-28 11:23:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 11:28:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 11:29:41 +0000 | danza | (~danza@user/danza) (Remote host closed the connection) |
| 2025-12-28 11:40:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 11:45:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-28 11:56:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 12:01:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 12:06:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 12:13:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 12:26:15 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2025-12-28 12:30:35 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 240 seconds) |
| 2025-12-28 12:33:05 +0000 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2025-12-28 12:33:32 +0000 | sudden | (~cat@user/sudden) (Quit: Lost terminal) |
| 2025-12-28 12:35:49 +0000 | sudden | (~cat@user/sudden) sudden |
| 2025-12-28 12:36:14 +0000 | poscat | (~poscat@user/poscat) poscat |
| 2025-12-28 12:38:33 +0000 | CipherLab | (~NSA@2a0d:5600:6:108::2e) (Ping timeout: 244 seconds) |
| 2025-12-28 12:51:52 +0000 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
| 2025-12-28 12:55:16 +0000 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 2025-12-28 13:07:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 13:10:55 +0000 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-28 13:11:55 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds) |
| 2025-12-28 13:12:02 +0000 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2025-12-28 13:12:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 13:16:07 +0000 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
| 2025-12-28 13:24:36 +0000 | tromp | (~textual@user/tromp) tromp |
| 2025-12-28 13:25:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 13:30:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 13:43:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 13:47:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-28 13:55:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 14:00:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 14:08:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 14:10:04 +0000 | spew | (~spew@user/spew) spew |
| 2025-12-28 14:14:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 14:21:24 +0000 | tromp | (~textual@user/tromp) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-28 14:37:00 +0000 | tromp | (~textual@user/tromp) tromp |
| 2025-12-28 14:41:18 +0000 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) gioyik |
| 2025-12-28 14:43:46 +0000 | acidjnk | (~acidjnk@p200300d6e7171990e8909c854c213001.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 2025-12-28 14:45:36 +0000 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2025-12-28 14:47:05 +0000 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 252 seconds) |
| 2025-12-28 15:09:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 15:14:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-28 15:21:23 +0000 | tromp | (~textual@user/tromp) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-28 15:24:24 +0000 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds) |
| 2025-12-28 15:24:38 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2025-12-28 15:25:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 15:27:49 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-28 15:29:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 15:38:24 +0000 | spew_ | (~spew@user/spew) spew |
| 2025-12-28 15:38:25 +0000 | spew | (~spew@user/spew) (Ping timeout: 264 seconds) |
| 2025-12-28 15:39:22 +0000 | spew_ | (~spew@user/spew) (Client Quit) |
| 2025-12-28 15:42:14 +0000 | spew | (~spew@user/spew) spew |
| 2025-12-28 15:42:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 15:46:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-28 15:57:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 16:02:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 16:10:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 16:15:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 16:19:38 +0000 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2025-12-28 16:21:55 +0000 | somemathguy | (~somemathg@user/somemathguy) (Ping timeout: 264 seconds) |
| 2025-12-28 16:29:38 +0000 | wennefer0_______ | (~wennefer0@user/wennefer0) wennefer0 |
| 2025-12-28 16:32:08 +0000 | wennefer0_______ | (~wennefer0@user/wennefer0) (Remote host closed the connection) |
| 2025-12-28 16:41:06 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2025-12-28 16:41:36 +0000 | opencircuit | (~quassel@user/opencircuit) (Remote host closed the connection) |
| 2025-12-28 16:41:45 +0000 | opencircuit | (~quassel@user/opencircuit) opencircuit |
| 2025-12-28 16:48:22 +0000 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2025-12-28 17:01:55 +0000 | glguy | (glguy@libera/staff/glguy) (Quit: Quit) |
| 2025-12-28 17:02:00 +0000 | glguy | (glguy@libera/staff/glguy) glguy |
| 2025-12-28 17:03:18 +0000 | infinity0 | (~infinity0@pwned.gg) (Remote host closed the connection) |
| 2025-12-28 17:06:08 +0000 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2025-12-28 17:10:52 +0000 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 255 seconds) |
| 2025-12-28 17:11:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 17:18:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-28 17:20:54 +0000 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-28 17:22:25 +0000 | spew | (~spew@user/spew) spew |
| 2025-12-28 17:28:52 +0000 | somemathguy | (~somemathg@user/somemathguy) (Ping timeout: 255 seconds) |
| 2025-12-28 17:30:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 17:30:49 +0000 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2025-12-28 17:31:17 +0000 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2025-12-28 17:34:07 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:7842:6802:4767:2e5b) (Quit: WeeChat 4.1.1) |
| 2025-12-28 17:34:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 17:38:16 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-28 18:01:19 +0000 | CryptLab | (~NSA@2a0d:5600:6:108::2e) CommanderBond007 |
| 2025-12-28 18:03:14 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2025-12-28 18:10:55 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 2025-12-28 18:11:28 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
| 2025-12-28 18:12:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 18:12:32 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-28 18:17:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 18:18:42 +0000 | tromp | (~textual@user/tromp) tromp |
| 2025-12-28 18:22:43 +0000 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-28 18:25:59 +0000 | somemathguy | (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1) |
| 2025-12-28 18:28:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 18:29:23 +0000 | tromp | (~textual@user/tromp) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-28 18:30:19 +0000 | bionade24 | (~quassel@server2.oscloud.info) (Ping timeout: 264 seconds) |
| 2025-12-28 18:32:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 18:43:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 18:47:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 18:49:27 +0000 | Square2 | (~Square@user/square) Square |
| 2025-12-28 18:51:32 +0000 | tromp | (~textual@user/tromp) tromp |
| 2025-12-28 19:01:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 19:02:05 +0000 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-28 19:05:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 19:06:58 +0000 | edmerry | edm |
| 2025-12-28 19:12:26 +0000 | sroso | (~sroso@user/SrOso) SrOso |
| 2025-12-28 19:13:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 19:18:25 +0000 | bionade24 | (~quassel@server2.oscloud.info) bionade24 |
| 2025-12-28 19:20:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 19:22:01 +0000 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Quit: ein reboot macht gut) |
| 2025-12-28 19:33:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 19:35:20 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
| 2025-12-28 19:37:42 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2025-12-28 19:37:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 19:39:07 +0000 | <machinedgod> | Hi everyone. Linear types question (mostly theoretical curiosity but practical solution is appreciated too): is it possible to make a linear function that acts just like a record selector on data? The reason I ask is because, my intuition says - I will have to ignore (consume) all the fields except the one I need when I pattern match, therefore it violates linearity. However, linear versions of fst |
| 2025-12-28 19:39:13 +0000 | <machinedgod> | and snd from linear-base do just that. Is this meant to help bridge the gaps with nonlinear code, or is linear code actually supposed to be like that? Thank you upfront. |
| 2025-12-28 19:39:27 +0000 | <machinedgod> | (sorry for the wall of text - didn't realize how much I wrote) |
| 2025-12-28 19:41:44 +0000 | wennefer0_ | (~wennefer0@user/wennefer0) wennefer0 |
| 2025-12-28 19:43:56 +0000 | wennefer0_ | (~wennefer0@user/wennefer0) (Client Quit) |
| 2025-12-28 19:44:23 +0000 | <ncf> | machinedgod: record projections take an unrestricted record unless there's only a single field, see https://ghc-proposals.readthedocs.io/en/latest/proposals/0111-linear-types.html#records-and-projec… |
| 2025-12-28 19:44:51 +0000 | <ncf> | the fst and snd from linear-base have a Consumable constraint on the field that's being discarded, so there's no magic there |
| 2025-12-28 19:46:52 +0000 | zfnmxt | (~m-gkkevi@209.209.10.107) (Ping timeout: 246 seconds) |
| 2025-12-28 19:51:34 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-28 19:58:24 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 252 seconds) |
| 2025-12-28 20:03:33 +0000 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-28 20:09:34 +0000 | stefan-__ | (~m-yh2rcc@42dots.de) (Remote host closed the connection) |
| 2025-12-28 20:11:15 +0000 | stefan-__ | (~m-yh2rcc@42dots.de) stefan-__ |
| 2025-12-28 20:11:49 +0000 | <machinedgod> | Oh, I see! I didn't even notice the Consumable constraint! Thank you, now I know at least my intuition was at the right place. |
| 2025-12-28 20:13:09 +0000 | <machinedgod> | ncf: The proposal has much more information than manual - this is great, thank you again. |
| 2025-12-28 20:14:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 20:16:30 +0000 | pavonia | (~user@user/siracusa) siracusa |
| 2025-12-28 20:18:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 20:26:43 +0000 | stefan-__ | (~m-yh2rcc@42dots.de) (Remote host closed the connection) |
| 2025-12-28 20:27:06 +0000 | stefan-__ | (~m-yh2rcc@42dots.de) stefan-__ |
| 2025-12-28 20:30:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 20:31:24 +0000 | stefan-__ | (~m-yh2rcc@42dots.de) (Remote host closed the connection) |
| 2025-12-28 20:31:50 +0000 | stefan-__ | (~m-yh2rcc@42dots.de) stefan-__ |
| 2025-12-28 20:35:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 20:42:57 +0000 | Square2 | (~Square@user/square) (Ping timeout: 252 seconds) |
| 2025-12-28 20:45:57 +0000 | Everything | (~Everythin@172-232-54-192.ip.linodeusercontent.com) Everything |
| 2025-12-28 20:46:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 20:47:34 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-28 20:50:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-28 21:00:44 +0000 | anpad | (~pandeyan@user/anpad) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-28 21:02:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 21:04:10 +0000 | tromp | (~textual@user/tromp) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-28 21:07:17 +0000 | anpad | (~pandeyan@user/anpad) anpad |
| 2025-12-28 21:07:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 21:08:21 +0000 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2025-12-28 21:13:50 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds) |
| 2025-12-28 21:15:15 +0000 | Everything | (~Everythin@172-232-54-192.ip.linodeusercontent.com) (Quit: leaving) |
| 2025-12-28 21:15:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 21:17:44 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1) |
| 2025-12-28 21:21:16 +0000 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-28 21:22:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 21:30:56 +0000 | bionade24 | (~quassel@server2.oscloud.info) (Quit: Apocalypse Incoming!) |
| 2025-12-28 21:31:08 +0000 | bionade24 | (~quassel@server2.oscloud.info) bionade24 |
| 2025-12-28 21:33:33 +0000 | jle` | (~jle`@2603:8001:3b00:11:94e9:8912:a399:fd05) (Ping timeout: 252 seconds) |
| 2025-12-28 21:34:06 +0000 | jle` | (~jle`@2603:8001:3b00:11:cdfa:561d:b734:3c69) jle` |
| 2025-12-28 21:35:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 21:39:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 21:43:44 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2025-12-28 21:45:15 +0000 | itaipu | (~itaipu@168.121.98.38) (Ping timeout: 240 seconds) |
| 2025-12-28 21:45:15 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2025-12-28 21:49:14 +0000 | leonardo_ | (~leonardo@user/leonardo-:51495) leonardo_ |
| 2025-12-28 22:04:08 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
| 2025-12-28 22:04:27 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2025-12-28 22:08:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 22:13:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 22:16:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 22:18:13 +0000 | itaipu | (~itaipu@168.121.98.38) itaipu |
| 2025-12-28 22:20:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 22:26:56 +0000 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2025-12-28 22:33:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 22:38:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 22:40:50 +0000 | itaipu | (~itaipu@168.121.98.38) (Ping timeout: 265 seconds) |
| 2025-12-28 22:50:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 22:54:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-28 22:57:17 +0000 | itaipu | (~itaipu@168.121.98.38) itaipu |
| 2025-12-28 23:07:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 23:12:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-28 23:14:40 +0000 | itaipu | (~itaipu@168.121.98.38) (Ping timeout: 265 seconds) |
| 2025-12-28 23:17:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 23:23:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 23:32:34 +0000 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds) |
| 2025-12-28 23:35:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-28 23:39:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 23:57:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |