Logs: liberachat/#haskell
| 2025-11-07 14:50:41 | <Square2> | nvm |
| 2025-11-07 14:54:07 | × | Googulator18 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 14:54:25 | × | Googulator94 quits (~Googulato@team.broadbit.hu) (Client Quit) |
| 2025-11-07 14:54:40 | → | Googulator94 joins (~Googulato@team.broadbit.hu) |
| 2025-11-07 14:55:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 14:55:33 | <lortabac> | there is a generalized version in witherable |
| 2025-11-07 14:55:37 | <lortabac> | @hackage witherable |
| 2025-11-07 14:55:37 | <lambdabot> | https://hackage.haskell.org/package/witherable |
| 2025-11-07 14:56:42 | <lortabac> | which takes a different approach from mono-traversable |
| 2025-11-07 14:56:52 | <haskellbridge> | <Morj> I like mono-traversable more because it doesn't require functor, so can work on bytestrings. On the other hand they both don't allow Set for different reasons |
| 2025-11-07 14:57:11 | trickard_ | is now known as trickard |
| 2025-11-07 14:57:26 | <haskellbridge> | <Morj> Wait, since when is Map a Functor? I thought the instance was unlawful |
| 2025-11-07 14:57:31 | → | Anarchos joins (~Anarchos@91-161-254-16.subs.proxad.net) |
| 2025-11-07 14:57:34 | <tomsmeding> | it's a functor in the values |
| 2025-11-07 14:57:39 | <tomsmeding> | Set is not a fucntor |
| 2025-11-07 14:57:46 | <haskellbridge> | <Morj> Ahh you're right |
| 2025-11-07 15:00:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-07 15:00:19 | <tomsmeding> | [exa]: I don't think that's going to work |
| 2025-11-07 15:00:45 | <tomsmeding> | consider: run1 "returns" two things: x and the thing that you later swap |
| 2025-11-07 15:00:50 | <tomsmeding> | where do they go? |
| 2025-11-07 15:02:53 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 2025-11-07 15:02:56 | <tomsmeding> | you're trying to put one of them in the normal in-monad return value of that ContT expression, and the other in the 'r' top-level return value of the ContT computation |
| 2025-11-07 15:03:14 | <tomsmeding> | but the latter is constant over the entire ContT computation, so fmap'ing that must be type-preserving |
| 2025-11-07 15:04:52 | × | fp quits (~Thunderbi@130.233.70.136) (Ping timeout: 260 seconds) |
| 2025-11-07 15:07:36 | × | Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 2025-11-07 15:08:21 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds) |
| 2025-11-07 15:09:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 15:16:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-07 15:18:49 | → | xff0x joins (~xff0x@2405:6580:b080:900:f6a2:6697:d899:5ef3) |
| 2025-11-07 15:27:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 15:32:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-07 15:32:54 | → | Square2 joins (~Square4@user/square) |
| 2025-11-07 15:37:23 | × | Square2 quits (~Square4@user/square) (Ping timeout: 244 seconds) |
| 2025-11-07 15:40:29 | × | Square3 quits (~Square@user/square) (Ping timeout: 244 seconds) |
| 2025-11-07 15:43:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 15:44:28 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 255 seconds) |
| 2025-11-07 15:44:48 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 2025-11-07 15:46:41 | × | annamalai quits (~annamalai@157.33.208.56) (Read error: Connection reset by peer) |
| 2025-11-07 15:47:02 | → | annamalai joins (~annamalai@157.33.208.56) |
| 2025-11-07 15:48:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-11-07 15:52:34 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 2025-11-07 15:56:58 | × | Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!) |
| 2025-11-07 15:58:14 | <dutchie> | am I supposed to use vector-algorithms to sort Data.Vector.Vectors? |
| 2025-11-07 15:59:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 16:04:16 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 2025-11-07 16:04:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-11-07 16:05:56 | → | Googulator49 joins (~Googulato@team.broadbit.hu) |
| 2025-11-07 16:07:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 16:08:17 | × | Inline quits (~inlinE@2a02:8071:57a1:dc0:a54f:a27d:cf25:667b) (Remote host closed the connection) |
| 2025-11-07 16:08:36 | → | Inline joins (~inlinE@2a02:8071:57a1:dc0:a54f:a27d:cf25:667b) |
| 2025-11-07 16:09:05 | × | Googulator94 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 16:09:18 | × | YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:3dd:a915:d31f:6e01) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
| 2025-11-07 16:09:38 | → | YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:9f50:13f1:779b:4aa6) |
| 2025-11-07 16:14:25 | × | Anarchos quits (~Anarchos@91-161-254-16.subs.proxad.net) (Read error: Connection reset by peer) |
| 2025-11-07 16:15:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-07 16:15:44 | → | Googulator78 joins (~Googulato@team.broadbit.hu) |
| 2025-11-07 16:19:03 | × | Googulator49 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 16:19:10 | → | tromp joins (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) |
| 2025-11-07 16:23:17 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 2025-11-07 16:26:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 16:26:44 | × | fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Read error: Connection reset by peer) |
| 2025-11-07 16:26:54 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-11-07 16:27:03 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 2025-11-07 16:27:19 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 2025-11-07 16:28:15 | Lord_of_Life_ | is now known as Lord_of_Life |
| 2025-11-07 16:30:56 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-07 16:35:20 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2025-11-07 16:35:43 | → | Googulator53 joins (~Googulato@team.broadbit.hu) |
| 2025-11-07 16:38:59 | × | Googulator78 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 16:41:37 | <kuribas`> | Funny, but I don't find that most of the bugs in my python are due to type errors. I put a type on every function thought (even if it is Any). |
| 2025-11-07 16:41:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 16:43:27 | <kuribas`> | I find robustness comes from good practices mostly, like avoiding side-effects is possible, using dataclasses, not doing stringly typed programming, good exception hygience (which is tricky in python), modularity, avoiding dynamic tricks, etc.. |
| 2025-11-07 16:43:51 | <kuribas`> | Makes me question if spending lots of time to get just that bit more type safety is worth it... |
| 2025-11-07 16:44:07 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 2025-11-07 16:44:14 | <kuribas`> | Or finding the most elegant way to express this single loop, which means nothing on the scale of the project. |
| 2025-11-07 16:45:09 | <kuribas`> | Of course these things haskell encourages, and python doesn't. |
| 2025-11-07 16:45:20 | <kuribas`> | So easy to get code that throws exceptions all over the place. |
| 2025-11-07 16:46:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-11-07 16:48:53 | <kuribas`> | I wonder if equivalent haskell code would be faster than python. |
| 2025-11-07 16:49:34 | <kuribas`> | since haskell has overhead for GC and immutability, but is compiled vs interpreted python. |
| 2025-11-07 16:50:42 | → | Googulator16 joins (~Googulato@team.broadbit.hu) |
| 2025-11-07 16:51:04 | <haskellbridge> | <loonycyborg> Main fragility of python comes not from dynamic typing but from dynamic execution I think |
| 2025-11-07 16:51:37 | <haskellbridge> | <loonycyborg> It's a lot easier to write total nonsense in python that won't break anything until it's actually executed |
| 2025-11-07 16:51:52 | <kuribas`> | Some of the stuff is crazy, like changing modules at runtime. |
| 2025-11-07 16:52:13 | <haskellbridge> | <loonycyborg> So if you break something with refactoring then you won't notice it until it's actually executed |
| 2025-11-07 16:52:23 | <haskellbridge> | <loonycyborg> if it's in some rarely used codepath then good luck |
| 2025-11-07 16:53:18 | <haskellbridge> | <loonycyborg> This is what more complex type systems are meant to prevent. |
| 2025-11-07 16:53:30 | <haskellbridge> | <loonycyborg> Basically aim is to prove your code at any codepath |
| 2025-11-07 16:53:43 | × | Googulator53 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 2025-11-07 16:53:57 | <geekosaur> | also code coverage, but that I think is equally impossible for python? |
| 2025-11-07 16:54:07 | <kuribas`> | It helps not to do crazy stuff in Python. |
| 2025-11-07 16:54:16 | <kuribas`> | But there are popular packages that do this. |
| 2025-11-07 16:54:36 | → | michalz joins (~michalz@185.246.207.215) |
| 2025-11-07 16:55:10 | <kuribas`> | dramatiq changes the class at runtime of the actors. |
| 2025-11-07 16:57:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-07 16:59:10 | → | Anarchos joins (~Anarchos@91-161-254-16.subs.proxad.net) |
| 2025-11-07 17:01:00 | → | Googulator5 joins (~Googulato@team.broadbit.hu) |
| 2025-11-07 17:02:18 | × | tromp quits (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-11-07 17:02:52 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 2025-11-07 17:04:07 | × | Googulator16 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
All times are in UTC.