Logs: liberachat/#haskell
| 2025-12-08 21:29:09 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2025-12-08 21:30:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 21:30:33 | <yin> | seems like the radix tree implementation handles negative ints so that correct order is maintained |
| 2025-12-08 21:30:46 | <yin> | cool |
| 2025-12-08 21:31:24 | <EvanR> | maintained...... during what process |
| 2025-12-08 21:32:40 | → | chenjf joins (~chenjf@68.64.178.54) |
| 2025-12-08 21:33:39 | <yin> | for what i understand, it's structured so that traversing naturally happens from minBound to maxBound |
| 2025-12-08 21:34:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-08 21:35:53 | <yin> | (in that expected direction) |
| 2025-12-08 21:36:18 | <yin> | my english may be failing me here |
| 2025-12-08 21:37:49 | <EvanR> | well toList isn't really a process from IntSets to IntSets so you wouldn't be able to notice a change in ordering if there was one, because it's apples to oranges |
| 2025-12-08 21:38:29 | <EvanR> | e.g. I figured you were asking if e.g. filtering out a particular value from the set leaves the remainder in the same relative order (observed when you do toList) |
| 2025-12-08 21:38:48 | <EvanR> | or inserting a new value |
| 2025-12-08 21:41:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 21:41:57 | <yin> | yes i'm also not sure in what measure those properties are exposed |
| 2025-12-08 21:42:17 | <[exa]> | yin: anyway in the radix tree you still can't reach for k-th element in O(log(n)), I don't see they'd store weights there. So that's faster for the normal Set. OTOH the okasaki paper measured that tree merging is way faster for the radix trees (which makes sense). |
| 2025-12-08 21:42:56 | <[exa]> | so e.g. if you need quick quantiles, go for Set Int |
| 2025-12-08 21:44:19 | <[exa]> | (kinda sad the k-th smallest element operation is not exposed in API though.) |
| 2025-12-08 21:46:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-08 21:46:25 | × | spew quits (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-08 21:47:43 | × | wbooze quits (~wbooze@cgn-195-14-220-195.nc.de) (Read error: Connection reset by peer) |
| 2025-12-08 21:49:52 | × | chenjf quits (~chenjf@68.64.178.54) (Ping timeout: 255 seconds) |
| 2025-12-08 21:50:20 | <yin> | splitRoot is interesting |
| 2025-12-08 21:50:44 | × | trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-08 21:50:46 | <yin> | oh, there's elemAt |
| 2025-12-08 21:51:05 | <yin> | for Set |
| 2025-12-08 21:51:46 | <yin> | how did i not know that |
| 2025-12-08 21:51:49 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-12-08 21:53:25 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-08 21:53:34 | <[exa]> | oh wait coooooooooooool |
| 2025-12-08 21:53:56 | <[exa]> | yin: tbh I didn't notice it until now |
| 2025-12-08 21:54:24 | <[exa]> | ok so my complaints above can now be safely slashed |
| 2025-12-08 21:54:45 | <yin> | they're still valid for IntSet |
| 2025-12-08 21:55:59 | <[exa]> | yeah but there that's expected |
| 2025-12-08 21:56:08 | <yin> | right |
| 2025-12-08 21:56:25 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 264 seconds) |
| 2025-12-08 21:57:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 22:01:05 | → | pavonia joins (~user@user/siracusa) |
| 2025-12-08 22:01:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-08 22:01:49 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 264 seconds) |
| 2025-12-08 22:12:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 22:14:28 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2025-12-08 22:15:09 | → | itaipu joins (~itaipu@168.121.97.28) |
| 2025-12-08 22:15:30 | × | trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-08 22:15:44 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-08 22:17:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-08 22:18:00 | <monochrom> | yin: I would choose Set Int if I believe that one day I may have to change Int to something else. |
| 2025-12-08 22:20:04 | <yin> | I maintain a personal library which abstracts the most common operations on containers so that I can have type Whatever = SomeContainer |
| 2025-12-08 22:21:16 | <yin> | but it's both very incomplete and i feel not the most elegant solution |
| 2025-12-08 22:22:19 | <monochrom> | Oh, the road to overthinking the best abstraction never ends. :) |
| 2025-12-08 22:22:19 | <EvanR> | ah the Container class |
| 2025-12-08 22:22:53 | <EvanR> | sounds like it is likely to be unable to implement some of the operations for most use cases |
| 2025-12-08 22:23:15 | × | elarks quits (~yerri@user/yerrii) (Quit: WeeChat 4.7.1) |
| 2025-12-08 22:23:42 | <EvanR> | java style would include "isOperationXImplemented :: Proxy a -> Bool" xD |
| 2025-12-08 22:24:48 | <yin> | yeah this is not what we should be using classes for |
| 2025-12-08 22:26:28 | <davean> | Type families with runtime type dispatch! |
| 2025-12-08 22:28:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 22:29:27 | → | elarks joins (~yerri@user/yerrii) |
| 2025-12-08 22:31:44 | trickard_ | is now known as trickard |
| 2025-12-08 22:33:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-08 22:34:11 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-12-08 22:37:42 | <yin> | another insane option is to go the "one class per function" route and have a module which is just a list of sins like `class Lookupable a where lookup ...` |
| 2025-12-08 22:39:36 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 2025-12-08 22:39:50 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2025-12-08 22:40:01 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 244 seconds) |
| 2025-12-08 22:40:19 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-08 22:41:32 | <davean> | I'm only in if you have that be via reflection |
| 2025-12-08 22:43:05 | <monochrom> | GHC.Exts.withDict may help, but it is not an ergonomic interface. |
| 2025-12-08 22:44:33 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 22:44:34 | <monochrom> | And I haven't looked into whether it still works for MPTC, FunDep, type families... |
| 2025-12-08 22:44:43 | <yin> | at that point we would need some kind of type system! |
| 2025-12-08 22:47:50 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 2025-12-08 22:48:18 | × | Inline quits (~inlinE@2001-4dd3-7fc8-0-f57-6413-8f27-9a87.ipv6dyn.netcologne.de) (Quit: Leaving) |
| 2025-12-08 22:49:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-08 22:50:13 | → | ven4tor joins (~halloy594@host-128-227-1-55.xlate.ufl.edu) |
| 2025-12-08 22:50:28 | <yin> | haskell's runtime compiler |
| 2025-12-08 22:50:59 | ← | ven4tor parts (~halloy594@host-128-227-1-55.xlate.ufl.edu) () |
| 2025-12-08 22:51:56 | trickard_ | is now known as trickard |
| 2025-12-08 22:56:10 | × | raeven quits (~raeven@user/raeven) (Ping timeout: 245 seconds) |
| 2025-12-08 23:00:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 23:04:15 | × | FANTOM_ quits (~fantom@212.228.181.156) (Ping timeout: 240 seconds) |
| 2025-12-08 23:04:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-08 23:07:08 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 2025-12-08 23:08:25 | → | Inline joins (~inlinE@2001-4dd3-7fc8-0-6429-4236-6fc8-9372.ipv6dyn.netcologne.de) |
| 2025-12-08 23:11:43 | × | timide quits (~timide@user/timide) (Ping timeout: 240 seconds) |
| 2025-12-08 23:13:02 | → | timide joins (~timide@user/timide) |
| 2025-12-08 23:16:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 23:19:55 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 2025-12-08 23:20:08 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2025-12-08 23:20:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-08 23:22:57 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 2025-12-08 23:29:58 | × | jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 260 seconds) |
| 2025-12-08 23:31:36 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 2025-12-08 23:31:55 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 23:32:32 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-12-08 23:34:49 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 264 seconds) |
| 2025-12-08 23:36:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-08 23:41:24 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds) |
| 2025-12-08 23:47:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-12-08 23:50:26 | × | srk quits (~sorki@user/srk) (Ping timeout: 256 seconds) |
All times are in UTC.