Newest at the top
2024-10-13 20:20:38 +0200 | <geekosaur> | requiring a constraint solver even more vcomplicated than the one GHC hsas currently goes against the grain of that |
2024-10-13 20:20:19 +0200 | <geekosaur> | also I'd like tonote that Haskell was supposed to be relatively easily implementable and the H98 and H2010 reports at least try to avoid specifying things that would make implementing it de novo too complex |
2024-10-13 20:20:09 +0200 | <monochrom> | https://mail.haskell.org/pipermail/haskell-cafe/2010-November/086220.html |
2024-10-13 20:19:27 +0200 | <monochrom> | Oh, that we know, it's obvious. |
2024-10-13 20:18:48 +0200 | <Inst> | monochrom: overload all functions by default based on types |
2024-10-13 20:18:04 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh |
2024-10-13 20:16:47 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-13 20:15:33 +0200 | <geekosaur> | not to mention that now mono-traversable etc. need to be in base for it to be actually usable, but mono-traversable has its own problems |
2024-10-13 20:14:58 +0200 | <geekosaur> | context suggests the intent is "uses typeclass constraints instead of types for everything". which is still confused, as how can you have typeclass constraints without types to resolve them to? |
2024-10-13 20:13:59 +0200 | <monochrom> | Not sure what "Haskell made the decision to not go to typeclasses by default" means (does it even mean anything?), but type classes did not even exist until some Haskell people (eg Wadler, Jones) invented it for Haskell. As in, no other language had it back then. |
2024-10-13 20:13:00 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2024-10-13 20:12:24 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-10-13 20:11:53 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-13 20:06:40 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2024-10-13 20:06:29 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2024-10-13 20:05:37 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 248 seconds) |
2024-10-13 20:01:26 +0200 | motherfsck | (~motherfsc@user/motherfsck) motherfsck |
2024-10-13 20:00:51 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-13 19:56:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-13 19:55:31 +0200 | <geekosaur> | types at least can be local to a module if they're not exported; typeclass instances are always exported |
2024-10-13 19:53:50 +0200 | <geekosaur> | also, it's not type safety. typeclasses have distinct limitations, in particular that instances are global (although admittedly that part is type safety in that local typeclass instances would give rise to unsoundness) |
2024-10-13 19:51:12 +0200 | <geekosaur> | (by "local-ish", I mean the "local" keyword to create a local context applied to what are otherwise top level bindings) |
2024-10-13 19:49:29 +0200 | <geekosaur> | importing a (usually parameterized, i.e. "functor" in SML/NJ terminology, as distinct from Haskell's) module locally so you can use it in a set of local-ish bindings |
2024-10-13 19:44:44 +0200 | CiaoSen | (~Jura@2a05:5800:215:400:ca4b:d6ff:fec1:99da) CiaoSen |
2024-10-13 19:44:28 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-13 19:40:27 +0200 | euleritian | (~euleritia@77.22.252.56) |
2024-10-13 19:39:53 +0200 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2024-10-13 19:35:31 +0200 | <Inst> | also, having every type error turn into "no instance of ..." is probably really annoying |
2024-10-13 19:35:14 +0200 | synchromesh | (~john@2406:5a00:2497:300:5545:131a:a4af:e344) synchromesh |
2024-10-13 19:35:13 +0200 | <Inst> | it's probably a type safety thing |
2024-10-13 19:35:06 +0200 | <Inst> | I'm wondering right now why Haskell made the decision to not go to typeclasses by default (although typeclasses were a later introduction) |
2024-10-13 19:34:38 +0200 | <Inst> | I'm not familiar with SML/NJ's open |
2024-10-13 19:34:07 +0200 | synchromesh | (~john@2406:5a00:2497:300:5545:131a:a4af:e344) (Read error: Connection reset by peer) |
2024-10-13 19:33:42 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-13 19:30:51 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
2024-10-13 19:29:00 +0200 | <geekosaur> | in some bass-ackwards fashion? |
2024-10-13 19:28:43 +0200 | <geekosaur> | isn't that more emulating SML/NJ's `open`? |
2024-10-13 19:28:01 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-13 19:27:33 +0200 | comonad | (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2024-10-13 19:27:23 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh |
2024-10-13 19:26:57 +0200 | <Inst> | \you could do it, it'd be funny (in a stapler to your forehead kind of way), but why? |
2024-10-13 19:26:20 +0200 | <Inst> | then using typeclasses as a way of generating objects |
2024-10-13 19:26:13 +0200 | <Inst> | (i don't think Idris has that?) |
2024-10-13 19:26:09 +0200 | <Inst> | scoped typeclasses |
2024-10-13 19:26:00 +0200 | <Inst> | thank god I'm not capable of modifying GHC part 2938 |
2024-10-13 19:22:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-13 19:22:57 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-13 19:21:11 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2024-10-13 19:18:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-13 19:16:03 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |