2025/12/26

Newest at the top

2025-12-26 06:26:12 +0100merijn(~merijn@62.45.136.136) merijn
2025-12-26 06:18:06 +0100annamalai(~annamalai@157.32.132.85) annamalai
2025-12-26 06:14:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-26 06:10:22 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 06:05:27 +0100spew(~spew@user/spew) (Quit: nyaa~)
2025-12-26 06:01:33 +0100vanishingideal(~vanishing@user/vanishingideal) (Remote host closed the connection)
2025-12-26 05:59:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-26 05:54:34 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 05:50:28 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216) {-d0t-}
2025-12-26 05:46:18 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 260 seconds)
2025-12-26 05:45:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-26 05:42:40 +0100tabemann(~tabemann@12.215.215.61) tabemann
2025-12-26 05:40:02 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 05:37:45 +0100hsw_(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Remote host closed the connection)
2025-12-26 05:37:36 +0100hsw_(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-26 05:37:32 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-26 05:32:27 +0100jreicher(~user@user/jreicher) jreicher
2025-12-26 05:30:51 +0100 <haskellbridge> <Zemyla> Map k is an alternate form of ReaderT k Maybe.
2025-12-26 05:29:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-26 05:26:07 +0100 <haskellbridge> <Zemyla> You could potentially have a Map Monad instance, since the Ord constraint is on k, not a. The main problem is it doesn't let you implement pure.
2025-12-26 05:21:37 +0100tabemann(~tabemann@12.215.215.61) (Ping timeout: 264 seconds)
2025-12-26 05:21:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 05:19:24 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-26 05:14:10 +0100acidjnk(~acidjnk@p200300d6e7171922bda2454d8bce8e38.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2025-12-26 05:10:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-26 05:05:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 04:54:14 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-12-26 04:53:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-26 04:49:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 04:45:59 +0100kaskal(~kaskal@2a02:8388:1a8b:7d00:5666:a937:cb77:6c3b) kaskal
2025-12-26 04:44:33 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2025-12-26 04:44:32 +0100kaskal(~kaskal@84-115-235-223.cable.dynamic.surfer.at) (Ping timeout: 240 seconds)
2025-12-26 04:44:28 +0100emmanuelux_(~emmanuelu@user/emmanuelux) emmanuelux
2025-12-26 04:38:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-26 04:33:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 04:30:10 +0100 <glguy> Probably the easiest starting point is to use to list and memoize with a list argument
2025-12-26 04:29:18 +0100 <Leary> Though `splitRoot` is essentially a look into the internals, so you can probably hack a `HasTrie` instance with it.
2025-12-26 04:27:38 +0100 <geekosaur> same reason why you can't have `Set` or `Map` `Monad` instances
2025-12-26 04:27:01 +0100 <geekosaur> that said, a more practical reason for not having `Set` or `Map` instances is that instances that require additional constraints have severe limitations when possible at all, and both those instances would require an added `Ord` instance
2025-12-26 04:26:52 +0100 <Leary> iqubic: The approach that 'MemoTrie' and related pure approaches take is to index into a lazy data type with one position for each possible argument (holding the result of applying the function). If you can design such a type for `Set` or `Map` then you can use it, but you'll likely be stymied by the fact that they're abstract types.
2025-12-26 04:25:56 +0100 <geekosaur> large lists are kinda their own punishment 🙂
2025-12-26 04:24:23 +0100 <iqubic> Why does memoizing over a list make sense?
2025-12-26 04:23:19 +0100 <iqubic> Yeah, that does make sense.
2025-12-26 04:22:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-26 04:21:21 +0100 <geekosaur> the other issue is that a large `Set` or `Map` would function in that case as an arbitrary number of "parameters", which would make memoization more expensive possibly to the point that it would have diminishing returns
2025-12-26 04:20:05 +0100pebble(~pebble@37.63.33.138) pebble
2025-12-26 04:15:30 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-26 04:15:23 +0100 <iqubic> Well, I'm using this 'Map' to store the state of the system I'm modeling.
2025-12-26 04:14:21 +0100 <geekosaur> I don't usually have much use for memoization, and the fact that most memoizing functions use `Map` internally makes me wonder if you're just asking for the wrong thing to begin with
2025-12-26 04:14:16 +0100 <iqubic> Hmm... that's annoying. MemoTrie looks good, but it doesn't have instances for Set or Map...