Logs: liberachat/#haskell
| 2025-11-19 12:37:44 | <lambdabot> | Extra stuff at end of line |
| 2025-11-19 12:37:46 | <tomsmeding> | @help free |
| 2025-11-19 12:37:47 | <lambdabot> | free <ident>. Generate theorems for free |
| 2025-11-19 12:37:52 | <leosha> | @help free |
| 2025-11-19 12:37:52 | <lambdabot> | free <ident>. Generate theorems for free |
| 2025-11-19 12:37:59 | <tomsmeding> | @free x :: (a -> f b) -> s -> f t |
| 2025-11-19 12:37:59 | <lambdabot> | Plugin `free' failed with: src/Lambdabot/Plugin/Haskell/Free/Type.hs:(153,17)-(161,45): Non-exhaustive patterns in case |
| 2025-11-19 12:38:02 | <tomsmeding> | nice |
| 2025-11-19 12:38:06 | <leosha> | lol |
| 2025-11-19 12:38:19 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 2025-11-19 12:38:51 | <[exa]> | yin: I found this to be a pretty common tree-sitter issue, many language parsers are "supported" but completely underrepresented there, and their error recovery is shaky at best (and error recovery is VERY required for things their parsers don't manage to do, which in the very specific case of haskell is many things) |
| 2025-11-19 12:40:08 | <chromoblob> | has vim's haskell highlighter been fixed to allow space between ` and the identifier between `'s? |
| 2025-11-19 12:40:24 | <[exa]> | yin: btw after seeing what some of their parses look internally I decided to simply avoid tree-sitter :) |
| 2025-11-19 12:40:24 | <Leary> | @free x :: (a -> F b) -> s -> F t |
| 2025-11-19 12:40:24 | <lambdabot> | $map_F g . p = q . f => $map_F k . x p = x q . h |
| 2025-11-19 12:40:43 | <[exa]> | chromoblob: oh whew let me check :D |
| 2025-11-19 12:41:15 | <[exa]> | chromoblob: well, no :D |
| 2025-11-19 12:41:24 | <chromoblob> | heh. |
| 2025-11-19 12:41:25 | <[exa]> | who puts spaces in there? |
| 2025-11-19 12:41:38 | <chromoblob> | it's allowed!!! |
| 2025-11-19 12:42:07 | [exa] | . o O ( unsafePutSpacesIntoBackticks ) |
| 2025-11-19 12:43:24 | × | fp quits (~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 252 seconds) |
| 2025-11-19 12:46:05 | <[exa]> | chromoblob: ok so I just added ' *' to the 2 lines that match that in /usr/share/vim/.../syntax/haskell.vim and it seems to just work |
| 2025-11-19 12:46:24 | → | fp joins (~Thunderbi@130.233.70.198) |
| 2025-11-19 12:46:26 | <[exa]> | lines 49 and 50, rules hsVarSym and hsConSym |
| 2025-11-19 12:46:41 | <[exa]> | wonder what it breaks |
| 2025-11-19 12:46:54 | × | fp quits (~Thunderbi@130.233.70.198) (Client Quit) |
| 2025-11-19 12:47:16 | → | fp joins (~Thunderbi@2001:708:20:1406::10c5) |
| 2025-11-19 12:49:07 | → | AlexNoo joins (~AlexNoo@178.34.162.20) |
| 2025-11-19 12:49:53 | <[exa]> | let's ask the devs I guess, we have a pull request day today anyway |
| 2025-11-19 12:50:56 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
| 2025-11-19 12:54:19 | × | vardhan quits (~vardhan@122.172.81.68) (Ping timeout: 264 seconds) |
| 2025-11-19 12:54:41 | × | srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
| 2025-11-19 12:57:14 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-11-19 13:00:57 | <[exa]> | chromoblob: https://github.com/vim/vim/pull/18776 |
| 2025-11-19 13:02:05 | <chromoblob> | [exa]: thank you!!! i waited for this |
| 2025-11-19 13:02:14 | → | comerijn joins (~merijn@77.242.116.146) |
| 2025-11-19 13:02:30 | <[exa]> | chromoblob: how long tho |
| 2025-11-19 13:03:04 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 2025-11-19 13:03:38 | <chromoblob> | years (but i haven't been writing much haskell that time) |
| 2025-11-19 13:05:18 | → | trickard__ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-19 13:05:25 | × | trickard quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Ping timeout: 264 seconds) |
| 2025-11-19 13:06:33 | <[exa]> | oh great we improved on a long-awaited feature today |
| 2025-11-19 13:06:42 | <[exa]> | beverages! |
| 2025-11-19 13:09:49 | × | leosha quits (~leoshatru@58.164.30.38) (Quit: leaving) |
| 2025-11-19 13:13:45 | trickard__ | is now known as trickard |
| 2025-11-19 13:19:43 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.7.0) |
| 2025-11-19 13:22:22 | → | humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-11-19 13:22:45 | × | humasect_ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-11-19 13:25:00 | → | humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-11-19 13:25:54 | × | humasect_ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Client Quit) |
| 2025-11-19 13:34:56 | × | Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!) |
| 2025-11-19 13:37:48 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-11-19 13:38:54 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-11-19 13:39:19 | × | fp quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 264 seconds) |
| 2025-11-19 13:44:09 | → | qqe joins (~qqq@185.54.21.140) |
| 2025-11-19 13:53:53 | <merijn> | [exa]: Haskell's treesitter parser is also horrifically confusing. I tried looking at it for inspiration for writing my own tree-sitter parsers |
| 2025-11-19 13:54:04 | × | qqe quits (~qqq@185.54.21.140) (Quit: Lost terminal) |
| 2025-11-19 13:56:00 | → | simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
| 2025-11-19 14:03:39 | <[exa]> | merijn: man, I opened that |
| 2025-11-19 14:03:41 | <[exa]> | my eyes |
| 2025-11-19 14:04:35 | <merijn> | [exa]: It's a nightmare |
| 2025-11-19 14:05:33 | <[exa]> | it's like if flex&yacc never happened |
| 2025-11-19 14:06:19 | <merijn> | It's like they looked at the tree-sitter documentation of keeping parse trees simple and small and being like...naah, fuck that |
| 2025-11-19 14:06:47 | <merijn> | Maybe if I'm ever done writing my SQLite tree-sitter parser I will just write a Haskell parser from scratch |
| 2025-11-19 14:14:12 | → | spew joins (~spew@user/spew) |
| 2025-11-19 14:14:53 | → | pr1sm joins (~pr1sm@24.91.163.31) |
| 2025-11-19 14:18:59 | <[exa]> | merijn: why'd you do a sqlite one |
| 2025-11-19 14:29:03 | <merijn> | I started a new project using SQLite, I didn't like the neovim syntax highlighting of SQL (it's a terrible "every dialect half-assed together" tree-sitter parser) breaking on every query, got side-tracked into yak-shaving by writing my own SQLite parser since no one made one for me |
| 2025-11-19 14:29:35 | <merijn> | Everyone implements syntax highlighting for SELECT, create table, etc. but as soon as you do anything serious they're all like "lol, didn't implement that" |
| 2025-11-19 14:29:54 | <merijn> | It breaks on parameter substitutions, window functions, all kinds of other tiny things |
| 2025-11-19 14:35:51 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 2025-11-19 14:38:02 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-11-19 14:39:40 | × | pr1sm quits (~pr1sm@24.91.163.31) (Ping timeout: 264 seconds) |
| 2025-11-19 14:39:50 | × | spew quits (~spew@user/spew) (Ping timeout: 256 seconds) |
| 2025-11-19 14:41:31 | → | spew joins (~spew@user/spew) |
| 2025-11-19 14:44:16 | <tomsmeding> | chromoblob: why do you put spaces inside backticks |
| 2025-11-19 14:44:36 | <tomsmeding> | that's the big question here |
| 2025-11-19 14:45:13 | → | trickard__ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-19 14:45:25 | <chromoblob> | in normal usage, i don't |
| 2025-11-19 14:45:37 | × | trickard quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Ping timeout: 264 seconds) |
| 2025-11-19 14:46:10 | <chromoblob> | but it's irritating to have the highlighter disregard this possibility |
| 2025-11-19 14:46:34 | <tomsmeding> | vim's haskell highlighter also disregards the possibility of separating type signatures from the definition |
| 2025-11-19 14:47:24 | <int-e> | > id ` id ` id ` id ` id ` id ` 42 |
| 2025-11-19 14:47:25 | <lambdabot> | 42 |
| 2025-11-19 14:47:26 | <tomsmeding> | or having no spaces around :: |
| 2025-11-19 14:47:37 | <int-e> | (TIL, and eww) |
| 2025-11-19 14:47:51 | <tomsmeding> | > id`id`id`id`id`id`42 |
| 2025-11-19 14:47:53 | <lambdabot> | 42 |
| 2025-11-19 14:48:07 | tomsmeding | . o O ( https://en.wikipedia.org/wiki/Unlambda ) |
| 2025-11-19 14:48:24 | <int-e> | tomsmeding: ``ci`ci |
| 2025-11-19 14:48:44 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
| 2025-11-19 14:49:06 | <int-e> | (weird non-constant memory infinite loop with continuations) |
| 2025-11-19 14:49:41 | tomsmeding | was halfway through deciphering what that means and gave up |
| 2025-11-19 14:50:18 | <tomsmeding> | I've been trying to decide what the stronger-than lattice is between starvation-free, deadlock-free, non-blocking, obstruction-free, lock-free, wait-free is for a lecture I'm giving tomorrow |
| 2025-11-19 14:50:22 | <tomsmeding> | I think I'm just going to give up |
| 2025-11-19 14:50:30 | <tomsmeding> | noone in the class is going to understand it anyway |
| 2025-11-19 14:50:38 | <tomsmeding> | my brain is too fried |
| 2025-11-19 14:51:17 | <int-e> | How did the weird counter work... *twiddle*, ah, this: ``ci`.*`cr (prints lines with 0 stars, 1 stars, 2 stars etc.) |
| 2025-11-19 14:51:18 | <tomsmeding> | getting precise enough definitions that you can even reason about them properly is hard enough, and I'm not even sure I have the proper ones |
All times are in UTC.