Logs: liberachat/#haskell
| 2025-12-25 23:25:07 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2025-12-25 23:31:01 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-25 23:33:37 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-12-25 23:35:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-25 23:35:45 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds) |
| 2025-12-25 23:38:28 | × | wennefer0___ quits (~wennefer0@user/wennefer0) (Quit: Igloo: https://igloo.app) |
| 2025-12-25 23:39:33 | → | wennefer0____ joins (~wennefer0@user/wennefer0) |
| 2025-12-25 23:40:01 | × | wennefer0____ quits (~wennefer0@user/wennefer0) (Remote host closed the connection) |
| 2025-12-25 23:43:02 | ChanServ | sets mode +o litharge |
| 2025-12-25 23:43:03 | litharge | sets mode -bo *!*@177.71.33.140 litharge |
| 2025-12-25 23:43:39 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-25 23:45:03 | ChanServ | sets mode +o litharge |
| 2025-12-25 23:45:04 | litharge | sets mode -bo *!*@123.27.7.53 litharge |
| 2025-12-25 23:46:48 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-25 23:48:37 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 2025-12-25 23:52:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 00:02:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 00:07:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 00:17:57 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-26 00:18:24 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 00:22:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 00:23:14 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds) |
| 2025-12-26 00:30:32 | × | haskellbridge quits (~hackager@96.28.224.214) (Remote host closed the connection) |
| 2025-12-26 00:31:03 | → | haskellbridge joins (~hackager@96.28.224.214) |
| 2025-12-26 00:31:03 | ChanServ | sets mode +v haskellbridge |
| 2025-12-26 00:40:53 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-12-26 00:52:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 00:56:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 00:56:55 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 2025-12-26 00:59:52 | → | poscat joins (~poscat@user/poscat) |
| 2025-12-26 01:00:40 | × | CloneOfNone quits (~CloneOfNo@user/CloneOfNone) (Read error: Connection reset by peer) |
| 2025-12-26 01:00:50 | → | CloneOfNone joins (~CloneOfNo@user/CloneOfNone) |
| 2025-12-26 01:08:00 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 01:09:50 | → | Digit joins (~Digit@user/digit) |
| 2025-12-26 01:13:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 01:21:20 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-26 01:23:44 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 01:24:44 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2025-12-26 01:24:54 | → | divlamir joins (~divlamir@user/divlamir) |
| 2025-12-26 01:28:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 01:29:39 | × | Tuplanolla quits (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-12-26 01:32:49 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2025-12-26 01:39:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 01:44:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 01:46:15 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 2025-12-26 01:54:16 | → | iqubic joins (~sophia@2601:602:9203:1660:9e23:79cc:546:311b) |
| 2025-12-26 01:55:18 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 01:55:49 | <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 01:56:20 | → | tabemann joins (~tabemann@12.215.215.61) |
| 2025-12-26 01:59:15 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-26 02:00:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 02:06:55 | <geekosaur> | Ord a |
| 2025-12-26 02:08:43 | → | polykernel_ joins (~polykerne@user/polykernel) |
| 2025-12-26 02:11:07 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 02:11:09 | × | polykernel quits (~polykerne@user/polykernel) (Ping timeout: 260 seconds) |
| 2025-12-26 02:11:09 | polykernel_ | is now known as polykernel |
| 2025-12-26 02:13:47 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2025-12-26 02:15:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 02:22:38 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-12-26 02:23:43 | × | annamalai quits (~annamalai@157.32.199.28) (Ping timeout: 240 seconds) |
| 2025-12-26 02:29:16 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 02:33:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 02:42:11 | <Leary> | iqubic: Presumably you can find this on hackage somewhere, but: https://gist.github.com/LSLeary/33a854e1ec1230e7fbcc09e44e1ee71d |
| 2025-12-26 02:58:15 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-26 03:00:03 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 03:04:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-26 03:11:25 | <iqubic> | I was trying to use MemoTrie, but that doesn't seem to work... |
| 2025-12-26 03:11:49 | <iqubic> | @Hackage MemoTrie |
| 2025-12-26 03:11:49 | <lambdabot> | https://hackage.haskell.org/package/MemoTrie |
| 2025-12-26 03:13:18 | <iqubic> | geekosaur: Do you know if there are any off the shelf ways to memoize functions taking Sets or Maps? |
| 2025-12-26 03:13:31 | <geekosaur> | not off the top of my head |
| 2025-12-26 03:14:16 | <iqubic> | Hmm... that's annoying. MemoTrie looks good, but it doesn't have instances for Set or Map... |
| 2025-12-26 03:14:21 | <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 03:15:23 | <iqubic> | Well, I'm using this 'Map' to store the state of the system I'm modeling. |
| 2025-12-26 03:15:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 03:20:05 | → | pebble joins (~pebble@37.63.33.138) |
| 2025-12-26 03:21:21 | <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 03:22:31 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 03:23:19 | <iqubic> | Yeah, that does make sense. |
| 2025-12-26 03:24:23 | <iqubic> | Why does memoizing over a list make sense? |
| 2025-12-26 03:25:56 | <geekosaur> | large lists are kinda their own punishment 🙂 |
| 2025-12-26 03:26:52 | <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 03:27:01 | <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 03:27:38 | <geekosaur> | same reason why you can't have `Set` or `Map` `Monad` instances |
| 2025-12-26 03:29:18 | <Leary> | Though `splitRoot` is essentially a look into the internals, so you can probably hack a `HasTrie` instance with it. |
| 2025-12-26 03:30:10 | <glguy> | Probably the easiest starting point is to use to list and memoize with a list argument |
| 2025-12-26 03:33:33 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 03:38:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-26 03:44:28 | → | emmanuelux_ joins (~emmanuelu@user/emmanuelux) |
| 2025-12-26 03:44:32 | × | kaskal quits (~kaskal@84-115-235-223.cable.dynamic.surfer.at) (Ping timeout: 240 seconds) |
| 2025-12-26 03:44:33 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-26 03:45:59 | → | kaskal joins (~kaskal@2a02:8388:1a8b:7d00:5666:a937:cb77:6c3b) |
| 2025-12-26 03:49:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 03:53:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-26 03:54:14 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2025-12-26 04:05:49 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-26 04:10:24 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-26 04:14:10 | × | acidjnk quits (~acidjnk@p200300d6e7171922bda2454d8bce8e38.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 2025-12-26 04:19:24 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-26 04:21:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
All times are in UTC.