Newest at the top
2024-11-18 01:10:06 +0100 | Everything | (~Everythin@178-133-36-30.mobile.vf-ua.net) (Ping timeout: 246 seconds) |
2024-11-18 01:02:48 +0100 | sprotte24 | (~sprotte24@p200300d16f2c3600a1fb2e60ac56d901.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2024-11-18 01:01:25 +0100 | <Axman6> | yeah the RIO approach (or similar ReaderT Env IO ideas) get you a very long way. it's pretty easy to do things like `inDB :: DB a -> ReaderT Env IO a` which runs a transaction inside your reader |
2024-11-18 01:00:26 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
2024-11-18 01:00:26 +0100 | xal | (~xal@mx1.xal.systems) xal |
2024-11-18 00:59:09 +0100 | <glguy> | at most they can be an implementation detail of your more-specific monads that you are defining |
2024-11-18 00:57:52 +0100 | <glguy> | monad transformers are not an inevitability of large projects |
2024-11-18 00:57:48 +0100 | <SrPx> | oh, just learned about it. cool |
2024-11-18 00:57:17 +0100 | <Axman6> | that's basically what MTL is |
2024-11-18 00:55:56 +0100 | <SrPx> | so now that im using haskell for a larger project, monad transformers are unavoidable. but it is somewhat annoying to have chains of lifts. wouldn't it make more sense to have a list of the involved monads, and then a 'pick' that selects the one you want? like, `x <- pick M_IO $ something` instead of `x <- lift $ lift $ something` |
2024-11-18 00:53:53 +0100 | divya | (~user@139.5.11.231) divya |
2024-11-18 00:25:36 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f99b0ad6825ae812995.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-11-18 00:25:10 +0100 | zlqrvx | (~zlqrvx@user/zlqrvx) (Quit: %quit%) |
2024-11-18 00:22:37 +0100 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-11-18 00:21:56 +0100 | mari-estel | (~mari-este@user/mari-estel) (Client Quit) |
2024-11-18 00:20:02 +0100 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-11-18 00:19:46 +0100 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-11-18 00:18:40 +0100 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-11-18 00:10:08 +0100 | xff0x | (~xff0x@2405:6580:b080:900:ba13:33aa:3901:2450) |
2024-11-18 00:09:09 +0100 | Alleria | (~Alleria@user/alleria) Alleria |
2024-11-18 00:08:21 +0100 | Alleria | (~Alleria@user/alleria) (Remote host closed the connection) |
2024-11-18 00:08:09 +0100 | vgtw | (~vgtw@user/vgtw) vgtw |
2024-11-18 00:05:21 +0100 | ftzm | (~ftzm@085080230038.dynamic.telenor.dk) (Ping timeout: 276 seconds) |
2024-11-18 00:04:38 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-11-18 00:04:10 +0100 | werneta_ | (~werneta@syn-071-083-160-242.res.spectrum.com) werneta |
2024-11-18 00:03:55 +0100 | vgtw | (~vgtw@user/vgtw) (Quit: ZNC - https://znc.in) |
2024-11-18 00:00:30 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.209) (Quit: Leaving) |
2024-11-18 00:00:24 +0100 | werneta | (~werneta@syn-071-083-160-242.res.spectrum.com) werneta |
2024-11-17 23:56:56 +0100 | fp | (~Thunderbi@87-92-78-48.bb.dnainternet.fi) (Remote host closed the connection) |
2024-11-17 23:56:53 +0100 | mange | (~user@user/mange) mange |
2024-11-17 23:52:08 +0100 | xff0x | (~xff0x@2405:6580:b080:900:cd46:bdad:3f65:8b0c) (Quit: xff0x) |
2024-11-17 23:50:46 +0100 | misterfish | (~misterfis@31-161-39-137.biz.kpn.net) (Ping timeout: 272 seconds) |
2024-11-17 23:39:56 +0100 | GuerrillaMonkey | (~Jeanne-Ka@79.127.217.59) (Ping timeout: 252 seconds) |
2024-11-17 23:37:10 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.209) Jeanne-Kamikaze |
2024-11-17 23:37:05 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-11-17 23:29:27 +0100 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2024-11-17 23:29:13 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
2024-11-17 23:23:54 +0100 | Square | (~Square@user/square) (Ping timeout: 252 seconds) |
2024-11-17 23:14:29 +0100 | Alleria | (~Alleria@user/alleria) Alleria |
2024-11-17 23:13:50 +0100 | Alleria_ | (~Alleria@user/alleria) (Remote host closed the connection) |
2024-11-17 23:13:05 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-11-17 23:13:02 +0100 | <fp> | I saw Alex and it looks cool, though overkill for an unserious project like this |
2024-11-17 23:12:36 +0100 | <fp> | Ah yeah it seems that megaparsec has the =satisfy= combinator for generic types, which was exactly what I was looking for |
2024-11-17 23:08:15 +0100 | <geekosaur> | tokenizing could be done by a separate parser or by alex (a lexical analyzer generator, think flex for C) |
2024-11-17 23:07:56 +0100 | Everything | (~Everythin@178-133-36-30.mobile.vf-ua.net) Everything |
2024-11-17 23:07:51 +0100 | <geekosaur> | megaparsec supports arbitrary tokens and is preferred over parsec these days |
2024-11-17 23:06:24 +0100 | <fp> | If so, should I feel uncomfortable that Parsec seems to want to act on Chars? |
2024-11-17 23:05:26 +0100 | <fp> | So I got help here the other day with a basic Lisp parser I'm working on for learning and the result of that was that I should run my parser on tokens instead of on the whole character string. I think that means first turning the input text into, e.g. =[ParenL, Atom "format", True, String "Hello, World!\n", ParenR]=. I'm wondering how to actually do that? Do I need to bring in a parser? If so, should I feel uncomfortable that Parsec seems |
2024-11-17 22:59:37 +0100 | Batzy_ | Batzy |
2024-11-17 22:53:29 +0100 | weary-traveler | (~user@user/user363627) (Quit: Konversation terminated!) |