2025-02-02 00:01:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-02 00:05:12 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-02-02 00:12:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 00:13:39 +0100 | olivial | (~benjaminl@user/benjaminl) (Ping timeout: 276 seconds) |
2025-02-02 00:17:33 +0100 | harveypwca | (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) (Quit: Leaving) |
2025-02-02 00:19:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-02 00:22:10 +0100 | monochrm | (trebla@216.138.220.146) |
2025-02-02 00:22:55 +0100 | olivial | (~benjaminl@user/benjaminl) benjaminl |
2025-02-02 00:24:00 +0100 | monochrom | (trebla@216.138.220.146) (Ping timeout: 246 seconds) |
2025-02-02 00:24:00 +0100 | monochrm | monochrom |
2025-02-02 00:27:02 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 00:30:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 00:31:38 +0100 | dispater | (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-02 00:31:51 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 276 seconds) |
2025-02-02 00:32:23 +0100 | dispater | (~dispater@mail.brprice.uk) |
2025-02-02 00:35:06 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-02-02 00:41:03 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2025-02-02 00:41:18 +0100 | <sim590> | geekosaur: it doesn't seem like it's possible to block access to a TVar while doing an IO action. All I can do is STM action and STM is not MonadIO. Am I correct? |
2025-02-02 00:42:05 +0100 | <geekosaur> | correct and deliberately so. how do you retry an IO action? |
2025-02-02 00:48:33 +0100 | yushyin | (CinQEuz8mT@mail.karif.server-speed.net) (Ping timeout: 248 seconds) |
2025-02-02 00:48:34 +0100 | s4msung | (wBrkYH9KHh@user/s4msung) (Ping timeout: 248 seconds) |
2025-02-02 00:50:06 +0100 | <sim590> | geekosaur: Yeah, I understand. But, then, if I'm not mistaken, that is something I could be doing with MVars though? |
2025-02-02 00:50:52 +0100 | s4msung | (DQyKc40dMf@user/s4msung) s4msung |
2025-02-02 00:51:06 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 00:51:07 +0100 | tabemann | (~tabemann@8.9.45.41) tabemann |
2025-02-02 00:52:28 +0100 | <EvanR> | anything you can do with an MVar you can do with a TVar (Maybe a) |
2025-02-02 00:52:34 +0100 | <geekosaur> | oh yes, it'll happily let you make a mess |
2025-02-02 00:52:35 +0100 | <Leary> | sim590: You can't ever block access to a `TVar`. You instead hide inconsistent states within atomic transactions, so you don't need to. |
2025-02-02 00:52:49 +0100 | alp | (~alp@2001:861:8ca0:4940:e7c0:2b3f:562a:38cb) (Ping timeout: 248 seconds) |
2025-02-02 00:53:01 +0100 | <geekosaur> | but if that's really what you want to do, just use an IORef |
2025-02-02 00:53:46 +0100 | <EvanR> | it's just that you generally can't do IO in the middle of a transaction |
2025-02-02 00:54:20 +0100 | <EvanR> | but there's a "trust me" trap door for that in which all bets are off if your I/O matters |
2025-02-02 00:55:24 +0100 | <sim590> | OK. I'll try to inflate my brain so I can do what I need only using TVars. Up to now, I think I can do it. |
2025-02-02 00:55:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-02 00:55:41 +0100 | <geekosaur> | that, or you have a very wrong model of concurrent access which you will need to figure out before this will work with either |
2025-02-02 01:00:31 +0100 | <sim590> | Yeah. Well. I can't say for now. I guess, I'll see! :D |
2025-02-02 01:01:37 +0100 | yushyin | (qjh7DQNxXf@mail.karif.server-speed.net) yushyin |
2025-02-02 01:02:40 +0100 | <Leary> | sim590: For pretend-interleaved STM and IO I like to use `newtype Atom a = Atom (WriterT (IO ()) STM a); io :: IO () -> Atom (); stm :: STM a -> Atom a; atom :: Atom a -> IO a`---might at least help you structure things. |
2025-02-02 01:06:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 01:08:09 +0100 | alist | (~alist@108-224-153-186.lightspeed.cicril.sbcglobal.net) |
2025-02-02 01:12:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-02 01:15:06 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 01:17:43 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 265 seconds) |
2025-02-02 01:19:30 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-02 01:23:30 +0100 | dysthesis | (~dysthesis@user/dysthesis) dysthesis |
2025-02-02 01:23:48 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 01:24:19 +0100 | dysthesis | (~dysthesis@user/dysthesis) (Client Quit) |
2025-02-02 01:24:39 +0100 | dysthesis | (~dysthesis@user/dysthesis) dysthesis |
2025-02-02 01:28:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-02 01:29:17 +0100 | dysthesis | (~dysthesis@user/dysthesis) (Client Quit) |
2025-02-02 01:31:14 +0100 | <monochrom> | I suspect that "block access" means something that has nothing to do with "block" or "access" because supposedly everyone already knows that if you don't want a certain function to use a certain argument then just don't have that argument in the first place, so why the question. |
2025-02-02 01:32:16 +0100 | <monochrom> | Like even in C if I don't want sin() to mess with my array then just don't give it [the address of] my array, done. |
2025-02-02 01:39:10 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 01:43:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-02 01:45:03 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-02-02 01:48:08 +0100 | alist | (~alist@108-224-153-186.lightspeed.cicril.sbcglobal.net) (Remote host closed the connection) |
2025-02-02 01:52:40 +0100 | monochrm | (trebla@216.138.220.146) |
2025-02-02 01:53:11 +0100 | monochrom | (trebla@216.138.220.146) (Ping timeout: 244 seconds) |
2025-02-02 01:53:15 +0100 | monochrm | monochrom |
2025-02-02 01:54:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 01:58:51 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
2025-02-02 02:00:29 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-02-02 02:01:12 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-02-02 02:03:12 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 02:06:16 +0100 | olivial | (~benjaminl@user/benjaminl) (Remote host closed the connection) |
2025-02-02 02:07:39 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-02-02 02:07:46 +0100 | olivial | (~benjaminl@user/benjaminl) benjaminl |
2025-02-02 02:09:33 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f12b860008857e92372.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2025-02-02 02:09:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 02:12:08 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.9.1+deb2+b2 - https://znc.in) |
2025-02-02 02:15:46 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) |
2025-02-02 02:16:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-02 02:17:09 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2025-02-02 02:18:19 +0100 | otto_s | (~user@p5b0448ee.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2025-02-02 02:19:55 +0100 | otto_s | (~user@p5b0441a3.dip0.t-ipconnect.de) |
2025-02-02 02:20:42 +0100 | olivial_ | (~benjaminl@2601:1c0:847f:9c70:223:24ff:fe66:4370) |
2025-02-02 02:22:24 +0100 | olivial | (~benjaminl@user/benjaminl) (Ping timeout: 260 seconds) |
2025-02-02 02:27:59 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 02:32:28 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-02-02 02:33:18 +0100 | <Leary> | Mmmm. Getting to write meaningful rewrite RULES is a rare and special joy, isn't it? Even better, to give a typeclass laws and declare /these laws are **enforced** by rewrite @RULES@/ in the haddocks! |
2025-02-02 02:33:34 +0100 | <Leary> | Break the law and GHC will punish you. >:) |
2025-02-02 02:33:41 +0100 | <Leary> | `Functor` should have gotten this treatment. |
2025-02-02 02:33:54 +0100 | sprotte24 | (~sprotte24@p200300d16f174a005425e35c82ecf678.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-02-02 02:36:21 +0100 | <int-e> | hmm but assuming properties doesn't enforce them, you're just shifting blame away from the compiler ;-) |
2025-02-02 02:37:25 +0100 | <int-e> | You're introducing undefined behavior. |
2025-02-02 02:39:41 +0100 | <int-e> | I'm not really opposed btw, except that it's hard to do this kind of thing after the fact. |
2025-02-02 02:39:46 +0100 | <Leary> | I'm placing the blame solidly on the unlawful instances, and claiming only /they/ introduce undefined behaviour. :) |
2025-02-02 02:40:27 +0100 | <Leary> | But yeah, sadly too late for `Functor`. |
2025-02-02 02:40:45 +0100 | <int-e> | Yeah C also blames the programmers for introducing undefined behavior into their code. |
2025-02-02 02:42:00 +0100 | <int-e> | I still remember when GCC broke Linux with agressive exploitation of signed overflows. |
2025-02-02 02:42:14 +0100 | <monochrom> | :) |
2025-02-02 02:43:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 02:48:28 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-02 02:50:56 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 02:55:21 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-02 02:58:57 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-02-02 02:59:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 03:04:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-02-02 03:14:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 03:19:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-02 03:22:56 +0100 | <haskellbridge> | <Bowuigi> Cedille has a nice way to handle rewrite rules. It uses equality proofs that erase to an identity function. Extra safety and speed at the cost of extra theorem proving (after all, if you are using a theorem prover it's because you want to prove theorems). Cedille doesn't seem to insert those automatically tho, you need explicit casts |
2025-02-02 03:28:05 +0100 | ensyde | (~ensyde@2601:5c6:c200:6dc0::2163) (Ping timeout: 252 seconds) |
2025-02-02 03:30:14 +0100 | ensyde | (~ensyde@2601:5c6:c200:6dc0::9939) |
2025-02-02 03:30:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 03:34:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-02 03:38:41 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 03:42:57 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-02 03:43:20 +0100 | <sim590> | I'm exposing a bunch of lenses generated by haskell templates and GHC complains about lack of documentation for those. What's a common way to fix that? I can't document them if they're not in my file. Can I? |
2025-02-02 03:45:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 03:52:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-02 04:01:36 +0100 | <haskellbridge> | <Bowuigi> Does adding a Haddock comment above the TH invocation to generate lenses work? |
2025-02-02 04:02:36 +0100 | <sim590> | it "does", but it only documents the lens corresponding to the last field of the data type. |
2025-02-02 04:05:04 +0100 | op_4 | (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
2025-02-02 04:05:34 +0100 | op_4 | (~tslil@user/op-4/x-9116473) op_4 |
2025-02-02 04:07:11 +0100 | <Leary> | sim590: Haddock (not GHC) warns about a lot of things, and many of them can't or shouldn't be fixed. Pick your battles and ignore the rest. |
2025-02-02 04:07:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 04:09:51 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-02-02 04:10:34 +0100 | <sim590> | I see. I guess I'll ignore it for now. |
2025-02-02 04:12:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-02 04:16:33 +0100 | pabs3 | (~pabs3@user/pabs3) (Ping timeout: 248 seconds) |
2025-02-02 04:23:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 04:26:26 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 04:27:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-02 04:29:02 +0100 | pabs3 | (~pabs3@user/pabs3) pabs3 |
2025-02-02 04:30:48 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-02 04:38:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 04:42:59 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-02 04:49:37 +0100 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 248 seconds) |
2025-02-02 04:53:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 04:58:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-02 05:05:36 +0100 | erdem | (~erdem@user/erdem) (WeeChat 3.8) |
2025-02-02 05:09:06 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-02-02 05:09:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 05:09:47 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-02-02 05:13:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-02 05:14:49 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-02 05:19:05 +0100 | erdem | (~erdem@user/erdem) erdem |
2025-02-02 05:19:19 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
2025-02-02 05:24:17 +0100 | aforemny | (~aforemny@2001:9e8:6cc0:e00:915f:b0b2:9520:8911) aforemny |
2025-02-02 05:24:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-02 05:24:42 +0100 | aforemny_ | (~aforemny@2001:9e8:6ce1:bc00:8ce8:3eef:6047:48a7) (Ping timeout: 265 seconds) |