Home liberachat/#haskell: Logs Calendar

Logs on 2025-02-08 (liberachat/#haskell)

00:03:24 × foul_owl quits (~kerry@193.42.0.126) (Ping timeout: 252 seconds)
00:16:36 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
00:17:50 foul_owl joins (~kerry@174-21-138-88.tukw.qwest.net)
00:19:25 Square joins (~Square@user/square)
00:19:43 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:23:24 × sprotte24 quits (~sprotte24@p200300d16f162e00a0abf896d629d189.dip0.t-ipconnect.de) (Quit: Leaving)
00:40:33 <haskellbridge> <Preetham Gujjula> Is there any way to infer "Eq (f a)" from "(Eq a, Eq1 f)"? Here's a small example:
00:40:33 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/txkgrmSDUVjUVWVJRVXKYhNi/LYPi2Ize3LU (21 lines)
00:41:23 <haskellbridge> <Preetham Gujjula> Is there any way to infer "Eq (f a)" from "(Eq a, Eq1 f)"? Here's a small example:
00:41:23 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/IWoCXjVZUXtnETfIMFBBSOuB/v7p8RIuNF04 (21 lines)
00:43:58 alfiee joins (~alfiee@user/alfiee)
00:45:01 <haskellbridge> <Preetham Gujjula> My apologies everyone, I meant to post this in the Haskell matrix channel
00:48:08 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
00:49:49 <Leary> Preetham: You can write `newtype F1 f a = F1 (f a); instance (Eq1 f, Eq a) => Eq (F1 f a)` and use `coerce @[f a] @[F1 f a]`.
00:51:20 <haskellbridge> <sm> Preetham Gujjula: worked perfectly in my matrix client. :) And in IRC client, it was also readable, with two pastebin links
00:52:53 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
00:54:50 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
00:55:40 <haskellbridge> <Preetham Gujjula> Oh good to hear sm :)
01:02:02 <haskellbridge> <Preetham Gujjula> Leary: I don't think that idea works, GHC warns:
01:02:02 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/AmMeFJGdLlJCilBtJKDYAhqG/0S1DLbftubs (10 lines)
01:02:46 <haskellbridge> <Preetham Gujjula> Also why can't I just use the "F1" constructor instead of "coerce"?
01:08:00 <haskellbridge> <Preetham Gujjula> Oh wait I see, I can write an implementation for "(==)" using "eq1":
01:08:00 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/SGoxowAGeEDwOguEHnahrMWL/IttEtTK99nU (11 lines)
01:08:18 <Leary> Preetham: You still have to define `(==)`, but you can do that with `eq1`. Using `coerce` over `map F1` may avoid a needless traversal of the list, though rewrite rules would likely evade it anyway.
01:10:39 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:13:11 <haskellbridge> <Preetham Gujjula> I see, thanks Leary!
01:15:21 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
01:15:44 × cheater quits (~Username@user/cheater) (Ping timeout: 272 seconds)
01:16:29 <haskellbridge> <Preetham Gujjula> It does feel a little clunky. The current definition of "Eq1" is "class (forall a. Eq a => Eq (f a)) => Eq1 (f :: Type -> Type)", but I noticed that if we write
01:16:32 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/KekKHFuFggARKJEfWBCnMgyf/rXzjao_nHrA (6 lines)
01:17:13 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
01:21:14 <Leary> You're probably using a version of GHC/base from before that quantified superclass was added, otherwise it should work the same.
01:22:30 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
01:22:58 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
01:23:30 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
01:24:46 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f9788a4d7c575081360.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
01:30:29 × zwro quits (~z@user/zero) (Ping timeout: 248 seconds)
01:30:50 zero joins (~z@user/zero)
01:32:02 alfiee joins (~alfiee@user/alfiee)
01:36:34 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
01:45:00 <haskellbridge> <Preetham Gujjula> Ah yes, you're right it works on later GHCs. Thank you again!
01:52:10 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
01:53:08 terrorjack parts (~terrorjac@2a01:4f8:c17:a66e::) (The Lounge - https://thelounge.chat)
01:54:44 aaronv joins (~aaronv@user/aaronv)
01:55:11 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:58:07 vanishingideal joins (~vanishing@user/vanishingideal)
01:59:43 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
02:09:38 × zero quits (~z@user/zero) (Read error: Connection reset by peer)
02:13:03 zero joins (~z@user/zero)
02:14:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
02:19:46 alfiee joins (~alfiee@user/alfiee)
02:21:24 × dostoevsky quits (~dostoevsk@user/dostoevsky) (Remote host closed the connection)
02:21:43 dostoevsky joins (~dostoevsk@user/dostoevsky)
02:23:56 × erdem quits (~erdem@user/erdem) (Quit: ZNC 1.9.1 - https://znc.in)
02:24:35 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
02:27:03 × xff0x quits (~xff0x@2405:6580:b080:900:a44a:d727:8d11:d274) (Ping timeout: 252 seconds)
02:28:53 Jeanne-Kamikaze joins (~Jeanne-Ka@c-73-93-78-113.hsd1.ca.comcast.net)
02:29:32 emergence7 joins (emergence@vm0.max-p.me)
02:29:51 × emergence quits (emergence@vm0.max-p.me) (Read error: Connection reset by peer)
02:29:51 emergence7 is now known as emergence
02:30:06 xff0x joins (~xff0x@2405:6580:b080:900:a44a:d727:8d11:d274)
02:38:24 erdem joins (~erdem@user/erdem)
02:40:13 × ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
02:41:34 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
02:49:58 cheater joins (~Username@user/cheater)
02:53:33 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
02:53:57 aaronv joins (~aaronv@user/aaronv)
03:00:17 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
03:00:42 aaronv joins (~aaronv@user/aaronv)
03:00:55 tavare joins (~tavare@150.129.88.189)
03:00:55 × tavare quits (~tavare@150.129.88.189) (Changing host)
03:00:55 tavare joins (~tavare@user/tavare)
03:02:53 Guest42 joins (~Guest42@220-233-36-23.ip4.exetel.com.au)
03:04:14 × Guest42 quits (~Guest42@220-233-36-23.ip4.exetel.com.au) (Client Quit)
03:08:22 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
03:08:52 alfiee joins (~alfiee@user/alfiee)
03:09:53 vanishingideal joins (~vanishing@user/vanishingideal)
03:13:18 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
03:15:48 × fmira quits (~user@user/fmira) (Ping timeout: 264 seconds)
03:15:58 <monochrom> c_wraith: I am arrogant, I say that I am sure recursion is not more easily learned by see how to compile. In fact, has anything been made easier to learn by seeing how to compile it?
03:16:42 <c_wraith> for some people, yes.
03:17:08 <monochrom> I even go as far as making this joke. (Context: Everyone except me teach recursion by teaching how to execute by hand.) Your computer has been executing recursion for years. Has it learned anything yet?
03:18:02 <c_wraith> I have absolutely seen some people go "oh, it's just using a stack" and never have an issue with it again.
03:18:43 <monochrom> Have they gone one step further and go "and the stack is just an optimization"?
03:19:08 <monochrom> Because if you don't mind a quadratic slowdown, you don't need a stack.
03:21:42 <monochrom> (It is still not O(1) space. Every procedure call becomes an inline expansion of the procedure text.)
03:27:29 <geekosaur> how well does that work for a non-fixed number of calls?
03:27:58 <monochrom> Equally well. I never assumed a fixed number.
03:29:27 <monochrom> A functional example goes like this. To execute f(5), it goes: f(5) -> 5 * f(4) -> 5 * (4 * f(3)) -> 5 * (4 * (3 * f(2))) -> ...
03:30:50 <monochrom> If I don't have a stack, I just have to scan the long expression "5 * (4 * (3 * f(2)))" for the redex, f(2). This is slow, but I don't need a stack. A stack is there to save a pointer to the f(2) subexpr so I don't have to search.
03:34:42 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
03:35:26 <monochrom> (And also a pointer to the 3*f(2) so I don't have to search in the future when I'm ready for it. And so on so forth.)
03:36:58 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
03:45:23 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
03:46:36 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
03:51:10 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
03:52:23 MyNetAz joins (~MyNetAz@user/MyNetAz)
03:54:49 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
03:58:37 alfiee joins (~alfiee@user/alfiee)
04:03:15 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
04:04:52 × Jeanne-Kamikaze quits (~Jeanne-Ka@c-73-93-78-113.hsd1.ca.comcast.net) (Quit: Leaving)
04:07:16 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
04:11:25 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
04:13:00 cheater_ joins (~Username@user/cheater)
04:16:33 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
04:16:37 cheater_ is now known as cheater
04:24:27 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
04:32:10 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
04:41:09 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
04:44:52 emergence7 joins (emergence@vm0.max-p.me)
04:46:50 × emergence quits (emergence@vm0.max-p.me) (Ping timeout: 252 seconds)
04:46:50 emergence7 is now known as emergence
04:47:42 alfiee joins (~alfiee@user/alfiee)
04:51:46 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
04:52:45 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds)
04:55:03 × aforemny quits (~aforemny@i577B1279.versanet.de) (Ping timeout: 268 seconds)
04:55:34 aforemny joins (~aforemny@2001:9e8:6cc0:9f00:f26a:4821:630d:3b0c)
04:57:52 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:01:52 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
05:02:34 × capslair^ quits (~capslair@108.192.66.114) (Remote host closed the connection)
05:02:47 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
05:04:29 aaronv joins (~aaronv@user/aaronv)
05:09:25 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
05:09:47 MyNetAz joins (~MyNetAz@user/MyNetAz)
05:12:04 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
05:12:37 rvalue joins (~rvalue@user/rvalue)
05:13:46 × duckworld quits (~duckworld@user/duckworld) (Remote host closed the connection)
05:16:10 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 252 seconds)
05:16:57 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
05:18:39 duckworld joins (~duckworld@user/duckworld)
05:19:47 × duckworld quits (~duckworld@user/duckworld) (Remote host closed the connection)
05:20:23 duckworld joins (~duckworld@user/duckworld)
05:35:46 alfiee joins (~alfiee@user/alfiee)
05:40:41 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
05:40:52 × prasad quits (~Thunderbi@2601:243:c001:3f07::53) (Quit: prasad)
05:46:18 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds)
05:48:25 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
05:48:45 chexum joins (~quassel@gateway/tor-sasl/chexum)
06:01:58 elnegro joins (elnegro@r186-54-42-10.dialup.adsl.anteldata.net.uy)
06:08:50 tabaqui1 joins (~root@87.200.129.102)
06:09:13 × elnegro quits (elnegro@r186-54-42-10.dialup.adsl.anteldata.net.uy) ()
06:09:42 × tavare quits (~tavare@user/tavare) (Ping timeout: 252 seconds)
06:09:58 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
06:12:23 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
06:12:46 euphores joins (~SASL_euph@user/euphores)
06:16:27 × foul_owl quits (~kerry@174-21-138-88.tukw.qwest.net) (Ping timeout: 268 seconds)
06:17:21 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
06:18:11 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
06:20:00 tavare joins (~tavare@150.129.88.189)
06:20:00 × tavare quits (~tavare@150.129.88.189) (Changing host)
06:20:00 tavare joins (~tavare@user/tavare)
06:23:51 alfiee joins (~alfiee@user/alfiee)
06:24:41 tnt2 joins (~Thunderbi@user/tnt1)
06:25:09 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 246 seconds)
06:25:09 tnt2 is now known as tnt1
06:28:02 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
06:28:30 foul_owl joins (~kerry@193.42.0.122)
06:32:17 × igemnace quits (~igemnace@user/igemnace) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in)
06:33:15 igemnace joins (~igemnace@user/igemnace)
06:35:20 tnt2 joins (~Thunderbi@user/tnt1)
06:36:34 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds)
06:36:34 tnt2 is now known as tnt1
06:38:12 takuan joins (~takuan@d8D86B601.access.telenet.be)
06:47:13 tnt2 joins (~Thunderbi@user/tnt1)
06:47:19 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
06:47:19 tnt2 is now known as tnt1
06:47:59 × arahael quits (~arahael@user/arahael) (Quit: leaving)
06:56:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:00:31 JamesMowery4395 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net)
07:05:03 × duckworld quits (~duckworld@user/duckworld) (Remote host closed the connection)
07:06:32 duckworld joins (~duckworld@user/duckworld)
07:09:04 tnt2 joins (~Thunderbi@user/tnt1)
07:10:03 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
07:10:03 tnt2 is now known as tnt1
07:12:15 alfiee joins (~alfiee@user/alfiee)
07:15:02 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
07:16:26 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
07:16:33 vanishingideal joins (~vanishing@user/vanishingideal)
07:18:34 × tavare quits (~tavare@user/tavare) (Ping timeout: 260 seconds)
07:21:10 tavare joins (~tavare@user/tavare)
07:36:40 × nitrix quits (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
07:38:01 nitrix joins (~nitrix@user/meow/nitrix)
07:53:28 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
08:00:01 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:19 alfiee joins (~alfiee@user/alfiee)
08:01:03 caconym joins (~caconym@user/caconym)
08:04:41 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
08:07:06 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
08:09:04 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
08:17:03 × jrm quits (~jrm@user/jrm) (Quit: ciao)
08:17:27 jrm joins (~jrm@user/jrm)
08:19:03 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 252 seconds)
08:22:50 arahael joins (~arahael@user/arahael)
08:23:06 × tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 246 seconds)
08:24:49 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
08:31:14 michalz joins (~michalz@185.246.207.193)
08:31:32 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
08:34:17 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:48:43 alfiee joins (~alfiee@user/alfiee)
08:50:09 × michalz quits (~michalz@185.246.207.193) (Remote host closed the connection)
08:52:51 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
08:55:44 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
08:56:29 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
09:02:10 tabaqui1 joins (~root@87.200.129.102)
09:02:23 acidjnk_new3 joins (~acidjnk@p200300d6e7283f0588a4d7c575081360.dip0.t-ipconnect.de)
09:18:42 <tomsmeding> monochrom: disclaimer I didn't follow the discussion, just saw stuff in the scrollback
09:18:56 <tomsmeding> your functional example is precisely that: a functional example, and it will work well for functionally-minded people
09:20:31 <tomsmeding> without prior exposure to either mathematics or functional programming, people tend to be more comfortable with sequential recipes than hierarchical procedures, and learning an imperative language first (before getting to recursion, that is) will only reinforce that
09:21:37 <tomsmeding> if you show that execution of a recursive procedure (with the right (rough) complexity! This is important) can be expressed rather simply in terms of a sequential recipe (doing stuff to a stack), then for some people that will map nicely to their mental model
09:22:31 <tomsmeding> then they may still lack a good intuition for how to _apply_ recursion, but they can at least reason about what a particular recursive function _does_ -- and that's a very useful stepping stone to understanding how to apply recursion
09:23:50 <tomsmeding> the reason why it's important that the operational equivalent has roughly the right complexity is that this hypothetical imperative programmer is probably willing to accept that a recipe that between each step instructs the cook to pet their dog, achieves the same as the recipe that doesn't -- albeit a bit slower
09:25:11 <tomsmeding> but if you show them a recipe that, between each step, instructs them (step-by-step) to go over each of the steps they did already and check and make adjustments where necessary (resulting in a quadratically-sized recipe), they'll be confused and be blocked by "why would anyone ever write anything like this" from understanding what's actually going on
09:25:49 <tomsmeding> (and if they get past that, they'll question whether those "adjustments where necessary" ever actually change anything -- you'll assure them that they don't, but then they'll just be more confused why the steps are there)
09:26:02 <tomsmeding> (this refers to scanning the long expression looking for the redex)
09:26:12 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
09:27:45 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
09:27:51 <peutri> I'm trying to get this line to compile without warnings (I feel it gives all the relevant context): let size = Relude.length xs * Foreign.Storable.sizeOf(Prelude.head xs)
09:28:15 <peutri> warning is: head is partial
09:28:24 <peutri> which is fair, but also sizeOf doesn't consume it
09:28:26 <tomsmeding> side note: not getting blocked by "why would anyone ever write this" and accepting ridiculous inputs and just rolling with them, is part of mathematical maturity, I think -- i.e. this hypothetical programmer does not have that
09:28:31 euleritian joins (~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de)
09:28:48 misterfish joins (~misterfis@84.53.85.146)
09:28:55 <tomsmeding> monochrom: end of rant
09:28:55 <peutri> I could put some (undefined :: a), but then Relude yells at me
09:29:12 <tomsmeding> peutri: you're running into the unfortunate design of sizeOf
09:29:16 <peutri> yup
09:29:22 <peutri> any common solution out there?
09:29:26 <tomsmeding> undefined :: a
09:29:33 <tomsmeding> (for the right a, that is)
09:29:39 <peutri> “but then Relude yells at me”
09:29:42 <tomsmeding> in what way?
09:29:51 <peutri> but I can use Prelude's I guess
09:30:07 <peutri> in a “You have undefineds remaining in your code” kind of way
09:30:21 <tomsmeding> sizeOf' :: forall a. Proxy a -> Int ; sizeOf' _ = sizeOf (Prelude.undefined :: a)
09:30:32 <peutri> I think I'm going to end up defining some term proxy alias in the end
09:30:45 <peutri> oh your thing too
09:30:45 <tomsmeding> ooh
09:30:50 <tomsmeding> sizeOf' :: forall a. proxy a -> Int ; sizeOf' _ = sizeOf (Prelude.undefined :: a)
09:30:53 <tomsmeding> note the P -> p
09:30:59 <tomsmeding> now you can pass in your list directly to this sizeOf'
09:31:18 <tomsmeding> and retain the connection between the list elements and the sizeOf call that your head code had, but the undefined code lost
09:32:46 tomsmeding personally feels that this head-is-partial warning is not helpful -- indeed, head is partial, but the programmer knows that, and the sign that something is off (or to be manually checked) is right there in the code: "head"
09:33:19 <tomsmeding> if you don't know 'head' is partial, you should think about what it does :p
09:33:47 × AlexZenon quits (~alzenon@178.34.151.30) (Ping timeout: 268 seconds)
09:33:49 <peutri> I mean, I'm not using it for the function at all, it's just the only [a]->a function I could think of
09:34:24 <tomsmeding> I would accept your sizeOf (head) code in code review :p
09:34:30 <peutri> “function” overload. That's 1) functionality 2) signature match
09:34:33 <tomsmeding> and probably add -Wno-x-partial (or what was it) to the cabal file
09:34:46 <peutri> I want localized warning shunning :'(
09:35:02 <tomsmeding> in what situation is this warning going to help you?
09:35:11 <peutri> no, but it's a big file
09:35:50 <peutri> oh sorry misread
09:35:55 <tomsmeding> put `sizeOfListElt :: [a] -> Int ; sizeOfListElt = sizeOf . head` in a file with -Wno-x-partial?
09:35:58 <peutri> mmm good point actually
09:36:15 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
09:36:43 sprotte24 joins (~sprotte24@p200300d16f1e3a00501959556750eb7a.dip0.t-ipconnect.de)
09:37:05 <tomsmeding> you could even defend this sizeOfListElt as "I'm only turning off the partiality warning in this separate file, so I have to watch out more here, but there's little code so it's easy to audit"
09:37:07 alfiee joins (~alfiee@user/alfiee)
09:37:25 <tomsmeding> never mind the leagues of other partial functions in not-Prelude that don't have an x-partial warning
09:37:49 AlexZenon joins (~alzenon@178.34.151.30)
09:38:00 <tomsmeding> I want an exception effect system so that I can statically determine whether an IO operation can throw
09:41:07 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
09:41:29 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
09:48:53 paddymahoney joins (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com)
09:53:07 __monty__ joins (~toonn@user/toonn)
09:56:21 JuanDaugherty joins (~juan@user/JuanDaugherty)
10:01:47 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
10:03:04 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
10:03:49 × euleritian quits (~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
10:04:07 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
10:12:19 lxsameer joins (~lxsameer@Serene/lxsameer)
10:12:52 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:15:38 JuanDaugherty is now known as ColinRobinson
10:17:25 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
10:24:51 alfiee joins (~alfiee@user/alfiee)
10:25:05 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
10:25:17 × ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
10:26:29 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
10:29:18 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
10:32:56 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
10:36:39 euouae joins (~euouae@user/euouae)
10:36:59 ss4 joins (~wootehfoo@user/wootehfoot)
10:37:01 <euouae> Hello I'm reading the 1992 STG paper by Jones and I'm wondering if it's worthwhile paying attention to all the technical aspects of the STG language
10:37:08 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
10:37:26 <euouae> I noticed that GHC has a -ddump-stg-from-core that looks a lot like what the paper discusses. Is it a good idea to look at this or has it mutated a lot since 1992?
10:37:44 hazmat_237 joins (~hazmat_23@2406:7400:56:f19f:793f:9847:668d:4a12)
10:37:46 <euouae> (including the semantics)
10:37:54 × hazmat_237 quits (~hazmat_23@2406:7400:56:f19f:793f:9847:668d:4a12) (Changing host)
10:37:54 hazmat_237 joins (~hazmat_23@user/Monospace)
10:38:02 × ss4 quits (~wootehfoo@user/wootehfoot) (Client Quit)
10:38:20 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
10:39:57 <__monty__> That depends rather more on your goals than anything.
10:41:49 <euouae> I
10:41:58 <euouae> I'm just messing around with the lower parts I don't have explicit goals
10:42:30 <euouae> But if I should say something I guess my goal is to write optimized & parallel code
10:42:36 <geekosaur> IMO if you want to know how to implement it, read SPJ's paper. If you want to understamnd what's going on down there, see Csaba Hruska's STGi
10:43:00 <geekosaur> even though that is imcomplete (e.g. doesn't support update frames)
10:43:07 <geekosaur> *incomplete
10:43:41 <geekosaur> if you want to write optimized and parallel code, stick to Core
10:43:48 <euouae> Are you talking about <https://github.com/grin-compiler/ghc-whole-program-compiler-project>?
10:43:52 <int-e> Hmm there's the more recent "making a fast curry: push/enter vs. eval/apply" paper as well. And another implementation: https://hackage.haskell.org/package/ministg
10:45:32 <geekosaur> not the while thing, just the external STG interpreter
10:45:51 <int-e> I don't really know which one comes closest to current GHC in terms of syntax and semantics.
10:46:02 <geekosaur> https://github.com/grin-compiler/ghc-whole-program-compiler-project/tree/master/external-stg-interpreter
10:46:47 <euouae> nice thanks
10:47:02 <euouae> when you say stick to Core for optimizations & parallel what do you mean?
10:47:25 <geekosaur> GRIN itself seems to be kinda stuck, but STGi will show you how STG works without requiring you to delve into implementation details (SPJ's paper talks a lot about register allocation etc.)
10:47:46 <euouae> I've read that Core does not capture certain issues with memory use & other benchmarking analysis
10:47:50 <geekosaur> almost all optimizations in ghc are done at the level of Core
10:48:19 <euouae> Ah, hm... I meant that I want to write code that is fast, not to study the optimizations of GHC
10:48:28 <geekosaur> there are a few things at Cmm and STG levels but you won't find anything except the ghc source to help with those
10:53:47 <geekosaur> (certainly old implementation papers will be too old to help, especially since none of them will know about amd64 or aarch64)
10:59:28 <euouae> does ghc still target C? because tahts' what STG targets in SPJs paper
10:59:56 <geekosaur> not since 7.2
11:00:58 <geekosaur> unless you mean unregisterised mode, but you absolutely don't want that if you want speed; it's intended for porting and produces extremely slow but extremely portable ANSI C
11:02:24 <euouae> no that's not what I meant
11:02:40 <euouae> I can't find a changelog file, how can I read the GHC notes for 7.2?
11:03:23 <int-e> https://downloads.haskell.org/~ghc/7.2.1/docs/html/users_guide/release-7-2-1.html
11:03:51 <int-e> (more generally you can start from https://www.haskell.org/ghc/download.html and select the version and that'll have a release notes link)
11:04:01 <euouae> ah thank you
11:06:27 <geekosaur> section 1.5.6 in particular, second entry
11:07:04 <euouae> yup; although it doesn't explain how the code is natively generated
11:07:24 <geekosaur> it generates assembly language and calls `as` on it
11:07:41 <geekosaur> unless you're in LLVM mode where it outputs LLVM IR and calls `opt` and `llc`
11:07:49 <euouae> very nice
11:08:17 <euouae> I'm realizing the GHC docs are a valuable source to learn stuff from
11:08:34 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f0588a4d7c575081360.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:08:49 <geekosaur> this happens post-Cmm in the compile pipeline
11:09:22 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary is another very good place to look
11:09:39 <euouae> nice, thank you
11:12:21 × hazmat_237 quits (~hazmat_23@user/Monospace) (Ping timeout: 276 seconds)
11:12:55 alfiee joins (~alfiee@user/alfiee)
11:17:24 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
11:27:29 emmanuelux joins (~emmanuelu@user/emmanuelux)
11:31:33 × tavare quits (~tavare@user/tavare) (Ping timeout: 252 seconds)
11:32:03 tavare joins (~tavare@user/tavare)
11:34:50 × dostoevsky quits (~dostoevsk@user/dostoevsky) (Remote host closed the connection)
11:53:38 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
11:53:59 euleritian joins (~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de)
12:00:04 × caconym quits (~caconym@user/caconym) (Quit: bye)
12:00:59 alfiee joins (~alfiee@user/alfiee)
12:02:14 caconym joins (~caconym@user/caconym)
12:05:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
12:06:51 × paddymahoney quits (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Quit: Leaving)
12:08:29 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
12:09:47 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
12:09:57 acidjnk_new3 joins (~acidjnk@p200300d6e7283f0539c4118aaa9fc29f.dip0.t-ipconnect.de)
12:18:26 × tavare quits (~tavare@user/tavare) (Remote host closed the connection)
12:18:41 tavare joins (~tavare@user/tavare)
12:21:56 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
12:28:36 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
12:31:57 × euleritian quits (~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de) (Ping timeout: 246 seconds)
12:49:25 alfiee joins (~alfiee@user/alfiee)
12:53:38 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
12:54:56 tnt2 joins (~Thunderbi@user/tnt1)
12:55:14 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
12:57:54 tnt1 joins (~Thunderbi@user/tnt1)
12:59:05 euleritian joins (~euleritia@dynamic-176-006-130-143.176.6.pool.telefonica.de)
12:59:19 × tnt2 quits (~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
13:07:30 michalz joins (~michalz@185.246.207.203)
13:13:19 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
13:13:35 califax joins (~califax@user/califx)
13:25:01 × euouae quits (~euouae@user/euouae) (Remote host closed the connection)
13:25:24 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f0539c4118aaa9fc29f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
13:33:06 × zfnmxt quits (~zfnmxt@user/zfnmxt) (Remote host closed the connection)
13:33:51 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
13:34:29 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
13:35:15 Square2 joins (~Square@user/square)
13:36:58 × michalz quits (~michalz@185.246.207.203) (Remote host closed the connection)
13:37:59 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 268 seconds)
13:38:09 alfiee joins (~alfiee@user/alfiee)
13:42:32 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
13:44:14 × YoungFrog quits (~youngfrog@2a02:a03f:c9db:fc00:8f51:9cf5:7d14:1330) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
13:44:34 YoungFrog joins (~youngfrog@2a02:a03f:c9db:fc00:53f0:e7df:9f6c:feb2)
14:03:01 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Ping timeout: 248 seconds)
14:08:33 zfnmxt joins (~zfnmxt@user/zfnmxt)
14:11:57 weary-traveler joins (~user@user/user363627)
14:14:14 × m1dnight quits (~m1dnight@d8D861908.access.telenet.be) (Ping timeout: 244 seconds)
14:19:47 target_i joins (~target_i@user/target-i/x-6023099)
14:27:13 alfiee joins (~alfiee@user/alfiee)
14:29:34 monadic joins (~ethanmorg@82.18.82.103)
14:31:50 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
14:35:36 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
14:41:27 monadic is now known as sixfourtwelve
14:41:42 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Remote host closed the connection)
14:42:33 sixfourtwelve joins (~ethanmorg@82.18.82.103)
14:43:13 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Client Quit)
14:45:49 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
14:46:02 chexum joins (~quassel@gateway/tor-sasl/chexum)
14:46:26 sixfourtwelve joins (~ethanmorg@82.18.82.103)
14:48:19 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Client Quit)
14:48:45 sixfourtwelve joins (~ethanmorg@82.18.82.103)
14:49:02 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Client Quit)
14:50:23 sixfourtwelve joins (~ethanmorg@82.18.82.103)
14:50:31 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Client Quit)
14:51:00 sixfourtwelve joins (~ethanmorg@82.18.82.103)
14:51:06 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Client Quit)
14:51:28 sixfourtwelve joins (~ethanmorg@82.18.82.103)
14:51:33 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Client Quit)
15:03:49 × Square2 quits (~Square@user/square) (Ping timeout: 248 seconds)
15:03:50 × Square quits (~Square@user/square) (Ping timeout: 244 seconds)
15:16:18 alfiee joins (~alfiee@user/alfiee)
15:20:58 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
15:25:00 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 265 seconds)
15:25:12 tnt2 joins (~Thunderbi@user/tnt1)
15:28:07 tnt1 joins (~Thunderbi@user/tnt1)
15:28:59 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
15:29:21 × tnt2 quits (~Thunderbi@user/tnt1) (Ping timeout: 248 seconds)
15:30:16 vanishingideal joins (~vanishing@user/vanishingideal)
15:30:39 sixfourtwelve joins (~ethanmorg@82.18.82.103)
15:31:00 tnt2 joins (~Thunderbi@user/tnt1)
15:32:32 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
15:32:32 tnt2 is now known as tnt1
15:42:24 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
15:44:05 vanishingideal joins (~vanishing@user/vanishingideal)
15:51:37 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Quit: leaving)
15:58:56 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
16:00:58 vanishingideal joins (~vanishing@user/vanishingideal)
16:01:37 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:04:23 alfiee joins (~alfiee@user/alfiee)
16:08:36 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
16:19:46 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
16:22:49 × euleritian quits (~euleritia@dynamic-176-006-130-143.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
16:26:31 Guest46 joins (~Guest46@149.40.58.147)
16:26:31 ljdarj1 joins (~Thunderbi@user/ljdarj)
16:27:29 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
16:27:29 ljdarj1 is now known as ljdarj
16:33:28 × tavare quits (~tavare@user/tavare) (Remote host closed the connection)
16:36:49 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 268 seconds)
16:40:48 × Guest46 quits (~Guest46@149.40.58.147) (Quit: Client closed)
16:43:11 Guest46 joins (~Guest46@149.40.58.147)
16:43:49 acidjnk_new3 joins (~acidjnk@p200300d6e7283f05f1993237be87f095.dip0.t-ipconnect.de)
16:48:46 × Guest46 quits (~Guest46@149.40.58.147) (Quit: Client closed)
16:49:50 × dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
16:51:17 Someone48 joins (~Someone@2405:201:e001:61c7:4c32:d8b0:e5e8:78c0)
16:51:22 <Someone48> Hi haskellers!
16:51:25 dolio joins (~dolio@130.44.140.168)
16:52:07 alfiee joins (~alfiee@user/alfiee)
16:55:36 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
16:55:56 × dolio quits (~dolio@130.44.140.168) (Client Quit)
16:56:51 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds)
17:01:06 dolio joins (~dolio@130.44.140.168)
17:01:16 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
17:01:22 otbergsten joins (~otbergste@user/otbergsten)
17:03:51 × Someone48 quits (~Someone@2405:201:e001:61c7:4c32:d8b0:e5e8:78c0) (Quit: Client closed)
17:07:40 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
17:11:47 <spew> hello
17:27:09 gutszu joins (~gutszu@187.85.204.144)
17:39:51 alfiee joins (~alfiee@user/alfiee)
17:44:10 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
17:51:41 sixfourtwelve joins (~ethanmorg@82.18.82.103)
18:00:20 alx741 joins (~alx741@186.33.188.229)
18:14:34 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Quit: leaving)
18:14:54 sixfourtwelve joins (~ethanmorg@82.18.82.103)
18:18:22 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
18:23:34 × OftenFaded quits (~OftenFade@user/tisktisk) (Ping timeout: 260 seconds)
18:25:11 OftenFaded joins (~OftenFade@user/tisktisk)
18:28:15 alfiee joins (~alfiee@user/alfiee)
18:28:47 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:29:16 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
18:30:14 Lord_of_Life_ is now known as Lord_of_Life
18:32:34 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
18:41:57 × OftenFaded quits (~OftenFade@user/tisktisk) (Quit: OftenFaded)
18:53:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
18:53:43 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
18:54:57 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
18:56:29 vanishingideal joins (~vanishing@user/vanishingideal)
18:56:38 cheater_ joins (~Username@user/cheater)
18:56:44 misterfish joins (~misterfis@84.53.85.146)
18:58:42 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
18:58:44 cheater_ is now known as cheater
19:01:56 aaronv joins (~aaronv@user/aaronv)
19:03:00 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
19:07:48 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
19:08:05 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f05f1993237be87f095.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
19:16:39 alfiee joins (~alfiee@user/alfiee)
19:18:52 JamesMowery4395 is now known as JamesMowery
19:21:28 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
19:21:53 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Quit: Restarting)
19:22:05 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
19:23:00 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:23:38 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
19:31:14 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
19:32:42 × alx741 quits (~alx741@186.33.188.229) (Ping timeout: 252 seconds)
19:33:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
19:33:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:34:04 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
19:36:15 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
19:37:50 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Ping timeout: 252 seconds)
19:40:11 sixfourtwelve joins (~ethanmorg@82.18.82.103)
19:42:58 × foul_owl quits (~kerry@193.42.0.122) (Ping timeout: 252 seconds)
19:44:12 × AlexZenon quits (~alzenon@178.34.151.30) (Ping timeout: 246 seconds)
19:48:10 acidjnk_new3 joins (~acidjnk@p200300d6e7283f0584678bbe6a824f58.dip0.t-ipconnect.de)
19:49:13 × zfnmxt quits (~zfnmxt@user/zfnmxt) (Remote host closed the connection)
19:49:54 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 260 seconds)
19:51:04 × tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 268 seconds)
19:51:41 AlexZenon joins (~alzenon@178.34.151.30)
19:53:42 ljdarj1 joins (~Thunderbi@user/ljdarj)
19:55:57 pavonia joins (~user@user/siracusa)
19:55:59 foul_owl joins (~kerry@193.42.0.122)
19:56:29 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
19:56:29 ljdarj1 is now known as ljdarj
19:57:23 weary-traveler joins (~user@user/user363627)
20:00:02 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:47 caconym joins (~caconym@user/caconym)
20:04:45 alfiee joins (~alfiee@user/alfiee)
20:07:30 × YuutaW quits (~YuutaW@2404:f4c0:f9c3:502::100:17b7) (Ping timeout: 272 seconds)
20:07:48 YuutaW joins (~YuutaW@2404:f4c0:f9c3:502::100:17b7)
20:09:00 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
20:13:01 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:16:48 × sam113101 quits (~sam@modemcable220.199-203-24.mc.videotron.ca) (Quit: WeeChat 4.5.1)
20:18:49 sam113101 joins (~sam@modemcable220.199-203-24.mc.videotron.ca)
20:29:51 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
20:53:49 alfiee joins (~alfiee@user/alfiee)
20:54:21 Sgeo joins (~Sgeo@user/sgeo)
20:57:53 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
21:05:50 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:21:58 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
21:24:29 sixfourtwelve parts (~ethanmorg@82.18.82.103) ()
21:25:29 sixfourtwelve joins (~ethanmorg@82.18.82.103)
21:40:01 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
21:41:55 alfiee joins (~alfiee@user/alfiee)
21:45:13 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
21:46:34 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
21:48:14 m1dnight joins (~m1dnight@d8D861908.access.telenet.be)
22:02:13 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
22:03:06 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
22:05:12 Sgeo joins (~Sgeo@user/sgeo)
22:06:29 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
22:11:39 × m1dnight quits (~m1dnight@d8D861908.access.telenet.be) (Ping timeout: 260 seconds)
22:25:04 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
22:29:39 alfiee joins (~alfiee@user/alfiee)
22:33:43 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
22:46:54 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Ping timeout: 246 seconds)
23:07:56 <peutri> tomsmeding: (followup) currently going with sizeOf (fix id :: a), which is somehow worse-than-partial yet doesn't warn
23:08:06 sixfourtwelve joins (~ethanmorg@82.18.82.103)
23:08:38 <monochrom> Interesting. Did "undefined :: a" cause a warning?
23:08:44 <peutri> but is by far the minimal project disruption I found
23:08:57 <peutri> yes (because Relude)
23:09:15 <monochrom> God, totality police.
23:09:23 <peutri> ikr
23:09:35 <monochrom> May I be facetious and say "totalitarian" >:)
23:09:37 <peutri> and I'm voluntarily signing up for it
23:11:08 <peutri> I'm also noticing now `fix id` is shorter than `undefined`, and considering… mmmm… no, better forget that
23:11:26 <monochrom> @type fix fix
23:11:27 <lambdabot> error:
23:11:27 <lambdabot> • Occurs check: cannot construct the infinite type: a ~ a -> a
23:11:27 <lambdabot> Expected type: a -> a
23:12:17 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Ping timeout: 248 seconds)
23:12:38 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
23:13:28 <monochrom> More fairly, on the scale of safety, static error message > runtime error message > no error message
23:14:14 <monochrom> So a warning system that simply pushes users away from runtime error (undefined) to no error (fix id) is... You know, the road to hell is paved with well intentions.
23:17:44 alfiee joins (~alfiee@user/alfiee)
23:22:35 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
23:28:24 benjamin joins (~benjamin@2a03:4b80:a720:6e10:2961:287b:51c1:b384)
23:29:12 Catty is now known as kitties
23:29:40 sixfourtwelve joins (~ethanmorg@82.18.82.103)
23:30:58 × hiredman quits (~hiredman@frontier1.downey.family) (Quit: Lost terminal)
23:31:34 × benjamin quits (~benjamin@2a03:4b80:a720:6e10:2961:287b:51c1:b384) (Client Quit)
23:31:53 benjamin joins (~benjamin@2a03:4b80:a720:6e10:2961:287b:51c1:b384)
23:31:58 × benjamin quits (~benjamin@2a03:4b80:a720:6e10:2961:287b:51c1:b384) (Remote host closed the connection)
23:33:58 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Ping timeout: 252 seconds)
23:38:33 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
23:39:22 <Leary> If you don't care to heed a warning, you're supposed to ignore or disable it---it is just a /warning/, after all, not an error. Let's not blame x-partial for /wacky dodging/.
23:42:20 hiredman joins (~hiredman@frontier1.downey.family)
23:43:19 <monochrom> That would be a much better stance than mine, if not for the same totalitarian police also instituting "no warning by the time you commit" or even -Wall -Werror.
23:44:08 <monochrom> So it just means I should be complaining about the policing system rather than the warning system.
23:50:05 × philopsos quits (~caecilius@user/philopsos) (Ping timeout: 265 seconds)
23:51:34 sixfourtwelve joins (~ethanmorg@82.18.82.103)
23:51:55 philopsos joins (~caecilius@user/philopsos)
23:56:45 × sixfourtwelve quits (~ethanmorg@82.18.82.103) (Ping timeout: 276 seconds)
23:57:15 m1dnight joins (~m1dnight@d8D861908.access.telenet.be)
23:59:58 <Leary> Right. I actually understand if people with too much code to review want strict CI to make their life easier, but it should diff with a checked-in record of known/accepted warnings for flexibility.

All times are in UTC on 2025-02-08.