Newest at the top
2024-10-06 20:11:56 +0200 | <Inst> | well, the point is, you can insert do within the definition of an IO value that's actually a Maybe computation and it gets confusing |
2024-10-06 20:11:14 +0200 | <davean> | do doesn't have type stuff, its syntax ... |
2024-10-06 20:11:05 +0200 | <davean> | there is no polymorphism here. |
2024-10-06 20:10:49 +0200 | <Inst> | in the sense that having too much polymorphism can be a bad thing |
2024-10-06 20:10:40 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-06 20:10:39 +0200 | <Inst> | i'm just saying that it's related to me complaining about how you don't have container polymorphism due to all the annotations required to use functions from different container libraries / modules |
2024-10-06 20:10:21 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Remote host closed the connection) |
2024-10-06 20:10:14 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-06 20:09:51 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-10-06 20:09:51 +0200 | <int-e> | we can still shoot programmers who, err, do that. |
2024-10-06 20:09:51 +0200 | <Inst> | no, but some people apparently inline do blocks without type annotations and then complain that it's unreadable |
2024-10-06 20:09:45 +0200 | <geekosaur> | why does this bother you? |
2024-10-06 20:09:30 +0200 | <Inst> | do pi is valid |
2024-10-06 20:09:27 +0200 | <davean> | right, its *syntax* |
2024-10-06 20:09:15 +0200 | <Inst> | see the do bulleting fanclub |
2024-10-06 20:09:04 +0200 | <Inst> | actually, do blocks don't even require monads or applicatives |
2024-10-06 20:09:02 +0200 | <monochrom> | I thought people complained not having ApplicativeDo when it was not available. |
2024-10-06 20:08:58 +0200 | <int-e> | davean: well that's a very important question when you overload it Stroustrup style |
2024-10-06 20:08:35 +0200 | <davean> | thats like asking what the type of whitespace is |
2024-10-06 20:08:17 +0200 | <davean> | there is no type of a do block ... its syntax ... |
2024-10-06 20:08:02 +0200 | <Inst> | you can't see the type of the do block |
2024-10-06 20:07:58 +0200 | <Inst> | do is polymorphic over monads and applicatives (with -XApplicativeDo) |
2024-10-06 20:07:52 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-06 20:07:39 +0200 | <davean> | what is polymorphic do? |
2024-10-06 20:07:37 +0200 | <int-e> | "people" |
2024-10-06 20:07:37 +0200 | <Inst> | especially since it's a pain in the ass to provide a proper type annotation to it |
2024-10-06 20:07:33 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Remote host closed the connection) |
2024-10-06 20:07:17 +0200 | <Inst> | iirc people complain about polymorphic do as well |
2024-10-06 20:07:10 +0200 | <monochrom> | Two lines of "import X qualified; import X (X)" is annoying. But it's also only 1% of my time. |
2024-10-06 20:06:58 +0200 | <int-e> | this one is a mix of 3 and 4. |
2024-10-06 20:06:53 +0200 | <int-e> | I guess there's 4) it's not a great fit for a lazy functional programming language |
2024-10-06 20:06:46 +0200 | <Inst> | and the Python guys are happy with their NotAsBadAsJuliaSinceTheresMillionsOfEyeballs.len() functions |
2024-10-06 20:06:14 +0200 | <monochrom> | Personally I find "Map.insert" and "V.insert" very clarifying. |
2024-10-06 20:05:50 +0200 | <Inst> | fff, is hoogle down again? |
2024-10-06 20:05:50 +0200 | <int-e> | "Why doesn't Haskell have XXX" usually comes down to three things. 1) it's too hard, or 2) it's not in desparate demand, or 3) there are viable alternatives that are good enough |
2024-10-06 20:05:34 +0200 | robertm | (robertm@lattice.rojoma.com) robertm |
2024-10-06 20:05:08 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-06 20:04:49 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Remote host closed the connection) |
2024-10-06 20:04:45 +0200 | <int-e> | well evidently it's not rising to the level of a problem |
2024-10-06 20:04:30 +0200 | <davean> | I think you're the only one that sees it as a problem |
2024-10-06 20:04:16 +0200 | <Inst> | and we won't have that problem |
2024-10-06 20:04:11 +0200 | <Inst> | maybe someday people will do an API change and people will CRYYYYYY |
2024-10-06 20:04:01 +0200 | <Inst> | bleh, I'll just while away the time trying to replicate the Vector interface with a Dynamic vector |
2024-10-06 20:03:52 +0200 | <monochrom> | Yes because of the reason I said. |
2024-10-06 20:03:36 +0200 | <Inst> | and iirc most of the containers are intended to be imported qualified |
2024-10-06 20:03:09 +0200 | robertm | (robertm@lattice.rojoma.com) (Quit: WeeChat 3.8) |
2024-10-06 20:03:01 +0200 | <monochrom> | Vector was just before Foldable came along. |
2024-10-06 20:02:34 +0200 | <Inst> | Vector at least has a length :: Vector a -> Int that ummm, creates name clashes with Prelude.length |
2024-10-06 20:02:20 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-06 20:02:01 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Remote host closed the connection) |