Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2021-04-21 18:23:22 <wroathe> When using QuantifiedConstraints like (Show a, forall a. Show (t a)) => (Foo t a) I'm getting a warning saying that "a" shadows an existing binding. Are the a's distinct between the first constraint and the second constraint? It still seems to compile, even with the warning, and results in the behavior that I want.
2021-04-21 18:24:21 <ski> yes, they are
2021-04-21 18:24:55 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-04-21 18:25:23 <ski> saying `(Show a,forall b. Show (t b)) => Foo t a' might be less confusing for a reader
2021-04-21 18:25:54 <wroathe> ski: That's actually what I've already gone with, but I was just verifying my understanding
2021-04-21 18:26:01 × ashesham` quits (~user@d8D87D1B0.access.telenet.be) (Ping timeout: 252 seconds)
2021-04-21 18:26:50 ski nods
2021-04-21 18:27:33 kritzefitz joins (~kritzefit@212.86.56.80)
2021-04-21 18:27:45 <ski> (i suppose you've confirmed you don't actually want `(Show a,forall b. Show b => Show (t b)) => Foo t a')
2021-04-21 18:28:54 cfricke joins (~cfricke@unaffiliated/cfricke)
2021-04-21 18:29:07 mmfood_2 joins (~mmfood@45.91.21.59)
2021-04-21 18:29:19 × mmfood_1 quits (~mmfood@45.91.21.58) (Ping timeout: 252 seconds)
2021-04-21 18:30:46 × justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 245 seconds)
2021-04-21 18:31:43 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds)
2021-04-21 18:31:53 × horatiohb quits (~horatiohb@138.197.103.32) (Ping timeout: 252 seconds)
2021-04-21 18:32:45 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 268 seconds)
2021-04-21 18:36:47 × vdukhovni quits (64022765@100.2.39.101) (Quit: Connection closed)
2021-04-21 18:36:54 pthariensflame joins (~pthariens@2600:6c52:727f:4200:edf5:29b5:ee6b:7a0f)
2021-04-21 18:37:04 <wroathe> ski: Nope, and I was just about to ask about that.
2021-04-21 18:37:16 × pthariensflame quits (~pthariens@2600:6c52:727f:4200:edf5:29b5:ee6b:7a0f) (Client Quit)
2021-04-21 18:38:38 <wroathe> Nice. That works like a charm.
2021-04-21 18:38:58 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-04-21 18:38:59 <wroathe> I always forget that you can apply constraints to variables in constraints
2021-04-21 18:44:21 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 18:45:12 <wroathe> ski: Thanks btw
2021-04-21 18:46:35 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
2021-04-21 18:47:18 × HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-04-21 18:48:59 Guest_68 joins (4b1ac0c4@75-26-192-196.lightspeed.bcvloh.sbcglobal.net)
2021-04-21 18:49:02 × Guest_68 quits (4b1ac0c4@75-26-192-196.lightspeed.bcvloh.sbcglobal.net) (Client Quit)
2021-04-21 18:49:36 invaser joins (~Thunderbi@31.148.23.125)
2021-04-21 18:49:36 rj joins (~x@gateway/tor-sasl/rj)
2021-04-21 18:49:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-21 18:49:56 safinaskar joins (~user@109.252.90.136)
2021-04-21 18:51:18 × wavemode quits (~wavemode@097-070-075-143.res.spectrum.com) (Remote host closed the connection)
2021-04-21 18:52:34 usr25 joins (~usr25@unaffiliated/usr25)
2021-04-21 18:53:27 wavemode joins (~wavemode@097-070-075-143.res.spectrum.com)
2021-04-21 18:56:01 malumore joins (~malumore@151.62.122.70)
2021-04-21 18:58:37 vdukhovni joins (64022765@100.2.39.101)
2021-04-21 18:59:09 ludi49 joins (~hryhorij@ip595.t15.ds.pwr.wroc.pl)
2021-04-21 19:00:08 ludi49 parts (~hryhorij@ip595.t15.ds.pwr.wroc.pl) ()
2021-04-21 19:00:41 psygate joins (~psygate@unaffiliated/psygate)
2021-04-21 19:03:56 × NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 3.1)
2021-04-21 19:04:02 × boogsbunny quits (17520e19@23.82.14.25) (Ping timeout: 240 seconds)
2021-04-21 19:04:47 NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur)
2021-04-21 19:09:53 × NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 246 seconds)
2021-04-21 19:13:10 NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur)
2021-04-21 19:13:17 mmfood_2 is now known as mmfood
2021-04-21 19:13:21 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 19:14:53 <ski> np
2021-04-21 19:17:07 × vdukhovni quits (64022765@100.2.39.101) (Quit: Connection closed)
2021-04-21 19:17:36 × vs^ quits (vs@ip98-184-89-2.mc.at.cox.net) ()
2021-04-21 19:18:58 pavonia joins (~user@unaffiliated/siracusa)
2021-04-21 19:19:17 <infinisil> Can cabal show a graph of how the modules depend on each other?
2021-04-21 19:19:21 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-chan)
2021-04-21 19:19:33 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
2021-04-21 19:19:47 × LKoen quits (~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection)
2021-04-21 19:20:08 <davean> infinisil: not cabal, thats not what cabal does - it doesn't know hwat modules depend on what even - but there are tools
2021-04-21 19:20:22 <davean> infinisil: I think you've missunderstood what cabal does though if you think it understands Haskell source code at all.
2021-04-21 19:20:37 <davean> It does not.
2021-04-21 19:20:45 <davean> Thats GHC's job
2021-04-21 19:21:19 <infinisil> Oh, does cabal not call GHC multiple times then for each module?
2021-04-21 19:21:52 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 19:22:27 <monochrom> No.
2021-04-21 19:22:44 <monochrom> Ever did a "cabal build -v" to see how it calls GHC?
2021-04-21 19:23:10 <monochrom> It throws the complete module list at GHC in one go.
2021-04-21 19:23:17 LKoen joins (~LKoen@92.163.9.109.rev.sfr.net)
2021-04-21 19:23:36 <monochrom> Admire the thousands-of-characters-long command line.
2021-04-21 19:24:19 <monochrom> I wouldn't want to be GHC.
2021-04-21 19:24:42 <monochrom> cabal : ghc :: me : my TAs
2021-04-21 19:24:46 <monochrom> my poor TAs
2021-04-21 19:24:52 × minoru_shiraeesh quits (~shiraeesh@109.166.59.151) (Ping timeout: 240 seconds)
2021-04-21 19:25:39 minoru_shiraeesh joins (~shiraeesh@46.34.207.53)
2021-04-21 19:25:43 <monochrom> But it's alright, someone already wrote the heroic topological sort code in GHC decades ago, may as well actually use it.
2021-04-21 19:26:29 <monochrom> Too late to say "separation of concerns, this belongs to a makefile" now. :)
2021-04-21 19:26:58 <davean> Well, makefiles are more limited, and also not automatic. Makefiles get it wrong all the time
2021-04-21 19:27:09 <sclv> infinisil: there's a ghc command to generate a makefile, which in turn will encode the graph of dependencies
2021-04-21 19:27:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 19:27:10 × mmfood quits (~mmfood@45.91.21.59) (Quit: Leaving)
2021-04-21 19:27:16 <davean> I've seen a pile of makefiles that have to be run 3 or 4 times because they get it wrong
2021-04-21 19:27:34 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds)
2021-04-21 19:27:47 <infinisil> monochrom: I see, thanks for the info
2021-04-21 19:27:48 <monochrom> Use "ghc -M" to output a correct makefile :)
2021-04-21 19:27:48 notzmv joins (~zmv@unaffiliated/zmv)
2021-04-21 19:28:10 <davean> I mean theres things like SOurceGraph
2021-04-21 19:28:14 <infinisil> So, how can I get the graph of modules though? Any tool recommendations?
2021-04-21 19:28:34 <monochrom> Does "ghc -M"'s makefile count? :)
2021-04-21 19:28:44 <monochrom> It's an adjacency list...
2021-04-21 19:28:46 <sclv> you can run makefile2graph or a similar tool on it
2021-04-21 19:28:49 <davean> infinisil: and graphmod
2021-04-21 19:28:52 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-21 19:28:53 × d34df00d quits (~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net) (Read error: Connection reset by peer)
2021-04-21 19:29:11 <infinisil> Hm I see
2021-04-21 19:29:14 <davean> I haven't used any of the source representation tools in a few years
2021-04-21 19:29:15 <infinisil> Lemme try..
2021-04-21 19:29:19 <davean> SourceGraph use to work great
2021-04-21 19:29:33 <davean> I don't actually find the graph useful though I found
2021-04-21 19:29:40 <sclv> its extremely bitrotted but shouldn't be hard to fix up: https://matrix.hackage.haskell.org/#/package/SourceGraph
2021-04-21 19:29:51 <davean> graphmod is probably less bitrotted
2021-04-21 19:29:53 <monochrom> Yeah a graph of packages is the useful one.
2021-04-21 19:30:06 <infinisil> In my case I want to see why a file is being recompiled so often

All times are in UTC.