Logs: liberachat/#haskell
| 2026-02-20 13:59:56 | <haskellbridge> | <magic_rb> fuck, do i not have the right |
| 2026-02-20 13:59:58 | <tomsmeding> | :t ((.) . (.)) . ((.) . (.)) |
| 2026-02-20 14:00:00 | <lambdabot> | (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c |
| 2026-02-20 14:00:16 | <tomsmeding> | magic_rb: your message has a `<magic_rb> ` prefix here |
| 2026-02-20 14:00:39 | <tomsmeding> | :t fmap fmap fmap `fmap` fmap fmap fmap |
| 2026-02-20 14:00:40 | <lambdabot> | (Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b) -> f1 (f2 (f3 (f4 a))) -> f1 (f2 (f3 (f4 b))) |
| 2026-02-20 14:00:54 | <tomsmeding> | :t (.) . (.) . (.) . (.) |
| 2026-02-20 14:00:56 | <lambdabot> | (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c |
| 2026-02-20 14:01:18 | <tomsmeding> | (fmap on (->) is (.)) |
| 2026-02-20 14:01:30 | <haskellbridge> | <magic_rb> wait so (.) . (.) is equal to what |
| 2026-02-20 14:01:36 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 2026-02-20 14:01:36 | <tomsmeding> | fmap = (.) |
| 2026-02-20 14:01:46 | <haskellbridge> | <magic_rb> really? |
| 2026-02-20 14:01:49 | <haskellbridge> | <magic_rb> thats new |
| 2026-02-20 14:01:51 | <tomsmeding> | :t fmap |
| 2026-02-20 14:01:52 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
| 2026-02-20 14:01:55 | <tomsmeding> | :t (.) |
| 2026-02-20 14:01:56 | <lambdabot> | (b -> c) -> (a -> b) -> a -> c |
| 2026-02-20 14:02:10 | <tomsmeding> | ok names are different but set `f ~ (u ->)` |
| 2026-02-20 14:02:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-20 14:02:37 | <haskellbridge> | <magic_rb> yeah i see it |
| 2026-02-20 14:03:18 | <tomsmeding> | this makes sense: |
| 2026-02-20 14:03:20 | <tomsmeding> | :t fmap . fmap |
| 2026-02-20 14:03:21 | <lambdabot> | (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
| 2026-02-20 14:03:25 | <tomsmeding> | fmap under two functors |
| 2026-02-20 14:03:31 | <tomsmeding> | but because fmap = (.) you can write |
| 2026-02-20 14:03:33 | <tomsmeding> | :t fmap fmap fmap |
| 2026-02-20 14:03:34 | <lambdabot> | (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
| 2026-02-20 14:04:27 | → | housemate_ joins (~housemate@202.7.248.67) |
| 2026-02-20 14:04:59 | <Athas> | Is there a way to get cabal to show the dependency tree for my package? |
| 2026-02-20 14:05:12 | <Athas> | I'm quite surprised to see that I depend on Cabal and websockets. |
| 2026-02-20 14:05:21 | <Athas> | Although I have a suspicion as to why. |
| 2026-02-20 14:05:24 | <tomsmeding> | Athas: you can eyeball dist-newstyle/cache/plan.json |
| 2026-02-20 14:05:36 | <tomsmeding> | not a neat tree, but the info is there |
| 2026-02-20 14:05:40 | <Athas> | Eyeball a 155K JSON file? I see... |
| 2026-02-20 14:05:48 | <tomsmeding> | well using search. :) |
| 2026-02-20 14:05:53 | → | bionade24 joins (~quassel@server2.oscloud.info) |
| 2026-02-20 14:06:26 | <tomsmeding> | in any case, it's a graph, not a tree |
| 2026-02-20 14:06:55 | × | housemate quits (~housemate@pa49-178-146-220.pa.nsw.optusnet.com.au) (Ping timeout: 264 seconds) |
| 2026-02-20 14:06:58 | <Athas> | My suspicion was wrong; apparently the Cabal dependency is due to a Setup.hs from 'entropy'. It's probably been like that for a while and I never noticed. |
| 2026-02-20 14:07:05 | <tomsmeding> | Athas: `cabal-plan tred` is perhaps closest to what you mean |
| 2026-02-20 14:07:06 | <Athas> | And of course 'lsp' is why I depend on 'websockets'. |
| 2026-02-20 14:07:13 | <tomsmeding> | using https://hackage.haskell.org/package/cabal-plan |
| 2026-02-20 14:07:31 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-20 14:08:02 | <tomsmeding> | but I find that plan.json is usable enough for the odd time that I need to look at the dependency graph |
| 2026-02-20 14:08:17 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2026-02-20 14:08:49 | <tomsmeding> | (... why does lsp depend on websockets?) |
| 2026-02-20 14:09:38 | <tomsmeding> | TIL LSP works with websockets? |
| 2026-02-20 14:10:41 | <int-e> | I don't know. I imagine it's because it was designed in a context of an Electron application, so websockets were already there, "for free". |
| 2026-02-20 14:10:56 | <int-e> | At least in part. |
| 2026-02-20 14:13:33 | → | Square3 joins (~Square@user/square) |
| 2026-02-20 14:13:52 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 2026-02-20 14:18:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-20 14:20:07 | <lortabac> | Athas: maybe cabal-plan dot |
| 2026-02-20 14:21:31 | <tomsmeding> | I find that is mostly a good way to generate a huge pdf, or a huge png that no image viewer will open, with no way of reading anything from the warren of arrows |
| 2026-02-20 14:22:11 | × | Square3 quits (~Square@user/square) (Ping timeout: 272 seconds) |
| 2026-02-20 14:22:39 | <Athas> | I think lsp depends on everything, just in case. |
| 2026-02-20 14:22:52 | <tomsmeding> | lortabac: https://tomsmeding.com/vang/9fSZUM/graph.pdf |
| 2026-02-20 14:23:27 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-02-20 14:23:41 | <lortabac> | tomsmeding: there may be tools to fetch useful info from a dot file. I have no idea to be honest |
| 2026-02-20 14:23:48 | <tomsmeding> | Athas: yes, the moment you mentioned lsp I thought "ah, there's all your dependencies" |
| 2026-02-20 14:23:57 | <tomsmeding> | lortabac: fair point, perhaps there are |
| 2026-02-20 14:24:20 | <lortabac> | or you can feed it to an AI and ask them to find a particular path |
| 2026-02-20 14:24:20 | <Athas> | It's interesting how my dependency graph looks almost identical to tomsmeding's from a human perspective: https://sigkill.dk/junk/graph.pdf |
| 2026-02-20 14:24:48 | <Athas> | Very similar souls. |
| 2026-02-20 14:25:17 | <tomsmeding> | Athas: while clearly true, I'm not sure that's a very interesting observation -- the vertical lines is just dot(1) throwing its hands up with too many dependencies |
| 2026-02-20 14:25:45 | <tomsmeding> | And actually I disagree they look identical. Mine is right-heavy, whereas yours is more left-heavy. |
| 2026-02-20 14:27:24 | × | jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 268 seconds) |
| 2026-02-20 14:27:29 | <haskellbridge> | <ijouw> My pdf rendering seems to be done on cpu... Changing view takes up to two seconds. |
| 2026-02-20 14:27:36 | <tomsmeding> | :D |
| 2026-02-20 14:33:14 | → | castan joins (~castan@86.121.192.170) |
| 2026-02-20 14:33:29 | → | housemate joins (~housemate@pa49-178-146-220.pa.nsw.optusnet.com.au) |
| 2026-02-20 14:33:57 | → | merijn joins (~merijn@62.45.136.136) |
| 2026-02-20 14:34:44 | × | castan quits (~castan@86.121.192.170) (Client Quit) |
| 2026-02-20 14:34:59 | → | castan joins (~castan@86.121.192.170) |
| 2026-02-20 14:35:30 | × | housemate quits (~housemate@pa49-178-146-220.pa.nsw.optusnet.com.au) (Remote host closed the connection) |
| 2026-02-20 14:35:43 | × | housemate_ quits (~housemate@202.7.248.67) (Ping timeout: 264 seconds) |
| 2026-02-20 14:35:43 | × | castan quits (~castan@86.121.192.170) (Client Quit) |
| 2026-02-20 14:35:57 | → | castan joins (~castan@86.121.192.170) |
| 2026-02-20 14:38:44 | × | merijn quits (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-02-20 14:41:50 | → | emaczen joins (~user@user/emaczen) |
| 2026-02-20 14:45:37 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 272 seconds) |
| 2026-02-20 14:46:09 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2026-02-20 14:49:38 | → | merijn joins (~merijn@62.45.136.136) |
| 2026-02-20 14:49:59 | → | housemate joins (~housemate@pa49-178-146-220.pa.nsw.optusnet.com.au) |
| 2026-02-20 14:51:56 | × | AlexZenon quits (~alzenon@85.174.181.228) (Ping timeout: 252 seconds) |
| 2026-02-20 14:53:57 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
| 2026-02-20 14:55:09 | × | merijn quits (~merijn@62.45.136.136) (Ping timeout: 268 seconds) |
| 2026-02-20 15:01:22 | → | AlexZenon joins (~alzenon@85.174.181.228) |
| 2026-02-20 15:02:54 | × | thenightmail quits (~thenightm@user/thenightmail) (Ping timeout: 260 seconds) |
| 2026-02-20 15:05:28 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-20 15:06:55 | × | yin quits (~zero@user/zero) (Ping timeout: 264 seconds) |
| 2026-02-20 15:08:14 | → | yin joins (~zero@user/zero) |
| 2026-02-20 15:08:24 | → | Guest51 joins (~Guest51@2604:2dc0:200:1a84::) |
| 2026-02-20 15:10:46 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-02-20 15:12:16 | → | housemate_ joins (~housemate@202.7.248.67) |
| 2026-02-20 15:15:06 | × | housemate quits (~housemate@pa49-178-146-220.pa.nsw.optusnet.com.au) (Ping timeout: 265 seconds) |
| 2026-02-20 15:17:56 | → | arandombit joins (~arandombi@2a02:2455:8656:7100:b1b8:f383:7402:967e) |
| 2026-02-20 15:17:56 | × | arandombit quits (~arandombi@2a02:2455:8656:7100:b1b8:f383:7402:967e) (Changing host) |
| 2026-02-20 15:17:56 | → | arandombit joins (~arandombi@user/arandombit) |
All times are in UTC.