Newest at the top
| 2026-02-07 11:38:50 +0100 | gentauro | I want to remove the string variables and just rely on the languages value binding |
| 2026-02-07 11:38:07 +0100 | AlexZenon | (~alzenon@85.174.182.86) (Ping timeout: 240 seconds) |
| 2026-02-07 11:37:54 +0100 | <gentauro> | very succint |
| 2026-02-07 11:37:45 +0100 | <int-e> | (managing your own names is probably suboptimal) |
| 2026-02-07 11:37:37 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-07 11:37:35 +0100 | <gentauro> | probie: I tried to use Code Quotations and Computation Expressions in F# and I end up with this -> https://paste.tomsmeding.com/bi5MGjco |
| 2026-02-07 11:37:24 +0100 | trickard | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-07 11:37:00 +0100 | <int-e> | probie: Well, in the Z3 API, generating fresh names is tied to function declarations, https://z3prover.github.io/api/html/group__capi.html#ga76d673b3b3f53c1044fd59621b1b8b68 (nice anchor I'm sure it's very stable) |
| 2026-02-07 11:35:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-02-07 11:33:57 +0100 | AlexZenon | (~alzenon@85.174.182.86) |
| 2026-02-07 11:33:03 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 260 seconds) |
| 2026-02-07 11:31:40 +0100 | p3n | (~p3n@217.198.124.246) p3n |
| 2026-02-07 11:31:17 +0100 | <probie> | I mean you certainly could do something like `do { name <- freshName "q1"; mkVar intType name }`, but I don't think you really gain much |
| 2026-02-07 11:30:48 +0100 | Enrico63 | (~Enrico63@host-79-27-153-69.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-02-07 11:30:21 +0100 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-02-07 11:28:34 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-07 11:28:16 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-02-07 11:27:06 +0100 | <probie> | I guess you could have have a `make` function which takes various kinds of records as arguments, but in practice that's not ergonomic, and it also deviates heavily from the C API, which is why most of the documentation you'll find online is |
| 2026-02-07 11:26:27 +0100 | <probie> | gentauro: how would you shrink it, short of abbreviating things. You need to convey 4 things; "it's new", "the name can't be anything already generated", "it's an int" and "it's a var"? |
| 2026-02-07 11:25:29 +0100 | AlexNoo__ | (~AlexNoo@85.174.182.86) (Ping timeout: 260 seconds) |
| 2026-02-07 11:25:20 +0100 | <jreicher> | Oh, I think I know what you mean |
| 2026-02-07 11:25:06 +0100 | <jreicher> | gentauro: "Hungarian notation"? |
| 2026-02-07 11:25:03 +0100 | <gentauro> | probie: to verbose (at least for me) |
| 2026-02-07 11:24:42 +0100 | AlexNoo | (~AlexNoo@85.174.182.86) |
| 2026-02-07 11:24:19 +0100 | AlexNoo_ | (~AlexNoo@85.174.182.86) (Ping timeout: 260 seconds) |
| 2026-02-07 11:23:38 +0100 | Alex_delenda_est | (~al_test@85.174.181.199) (Ping timeout: 256 seconds) |
| 2026-02-07 11:23:28 +0100 | AlexNoo | (~AlexNoo@85.174.181.199) (Ping timeout: 246 seconds) |
| 2026-02-07 11:23:22 +0100 | <probie> | `Fresh` promises no name collisions, `Int` tells you the type, and `Var` tells you that it's a variable |
| 2026-02-07 11:22:50 +0100 | AlexZenon | (~alzenon@85.174.181.199) (Ping timeout: 245 seconds) |
| 2026-02-07 11:22:46 +0100 | <probie> | gentauro: What's wrong with it? |
| 2026-02-07 11:21:55 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 2026-02-07 11:20:41 +0100 | AlexNoo__ | (~AlexNoo@85.174.182.86) |
| 2026-02-07 11:19:55 +0100 | AlexNoo_ | (~AlexNoo@85.174.182.86) |
| 2026-02-07 11:18:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-07 11:17:59 +0100 | gentauro | feels like: `AbstractAnimalThatLivesInWaterAndHasGillsAndFins.class` |
| 2026-02-07 11:16:42 +0100 | <gentauro> | `mkFreshIntVar` <- Hungarian notation for the win? Nah |
| 2026-02-07 11:12:58 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds) |
| 2026-02-07 11:12:47 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-07 11:09:04 +0100 | trickard_ | trickard |
| 2026-02-07 11:07:33 +0100 | <jreicher> | Codegen helps muddy the waters even further. |
| 2026-02-07 11:05:58 +0100 | <jreicher> | I think the defining characteristic of Lisp is "no code, everything is data" which is why it gets confused with the presentation of sexprs |
| 2026-02-07 11:04:53 +0100 | <jreicher> | Yes I think that's probably my point too. sexpr != lisp despite what everyone thinks |
| 2026-02-07 11:03:52 +0100 | <probie> | The Z3 monad is really just a codegen monad |
| 2026-02-07 11:03:12 +0100 | <probie> | They just chose S-expressions, because "everyone" in AI at the time was familiar with them |
| 2026-02-07 11:02:33 +0100 | <probie> | gentauro: There's very little lispy-ness in the SMTLIB2 format. It might as well be JSON, YAML or something entirely bespoke |
| 2026-02-07 11:01:57 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-07 10:57:40 +0100 | <jreicher> | What do you mean? Lisp is not great for stuff like this. |
| 2026-02-07 10:56:21 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-07 10:56:10 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-07 10:56:09 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |