Newest at the top
2024-11-19 21:46:53 +0100 | <dminuoso> | Which is exactly the thing you are trying to conjure. |
2024-11-19 21:46:18 +0100 | <dminuoso> | Or if we imagine a simplified version: withDict :: Dict c -> (c => r) -> r |
2024-11-19 21:45:46 +0100 | ardell | (~ardell@user/ardell) (Quit: Leaving) |
2024-11-19 21:45:40 +0100 | <dminuoso> | withDict :: HasDict c e => e -> (c => r) -> r |
2024-11-19 21:45:37 +0100 | <dminuoso> | So assuming `constraints` you can use this bizarre thing: |
2024-11-19 21:45:15 +0100 | <dminuoso> | The idea here is, that instead of carrying a type level tag you carry a value level dictionary around. |
2024-11-19 21:44:22 +0100 | <dminuoso> | Or you could do this with GADTs manually (which is how Dict does it anyway) |
2024-11-19 21:43:22 +0100 | <dminuoso> | (Note that Im not necessarily giving advice on how to do this, just exploring the design space here) |
2024-11-19 21:43:05 +0100 | <dminuoso> | See https://hackage.haskell.org/package/constraints-0.14.2/docs/Data-Constraint.html |
2024-11-19 21:42:52 +0100 | <dminuoso> | bwe: There's some tricks you can do here. For one, you could tap into `constraints` and carry a `Dict HasFoo` around. |
2024-11-19 21:37:04 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
2024-11-19 21:36:42 +0100 | <lambdabot> | <hint>:1:46: error: parse error on input ‘of’ |
2024-11-19 21:36:40 +0100 | <hellwolf> | > 11-19 21:49 [haskellbridge sm did see a wall of "guy>" yes] |
2024-11-19 21:36:40 +0100 | Digitteknohippie | Digit |
2024-11-19 21:36:24 +0100 | euleritian | (~euleritia@dynamic-176-003-072-074.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-11-19 21:30:34 +0100 | Digit | (~user@user/digit) (Ping timeout: 272 seconds) |
2024-11-19 21:30:10 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2024-11-19 21:28:58 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-11-19 21:28:19 +0100 | sprotte24 | (~sprotte24@p200300d16f3e1d0004a3986a39ff8486.dip0.t-ipconnect.de) |
2024-11-19 21:25:40 +0100 | Square | (~Square@user/square) (Ping timeout: 265 seconds) |
2024-11-19 21:24:27 +0100 | notzmv | (~daniel@user/notzmv) (Remote host closed the connection) |
2024-11-19 21:20:55 +0100 | euleritian | (~euleritia@dynamic-176-003-072-074.176.3.pool.telefonica.de) |
2024-11-19 21:20:53 +0100 | notzmv | (~daniel@user/notzmv) notzmv |
2024-11-19 21:19:37 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-11-19 21:19:36 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 246 seconds) |
2024-11-19 21:13:58 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f33ad61be24cfbe8605.dip0.t-ipconnect.de) acidjnk |
2024-11-19 21:07:44 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-11-19 21:06:30 +0100 | notzmv | (~daniel@user/notzmv) (Read error: Connection reset by peer) |
2024-11-19 21:06:25 +0100 | mehlon__ | (~mehlon__@user/mehlon) (Remote host closed the connection) |
2024-11-19 21:06:09 +0100 | mehlon__ | (~mehlon__@user/mehlon) mehlon |
2024-11-19 21:02:39 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
2024-11-19 21:02:32 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-11-19 21:00:41 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-11-19 21:00:03 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-11-19 20:59:50 +0100 | Alleria | (~Alleria@user/alleria) (Ping timeout: 255 seconds) |
2024-11-19 20:59:46 +0100 | guy | (~guy@2a01:4b00:d007:ed00:3c30:fab:460b:9474) (Quit: Client closed) |
2024-11-19 20:58:54 +0100 | <guy> | ciao x |
2024-11-19 20:58:45 +0100 | <guy> | as a way to dance around the ideas of graphical turing completeness |
2024-11-19 20:58:24 +0100 | <guy> | and somehow captures within it the nature of local scoping |
2024-11-19 20:58:20 +0100 | Alleria_ | (~Alleria@user/alleria) Alleria |
2024-11-19 20:58:01 +0100 | <guy> | functor scheduling adds repeated modification within fmap, unlike traverse which would visit each element once |
2024-11-19 20:57:05 +0100 | <guy> | reasigning to the named lookup variable bound into scope upon function definition |
2024-11-19 20:56:51 +0100 | <guy> | but also editing. which is what local rescoping is doing on the program graph. reusing like its a memory slot |
2024-11-19 20:56:18 +0100 | <guy> | and your not just dealing with the constructor as a deconstructor reconstructor pair on pattern matching |
2024-11-19 20:55:47 +0100 | <guy> | additional editing on top of this can break traversal laws about unique visitation |
2024-11-19 20:55:12 +0100 | <guy> | traversal itself is built around pattern matching on the constructor |
2024-11-19 20:54:20 +0100 | <guy> | "functor scheduling" adds. which can build revisitation into an otherwise suspended traversal amounting with a "total schedule" to an fmap instance, maybe with several modification to one entry |
2024-11-19 20:52:34 +0100 | <guy> | this is the kind of statement |
2024-11-19 20:52:27 +0100 | <guy> | i like how haskell adds, by supporting local rescoping, nonlinearity, to its graphical turing completeness |
2024-11-19 20:51:40 +0100 | <guy> | local rescoping, somehow |