2026/02/24

Newest at the top

2026-02-24 12:14:06 +0100xdminsy(~xdminsy@112.10.231.192) xdminsy
2026-02-24 12:14:03 +0100fp(~Thunderbi@wireless-86-50-141-0.open.aalto.fi) (Ping timeout: 268 seconds)
2026-02-24 12:12:42 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2026-02-24 12:10:10 +0100tromp(~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) (Quit: My iMac has gone to sleep. ZZZzzz…)
2026-02-24 12:07:22 +0100lxsameer(~lxsameer@Serene/lxsameer) (Quit: WeeChat 4.8.1)
2026-02-24 11:59:31 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 276 seconds)
2026-02-24 11:57:55 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-02-24 11:53:35 +0100Enrico63(~Enrico63@host-79-19-156-232.retail.telecomitalia.it) Enrico63
2026-02-24 11:49:08 +0100mange(~mange@user/mange) mange
2026-02-24 11:32:21 +0100hsw(~hsw@106.104.102.45) hsw
2026-02-24 11:31:37 +0100ec(~ec@gateway/tor-sasl/ec) ec
2026-02-24 11:31:16 +0100hsw(~hsw@106.104.102.45) (Remote host closed the connection)
2026-02-24 11:29:22 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
2026-02-24 11:27:05 +0100divlamir(~divlamir@user/divlamir) divlamir
2026-02-24 11:26:50 +0100divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2026-02-24 11:23:43 +0100 <Leary> Re the extended argument, it's really about typeclasses with laws being used to implement operations that /don't require/ those laws and are useful in their absence; the typeclass method merely being a default choice.
2026-02-24 11:21:57 +0100 <Leary> Even in such a case, `Arg` should be handrolled in the guts of containers, not exposed from base.
2026-02-24 11:20:56 +0100int-eponders extending this argument to saying that type classes are useles; people could just pass around the right operations explicitly. :-P
2026-02-24 11:20:38 +0100morj_away(~morj@user/morj) (Client Quit)
2026-02-24 11:18:20 +0100 <int-e> (So it's not just programmer laziness.)
2026-02-24 11:17:10 +0100 <int-e> `fooBy` is awful when you have data structures with invariants (consider an implementation of containers that implements Data.Map using Data.Set with `Arg k v` elements)
2026-02-24 11:16:37 +0100morj(~morj@user/morj) (Ping timeout: 272 seconds)
2026-02-24 11:16:01 +0100morj_away(~morj@user/morj) morj
2026-02-24 11:13:29 +0100xdminsy(~xdminsy@112.10.231.192) (Quit: Konversation terminated!)
2026-02-24 11:13:02 +0100petrichor(~jez@user/petrichor) petrichor
2026-02-24 11:11:52 +0100 <Leary> At least, not useful enough to justify its existence.
2026-02-24 11:11:25 +0100 <Leary> It's occasionally pragmatic to break the law, yes. `Arg` actually wouldn't be useful if people always remembered to write `fooBy` instead of just `foo :: Ord a => ...`.
2026-02-24 11:08:35 +0100morj(~morj@user/morj) morj
2026-02-24 11:08:16 +0100 <__monty__> Leary: But things like Arg exist and they exist because they are useful, I assume.
2026-02-24 11:08:00 +0100xdminsy(~xdminsy@112.10.231.192) xdminsy
2026-02-24 11:02:35 +0100tomsmedinghas a meeting -> afk
2026-02-24 11:02:13 +0100 <Leary> __monty__: `==` values aren't supposed to be distinguishable in the first place.
2026-02-24 11:01:58 +0100 <tomsmeding> int-e: yes
2026-02-24 11:01:25 +0100 <__monty__> I assume that's for some sort of canonicalization?
2026-02-24 11:01:03 +0100 <__monty__> TIL, min and max can return a value that is distinct from their arguments, as long as it is == to one of their arguments.
2026-02-24 10:59:28 +0100 <int-e> tomsmeding: here is what it looks like properly: https://int-e.eu/~bf3/tmp/hapo.png
2026-02-24 10:57:21 +0100 <__monty__> tomsmeding: Oh, obviously, darn, less interesting than I thought.
2026-02-24 10:56:52 +0100 <tomsmeding> yes, which is also what dminuoso made of it
2026-02-24 10:56:24 +0100 <Leary> tomsmeding: Cross connections. Bit hard in slapdash asci. I revised it with an X if that's clearer.
2026-02-24 10:56:14 +0100 <jreicher> __monty__: if the order is transitive and antisymmetric it can't be cyclical
2026-02-24 10:55:11 +0100 <tomsmeding> __monty__: Integer?
2026-02-24 10:54:55 +0100 <tomsmeding> dminuoso: the x must be a crossing of lines without a node, yes
2026-02-24 10:54:53 +0100 <dminuoso> Not sure if it makes it less or more ambiguous
2026-02-24 10:54:51 +0100 <merijn> __monty__: Clearly we need a PartialOrd superclass of Ord that implement "a -> a -> Maybe Ordering"
2026-02-24 10:54:43 +0100 <dminuoso> Or well, maybe without that x even
2026-02-24 10:54:34 +0100 <__monty__> I'm also interested in kind of the reverse question, are there structures that can implement Ord but not Bounded? Something like a cyclical ordering? I suppose only if we put the "laws" of the class aside.
2026-02-24 10:54:13 +0100 <dminuoso> Leary: Did you mean it like https://paste.tomsmeding.com/ayvscggm ?
2026-02-24 10:53:19 +0100 <int-e> Hasse diagram, meh.
2026-02-24 10:53:18 +0100 <tomsmeding> Leary: that notation in your gist is a bit ambiguous, what do the /\ on line 4 mean :p
2026-02-24 10:52:55 +0100 <jreicher> int-e: have I understood you correctly?