2024/10/30

Newest at the top

2024-10-30 10:18:15 +0100 <tomsmeding> and you can create a singleton set without needing the dictionary, so why ask for it?
2024-10-30 10:17:53 +0100 <tomsmeding> so Set doesn't need to "save" the dictionary somehow when creating a new set, it can just request it whenever it needs it
2024-10-30 10:17:38 +0100 <tomsmeding> the type class system ensures that if you ask for an Ord a dictionary, then you'll always get the same one
2024-10-30 10:17:07 +0100 <Inst> thanks for showing i'm probably wrong about Set being weird
2024-10-30 10:16:49 +0100 <tomsmeding> though it's not terribly useful
2024-10-30 10:16:44 +0100 <tomsmeding> not sure what's wrong with that
2024-10-30 10:16:27 +0100merijn(~merijn@77.242.116.146) merijn
2024-10-30 10:16:25 +0100 <tomsmeding> you can fully consistently create a one-element set and then request a list of all elements in the set in increasing order
2024-10-30 10:15:41 +0100 <tomsmeding> why is that a problem?
2024-10-30 10:15:38 +0100 <tomsmeding> that is possible
2024-10-30 10:13:11 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-30 10:12:02 +0100 <Inst> i mean, unless i'm wrong about Set, i'm going to stop kicking the tires, I don't think much of containers
2024-10-30 10:09:44 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-10-30 10:09:30 +0100 <Inst> it's possible to create a Set using Set.singleton that, ummm, can't have elements added to or removed from it
2024-10-30 10:09:03 +0100 <Inst> empty :: Set a; i.e, without constraint
2024-10-30 10:08:56 +0100preflex(~preflex@schedar.uberspace.de) (Remote host closed the connection)
2024-10-30 10:08:31 +0100 <Inst> what's going on with Set, anyways?
2024-10-30 10:07:24 +0100AlexNoo(~AlexNoo@178.34.150.252) (Quit: Leaving)
2024-10-30 10:06:41 +0100AlexZenon(~alzenon@178.34.150.252) (Quit: ;-)
2024-10-30 10:06:32 +0100alphazone(~alphazone@2.219.56.221)
2024-10-30 10:05:56 +0100 <tomsmeding> the constructors are only exposed from the .Internal module, which seems fine
2024-10-30 10:05:47 +0100 <tomsmeding> Inst: looking at the haddocks is easier :p
2024-10-30 10:05:45 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2024-10-30 10:05:35 +0100 <Inst> ah, I misread the CPP, Set only exports the type if it's not ni Testing, so it's opaque
2024-10-30 10:03:31 +0100 <tomsmeding> ph88: if you don't like the case then a pattern guard also suffices https://play.haskell.org/saved/HDgQPO9u, and you can even put the `let childName2` as a guard too
2024-10-30 10:01:24 +0100merijn(~merijn@77.242.116.146) merijn
2024-10-30 09:59:15 +0100 <tomsmeding> something to do with scoping of existential type variables, probably
2024-10-30 09:59:04 +0100 <tomsmeding> (indeed, a bang pattern is insufficient, you really need a case)
2024-10-30 09:58:20 +0100 <tomsmeding> GHC goes even further and disallows the let-binding altogether, I'm not sure what the technical reason for that is, but it couldn't work anyway
2024-10-30 09:58:16 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-10-30 09:57:37 +0100 <tomsmeding> ph88: a let-binding is lazy, so it cannot generate any type evidence: to be certain that the type evidence you discover (such as equalities) is actually valid, you have to evaluate the proof (the GADT constructor) to WHNF
2024-10-30 09:56:29 +0100 <tomsmeding> ph88: https://play.haskell.org/saved/gbALp3A0
2024-10-30 09:55:15 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2024-10-30 09:53:15 +0100 <Inst> hmmm, weird, Set(..) should import all the constructors
2024-10-30 09:50:32 +0100merijn(~merijn@77.242.116.146) merijn
2024-10-30 09:46:24 +0100 <ph88> Could any type wizards have a look at this code? https://play.haskell.org/saved/io5gf3oy
2024-10-30 09:45:52 +0100ph88(~ph88@2a02:8109:9e26:c800:3808:5ad1:785a:e722) ph88
2024-10-30 09:39:22 +0100 <Inst> i.e, all state is explicit and is notated in the type system (IO / State / Reader ... etc)
2024-10-30 09:38:55 +0100 <Inst> is it true to say that, ignoring laziness, Haskell has no implicit state?
2024-10-30 09:38:32 +0100 <Inst> also, the reason I showed up this time was to ask
2024-10-30 09:37:37 +0100 <Inst> cool, Set exports its constructors so Set is technically broken
2024-10-30 09:35:37 +0100 <Inst> ah, so you can orphan instance Set into Functor, cool, except it's not a true Set you're orphan instancing but rather a size-balanced binary tree
2024-10-30 09:34:04 +0100 <Inst> Actually, I see where monochrom is right and Snoyman's wrong here, because the Haskell Set a is not a proper Set, but its interface assumes it is
2024-10-30 09:33:42 +0100 <Inst> jackdk: isn't that more about implementation details?
2024-10-30 09:20:18 +0100euleritian(~euleritia@ip2504fbd4.dynamic.kabel-deutschland.de)
2024-10-30 09:20:00 +0100euleritian(~euleritia@dynamic-176-006-131-000.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-30 09:12:15 +0100preflex(~preflex@schedar.uberspace.de)
2024-10-30 09:12:07 +0100preflex(~preflex@schedar.uberspace.de) (Remote host closed the connection)
2024-10-30 09:11:44 +0100alp(~alp@2001:861:e3d6:8f80:1380:9a94:518c:2b43)
2024-10-30 09:11:14 +0100ft(~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving)