Logs: liberachat/#haskell
| 2025-09-11 09:51:02 | <tomsmeding> | % 1 == 2 && 3 == 4 |
| 2025-09-11 09:51:02 | <yahb2> | False |
| 2025-09-11 09:51:07 | <tomsmeding> | % 1 == 3 == 4 |
| 2025-09-11 09:51:08 | <yahb2> | <interactive>:89:1: error: [GHC-88747] ; Precedence parsing error ; cannot mix ‘==’ [infix 4] and ‘==’ [infix 4] in the same infix expression |
| 2025-09-11 09:51:17 | <tomsmeding> | this rule is currently false in haskell |
| 2025-09-11 09:51:37 | <tomsmeding> | (if I'm reading you correctly) |
| 2025-09-11 09:52:15 | <tomsmeding> | (this is not about types, while the types differ here you could define operators with these precedences where all the types are the same) |
| 2025-09-11 09:52:22 | <ski> | so, more generally, you could say `o B p C q' (where `o' is prefix and `q' suffix), then also `o B q' and `o C q' (assuming the associativity of both `B' and `C' is below that of `q' resp. `o') |
| 2025-09-11 09:53:40 | <ski> | mm yes, i should express that `p' is the intermediate operator, inbetween `o' and `q', here .. hmm |
| 2025-09-11 09:56:06 | <ski> | the idea is that if you have an AST, left-leaning, or right-leaning, not requiring explicit grouping, then removing the intermediate node (and its side-subtree, not on the path), that should not suddenly cause you to require grouping being inserted, to cope with the two nodes/operators now being directly in contact to each other |
| 2025-09-11 09:56:41 | <ski> | i suppose s/AST/CST/ |
| 2025-09-11 09:57:46 | <ski> | the point, is that if you have abstract precedences, then it would be too much work, to specify every possible interaction between pairs of operators |
| 2025-09-11 09:58:34 | → | petrichor joins (~jez@user/petrichor) |
| 2025-09-11 09:58:58 | <ski> | you'd want some notion of transitivity, to be able to infer that if `+' binds more loosely than `*', and `*' binds more loosely than `^', then `+' binds more loosely than `^' |
| 2025-09-11 10:00:19 | <ski> | (so, the question is how to tractably, modularly, specify the partial order of precedence) |
| 2025-09-11 10:01:04 | → | fp joins (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) |
| 2025-09-11 10:01:06 | <ski> | (btw, `if ... then ... else' would be a prefix operator, here, as well) |
| 2025-09-11 10:01:15 | <ski> | (or, at least, could be) |
| 2025-09-11 10:01:43 | → | LainIwakura joins (~LainIwaku@user/LainIwakura) |
| 2025-09-11 10:03:49 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
| 2025-09-11 10:04:08 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 2025-09-11 10:04:16 | <ski> | oh .. right. i kinda started thinking about this, when reading some papers by Annika Aasa, about parsing. and also then looking a bit at Agda parsing |
| 2025-09-11 10:05:20 | × | fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 245 seconds) |
| 2025-09-11 10:08:55 | × | petrichor quits (~jez@user/petrichor) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-09-11 10:10:35 | trickard_ | is now known as trickard |
| 2025-09-11 10:11:19 | × | LainIwakura quits (~LainIwaku@user/LainIwakura) (Ping timeout: 250 seconds) |
| 2025-09-11 10:13:57 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-11 10:14:09 | → | petrichor joins (~jez@user/petrichor) |
| 2025-09-11 10:14:41 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
| 2025-09-11 10:15:31 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 255 seconds) |
| 2025-09-11 10:16:52 | × | petrichor quits (~jez@user/petrichor) (Client Quit) |
| 2025-09-11 10:18:11 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds) |
| 2025-09-11 10:21:17 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-11 10:23:34 | → | LainIwakura joins (~LainIwaku@user/LainIwakura) |
| 2025-09-11 10:24:40 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 2025-09-11 10:26:20 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-09-11 10:35:26 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 2025-09-11 10:37:17 | → | poscat joins (~poscat@user/poscat) |
| 2025-09-11 10:38:58 | × | poscat0x04 quits (~poscat@user/poscat) (Ping timeout: 260 seconds) |
| 2025-09-11 10:39:01 | <ski> | "Parsing as Deduction" by Fernando C. N. Pereira,David H. D. Warren in 1983-06-15 at <https://dl.acm.org/doi/pdf/10.3115/981311.981338> |
| 2025-09-11 10:39:06 | × | mari-estel quits (~mari-este@user/mari-estel) () |
| 2025-09-11 10:39:08 | <ski> | "Metamorphosis Grammar" (by Alain Colmerauer in 1978-05 ?) at <https://www.site.uottawa.ca/~szpak/pub/P4P/P4P_03_Metamorphosis_grammars.pdf> |
| 2025-09-11 10:39:19 | <ski> | "Concrete Syntax for Data Objects in Functional Languages" by Annika Aasa,Kent Petersson,Dan Synek in 1988-07 at <https://web.archive.org/web/20070207110810/http://www.cs.chalmers.se/~kentp/conc.ps> |
| 2025-09-11 10:39:29 | <ski> | "Recursive descent parsing of user defined distfix operators" (Lic. th.) by Annika Aasa in 1989 (at ?) |
| 2025-09-11 10:39:37 | <ski> | "Precedences in Specifications and Implementations of Programming Languages" by ibid in 1991 at <https://web.archive.org/web/20070701130745/http://www.cs.chalmers.se/~annika/plilp91.ps>,<https://link.springer.com/content/pdf/10.1007/3-540-54444-5_98.pdf> |
| 2025-09-11 10:39:44 | <ski> | "User Defined Syntax" (Ph. D. diss.) by ibid in 1992 at <https://web.archive.org/web/20050424185150/http://www.cs.chalmers.se/~annika/aasa-thesis.ps> |
| 2025-09-11 10:39:50 | <ski> | "Precedences in Specifications and Implementations of Programming Languages" by ibid in 1995 at <https://web.archive.org/web/20070701130745/http://www.cs.chalmers.se/~annika/tcs95.ps> |
| 2025-09-11 10:39:58 | <ski> | cf. <https://web.archive.org/web/20070701130745/http://www.cs.chalmers.se/~annika/> |
| 2025-09-11 10:40:01 | <ski> | "Parsing Mixfix Operators" by Nils Anders Danielsson,Ulf Norell in 2008-09 at <https://www.cse.chalmers.se/~nad/publications/danielsson-norell-mixfix.pdf> |
| 2025-09-11 10:41:06 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
| 2025-09-11 10:41:33 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 2025-09-11 10:42:10 | → | Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) |
| 2025-09-11 10:47:47 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-09-11 10:48:34 | × | tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2025-09-11 10:54:19 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds) |
| 2025-09-11 10:56:02 | → | __monty__ joins (~toonn@user/toonn) |
| 2025-09-11 11:00:04 | × | caconym747 quits (~caconym@user/caconym) (Quit: bye) |
| 2025-09-11 11:01:15 | × | ubert quits (~Thunderbi@178.165.191.145.wireless.dyn.drei.com) (Quit: ubert) |
| 2025-09-11 11:02:14 | → | caconym747 joins (~caconym@user/caconym) |
| 2025-09-11 11:03:07 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-09-11 11:03:35 | → | fp joins (~Thunderbi@wireless-86-50-140-161.open.aalto.fi) |
| 2025-09-11 11:08:40 | × | [exa] quits (~exa@user/exa/x-3587197) (Remote host closed the connection) |
| 2025-09-11 11:12:17 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-09-11 11:20:41 | × | Googulator quits (~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-09-11 11:20:58 | → | Googulator joins (~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) |
| 2025-09-11 11:25:04 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds) |
| 2025-09-11 11:27:43 | → | [exa] joins (~exa@user/exa/x-3587197) |
| 2025-09-11 11:28:15 | × | Alleria_ quits (~Alleria@user/alleria) (Read error: Connection reset by peer) |
| 2025-09-11 11:28:47 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-11 11:28:49 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
| 2025-09-11 11:30:31 | → | SlackCoder joins (~SlackCode@208.26.70.132) |
| 2025-09-11 11:33:01 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-09-11 11:35:08 | → | Alleria joins (~Alleria@user/alleria) |
| 2025-09-11 11:38:20 | × | jbalint quits (~jbalint@2600:6c44:117f:e98a:40bb:52ad:62b8:5122) (Read error: Connection reset by peer) |
| 2025-09-11 11:42:16 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds) |
| 2025-09-11 11:44:29 | × | LainIwakura quits (~LainIwaku@user/LainIwakura) (Ping timeout: 250 seconds) |
| 2025-09-11 11:46:39 | → | Guest56 joins (~Guest56@37.111.214.210) |
| 2025-09-11 11:47:39 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-09-11 11:49:49 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2025-09-11 11:50:44 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-09-11 11:54:03 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-09-11 11:54:30 | → | jbalint joins (~jbalint@syn-071-090-116-115.res.spectrum.com) |
| 2025-09-11 11:56:25 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-11 11:58:27 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-09-11 11:59:27 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 2025-09-11 12:02:37 | × | SlackCoder quits (~SlackCode@208.26.70.132) (Quit: Leaving) |
| 2025-09-11 12:02:43 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-09-11 12:05:06 | × | inline quits (~inline@ip-005-146-196-014.um05.pools.vodafone-ip.de) (Quit: Leaving) |
| 2025-09-11 12:05:07 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2025-09-11 12:05:28 | × | Guest56 quits (~Guest56@37.111.214.210) (Quit: Client closed) |
| 2025-09-11 12:11:24 | → | xff0x joins (~xff0x@2405:6580:b080:900:4d35:2673:a36a:250b) |
| 2025-09-11 12:19:37 | → | tremon joins (~tremon@83.80.159.219) |
| 2025-09-11 12:20:45 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 245 seconds) |
| 2025-09-11 12:21:06 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 2025-09-11 12:26:59 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-09-11 12:27:59 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2025-09-11 12:28:18 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 2025-09-11 12:37:42 | → | petrichor joins (~jez@user/petrichor) |
| 2025-09-11 12:38:16 | × | trickard quits (~trickard@cpe-54-98-47-163.wireline.com.au) (Ping timeout: 248 seconds) |
| 2025-09-11 12:42:07 | × | jreicher quits (~user@user/jreicher) (Ping timeout: 258 seconds) |
All times are in UTC.