Home liberachat/#haskell: Logs Calendar

Logs on 2025-03-17 (liberachat/#haskell)

00:01:39 × SoF quits (~skius@user/skius) (Quit: The Lounge - https://thelounge.chat)
00:07:44 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
00:10:20 alfiee joins (~alfiee@user/alfiee)
00:12:58 SoF joins (~skius@user/skius)
00:15:08 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
00:24:33 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 245 seconds)
00:26:16 tabaqui joins (~tabaqui@167.71.80.236)
00:27:33 × acidjnk quits (~acidjnk@p200300d6e71c4f06309b9617c0b564b2.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
00:28:41 × sprotte24 quits (~sprotte24@p200300d16f093b001519da6143e769d5.dip0.t-ipconnect.de) (Quit: Leaving)
00:30:34 × xatirig quits (~xatirig@81.215.239.1) (Quit: xatirig)
00:33:51 werneta joins (~werneta@syn-071-083-160-242.res.spectrum.com)
00:41:03 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:44:33 infinity0 joins (~infinity0@pwned.gg)
00:48:14 fris joins (sid7259@id-7259.helmsley.irccloud.com)
00:56:04 alfiee joins (~alfiee@user/alfiee)
00:57:55 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
01:00:11 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
01:00:37 × xff0x quits (~xff0x@2405:6580:b080:900:3552:f799:4331:aaa8) (Ping timeout: 248 seconds)
01:02:29 weary-traveler joins (~user@user/user363627)
01:24:12 ftzm7 joins (~ftzm@085081035209.dynamic.telenor.dk)
01:26:10 × ftzm quits (~ftzm@085081056141.dynamic.telenor.dk) (Ping timeout: 248 seconds)
01:26:10 ftzm7 is now known as ftzm
01:42:08 alfiee joins (~alfiee@user/alfiee)
01:42:09 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
01:46:58 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
01:48:26 j1n37 joins (~j1n37@user/j1n37)
01:49:01 myxos joins (~myxos@syn-065-028-251-121.res.spectrum.com)
01:49:09 MyNetAz joins (~MyNetAz@user/MyNetAz)
01:49:20 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds)
01:50:23 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 245 seconds)
01:56:09 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
02:02:56 <haskellbridge> <Liamzee> has anyone tried writing Haskell in braces before, besides SPJ?
02:04:49 × mange quits (~user@user/mange) (Ping timeout: 260 seconds)
02:08:20 mange joins (~user@user/mange)
02:08:46 bilegeek joins (~bilegeek@2600:1008:b041:b61:4489:3f6f:340a:78f6)
02:17:32 × euandreh quits (~Thunderbi@189.6.105.228) (Ping timeout: 244 seconds)
02:18:54 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
02:19:25 jmcantrell joins (~weechat@user/jmcantrell)
02:21:06 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
02:22:27 ljdarj1 joins (~Thunderbi@user/ljdarj)
02:24:25 <haskellbridge> <Liamzee> there's a point to it, since I like treating Haskell as a scripting language and non-idiomatic Haskell, if you're writing in braces you're implying you're being serious and actually caring about engineering quality. But then again, braces aren't that idiomatic either.
02:25:38 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
02:25:38 ljdarj1 is now known as ljdarj
02:27:53 alfiee joins (~alfiee@user/alfiee)
02:27:53 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
02:29:34 <haskellbridge> <dmjio> Well braces automatically get inserted after the layout pass, so you might be saving the layout pass some work.
02:29:35 <haskellbridge> Now if you wanted to build your own Haskell compiler that only uses braces you could bypass the layout pass (and dreaded parse-error case)
02:31:39 <monochrom> I tried that, but that's only when my editor haskell mode was primitive and couldn't do good indentation without braces.
02:32:24 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
02:32:26 <haskellbridge> <Liamzee> So, there's actually a pragmatic reason to use braces in Haskell, simply to make your code compile less than 1% faster. Got it.
02:32:43 <monochrom> I am talking about 20 years ago.
02:33:00 <monochrom> Today no editor has an issue. Come on this is 2025 already.
02:33:16 <monochrom> And with that, also out with "layout means script kiddies".
02:34:42 <geekosaur> the popularity of python for scientific programming shoots that one down anyway
02:34:53 MyNetAz joins (~MyNetAz@user/MyNetAz)
02:35:23 <haskellbridge> <Liamzee> No, but braces are fully supported by GHC and the Haskell report. Optional braces can be used as a means of expressing... something.
02:36:15 <haskellbridge> <Liamzee> I mean, you could use braces to indicate prototyping, but that should slow down prototyping, no? But you could make an alternative argument that significant whitespace is idiomatic in Haskell, and stubbornly insisting on braces means you're doing improper Haskell for pragmatic reasons.
02:36:50 <geekosaur> or not so pragmatic
02:37:05 <geekosaur> imo they make code harder to read (sorry SPJ)
02:37:17 <geekosaur> although even SPJ doesn't use braces religiously
02:37:26 <monochrom> You're overthinking it. I quit.
02:38:31 × notdabs quits (~Owner@2600:1700:69cf:9000:8c4a:1bad:bb61:8f8d) (Read error: Connection reset by peer)
02:38:49 <monochrom> "SPJ wears a blue shirt in his picture. There must be either a category theory reason or a software engineering reason!"
02:39:14 × Square quits (~Square@user/square) (Ping timeout: 260 seconds)
02:39:52 <monochrom> "blue shirt means blue collar right? but is software engineering blue collar? or is category theory blue collar? or is SPJ a burgeous middle class who pretends to befriend blue collars?"
02:40:20 <haskellbridge> <dmjio> I think the braces were just to make the syntax context free, to make happy happy
02:40:22 <int-e> (it seems that monochrom knows a lot about overthinking)
02:40:35 Guest23 joins (~Guest23@2601:45:500:5c10:39d7:6224:4126:8f39)
02:40:36 <haskellbridge> <Liamzee> No, I'm trying to build a prototype of an Upwork clone (major feature: having the lowest fees attached) in Haskell. One of the plans is to have a team that does prototyping as well as a team that does engineering. This would distinguish whether the code is intended to be kept or needs to be eventually rewritten.
02:42:14 <int-e> braces are also nice for lazy code generators... and I seem to recall an account that they have an accessibility benefit in connection with screen readers (which IIUC basically skip whitespace)
02:43:46 <monochrom> Yeah mechanical output of Haskell code is vastly simpler with {;}.
02:44:13 <monochrom> Although, I have only done the opposite: A Haskell program that outputs Java code. :)
02:48:31 <monochrom> I don't think you will have any luck enforcing a black-and-white divide between prototyping and production by any means except... The one single success story I ever heard was with entirely two different languages, matlab for prototyping and C++ for production.
02:48:50 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
02:49:21 <EvanR> haskell code fully braced and semicoloned out could indicate you didn't intend for anyone to actually read your code, in which case they could stop reading if they knew this convention, saving time, or if they just hate it
02:50:14 <EvanR> it has the advantage of naturally triggering the stop reading reflex without prior agreement
02:51:03 <monochrom> I am happy to read {;} code if it also uses layout (doesn't have to strictly follow Haskell layout rules) to help me. Like, I have been reading C like that all my life already.
02:51:12 <EvanR> the parsing stage that inserters semicolons and braces still has to run even if you put them
02:51:27 <int-e> { IRC does have that effect `on` people; }
02:51:28 <EvanR> so I don't know about the performance narrative there
02:54:33 <haskellbridge> <Liamzee> well, thanks for the vote of approval, even if the procedure is different: prototype in braces, be serious in traditional layout
02:54:43 <int-e> you can't switch back to layout mode inside explicit braces
02:55:13 <EvanR> why is your bait so bad
02:55:32 <int-e> but the premise that layout has a noticable cost compared to all the other things that the compiler is doing is quite laughable
02:56:42 <davean> lol I find the idea of making prototype code visually distinct amusing
02:57:25 <geekosaur> unless you count the different-languages thing
02:57:29 <haskellbridge> <Liamzee> also, you're more likely to have juniors and people you trained be more used to braces, so it makes things easier for them to adjust to while simultaneously letting everyone know who wrote it
02:57:45 <geekosaur> (as I've mentioned before, I've done that oen as well: Prolog prototype, C production)
02:58:08 <davean> Liamzee: How many seconds can you honestly expect it to take for people to convert between braces and indentation style?
02:58:25 <davean> If it takes over 600 seconds to get comfortable with one from the other I'd be shocked.
02:58:41 <davean> I don't think it took me that long
02:58:43 <haskellbridge> <Liamzee> 1, 5 if there's a CLI (I think there already is one) that does so automatically
02:59:52 <haskellbridge> <Liamzee> and yeah, there are non-haskellers who regularly exclaim their reason for hating Haskell is significant whitespace
03:00:49 <geekosaur> do they say the same about Python? about make? if not, I call BS
03:00:52 <davean> I didn't say I liked significant whitespace
03:00:56 <haskellbridge> <Liamzee> yes, they did as well
03:01:19 <int-e> davean: wdym?! everybody loves significant whitespace!!!1eleven
03:01:45 <davean> I have very mixed feelings on significant whitespace. It sure isn't hard to move between though
03:02:36 <haskellbridge> <Liamzee> anyways, conclusion: braces and semicolons can be used to mark code within a Haskell codebase, what braced code (use parens for pure functions) means is up to you
03:03:11 <monochrom> Economically, I would not hire people who spend time exclaiming things instead of getting things done. Like, are you hiring them for programming or are you hiring them for Fox News?
03:03:24 bilegeek__ joins (~bilegeek@2600:1008:b042:764a:da27:cd1a:86b4:69a4)
03:04:44 × bilegeek quits (~bilegeek@2600:1008:b041:b61:4489:3f6f:340a:78f6) (Ping timeout: 260 seconds)
03:05:16 Guest16 joins (~Guest16@168.92.227.70)
03:05:34 <davean> monochrom: I feel Fox News has gotten a lot done.
03:06:19 × Guest16 quits (~Guest16@168.92.227.70) (Client Quit)
03:13:56 alfiee joins (~alfiee@user/alfiee)
03:14:08 × Guest23 quits (~Guest23@2601:45:500:5c10:39d7:6224:4126:8f39) (Quit: Client closed)
03:14:28 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
03:14:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:16:30 <ski> "I seem to recall an account that they have an accessibility benefit in connection with screen readers" -- yes, there was a blind user here, years ago, who used curly brackets for Haskell
03:17:59 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
03:41:45 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
03:42:14 poscat0x04 joins (~poscat@user/poscat)
03:42:33 × werneta quits (~werneta@syn-071-083-160-242.res.spectrum.com) (Quit: Lost terminal)
03:42:45 × poscat quits (~poscat@user/poscat) (Ping timeout: 248 seconds)
03:58:55 × bilegeek__ quits (~bilegeek@2600:1008:b042:764a:da27:cd1a:86b4:69a4) (Quit: Leaving)
04:00:00 alfiee joins (~alfiee@user/alfiee)
04:04:15 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
04:08:24 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
04:09:27 tavare joins (~tavare@user/tavare)
04:18:30 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
04:22:29 <jackdk> I think they're easier to define canonical formats for than significant whitespace, and you tend to get better parse errors when you mess up. But I like Haskell enough to put up with significant whitespace.
04:27:39 × tabaqui quits (~tabaqui@167.71.80.236) (Ping timeout: 252 seconds)
04:31:08 <haskellbridge> <dmjio> Does anybody remember the name of that package, the precursor to HLS, except it was a major RAM hog and would lock up your system.
04:40:18 × sabathan quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
04:45:24 alfiee joins (~alfiee@user/alfiee)
04:46:20 sabathan joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:47:58 <EvanR> atom
04:48:22 <Axman6> ghcide?
04:49:02 <haskellbridge> <dmjio> Axman6: pretty sure it was older than that
04:49:11 <haskellbridge> <dmjio> "ghc-mod" !
04:49:16 <haskellbridge> <dmjio> right
04:49:26 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
04:49:28 <haskellbridge> <dmjio> EvanR: could have been this too tbh
04:49:42 <haskellbridge> <dmjio> https://hackage.haskell.org/package/ghc-mod
04:49:45 <haskellbridge> <dmjio> this guy
04:50:20 <monochrom> Yeah, ghc-mod.
04:50:40 <NewtonTrendy> cue moan ad
04:50:54 × jmcantrell quits (~weechat@user/jmcantrell) (Quit: WeeChat 4.5.2)
04:51:05 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
04:51:07 <NewtonTrendy> who am i kidding i dont know what a monad is
04:52:31 bilegeek__ joins (~bilegeek@2600:1008:b08e:bb9c:6d7d:2bd8:d779:bc6e)
04:54:40 michalz joins (~michalz@185.246.207.201)
04:55:19 <EvanR> an abstraction. Alternatively the type (env ->) is a monad. So if you know what that is you know what "a monad" is
04:56:34 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:58:10 <haskellbridge> <dmjio> NewtonTrendy: Anything that can be made a law-abiding instance of Monad, is a Monad 🤷
04:59:56 <NewtonTrendy> .
05:02:20 <haskellbridge> <dmjio> You gotta just trust the laws, lots of things are Monads, that are seemingly different ("Maybe", "[]", "((->) a"), "State") but they all have this one thing in common, they obey the monad laws. L/R identity and associativity
05:02:45 <haskellbridge> <dmjio> the intuition comes when you manually write out each instance, that's the "proof" of the law, that's not enforced by the compiler
05:03:08 <haskellbridge> <dmjio> there's a good blog post on this https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/
05:03:33 <haskellbridge> <dmjio> You gotta just trust the laws, lots of things are Monads, that are seemingly different ("Maybe", "[]", "((->) a"), "State s") but they all have this one thing in common, they obey the monad laws. L/R identity and associativity
05:07:17 lol_ joins (~lol@96.78.87.197)
05:09:30 × jcarpenter2 quits (~lol@2603:3016:1e01:b960:ac5c:b821:dffb:b6c1) (Ping timeout: 276 seconds)
05:12:09 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:12:49 raym joins (~ray@user/raym)
05:17:36 fris parts (sid7259@id-7259.helmsley.irccloud.com) ()
05:25:32 × tavare quits (~tavare@user/tavare) (Remote host closed the connection)
05:31:08 wildsalander joins (~wildsalan@37-136-163-100.rev.dnainternet.fi)
05:31:09 alfiee joins (~alfiee@user/alfiee)
05:32:22 jcarpenter2 joins (~lol@2603:3016:1e01:b960:c0f1:1eb8:93b0:299a)
05:32:22 harveypwca joins (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6)
05:32:37 × dtman34 quits (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net) (Ping timeout: 244 seconds)
05:32:45 dtman34_ joins (~dtman34@2601:447:d000:1f5e:5ed:4e8c:420f:e376)
05:33:08 × lol_ quits (~lol@96.78.87.197) (Ping timeout: 244 seconds)
05:34:31 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
05:34:54 × wildsalander quits (~wildsalan@37-136-163-100.rev.dnainternet.fi) (Remote host closed the connection)
05:35:04 wildsalander joins (~wildsalan@37-136-163-100.rev.dnainternet.fi)
05:35:25 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
05:40:19 MyNetAz joins (~MyNetAz@user/MyNetAz)
05:42:02 × bilegeek__ quits (~bilegeek@2600:1008:b08e:bb9c:6d7d:2bd8:d779:bc6e) (Quit: Leaving)
06:05:05 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:06:44 × wildsalander quits (~wildsalan@37-136-163-100.rev.dnainternet.fi) (Ping timeout: 260 seconds)
06:16:53 alfiee joins (~alfiee@user/alfiee)
06:17:34 takuan joins (~takuan@d8D86B601.access.telenet.be)
06:21:09 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
06:26:21 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
06:26:34 euleritian joins (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de)
06:27:02 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) (Quit: Leaving)
06:32:26 × euleritian quits (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
06:33:00 euleritian joins (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de)
06:33:26 × euleritian quits (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
06:33:44 euleritian joins (~euleritia@95.90.214.149)
06:40:46 × euleritian quits (~euleritia@95.90.214.149) (Read error: Connection reset by peer)
06:41:32 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
06:49:36 × duckworld quits (~duckworld@user/duckworld) (Read error: Connection reset by peer)
06:52:19 duckworld joins (~duckworld@user/duckworld)
06:53:24 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
06:54:19 euleritian joins (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de)
06:56:34 alfiee joins (~alfiee@user/alfiee)
07:00:03 × caconym quits (~caconym@user/caconym) (Quit: bye)
07:01:00 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
07:01:31 caconym joins (~caconym@user/caconym)
07:09:22 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
07:13:43 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
07:13:57 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
07:15:07 Lord_of_Life_ is now known as Lord_of_Life
07:25:46 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:31:50 wildsalander joins (~wildsalan@81-175-155-97.bb.dnainternet.fi)
07:32:23 rvalue- joins (~rvalue@user/rvalue)
07:33:38 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 272 seconds)
07:37:01 rvalue- is now known as rvalue
07:42:17 alfiee joins (~alfiee@user/alfiee)
07:42:39 ash3en joins (~Thunderbi@89.56.182.235)
07:46:39 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
07:48:46 × ash3en quits (~Thunderbi@89.56.182.235) (Quit: ash3en)
07:50:42 × ft quits (~ft@p508db291.dip0.t-ipconnect.de) (Quit: leaving)
07:51:46 × wildsalander quits (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Quit: wildsalander)
07:51:52 ash3en joins (~Thunderbi@89.56.182.235)
07:52:01 wildsalander joins (~wildsalan@81-175-155-97.bb.dnainternet.fi)
08:12:26 Guest88 joins (~Guest88@88-115-11-210.elisa-laajakaista.fi)
08:12:47 chele joins (~chele@user/chele)
08:17:43 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:27:41 alfiee joins (~alfiee@user/alfiee)
08:28:00 acidjnk joins (~acidjnk@p200300d6e71c4f06309b9617c0b564b2.dip0.t-ipconnect.de)
08:29:36 × ash3en quits (~Thunderbi@89.56.182.235) (Quit: ash3en)
08:29:48 × Guest88 quits (~Guest88@88-115-11-210.elisa-laajakaista.fi) (Quit: Client closed)
08:32:18 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds)
08:35:09 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
08:35:58 × euleritian quits (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
08:36:17 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
08:42:09 MyNetAz joins (~MyNetAz@user/MyNetAz)
08:45:11 alp joins (~alp@2001:861:8ca0:4940:9fa:1f3a:663a:c7ca)
08:53:08 merijn joins (~merijn@77.242.116.146)
08:55:30 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
08:57:05 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
08:59:22 ljdarj joins (~Thunderbi@user/ljdarj)
09:13:04 alfiee joins (~alfiee@user/alfiee)
09:17:45 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds)
09:18:12 euandreh joins (~Thunderbi@189.6.105.228)
09:20:55 × Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Quit: Ping timeout (120 seconds))
09:23:36 × euandreh quits (~Thunderbi@189.6.105.228) (Read error: Connection reset by peer)
09:23:53 euandreh joins (~Thunderbi@189.6.105.228)
09:24:17 Goodbye_Vincent1 joins (cyvahl@freakshells.net)
09:24:36 fp joins (~Thunderbi@wireless-86-50-140-47.open.aalto.fi)
09:26:29 × sabathan quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
09:29:09 × fp quits (~Thunderbi@wireless-86-50-140-47.open.aalto.fi) (Ping timeout: 260 seconds)
09:29:20 fp1 joins (~Thunderbi@2001:708:20:1406::1370)
09:30:07 sabathan joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:31:39 fp1 is now known as fp
09:34:04 vicfred joins (~vicfred@user/vicfred)
09:35:17 × vicfred quits (~vicfred@user/vicfred) (Client Quit)
09:43:12 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
09:44:21 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
09:44:56 ash3en joins (~Thunderbi@89.56.182.235)
09:50:03 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
09:52:36 × ash3en quits (~Thunderbi@89.56.182.235) (Quit: ash3en)
09:54:27 j1n37- joins (~j1n37@user/j1n37)
09:55:18 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 246 seconds)
09:55:32 __monty__ joins (~toonn@user/toonn)
09:59:29 alfiee joins (~alfiee@user/alfiee)
10:03:50 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
10:04:23 merijn joins (~merijn@77.242.116.146)
10:08:59 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
10:10:53 × pabs3 quits (~pabs3@user/pabs3) (Killed (lithium.libera.chat (Nickname regained by services)))
10:11:20 pabs3 joins (~pabs3@user/pabs3)
10:12:39 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
10:16:55 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
10:19:33 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds)
10:20:26 dhil joins (~dhil@2a0c:b381:52e:3600:833:1adb:9cb7:e851)
10:21:00 merijn joins (~merijn@77.242.116.146)
10:29:24 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
10:33:48 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
10:36:22 fp joins (~Thunderbi@130.233.70.204)
10:37:52 × wildsalander quits (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Quit: wildsalander)
10:44:53 alfiee joins (~alfiee@user/alfiee)
10:46:45 ljdarj joins (~Thunderbi@user/ljdarj)
10:49:04 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
11:02:01 lxsameer joins (~lxsameer@Serene/lxsameer)
11:02:15 <dminuoso> https://paste.tomsmeding.com/IoR9ZvdL <- GHC complains about no module named 'Main', what am I missing?
11:02:59 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
11:03:24 <Hecate> dminuoso: Odin.DNS.PT.Main ≠ Main
11:04:13 <dminuoso> Yes, so?
11:04:40 <Hecate> GHC complains that there is no Main
11:05:12 <Hecate> dminuoso: I'm not saying you're wrong for having used `main-is` like that, but I'd try and rename this module to `Main` instead of `Odin.DNS.PT.Main`
11:05:42 merijn joins (~merijn@77.242.116.146)
11:06:09 <dminuoso> Okay, so maybe I just misremembered, but with main-is I can only specify the path to the main module, but GHC specifically expects it to have `module Main ...`?
11:06:15 <int-e> Hecate: doesn't main-is take a module name rather than a file path
11:06:54 <dminuoso> int-e: No, https://cabal.readthedocs.io/en/3.4/cabal-package.html#pkg-field-executable-main-is
11:07:09 <Hecate> I'll be honest, I never tried to use a Main that wasn't called `Main`
11:07:10 <dminuoso> Which incidentally also explicitly says that the module itself *must* be named "Main"
11:07:12 <dminuoso> What a strange requirement.
11:07:33 <Hecate> I think it's just the filepath, to distinguish between executables in sub-directories
11:07:36 <dminuoso> Im guessing there's some builtin linker assumptions here
11:07:40 <Hecate> like app/server/Main and app/client/Main
11:10:22 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:11:28 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
11:11:31 euandreh1 joins (~Thunderbi@191.222.53.80)
11:11:43 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
11:12:08 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
11:12:27 <int-e> Ah I believe I got confused by this: https://downloads.haskell.org/ghc/latest/docs/users_guide/phases.html#ghc-flag-main-is-thing
11:13:51 <int-e> so you can play with ghc-options, put -main-is there, with the actual fully qualified name of the main function
11:14:18 × euandreh quits (~Thunderbi@189.6.105.228) (Ping timeout: 268 seconds)
11:14:21 euandreh1 is now known as euandreh
11:14:22 <int-e> well, I think. didn't test it :)
11:14:48 <int-e> I did find https://stackoverflow.com/questions/27591266/telling-cabal-where-the-main-module-is which suggests the same thing
11:25:00 merijn joins (~merijn@77.242.116.146)
11:26:32 xff0x joins (~xff0x@2405:6580:b080:900:9913:8179:fb69:5ee5)
11:27:13 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
11:27:43 euleritian joins (~euleritia@dynamic-176-006-131-024.176.6.pool.telefonica.de)
11:28:59 alexherbo2 joins (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net)
11:29:52 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 265 seconds)
11:30:29 euandreh1 joins (~Thunderbi@189.6.105.228)
11:31:36 alfiee joins (~alfiee@user/alfiee)
11:33:15 × euandreh quits (~Thunderbi@191.222.53.80) (Ping timeout: 244 seconds)
11:33:15 euandreh1 is now known as euandreh
11:35:45 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
11:35:54 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
11:36:05 × fp quits (~Thunderbi@130.233.70.204) (Read error: Connection reset by peer)
11:37:06 fp joins (~Thunderbi@2001:708:20:1406::1370)
11:39:29 × krei-se quits (~krei-se@tmo-102-19.customers.d1-online.com) (Ping timeout: 248 seconds)
11:39:43 × euleritian quits (~euleritia@dynamic-176-006-131-024.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
11:40:00 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
11:41:45 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:44:13 × drdo quits (~drdo@static.61.197.13.49.clients.your-server.de) (Quit: Oh no...)
11:44:35 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Quit: fp)
11:45:08 krei-se joins (~krei-se@tmo-113-205.customers.d1-online.com)
11:47:03 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 245 seconds)
11:47:10 merijn joins (~merijn@77.242.116.146)
11:47:21 drdo joins (~drdo@static.61.197.13.49.clients.your-server.de)
11:47:57 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
11:48:11 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
11:52:30 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 276 seconds)
11:54:20 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 252 seconds)
11:57:30 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:57:58 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
12:03:24 merijn joins (~merijn@77.242.116.146)
12:07:56 fp joins (~Thunderbi@2001:708:20:1406::1370)
12:08:46 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
12:09:06 ljdarj joins (~Thunderbi@user/ljdarj)
12:13:30 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 268 seconds)
12:15:38 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
12:16:05 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
12:17:42 merijn joins (~merijn@77.242.116.146)
12:18:20 alfiee joins (~alfiee@user/alfiee)
12:22:41 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
12:23:05 yago joins (~yago@2a0c:5a82:1708:200:fc72:593c:e87c:8808)
12:28:15 × alexherbo2 quits (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) (Remote host closed the connection)
12:28:44 alexherbo2 joins (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net)
12:30:36 Guest88 joins (~Guest88@88-115-11-210.elisa-laajakaista.fi)
12:31:24 kh0d joins (~kh0d@89.216.103.150)
12:34:09 × yago quits (~yago@2a0c:5a82:1708:200:fc72:593c:e87c:8808) (Ping timeout: 265 seconds)
12:36:11 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.1)
12:36:24 wildsalander joins (~wildsalan@81-175-155-97.bb.dnainternet.fi)
12:37:50 × Leary quits (~Leary@user/Leary/x-0910699) (Ping timeout: 244 seconds)
12:38:05 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:38:09 × wildsalander quits (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Client Quit)
12:39:54 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
12:41:37 Leary joins (~Leary@user/Leary/x-0910699)
12:45:09 × hellwolf quits (~user@7608-b384-c200-0dd1-0f00-4d40-07d0-2001.sta.estpak.ee) (Ping timeout: 248 seconds)
12:46:36 tabaqui joins (~tabaqui@167.71.80.236)
12:47:37 wootehfoot joins (~wootehfoo@user/wootehfoot)
12:47:53 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:48:22 hellwolf joins (~user@248c-27e0-f032-f250-0f00-4d40-07d0-2001.sta.estpak.ee)
12:51:48 weary-traveler joins (~user@user/user363627)
12:53:29 × Leary quits (~Leary@user/Leary/x-0910699) (Ping timeout: 260 seconds)
12:56:57 wildsalander joins (~wildsalan@81-175-155-97.bb.dnainternet.fi)
13:00:26 Square2 joins (~Square4@user/square)
13:01:07 gentauro joins (~gentauro@user/gentauro)
13:01:27 yago joins (~yago@2a0c:5a82:1708:200:38d6:f25b:ed1e:30bd)
13:02:54 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
13:03:10 × Square2 quits (~Square4@user/square) (Client Quit)
13:03:57 × Guest88 quits (~Guest88@88-115-11-210.elisa-laajakaista.fi) (Quit: Client closed)
13:04:31 sprotte24 joins (~sprotte24@p200300d16f275800a1de62e3bbd83239.dip0.t-ipconnect.de)
13:04:37 × sprotte24 quits (~sprotte24@p200300d16f275800a1de62e3bbd83239.dip0.t-ipconnect.de) (Remote host closed the connection)
13:05:02 Square joins (~Square4@user/square)
13:05:04 alfiee joins (~alfiee@user/alfiee)
13:06:24 × yago quits (~yago@2a0c:5a82:1708:200:38d6:f25b:ed1e:30bd) (Ping timeout: 246 seconds)
13:07:20 × mange quits (~user@user/mange) (Quit: Zzz...)
13:07:38 jespada joins (~jespada@2800:a4:2271:8a00:794f:8de1:288a:6fe6)
13:09:05 merijn joins (~merijn@77.242.116.146)
13:09:12 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
13:14:33 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
13:15:00 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
13:20:40 ash3en joins (~Thunderbi@149.222.145.75)
13:31:25 tremon joins (~tremon@83.80.159.219)
13:43:14 × ash3en quits (~Thunderbi@149.222.145.75) (Ping timeout: 252 seconds)
13:46:43 ash3en joins (~Thunderbi@149.222.145.75)
13:50:48 alfiee joins (~alfiee@user/alfiee)
13:55:21 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
13:56:56 × ash3en quits (~Thunderbi@149.222.145.75) (Quit: ash3en)
14:04:58 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
14:05:20 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
14:10:57 × alexherbo2 quits (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) (Remote host closed the connection)
14:11:22 alexherbo2 joins (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net)
14:20:24 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 260 seconds)
14:21:05 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
14:21:27 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
14:22:20 pounce joins (~pounce@user/cute/pounce)
14:37:51 alfiee joins (~alfiee@user/alfiee)
14:38:09 × acidjnk quits (~acidjnk@p200300d6e71c4f06309b9617c0b564b2.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
14:41:57 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
14:46:09 × jespada quits (~jespada@2800:a4:2271:8a00:794f:8de1:288a:6fe6) (Ping timeout: 246 seconds)
14:48:56 jespada joins (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11)
14:57:03 × kh0d quits (~kh0d@89.216.103.150) (Remote host closed the connection)
14:57:38 kh0d joins (~kh0d@89.216.103.150)
14:57:42 undermine joins (~user@user/undermine)
14:59:03 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
14:59:08 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
15:00:12 euleritian joins (~euleritia@dynamic-176-006-130-213.176.6.pool.telefonica.de)
15:01:38 harveypwca joins (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6)
15:03:30 × kh0d quits (~kh0d@89.216.103.150) (Ping timeout: 265 seconds)
15:09:51 eron joins (~eron@177.45.236.226)
15:14:54 × euleritian quits (~euleritia@dynamic-176-006-130-213.176.6.pool.telefonica.de) (Ping timeout: 244 seconds)
15:15:28 euleritian joins (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de)
15:20:36 × ystael quits (~ystael@user/ystael) (Quit: Lost terminal)
15:22:40 × eron quits (~eron@177.45.236.226) (Quit: Client closed)
15:22:40 ystael joins (~ystael@user/ystael)
15:22:55 notdabs joins (~Owner@2600:1700:69cf:9000:d0f2:9051:9f97:5934)
15:23:00 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
15:24:14 alfiee joins (~alfiee@user/alfiee)
15:26:06 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
15:28:18 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
15:32:57 × jespada quits (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) (Quit: My Mac has gone to sleep. ZZZzzz…)
15:33:36 kh0d joins (~kh0d@212.200.181.159)
15:38:23 merijn joins (~merijn@77.242.116.146)
15:40:29 acidjnk joins (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de)
15:41:38 × euleritian quits (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
15:44:02 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
15:47:17 sprotte24 joins (~sprotte24@p200300d16f275800a1de62e3bbd83239.dip0.t-ipconnect.de)
15:49:18 jmcantrell joins (~weechat@user/jmcantrell)
15:50:28 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
15:50:51 euleritian joins (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de)
15:56:19 × euandreh quits (~Thunderbi@189.6.105.228) (Quit: euandreh)
15:57:37 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
15:58:26 Digitteknohippie joins (~user@user/digit)
15:59:18 × Digit quits (~user@user/digit) (Ping timeout: 246 seconds)
16:00:53 jespada joins (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11)
16:02:35 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) (Quit: Leaving)
16:09:01 Digitteknohippie is now known as Digit
16:09:25 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds)
16:10:39 alfiee joins (~alfiee@user/alfiee)
16:15:17 merijn joins (~merijn@77.242.116.146)
16:15:30 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
16:16:13 × alexherbo2 quits (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) (Remote host closed the connection)
16:16:44 lxsameer joins (~lxsameer@Serene/lxsameer)
16:18:14 × kh0d quits (~kh0d@212.200.181.159) (Remote host closed the connection)
16:19:24 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
16:19:38 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
16:26:40 <haskellbridge> <Liamzee> Axman6: Axman6: ghcide seems an appropriate name.
16:27:15 <haskellbridge> <Liamzee> also monochrom: I found the guy who hated OOP with a passion, friedbrice on Reddit.
16:28:26 <haskellbridge> <Liamzee> Guessing about his circumstances, I think one possible observation is that if your abstractions are bad, not forcing you into productive natural means of design, you have design patterns, and these can be woefully ad-hoc, experimental, and meaningless.
16:30:50 × jespada quits (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) (Quit: My Mac has gone to sleep. ZZZzzz…)
16:30:54 × acidjnk quits (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
16:32:58 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:34:33 <EvanR> I just thought of the stupidest idea
16:35:12 <EvanR> the value of a Char is backed by a word, normally can only be used for codepoints
16:35:22 acidjnk joins (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de)
16:35:53 <EvanR> but if you wanted to process UTF-8 text without fully decoding it, you could map the 1-4 byte code units to a number and put that number in the Char data, looking like gibberish
16:36:52 <EvanR> and later stitch it back together for output
16:37:46 <EvanR> ok we have better ways to do that, using Word32 or V4 Word8
16:37:50 <EvanR> but what's the fun in that
16:38:45 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
16:47:34 euphores joins (~SASL_euph@user/euphores)
16:48:32 <haskellbridge> <Bowuigi> Uh isn't that what base64 does?
16:49:50 ski . o O ( "Let Over Lambda - Lisp Is Not Functional" <https://letoverlambda.com/index.cl/guest/chap5.html#sec_1> )
16:53:47 <mauke> that article looks a bit confused
16:54:27 <mauke> for example, perl has both infix operators *and* no¹ restrictions on what you can nest
16:54:28 <ski> yes
16:54:58 <mauke> ¹) well, some restrictions. but you can arbitrarily nest statements and expressions inside each other
16:55:00 <ski> not entirely convinced by the macro argument, either
16:55:13 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
16:56:24 alfiee joins (~alfiee@user/alfiee)
16:57:19 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 260 seconds)
16:59:49 <EvanR> I read the first chapter and thought it was end of it. But it's that my monitor cuts off the monofilament scrollbar UI on the right
17:00:33 <ski> only the first section has that title. the next is about something else
17:00:37 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
17:00:38 <mauke> "Any language that uses infix syntax is reducing the possibilities of its abstractions in many ways." ... yeah, call me when common lisp supports ((f x) y)
17:01:16 <EvanR> what a bait and switch, I thought it was going to rail against lisp
17:01:25 <EvanR> but it's a lisp weenie!
17:01:29 target_i joins (~target_i@user/target-i/x-6023099)
17:01:44 <EvanR> "let over lambda" my ass
17:02:17 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
17:03:52 × euleritian quits (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:03:56 jespada joins (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11)
17:04:10 euleritian joins (~euleritia@95.90.214.149)
17:05:09 <ski> even without macros, things tend to need to be interpreted in context. `(a,b)' in an expression context, means something else than in a type context. in one context `Foo' could be a module, while in another it could be a type constructor, or a data constructor in yet another. in Lisp-2's, like Common Lisp, `(lambda (list) (list list))' is a procedure constructing a singleton list from its input argument
17:05:45 euphores joins (~SASL_euph@user/euphores)
17:07:03 × euleritian quits (~euleritia@95.90.214.149) (Read error: Connection reset by peer)
17:07:09 <mauke> in a lisp-6 like perl, sub list($list, @list) { my %list = map +($_ => $list), @list; \%list } is perfectly cromulent code
17:07:19 <ski> it's correct that you can't just replace `foo' by its definition in `(bar foo)', if `bar' is a macro, which could lead one to want to use e.g. a different bracket syntax for special forms and macro invokations, than for procedure calls
17:07:31 <ski> yes
17:07:46 euleritian joins (~euleritia@95.90.214.149)
17:08:25 <ski> (or `$(bar [e| foo |])' or somesuch, perchance)
17:08:48 <EvanR> different bracket syntax would disturb the parenthetical purity of the lisp syntax
17:08:59 <c_wraith> lisp-6 is something I recognize as a joke (lisp-1 vs lisp-2), but I have no idea if it means something specific
17:09:24 <ski> Racket already embraces different brackets, albeit only as a stylistic choice
17:09:41 <ski> (and, i think, Clojure too, with semantic difference ?)
17:09:55 <EvanR> yes clojure ruins the parenthetical purity
17:10:02 <mauke> c_wraith: I'd say it's as much as joke as lisp-2 is
17:10:04 <ski> presumably six separate namespaces, c_wraith
17:10:09 <mauke> s/ as / a /
17:10:29 <EvanR> I'd say it's a much a joke a lisp-2 is xD
17:10:39 <mauke> I didn't use /g!
17:10:41 <EvanR> oh
17:10:52 <EvanR> I'd say it's a much as joke as lisp-2 is
17:11:01 <mauke> ok, you got me :-)
17:11:37 <geekosaur> parentetical purity was already destroyed by interlisp, that horse escaped the barn a long time ago 😛
17:11:39 <mauke> a perl symbol has several different "slots", including SCALAR, ARRAY, HASH, CODE, IO, and FORMAT
17:12:01 <mauke> $foo is a scalar, @foo an array, %foo a hash, etc
17:12:26 <c_wraith> Oh, yeah. I just actually got around to reading the code portion and it made a lot more sense.
17:12:47 <c_wraith> I mean, except insofar as the way perl uses those contexts makes no sense.
17:13:17 <haskellbridge> <Liamzee> afaik lisp is about macro programming, except that macro programming has been demonstrated to be a bad idea in many implementations
17:14:03 <mauke> sub STDOUT { "hello" } say STDOUT STDOUT;
17:14:10 <c_wraith> I remember basic used sigils to identify the types of variables. But the way in which it did so always made more sense to me.
17:15:02 <mauke> in 'say STDOUT STDOUT', the first STDOUT refer to the IO slot, the second to the CODE slot
17:15:12 <mauke> which is closer to the way (list list) looks (i.e. no sigils)
17:15:52 <ski> may i interest you in our lord and saviour, hygienic macros, Liamzee ?
17:16:59 <haskellbridge> <Liamzee> the criticism i read was that abuse of macros leads to dsl / edsl disease, where the codebase is too tightly coupled to its developers
17:17:31 × acidjnk quits (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
17:17:47 <haskellbridge> <Liamzee> if ergonomic macros are the point of lisp, it's a very bad sign when lisp programmers state "never use a macro when a function will do"
17:17:48 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
17:17:54 <c_wraith> I think a better criticism is the loop macro's existence
17:18:03 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
17:18:57 ski would dispute the antecedent of the implication
17:19:23 <EvanR> that sometimes a macro would work when a function would work is interesting to me
17:19:31 × euleritian quits (~euleritia@95.90.214.149) (Read error: Connection reset by peer)
17:19:32 <EvanR> like there is overlap in the ideas somehow
17:19:33 <haskellbridge> <Bowuigi> Aren't list/apply semantics the point of lisp?
17:20:06 euleritian joins (~euleritia@95.90.214.149)
17:20:10 <haskellbridge> <Bowuigi> That's the reason Lisp could get away with clever macros without more recent staging setup
17:20:15 <EvanR> assuming purity, are they both like beta reduction
17:20:30 <c_wraith> EvanR: have you never seen old C codebases that use #define for functions because they don't trust the compiler to inline?
17:20:48 <EvanR> yes
17:21:12 <EvanR> what do you mean "old" xD
17:21:36 <c_wraith> that's exactly using macros as functions
17:21:59 <ski> but yea, re `loop', see "foof-loop: A Simple, Extensible Scheme Looping Facility" by Riastradh at <https://mumble.net/~campbell/scheme/foof-loop.txt>,<https://mumble.net/~campbell/scheme/foof-loop.scm>, which was inpired by "The Anatomy of a Loop: A Story of Scope and Control" by Olin Shivers in 2005-09 at <https://www.ccs.neu.edu/home/shivers/citations.html#loop>
17:22:32 <ski> `foof-loop' is much more "Lispy", than the `loop' in Common Lisp, which could be argued to be "anti-Lispy"
17:23:16 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
17:23:48 <EvanR> c_wraith, I can sympathize with equivocating between the choice of function call or macro call, because it seems to achieve the same purpose, and even after all this time I don't instantly see all the differences xD
17:23:54 <c_wraith> ski: that first link seems to be a 404
17:24:07 <mauke> (do ((list list (cdr list)) ö_ö
17:24:19 <c_wraith> oh. because it's two links and I'm trying to paste both at once
17:26:03 <EvanR> do DSLs in haskell avoid Liamzee's criticism because there's a common point of contact usually, the idiomatic haskell types
17:27:41 <EvanR> or maybe the DSLs that appear are just saner
17:27:49 <haskellbridge> <Liamzee> it's not my criticism, it's just something I picked up from HN; and looking at some older and poorer Haskell codebases, Haskell can suffer from eDSL disease. The important thing is to know it exists and actively attempt to avoid it, and it's easier to do with FP than with more powerful, untyped macros
17:28:22 <haskellbridge> <Liamzee> %s/FP/typed FP
17:29:14 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 268 seconds)
17:29:16 <c_wraith> types at least provide some context.
17:29:26 <haskellbridge> <Liamzee> but then again, I'm a pointfree addict, so I have no right to talk
17:29:59 <c_wraith> the worst abuses in Haskell are when everything is in a lawless class that happens to work magically until you edit something and then inference fails
17:31:13 <c_wraith> see https://hackage.haskell.org/package/BASIC
17:31:54 ash3en joins (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de)
17:32:20 <mauke> it's also pretty bad if half of your code is fairly generic functions and all the semantics are at the (invisible) type level
17:32:56 <EvanR> invisible types?
17:33:05 × ash3en quits (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Client Quit)
17:33:53 <mauke> no one writes (print :: Integer -> IO ()) (((+) :: Integer -> Integer -> Integer) (2 :: Integer) (2 :: Integer) :: Integer) :: IO ()
17:35:07 <haskellbridge> <Liamzee> iirc now custom type error messages are a thing, but i think part of. the problem with that is that it's hard to anticipate what type errors will result and figure out how to write the error messages for them are
17:35:22 <mauke> now imagine print (2 + 2), but instead of adding numbers, it fetches data over HTTP (path and parameters specified at the type level), which is implicitly decoded as CSV, whose format is again specified at the type level
17:35:47 <haskellbridge> <Liamzee> i spent an hour (and it's my fault) trying to figure out why a HTML sample in Lucid2 was angering GHC
17:35:52 <mauke> and there's streaming and lenses involved
17:37:04 <ski> "Yow! LOOP macros are LOOPY!" by foof in 2006-09-06 at <https://groups.google.com/g/comp.lang.scheme/c/DLkZdLw1qGw> is also relevant. (foof is the author of a similar, but not quite identical, looping macro package, named `loopy-loop' <https://wiki.call-cc.org/eggref/4/loopy-loop>, as opposed to `foof-loop' by Riastradh <https://wiki.call-cc.org/eggref/4/loopy-loop>)
17:37:29 <ski> this is also related to list comprehensions (e.g. <https://srfi.schemers.org/srfi-42/srfi-42.html>), or the (do)/2 construct in ECLiPSe Prolog <https://eclipseclp.org/doc/tutorial/tutorial025.html>,<https://eclipseclp.org/doc/userman/umsroot023.html>, or enumerators / internal iteration vs. cursors / external iteration <https://okmij.org/ftp/papers/LL3-collections-enumerators.txt>
17:38:55 <EvanR> is a loop macro... a macro for doing loops
17:39:34 ski would like to have typed macros, to be able to have them by-value, rather than by-name (being able to introduce macros for sub-languages implemented by DSL macros, without having to explicitly make your DSL macros integrate with these macro definitions)
17:40:26 <ski> (the "types" here would be the "contexts"/"syntactic categories", like "expression","type","pattern","loop clause",&c.)
17:41:32 <ski> a macro for, more composably, doing loops, yes, EvanR
17:42:27 <ski> (as opposed to explicitly spelling out your recursions, which (in case of tail recursion at least), amount to the same as programming with `goto's, apart from that you can pass parameters)
17:43:08 alfiee joins (~alfiee@user/alfiee)
17:43:51 <ski> the clauses in list comprehensions (generators, guards, "parallel" vs. sequential composition), in Haskell, form a small looping DSL
17:44:56 <c_wraith> and remember that you can't use higher-order functions because macros aren't functions.
17:45:44 <EvanR> why isn't the looping macro not a macro but a function
17:45:50 <c_wraith> (and if you want your loop body or conditions to involve a macro, they won't work)
17:46:15 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:47:32 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
17:49:16 Leary joins (~Leary@user/Leary/x-0910699)
17:50:27 tccq joins (~user@user/tccq)
17:52:06 <ski> EvanR : why isn't list comprehensions a function ? why isn't `case' a function ?
17:53:27 × Googulator quits (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
17:53:45 Googulator joins (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
17:53:46 <ski> with macros, you can implement your own variable-binding constructs (such as a `case', e.g. .. there's a Scheme library for this). sometimes, you can just pass a lambda abstraction instead. but sometimes you want a more exotic binding structure, which isn't easily captured in such a way (e.g. the paralell composition in list comprehensions, or the `proc' syntax for Arrows)
17:56:12 <EvanR> alternative bindings ok
17:56:43 <EvanR> that discriminates functions and macros
18:00:35 Square2 joins (~Square@user/square)
18:04:26 × Square quits (~Square4@user/square) (Ping timeout: 272 seconds)
18:07:34 pavonia joins (~user@user/siracusa)
18:07:42 ft joins (~ft@p508db291.dip0.t-ipconnect.de)
18:12:18 stureplan joins (22e45d5caf@user/stureplan)
18:13:17 <haskellbridge> <dmjio> Is "ghcup" the preferred way to Haskell these days (for non-nix folk)
18:14:01 × driib318 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
18:14:05 <haskellbridge> <Morj> Yes, absolutely
18:14:28 <haskellbridge> <Morj> I actually wonder if people still use stack's --install-ghc
18:18:21 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:22:58 <EvanR> in a test of commercial in-IDE "AI" when asked to make such and such program in haskell, it directed us to install stack then everything through stack
18:23:11 <EvanR> which was annoying
18:23:28 acidjnk joins (~acidjnk@p200300d6e71c4f06b15130e44e471244.dip0.t-ipconnect.de)
18:23:47 <EvanR> after enough of trying to follow it literally (on mac), I overrode it and used GHCUP
18:23:58 <EvanR> not sure why I allcaps that
18:24:35 × drdo quits (~drdo@static.61.197.13.49.clients.your-server.de) (Quit: WeeChat 4.5.2)
18:24:45 drdo joins (~drdo@static.61.197.13.49.clients.your-server.de)
18:26:44 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
18:27:13 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:27:36 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:30:02 vanishingideal joins (~vanishing@user/vanishingideal)
18:30:32 alfiee joins (~alfiee@user/alfiee)
18:33:57 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
18:34:57 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
18:46:21 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
18:52:41 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
18:53:03 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds)
18:53:08 j1n37 joins (~j1n37@user/j1n37)
18:53:23 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
18:58:06 <tomsmeding> EvanR: perhaps you started with holding shift for GHC and then you got lazy (because you typed "GHC") and you left shift down for "UP"?
19:00:01 × caconym quits (~caconym@user/caconym) (Quit: bye)
19:00:42 caconym joins (~caconym@user/caconym)
19:07:41 × jespada quits (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) (Quit: My Mac has gone to sleep. ZZZzzz…)
19:12:41 MyNetAz joins (~MyNetAz@user/MyNetAz)
19:15:34 jespada joins (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11)
19:15:56 alfiee joins (~alfiee@user/alfiee)
19:20:12 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
19:32:01 ash3en joins (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de)
19:41:22 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
19:50:06 euphores joins (~SASL_euph@user/euphores)
19:58:15 × wildsalander quits (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Ping timeout: 252 seconds)
20:01:21 wildsalander joins (~wildsalan@81-175-155-97.bb.dnainternet.fi)
20:02:00 alfiee joins (~alfiee@user/alfiee)
20:07:09 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds)
20:09:30 killy joins (~killy@terminal-3-187.retsat1.com.pl)
20:12:21 × wildsalander quits (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Ping timeout: 276 seconds)
20:20:34 sdrfan123 joins (~sdrfan123@2a01:cb15:41b:4300:b5ba:3fcc:d709:495b)
20:20:48 × ash3en quits (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Quit: ash3en)
20:21:27 kh0d joins (~kh0d@212.200.181.159)
20:26:08 × michalz quits (~michalz@185.246.207.201) (Remote host closed the connection)
20:26:13 × kh0d quits (~kh0d@212.200.181.159) (Ping timeout: 245 seconds)
20:32:35 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
20:36:14 j1n37 joins (~j1n37@user/j1n37)
20:36:19 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:39:12 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds)
20:40:02 ljdarj1 joins (~Thunderbi@user/ljdarj)
20:41:24 gmg joins (~user@user/gehmehgeh)
20:42:52 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds)
20:42:52 ljdarj1 is now known as ljdarj
20:44:25 × Square2 quits (~Square@user/square) (Remote host closed the connection)
20:45:37 Square joins (~Square4@user/square)
20:48:04 alfiee joins (~alfiee@user/alfiee)
20:51:25 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
20:52:49 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
20:53:07 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:53:52 × sdrfan123 quits (~sdrfan123@2a01:cb15:41b:4300:b5ba:3fcc:d709:495b) (Quit: Client closed)
20:58:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
21:01:33 JuanDaugherty joins (~juan@user/JuanDaugherty)
21:08:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:14:51 × jespada quits (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) (Quit: My Mac has gone to sleep. ZZZzzz…)
21:15:24 × killy quits (~killy@terminal-3-187.retsat1.com.pl) (Ping timeout: 276 seconds)
21:15:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
21:17:38 kh0d joins (~kh0d@212.200.181.159)
21:22:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:27:47 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
21:33:48 alfiee joins (~alfiee@user/alfiee)
21:35:54 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
21:38:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
21:38:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:40:21 × sabathan quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
21:42:07 gmg joins (~user@user/gehmehgeh)
21:43:16 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Quit: fp)
21:43:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
21:46:27 fp joins (~Thunderbi@2001:708:20:1406::1370)
21:47:09 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:48:56 sabathan joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
21:51:10 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 272 seconds)
21:54:29 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:57:28 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
21:59:27 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
22:00:11 × dhil quits (~dhil@2a0c:b381:52e:3600:833:1adb:9cb7:e851) (Ping timeout: 244 seconds)
22:07:43 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:10:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:10:17 <haskellbridge> <Liamzee> speaking of loops
22:10:33 <haskellbridge> <Liamzee> why does Haskell have an until, not a while?
22:10:53 <haskellbridge> <Liamzee> Actually, more "I can do my own thinking"; in the context of pure code until makes more sense
22:11:13 <haskellbridge> <Liamzee> while implies emitting effects while the condition is true
22:12:32 <jackdk> but see also e.g. takeWhile
22:14:41 <haskellbridge> <Liamzee> lists are sort of effectful in themselves, no?
22:15:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
22:17:53 <jle`> i didn't realize `until` existed heh
22:18:38 <jle`> i would guess there's no "while" in base because people might confuse it with while loops
22:18:45 <jle`> but until loops are not as ubiquitous
22:19:12 alfiee joins (~alfiee@user/alfiee)
22:23:13 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
22:23:37 <EvanR> :t whileM
22:23:37 <lambdabot> error: Variable not in scope: whileM
22:23:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:24:12 <EvanR> until loops might not be as common only because people think in such negative terms all the time
22:27:51 <geekosaur> perl has had until for a long time, but iirc these days it's disrecommended
22:28:45 <enikar> sometimes, I use until but in most cases I might as well write a go loop function.
22:28:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
22:29:56 <geekosaur> also I recall encountering a BASIC dialect at uni which had statement modifiers including UNTIL
22:30:14 <enikar> there is also Control.Monad.Extra.Loop but it's not stateful as in folds
22:35:06 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
22:39:39 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:47:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
22:54:41 × euleritian quits (~euleritia@95.90.214.149) (Remote host closed the connection)
22:56:53 × alp quits (~alp@2001:861:8ca0:4940:9fa:1f3a:663a:c7ca) (Ping timeout: 252 seconds)
22:59:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:00:19 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
23:03:22 × simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 272 seconds)
23:03:29 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:03:37 simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
23:04:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
23:04:36 alfiee joins (~alfiee@user/alfiee)
23:08:45 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
23:14:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:15:13 <jle`> yeah, my point is that 'until' isn't really analogous to "until loops", so a corresponding "while" wouldn't be analogous to "while loops" either, which is potentially confusing
23:15:28 <jle`> since people see 'while' and usually think of while loops
23:16:30 <EvanR> :t until -- what are we talking about again
23:16:31 <lambdabot> (a -> Bool) -> (a -> a) -> a -> a
23:16:36 <EvanR> what the heck
23:16:52 <jle`> my same reaction lol
23:17:32 <jle`> i'm not super thrilled with it but it's at least not as bad as a hypothetical 'while'
23:18:55 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
23:19:24 <EvanR> I totally forgot about this function
23:19:27 <enikar> when i used until i use a pair (a, b) for a, and fst or snd to get the result (or something like it).
23:19:27 <EvanR> it's cool
23:19:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
23:19:45 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
23:19:48 <EvanR> keep microwaving the value until it's heating to sufficient temperature
23:19:59 <EvanR> then let sit for 1 minute before serving
23:21:52 euleritian joins (~euleritia@dynamic-176-006-132-052.176.6.pool.telefonica.de)
23:25:20 Sgeo joins (~Sgeo@user/sgeo)
23:25:34 ljdarj1 joins (~Thunderbi@user/ljdarj)
23:29:33 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
23:29:33 ljdarj1 is now known as ljdarj
23:35:31 synchromesh joins (~john@116.251.144.215)
23:40:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:45:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
23:47:57 mange joins (~user@user/mange)
23:50:00 alfiee joins (~alfiee@user/alfiee)
23:52:45 × kh0d quits (~kh0d@212.200.181.159) (Remote host closed the connection)
23:52:59 <monochrom> This is what's wrong with taking "meaningful names" seriously.
23:53:26 kh0d joins (~kh0d@212.200.181.159)
23:54:09 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
23:54:12 <monochrom> Today you have learned: "data" does not mean data, it means type; "type" does not mean type, it means alias; "newtype" does not mean new type, it means old type but not alias.
23:56:11 <int-e> . o O ( tomorrow you'll unlearn all of these )
23:56:26 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:59:14 × kh0d quits (~kh0d@212.200.181.159) (Ping timeout: 252 seconds)
23:59:15 <EvanR> at least new type does create a new type
23:59:22 <EvanR> unlike typedef

All times are in UTC on 2025-03-17.