| 2025-12-26 00:02:55 +0100 | DragonMaus | (~DragonMau@user/dragonmaus) (Remote host closed the connection) |
| 2025-12-26 00:03:31 +0100 | DragonMaus | (~DragonMau@user/dragonmaus) DragonMaus |
| 2025-12-26 00:03:59 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-26 00:10:50 +0100 | DragonMaus | (~DragonMau@user/dragonmaus) (Remote host closed the connection) |
| 2025-12-26 00:11:27 +0100 | DragonMaus | (~DragonMau@user/dragonmaus) DragonMaus |
| 2025-12-26 00:11:49 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2025-12-26 00:13:07 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-26 00:15:12 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 00:15:57 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds) |
| 2025-12-26 00:16:50 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2025-12-26 00:17:37 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 255 seconds) |
| 2025-12-26 00:18:51 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2025-12-26 00:20:26 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-26 00:22:33 +0100 | wennefer0__ | (~wennefer0@user/wennefer0) wennefer0 |
| 2025-12-26 00:24:18 +0100 | wennefer0__ | (~wennefer0@user/wennefer0) (Remote host closed the connection) |
| 2025-12-26 00:24:36 +0100 | wennefer0___ | (~wennefer0@user/wennefer0) wennefer0 |
| 2025-12-26 00:25:07 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2025-12-26 00:31:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 00:33:37 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2025-12-26 00:35:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 00:35:45 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds) |
| 2025-12-26 00:38:28 +0100 | wennefer0___ | (~wennefer0@user/wennefer0) (Quit: Igloo: https://igloo.app) |
| 2025-12-26 00:39:33 +0100 | wennefer0____ | (~wennefer0@user/wennefer0) wennefer0 |
| 2025-12-26 00:40:01 +0100 | wennefer0____ | (~wennefer0@user/wennefer0) (Remote host closed the connection) |
| 2025-12-26 00:43:02 +0100 | ChanServ | +o litharge |
| 2025-12-26 00:43:03 +0100 | litharge | -bo *!*@177.71.33.140 litharge |
| 2025-12-26 00:43:39 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-26 00:45:03 +0100 | ChanServ | +o litharge |
| 2025-12-26 00:45:04 +0100 | litharge | -bo *!*@123.27.7.53 litharge |
| 2025-12-26 00:46:48 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 00:48:37 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 2025-12-26 00:52:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 01:02:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 01:07:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 01:17:57 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-26 01:18:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 01:22:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 01:23:14 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds) |
| 2025-12-26 01:30:32 +0100 | haskellbridge | (~hackager@96.28.224.214) (Remote host closed the connection) |
| 2025-12-26 01:31:03 +0100 | haskellbridge | (~hackager@96.28.224.214) hackager |
| 2025-12-26 01:31:03 +0100 | ChanServ | +v haskellbridge |
| 2025-12-26 01:40:53 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-26 01:52:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 01:56:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 01:56:55 +0100 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2025-12-26 01:59:52 +0100 | poscat | (~poscat@user/poscat) poscat |
| 2025-12-26 02:00:40 +0100 | CloneOfNone | (~CloneOfNo@user/CloneOfNone) (Read error: Connection reset by peer) |
| 2025-12-26 02:00:50 +0100 | CloneOfNone | (~CloneOfNo@user/CloneOfNone) CloneOfNone |
| 2025-12-26 02:08:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 02:09:50 +0100 | Digit | (~Digit@user/digit) Digit |
| 2025-12-26 02:13:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 02:21:20 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-26 02:23:44 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 02:24:44 +0100 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2025-12-26 02:24:54 +0100 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2025-12-26 02:28:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 02:29:39 +0100 | Tuplanolla | (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-12-26 02:32:49 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2025-12-26 02:39:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 02:44:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 02:46:15 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 2025-12-26 02:54:16 +0100 | iqubic | (~sophia@2601:602:9203:1660:9e23:79cc:546:311b) iqubic |
| 2025-12-26 02:55:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 02:55:49 +0100 | <iqubic> | Is there a library that will let me memoize a function of type "Set a -> b"? I understand this might need an additional constraint on 'a', but I'm not sure what it would be. |
| 2025-12-26 02:56:20 +0100 | tabemann | (~tabemann@12.215.215.61) tabemann |
| 2025-12-26 02:59:15 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-26 03:00:07 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 03:06:55 +0100 | <geekosaur> | Ord a |
| 2025-12-26 03:08:43 +0100 | polykernel_ | (~polykerne@user/polykernel) polykernel |
| 2025-12-26 03:11:07 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 03:11:09 +0100 | polykernel | (~polykerne@user/polykernel) (Ping timeout: 260 seconds) |
| 2025-12-26 03:11:09 +0100 | polykernel_ | polykernel |
| 2025-12-26 03:13:47 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2025-12-26 03:15:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 03:22:38 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2025-12-26 03:23:43 +0100 | annamalai | (~annamalai@157.32.199.28) (Ping timeout: 240 seconds) |
| 2025-12-26 03:29:16 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 03:33:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 03:42:11 +0100 | <Leary> | iqubic: Presumably you can find this on hackage somewhere, but: https://gist.github.com/LSLeary/33a854e1ec1230e7fbcc09e44e1ee71d |
| 2025-12-26 03:58:15 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-26 04:00:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 04:04:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 04:11:25 +0100 | <iqubic> | I was trying to use MemoTrie, but that doesn't seem to work... |
| 2025-12-26 04:11:49 +0100 | <iqubic> | @Hackage MemoTrie |
| 2025-12-26 04:11:49 +0100 | <lambdabot> | https://hackage.haskell.org/package/MemoTrie |
| 2025-12-26 04:13:18 +0100 | <iqubic> | geekosaur: Do you know if there are any off the shelf ways to memoize functions taking Sets or Maps? |
| 2025-12-26 04:13:31 +0100 | <geekosaur> | not off the top of my head |
| 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... |
| 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:15:23 +0100 | <iqubic> | Well, I'm using this 'Map' to store the state of the system I'm modeling. |
| 2025-12-26 04:15:30 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 04:20:05 +0100 | pebble | (~pebble@37.63.33.138) pebble |
| 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:22:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 04:23:19 +0100 | <iqubic> | Yeah, that does make sense. |
| 2025-12-26 04:24:23 +0100 | <iqubic> | Why does memoizing over a list make sense? |
| 2025-12-26 04:25:56 +0100 | <geekosaur> | large lists are kinda their own punishment 🙂 |
| 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: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:27:38 +0100 | <geekosaur> | same reason why you can't have `Set` or `Map` `Monad` instances |
| 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:30:10 +0100 | <glguy> | Probably the easiest starting point is to use to list and memoize with a list argument |
| 2025-12-26 04:33:33 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 04:38:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 04:44:28 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) emmanuelux |
| 2025-12-26 04:44:32 +0100 | kaskal | (~kaskal@84-115-235-223.cable.dynamic.surfer.at) (Ping timeout: 240 seconds) |
| 2025-12-26 04:44:33 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-26 04:45:59 +0100 | kaskal | (~kaskal@2a02:8388:1a8b:7d00:5666:a937:cb77:6c3b) kaskal |
| 2025-12-26 04:49:04 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 04:53:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-26 04:54:14 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2025-12-26 05:05:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 05:10:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-26 05:14:10 +0100 | acidjnk | (~acidjnk@p200300d6e7171922bda2454d8bce8e38.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 2025-12-26 05:19:24 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-26 05:21:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 05:21:37 +0100 | tabemann | (~tabemann@12.215.215.61) (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:29:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 05:30:51 +0100 | <haskellbridge> | <Zemyla> Map k is an alternate form of ReaderT k Maybe. |
| 2025-12-26 05:32:27 +0100 | jreicher | (~user@user/jreicher) jreicher |
| 2025-12-26 05:37:32 +0100 | hsw | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw |
| 2025-12-26 05:37:36 +0100 | hsw_ | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw |
| 2025-12-26 05:37:45 +0100 | hsw_ | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
| 2025-12-26 05:40:02 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 05:42:40 +0100 | tabemann | (~tabemann@12.215.215.61) tabemann |
| 2025-12-26 05:45:08 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-26 05:46:18 +0100 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 260 seconds) |
| 2025-12-26 05:50:28 +0100 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) {-d0t-} |
| 2025-12-26 05:54:34 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 05:59:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 06:01:33 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 2025-12-26 06:05:27 +0100 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-26 06:10:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-26 06:14:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |