2025/12/01

Newest at the top

2025-12-01 22:37:55 +0100 <haskellbridge> <zoil> i have enough time today to put together a working example
2025-12-01 22:37:28 +0100 <haskellbridge> <zoil> they were saying something about having a type witness, eta something, and singletons
2025-12-01 22:37:01 +0100 <haskellbridge> <zoil> (nets that have regularizers reweighting internal branches at neurons)
2025-12-01 22:36:58 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-12-01 22:36:43 +0100 <haskellbridge> <zoil> i have time today, i got my code to compile
2025-12-01 22:36:33 +0100 <haskellbridge> <zoil> zoil: You would need e.g. "data WhichNE xs where { IsCons :: WhichNE (Cons x xs); IsLast :: WhichNE (Last x) }; class KnownNE ne where { knownNE :: WhichNE ne }; <both instances>; instance KnownNE xs => Read (Transfers xs) where { read s = case knownNE of { ... } }".
2025-12-01 22:36:33 +0100 <haskellbridge> <zoil> can anyone help me understand this?
2025-12-01 22:31:21 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) Anarchos
2025-12-01 22:31:21 +0100 <jreicher> How did I miss that. I wonder if the grammars I built are the same.
2025-12-01 22:30:40 +0100 <tomsmeding> jreicher: from the .js files in the grammar/ directory
2025-12-01 22:30:30 +0100 <jreicher> What's the json generated from? I thought the json was written.
2025-12-01 22:30:25 +0100 <merijn> I can't make heads of tails of that grammar and I wrote and graded quite a few
2025-12-01 22:30:08 +0100 <merijn> tomsmeding: That's what *I* would do, but I certainly would make it more readable than that :p
2025-12-01 22:30:02 +0100 <tomsmeding> the keys in operator.js for example make me think of the haskell grammar
2025-12-01 22:29:42 +0100 <tomsmeding> merijn: I dunno, but wouldn't they just have faithfully implemented the haskell2010 grammar plus extensions?
2025-12-01 22:29:13 +0100 <tomsmeding> I know _that_ much about treesitter :p
2025-12-01 22:28:58 +0100 <tomsmeding> well, the json is the grammar, kind of, but in the same way that an LR parsing table is also "the grammar"
2025-12-01 22:28:42 +0100 <merijn> That, yeah
2025-12-01 22:28:38 +0100 <tomsmeding> no, it's javascript that is compiled to the json
2025-12-01 22:28:36 +0100 <merijn> jreicher: The json isn't the grammar
2025-12-01 22:28:30 +0100 <jreicher> The C is generated
2025-12-01 22:28:27 +0100 <jreicher> Which is the json
2025-12-01 22:28:20 +0100 <tomsmeding> surely merijn means the source, not the compiled result https://github.com/tree-sitter/tree-sitter-haskell/tree/master/grammar
2025-12-01 22:27:58 +0100 <jreicher> You mean that, right?
2025-12-01 22:27:58 +0100 <merijn> tomsmeding: I'm writing my own for sqlite, the haskell one is just convoluted and ununderstandable
2025-12-01 22:27:56 +0100 <jreicher> https://github.com/tree-sitter/tree-sitter-haskell/blob/master/src/grammar.json
2025-12-01 22:27:34 +0100 <merijn> tomsmeding: That's not because it's TS grammar
2025-12-01 22:27:22 +0100 <tomsmeding> merijn: I looked before and couldn't quite make heads or tails of what I was seeing (mind I haven't looked at TS grammars before)
2025-12-01 22:27:10 +0100 <merijn> tomsmeding: It really doesn't matter :p
2025-12-01 22:27:00 +0100 <ski> (not quite getting the context)
2025-12-01 22:26:58 +0100 <tomsmeding> merijn: any part in particular you want me to look at
2025-12-01 22:26:37 +0100 <merijn> tomsmeding: But humor me and open the haskell tree sitter grammar :)
2025-12-01 22:26:29 +0100 <ski> fgarcia : do you have an example of "use those terms in functions" ?
2025-12-01 22:26:27 +0100 <merijn> tomsmeding: Sure
2025-12-01 22:26:02 +0100 <tomsmeding> it's not that building a haskell parser is impossible -- not at all. Properly dealing with the indentation-sensitive layout is just non-trivial
2025-12-01 22:25:40 +0100 <tomsmeding> right :)
2025-12-01 22:25:36 +0100 <jreicher> I just mean building the treesitter grammar. I didn't mean writing one. :)
2025-12-01 22:25:24 +0100 <tomsmeding> (I was saying that to jreicher)
2025-12-01 22:25:06 +0100 <merijn> tomsmeding: Yes
2025-12-01 22:24:57 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2025-12-01 22:24:57 +0100 <tomsmeding> ever tried properly parsing haskell?
2025-12-01 22:24:50 +0100 <jreicher> Building a grammar is quite easy though.
2025-12-01 22:24:49 +0100 <tomsmeding> "Nvim includes these parsers: C, Lua, Markdown, Vimscript, Vimdoc, Treesitter query files"
2025-12-01 22:24:36 +0100 <tomsmeding> merijn: :help treesitter
2025-12-01 22:24:28 +0100 <merijn> You gotta "TSInstall haskell"
2025-12-01 22:24:21 +0100 <merijn> tomsmeding: It doesn't bundle any grammars at all by default
2025-12-01 22:24:16 +0100 <jreicher> Emacs doesn't either. I think the grammars are still moving targets.
2025-12-01 22:24:13 +0100 <merijn> That being said, the haskell treesitter grammar is kinda ugly as sin
2025-12-01 22:24:00 +0100 <tomsmeding> and also, even though neovim supports tree-sitter, it doesn't bundle a Haskell grammar by default, it seems
2025-12-01 22:23:54 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 244 seconds)