Logs: liberachat/#haskell
| 2025-09-09 09:38:52 | <arahael> | As it turns out there was another way to do it so no biggie. |
| 2025-09-09 09:39:15 | <arahael> | (The other way being to spawn a thread anyway. And I've been learning about threads in Haskell as a consequence!) |
| 2025-09-09 09:39:31 | <merijn> | arahael: If you make a PR that provides `Pty -> Fd` I'd make a new release |
| 2025-09-09 09:39:56 | <arahael> | merijn: One day. One day. :) |
| 2025-09-09 09:40:23 | <arahael> | It turns out it's not actually required, and it's probably better to block on it anyway. |
| 2025-09-09 09:40:31 | <merijn> | ggVGc: The thing I hate is that for yield makes me write "_ <-" in front of every line whose return I don't care about |
| 2025-09-09 09:40:48 | <merijn> | please god, lemme just write code without _ <- like in Haskell :( |
| 2025-09-09 09:42:30 | → | ZLima12_ joins (~zlima12@user/meow/ZLima12) |
| 2025-09-09 09:45:46 | × | ZLima12 quits (~zlima12@user/meow/ZLima12) (Ping timeout: 256 seconds) |
| 2025-09-09 09:54:08 | <tomsmeding> | merijn: make a keyboard macro that inserts '_ <- ' |
| 2025-09-09 09:54:20 | Googulator51 | is now known as Googulator |
| 2025-09-09 09:54:34 | <merijn> | tomsmeding: That still makes it ugly to read |
| 2025-09-09 09:54:35 | <tomsmeding> | for a while I was using a programmable keyboard (moved away again for unrelated reasons) and I had keys for -> <- => <= |
| 2025-09-09 09:54:48 | <tomsmeding> | it was nice :p |
| 2025-09-09 09:54:52 | <tomsmeding> | that's true |
| 2025-09-09 09:55:17 | <tomsmeding> | merijn: are there so many functions that return useless results then? |
| 2025-09-09 09:55:37 | → | tromp joins (~textual@2001:1c00:3487:1b00:298e:6063:53dd:ee4e) |
| 2025-09-09 09:55:40 | <tomsmeding> | in Haskell, I find that usually if there is a non-() return value, you want to use it -- not always, but often enough that '_ <-' is not _too_ common |
| 2025-09-09 09:56:12 | <merijn> | tomsmeding: you have to write _ <- for unit returns too |
| 2025-09-09 09:56:18 | <tomsmeding> | oh lol |
| 2025-09-09 09:56:25 | <tomsmeding> | that's stupid |
| 2025-09-09 09:56:58 | <ski> | ggVGc : "what I very much dislike .. " -- yea. i hear ya. that's because it's a retro-fit, so no layout-introducing keywords |
| 2025-09-09 09:58:21 | <merijn> | tomsmeding: Exactly! |
| 2025-09-09 09:59:28 | <tomsmeding> | use your units |
| 2025-09-09 10:00:15 | ski | . o O ( `(void)printf("...",...);' ) |
| 2025-09-09 10:00:21 | <ggVGc> | merijn: oh yeah, that one sucks arse |
| 2025-09-09 10:00:36 | <tomsmeding> | imagine you actually have to use all your units too, combining them with (<>) to build your own unit return |
| 2025-09-09 10:00:54 | <ggVGc> | merijn: Also, Option.foreach makes me vomit a bit each time. |
| 2025-09-09 10:02:06 | <tomsmeding> | % for (Just 42) print |
| 2025-09-09 10:02:07 | <yahb2> | 42 ; Just () |
| 2025-09-09 10:02:19 | <merijn> | ggVGc: I never use that |
| 2025-09-09 10:02:29 | <merijn> | ggVGc: We're using ZIO almost everywhere |
| 2025-09-09 10:05:50 | → | tremon joins (~tremon@83.80.159.219) |
| 2025-09-09 10:13:33 | → | sindu joins (~sindu@176.75.108.200) |
| 2025-09-09 10:18:03 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 256 seconds) |
| 2025-09-09 10:20:11 | <ski> | SML has |
| 2025-09-09 10:20:21 | <ski> | val ignore : unit -> 'a |
| 2025-09-09 10:20:45 | <ski> | imho, that would be a better name for |
| 2025-09-09 10:20:50 | <ski> | void :: Functor f => f a -> f () |
| 2025-09-09 10:21:17 | <ski> | er .. mixed up domain and codomain of the `ignore' .. |
| 2025-09-09 10:29:09 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-09-09 10:34:43 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 250 seconds) |
| 2025-09-09 10:35:20 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2025-09-09 10:36:01 | → | gmg joins (~user@user/gehmehgeh) |
| 2025-09-09 10:37:16 | → | __monty__ joins (~toonn@user/toonn) |
| 2025-09-09 10:37:53 | <kqr> | I'm trying to cabal build --enable-profiling my project, and I get an error that "Could not find module ‘Control.Seq’. Perhaps you haven't installed the profiling libraries for package ‘parallel-3.2.2.0’?" This was not a problem when I compiled without profiling. I'm not explicitly depending on parallel (it c is pulled in by the lens build). What am I doing wrong? |
| 2025-09-09 10:39:56 | → | sprotte24 joins (~sprotte24@p200300d16f36070054d9a83b6a36a30e.dip0.t-ipconnect.de) |
| 2025-09-09 10:40:21 | <haskellbridge> | <sm> To build with profiling, unfortunately you have to have every transitive dependency also built with profiling. Often this isn't done by default so you have to force a reinstall of all of them |
| 2025-09-09 10:40:39 | → | fp1 joins (~Thunderbi@wireless-86-50-141-202.open.aalto.fi) |
| 2025-09-09 10:41:13 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-09-09 10:41:16 | <haskellbridge> | <sm> I'm surprised if cabal build --enable-profiling doesn't recognise that, like stack build --profile |
| 2025-09-09 10:46:05 | → | forell joins (~forell@user/forell) |
| 2025-09-09 10:46:58 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 2025-09-09 10:48:02 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-09-09 10:48:16 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 2025-09-09 10:49:05 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 2025-09-09 10:52:04 | × | sprotte24 quits (~sprotte24@p200300d16f36070054d9a83b6a36a30e.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 2025-09-09 10:58:30 | <kqr> | I see. Can I give cabal a flag to reinstall it or am I hunting them down individually and trying to install globally or what is the best solution there? |
| 2025-09-09 11:00:05 | × | caconym747 quits (~caconym@user/caconym) (Quit: bye) |
| 2025-09-09 11:00:21 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-09-09 11:02:05 | → | caconym747 joins (~caconym@user/caconym) |
| 2025-09-09 11:02:19 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
| 2025-09-09 11:04:57 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-09-09 11:05:55 | × | kaotika quits (~user@user/d4q) (Ping timeout: 255 seconds) |
| 2025-09-09 11:06:21 | × | trickard_ quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-09-09 11:06:34 | → | trickard_ joins (~trickard@cpe-53-98-47-163.wireline.com.au) |
| 2025-09-09 11:07:54 | → | kaotika joins (~user@user/d4q) |
| 2025-09-09 11:09:59 | × | tromp quits (~textual@2001:1c00:3487:1b00:298e:6063:53dd:ee4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-09-09 11:11:33 | × | glguy quits (glguy@libera/staff/glguy) (Quit: Quit) |
| 2025-09-09 11:11:38 | → | glguy joins (glguy@libera/staff/glguy) |
| 2025-09-09 11:11:44 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 2025-09-09 11:12:19 | × | kaotika quits (~user@user/d4q) (Max SendQ exceeded) |
| 2025-09-09 11:14:20 | → | kaotika joins (~user@user/d4q) |
| 2025-09-09 11:15:55 | × | kaotika quits (~user@user/d4q) (Max SendQ exceeded) |
| 2025-09-09 11:16:34 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-09-09 11:17:03 | <kaol> | I suppose there's no way to make Proxy to show its type? |
| 2025-09-09 11:17:23 | <dminuoso> | kaol: What do you mean by "make it show its type"? |
| 2025-09-09 11:18:29 | <kaol> | show (Proxy :: Proxy String) == "Proxy" is less than satisfying if I want to know that it's being used on a String. |
| 2025-09-09 11:19:00 | <dminuoso> | kaol: You can do something like `showProxy :: Typeable a => Proxy a -> String` |
| 2025-09-09 11:19:34 | <dminuoso> | Not quite sure what your goal is |
| 2025-09-09 11:20:23 | <kaol> | Debug a piece of code that uses type classes and I have no idea where the execution goes since I don't know what type the particular Proxy is. |
| 2025-09-09 11:20:57 | <dminuoso> | So the best you can do is constraint it to Typeable and do something like `show . typeOf` |
| 2025-09-09 11:21:30 | <dminuoso> | Or well, `show . typeRep` rather |
| 2025-09-09 11:21:59 | <dminuoso> | Debugging constraint resolving is tough |
| 2025-09-09 11:22:23 | → | kaotika joins (~user@user/d4q) |
| 2025-09-09 11:23:04 | <mauke> | this is why hls integration |
| 2025-09-09 11:23:37 | <dminuoso> | Right, or use GHCi to a similar effect |
| 2025-09-09 11:23:42 | <dminuoso> | :k is a thing |
| 2025-09-09 11:23:43 | <lambdabot> | error: |
| 2025-09-09 11:23:43 | <lambdabot> | Not in scope: type variable ‘is’ |
| 2025-09-09 11:23:43 | <lambdabot> | Perhaps you meant type constructor or class ‘As’ (imported from Control.Lens) |
| 2025-09-09 11:23:49 | <dminuoso> | Thanks. |
| 2025-09-09 11:24:24 | <kaol> | show . typeRep and adding a few Typeable constraints got me what I was looking for. Thanks. |
| 2025-09-09 11:26:28 | <haskellbridge> | <sm> kqr I don't know, I would ask in #hackage |
| 2025-09-09 11:28:32 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
| 2025-09-09 11:29:15 | <kaol> | Interesting. servant-client-core is somehow trying to decode latin1. My server is sending utf8. |
| 2025-09-09 11:29:54 | → | xff0x joins (~xff0x@2405:6580:b080:900:263:a30e:567c:e7aa) |
| 2025-09-09 11:29:57 | <dminuoso> | kaol: It respects Content-Type. |
| 2025-09-09 11:30:10 | <dminuoso> | The actual encoding is irrelevant, there's no heuristics. |
| 2025-09-09 11:30:10 | <kaol> | Well it has a bug. Content-Type is correct. |
All times are in UTC.