2024/11/16

Newest at the top

2024-11-16 23:21:06 +0100 <hellwolf> say no more, let me write a test case
2024-11-16 23:20:11 +0100Square(~Square@user/square) (Ping timeout: 244 seconds)
2024-11-16 23:18:55 +0100 <geekosaur> actually (b) is wrong, instance dictionaries are value level but bypass the limit unless they're compiled internally to magic named records (I know they are at Core level, but not sure about before that)
2024-11-16 23:11:28 +0100 <hellwolf> okay, made the classes less trivial, with one function only. still okay, but notice a tiny little delay when loading through ghci
2024-11-16 23:11:11 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2024-11-16 23:10:02 +0100 <hellwolf> 1000s is fine too, I hope the empty class did not mattered.
2024-11-16 23:08:31 +0100 <hellwolf> 100 constraints was fine
2024-11-16 23:07:31 +0100sdrfan123(~sdrfan123@2607:fb91:db5:49ea:b971:f45f:2d53:96d1)
2024-11-16 23:06:35 +0100 <hellwolf> say no more, let me try
2024-11-16 23:02:12 +0100Jeff94(~Jeff@2603:8000:0:d7:bc06:28cf:84d9:61b8) (Client Quit)
2024-11-16 23:01:56 +0100 <geekosaur> (at least, I think that becomes a tuple)
2024-11-16 23:01:11 +0100 <geekosaur> (b) type level tuples already exceed the value level limit (consider the size of the Foldable instance dictionary)
2024-11-16 23:01:10 +0100Jeff94(~Jeff@2603:8000:0:d7:bc06:28cf:84d9:61b8)
2024-11-16 23:00:36 +0100 <geekosaur> (a) it is actually neither a value level tuple nor a normal type level tuple
2024-11-16 22:57:21 +0100 <hellwolf> GHC stress test
2024-11-16 22:54:17 +0100 <geekosaur> I would not be surprised if the typechecker falls over before hitting it though 🙂
2024-11-16 22:53:41 +0100 <geekosaur> I don't know
2024-11-16 22:53:29 +0100 <hellwolf> or it is unlimited.
2024-11-16 22:53:22 +0100 <hellwolf> is there also a 64 constraint limit :D
2024-11-16 22:53:16 +0100 <hellwolf> let me go back to the tuplite constraint approach...
2024-11-16 22:52:48 +0100 <geekosaur> check the Report
2024-11-16 22:52:37 +0100 <hellwolf> oh wow, that's stronger statement than I anticipated. I thought it was just a normal day flame-wars in geeks town.
2024-11-16 22:52:35 +0100 <geekosaur> or a worse one if ghc hq decides to e.g. make it mean something related to RequiredTypeArguments
2024-11-16 22:51:33 +0100 <geekosaur> so if bluefin is doing so they may be in for a surprise in a future ghc version
2024-11-16 22:51:17 +0100 <geekosaur> anyway, strictly speaking it's a parser bug, and as such relying on it is a bad idea
2024-11-16 22:48:17 +0100eaxzenmov
2024-11-16 22:46:58 +0100 <geekosaur> I don't do videos for the most part (sensory issues)
2024-11-16 22:46:40 +0100 <hellwolf> (if you haven't watched, check it out)
2024-11-16 22:46:15 +0100 <hellwolf> well, I saw a recent video from bluefin, it was used there exclusively
2024-11-16 22:46:13 +0100 <geekosaur> in patsyns it distinguishes required contexts from provided contexts
2024-11-16 22:45:48 +0100 <hellwolf> I did not know that. Actually, I rarely used the second one, and didn't realize it was correct.
2024-11-16 22:45:41 +0100 <geekosaur> so I wouldn't want to rely on it working because it might suddenly start to mean something different in the future
2024-11-16 22:45:22 +0100 <hellwolf> oh?
2024-11-16 22:45:08 +0100 <hellwolf> *flavors war
2024-11-16 22:45:07 +0100 <geekosaur> strictly speaking the latter is wrong, and it means something different in some contexts (notably pattern synonyms)
2024-11-16 22:44:22 +0100 <hellwolf> I just found that my emacs default formatter coping with the latter better.
2024-11-16 22:43:55 +0100 <hellwolf> rapid file mode... is this a Haskellite flame war: (a, b) => ... vs. a => b => ...
2024-11-16 22:40:08 +0100 <hellwolf> right. makes sense.
2024-11-16 22:37:26 +0100 <int-e> you'll either have to hide the import or use qualified names if you want to use such a function though
2024-11-16 22:36:11 +0100 <geekosaur> correct, because they're not defined within the same module/scope.
2024-11-16 22:34:59 +0100 <hellwolf> Overlapping function names from Prelude does not generate warnings, it seems acceptable?
2024-11-16 22:34:23 +0100Jeanne-Kamikaze(~Jeanne-Ka@79.127.217.50) (Quit: Leaving)
2024-11-16 22:31:07 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-11-16 22:21:42 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2024-11-16 22:20:27 +0100Guest28(~Guest63@2800:a4:10c5:4200:c0d2:e4ff:567a:64d8)
2024-11-16 22:20:00 +0100troojg(~troojg@user/troojg) (Ping timeout: 272 seconds)
2024-11-16 22:15:23 +0100eax(~eax@user/zenmov) zenmov
2024-11-16 22:03:37 +0100troojg(~troojg@user/troojg) troojg
2024-11-16 22:02:07 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
2024-11-16 22:01:06 +0100 <hellwolf> I think I found a solution, maybe it is common for eDSLs: say I have a keyword "match", I just need to do (BlockArguments alert) `match a \case -> Maybe a' -> a'; Nothing -> some_def`, where by a just needs to be constrained by an imaginary "EnumerablePatternMatchingCases", such that the codegen can just enumerate through the cases and generate code for all branches accordingly.