Newest at the top
| 2025-11-07 21:41:37 +0100 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2025-11-07 21:41:37 +0100 | <Leary> | Re multi-result functions, I don't know, but I doubt there's a nice way. |
| 2025-11-07 21:41:19 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2025-11-07 21:41:04 +0100 | <Leary> | tomsmeding: A spoonful of sugar helps the medicine go down. I won't talk you out of sweetening the pot. :) |
| 2025-11-07 21:38:23 +0100 | <tomsmeding> | no autoformatter in my code |
| 2025-11-07 21:38:07 +0100 | <monochrom> | OK the original "foo \i -", don't indent, "bar \j ->" is the simplest, if there is no auto-indenter or draconic style checker getting in the way. |
| 2025-11-07 21:37:31 +0100 | <tomsmeding> | Leary: required additional thing in the ContDo module: class AlwaysFail a; instance TypeError (Text "fail") => AlwaysFail a; fail :: AlwaysFail a => String -> a; fail = error |
| 2025-11-07 21:36:27 +0100 | <tomsmeding> | the cost is having to tuple the continuations for everything, and a wacky thing that everyone will do a double-take on |
| 2025-11-07 21:35:54 +0100 | <monochrom> | "Once you've seen it, you can't unseen it" >:) |
| 2025-11-07 21:35:52 +0100 | <tomsmeding> | nah this has only one real advantage: the binders are always on the left-hand side, instead of sometimes on the left and sometimes on the right |
| 2025-11-07 21:35:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-07 21:34:37 +0100 | <tomsmeding> | Leary: now I'm seriously considering using this, talk me out of it |
| 2025-11-07 21:33:54 +0100 | <tomsmeding> | (this case has the advantage of most of the functions actually having data types defined for them) |
| 2025-11-07 21:33:37 +0100 | trickard_ | trickard |
| 2025-11-07 21:33:24 +0100 | <tomsmeding> | but only if you bundle the Refls together into tuples, otherwise it's 15 |
| 2025-11-07 21:33:15 +0100 | <tomsmeding> | ok 11 |
| 2025-11-07 21:33:13 +0100 | <tomsmeding> | [exa]: https://git.tomsmeding.com/chad-fast/tree/src/CHAD.hs?id=38150f4f9792156d8c59439fe47ecb69a0a0e00b#… lines 878, 879, 880, 882, 884, 886, 887-888, 897, 900-903, 907, 908 |
| 2025-11-07 21:32:20 +0100 | <monochrom> | Haha "what's the difference between do-notation and guards?" |
| 2025-11-07 21:32:11 +0100 | <tomsmeding> | [exa]: I have a case in this file with 12 |
| 2025-11-07 21:31:51 +0100 | <monochrom> | OK yeah we need dependent pairs yeah. |
| 2025-11-07 21:31:50 +0100 | DetourNetworkUK | (DetourNetw@user/DetourNetworkUK) () |
| 2025-11-07 21:31:37 +0100 | <tomsmeding> | monochrom: don't even need the Identity, in fact https://play.haskell.org/saved/clzWP2pe |
| 2025-11-07 21:31:00 +0100 | <monochrom> | Anyway please turn on BlockArguments >:) |
| 2025-11-07 21:30:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-07 21:30:26 +0100 | <monochrom> | Actually "foo :: Int -> E" and "E x1 f1 <- Identity (foo n)" is simpler. |
| 2025-11-07 21:30:20 +0100 | <[exa]> | well, there's 10 levels of indentation on the table |
| 2025-11-07 21:29:49 +0100 | <tomsmeding> | [exa]: do you seriously think that a wacky utterly-not-a-monad QualifiedDo thing is better than nested wrapper functions |
| 2025-11-07 21:29:11 +0100 | <tomsmeding> | once you have a data type no more cruft is necessary |
| 2025-11-07 21:28:59 +0100 | <tomsmeding> | monochrom: https://play.haskell.org/saved/VMQbllqc :p |
| 2025-11-07 21:27:18 +0100 | <[exa]> | Leary: ok turns out the QualifiedDo completely solves my previous concerns, thanks again :D |
| 2025-11-07 21:27:11 +0100 | <monochrom> | Here is the worst of both worlds, just for laughs: https://play.haskell.org/saved/YfoP6M4d |
| 2025-11-07 21:23:58 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 265 seconds) |
| 2025-11-07 21:20:29 +0100 | <tomsmeding> | Leary: it doesn't seem possible to write a generic adaptor for two-result functions like my original 'foo' to one-result functions, right? |
| 2025-11-07 21:20:24 +0100 | [exa] | discovers QualifiedDo |
| 2025-11-07 21:19:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-07 21:17:49 +0100 | Googulator11 | (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 21:14:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-07 21:13:03 +0100 | Googulator34 | (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 21:12:03 +0100 | <EvanR> | how I learned to stop worrying and love ImpredicativeTypes |
| 2025-11-07 21:11:46 +0100 | <monochrom> | heh |
| 2025-11-07 21:11:45 +0100 | <tomsmeding> | what makes it better is that that type for >>= is completely different from what >>= is normally supposed to be |
| 2025-11-07 21:11:28 +0100 | <EvanR> | because of that I'm now using ImpredicativeTypes everywhere |
| 2025-11-07 21:10:50 +0100 | Googulator11 | (~Googulato@team.broadbit.hu) |
| 2025-11-07 21:10:44 +0100 | Googulator13 | (~Googulato@team.broadbit.hu) (Client Quit) |
| 2025-11-07 21:10:20 +0100 | <monochrom> | Intreresting |
| 2025-11-07 21:10:05 +0100 | <tomsmeding> | oh that's delightful |
| 2025-11-07 21:09:27 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) lisbeths |
| 2025-11-07 21:09:09 +0100 | <Leary> | tomsmeding: https://paste.tomsmeding.com/phEkL7cc |
| 2025-11-07 21:09:09 +0100 | Googulator53 | (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 21:09:08 +0100 | Googulator13 | (~Googulato@team.broadbit.hu) |