Home liberachat/#haskell: Logs Calendar

Logs on 2021-06-13 (liberachat/#haskell)

00:02:11 hmmmas joins (~chenqisu1@183.217.200.246)
00:11:58 × pkkm quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 272 seconds)
00:13:53 jakalx joins (~jakalx@base.jakalx.net)
00:14:01 DigitalKiwi trolls ethereum twitter https://twitter.com/ArchKiwi/status/1403867746635558914?s=20
00:14:43 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: leaving)
00:14:58 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
00:29:04 Kaipi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
00:29:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
00:29:14 × Kaipi quits (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
00:35:31 × pe200012_ quits (~pe200012@183.63.73.36) (Read error: Connection reset by peer)
00:35:37 pe200012 joins (~pe200012@183.63.73.36)
00:37:26 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds)
00:38:13 sekun joins (~sekun@180.190.155.195)
00:40:23 × swistak quits (~swistak@185.21.216.141) (Ping timeout: 252 seconds)
00:41:00 × hololeap quits (hololeap@user/hololeap) (Quit: Bye)
00:41:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
00:50:20 × sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 245 seconds)
00:58:24 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
00:58:40 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 245 seconds)
00:59:26 × chisui quits (~chisui@200116b8666c8300147e1d1a4c512cff.dip.versatel-1u1.de) (Ping timeout: 250 seconds)
01:00:28 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
01:04:44 × killsushi quits (~killsushi@user/killsushi) (Quit: Leaving)
01:08:01 jakalx parts (~jakalx@base.jakalx.net) ()
01:10:24 × kw quits (~user@152.1.137.158) (Remote host closed the connection)
01:11:59 × xff0x quits (~xff0x@2001:1a81:5382:9400:bf95:26e2:74b9:5674) (Ping timeout: 272 seconds)
01:13:30 xff0x joins (~xff0x@2001:1a81:53bf:ae00:b6fb:e579:3973:61d4)
01:15:19 johnw_ joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
01:15:46 dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net)
01:15:55 tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
01:16:01 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Remote host closed the connection)
01:16:01 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
01:16:01 × dcoutts_ quits (~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
01:16:09 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
01:16:24 × justBull quits (~justache@user/justache) (Remote host closed the connection)
01:17:13 justBull joins (~justache@user/justache)
01:17:16 <janus> i am looking at http://www.vex.net/~trebla/haskell/cont.xhtml and it defines `fmap = liftM`
01:18:15 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 252 seconds)
01:18:40 <geekosaur> historically Monad didn't require Functor, so it was common to get the Functor instance that way
01:19:00 <janus> right! but let's say i wanted to define fmap myself, i could take the solution for monadic bind, and substitute that into the law "fmap f xs = xs >>= return . f" from Control.Monad
01:19:13 <janus> then i would have an fmap implementation that didn't rely on Monad, right?
01:19:27 <geekosaur> yes
01:19:37 <janus> i feel a bit dirty defining Functor in terms of Monad, since i feel like it is the wrong way around
01:19:41 <geekosaur> you're looking at a historical accident, basically
01:20:40 <janus> but there is another problem: that line also uses `return`. so i'd have to find a law on Control.Applicative that defines fmap in terms of "pure", right?
01:21:32 <geekosaur> pure is the same as return
01:21:43 <janus> right, that's why i mention it
01:21:48 <geekosaur> you should be able to use them interchangeably
01:21:57 × theproffesor quits (~theproffe@2601:282:847f:8010::3a29) (Changing host)
01:21:57 theproffesor joins (~theproffe@user/theproffesor)
01:22:15 × nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
01:22:48 <janus> right, so i showed the law that defines fmap in terms of bind and return. but i can't find a law that defines fmap in terms of applicative's pure, and surely there can't be
01:23:30 <geekosaur> right, Applicative relies on having Functor as a superclass
01:23:39 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
01:24:07 <janus> but then how do i do this, is it better if i just start from scratch with the fmap laws and my Cont definition?
01:24:16 <geekosaur> probably yes
01:24:35 <janus> ok lemme try, thanks :)
01:25:17 nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
01:26:30 <DigitalKiwi> for some reason i'm remembering a slide dibblego had where he (ab)used return lol
01:27:09 <DigitalKiwi> yes i could be more vague ;(
01:27:35 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
01:29:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
01:38:03 × benin036 quits (~benin@183.82.205.218) (Ping timeout: 252 seconds)
01:39:54 benin036 joins (~benin@183.82.176.84)
01:43:17 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
01:45:55 jakalx joins (~jakalx@base.jakalx.net)
01:46:56 × unyu quits (~pyon@user/pyon) (Quit: WeeChat 3.1)
01:50:30 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:6149:a9e8:86ec:e649) (Quit: Leaving)
01:51:36 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 268 seconds)
01:51:57 <DigitalKiwi> now i have to watch all of his videos on youtube until i find it ;(
01:52:11 <Henson> Cale: the lumatone looks interesting
01:53:16 justsomeguy joins (~justsomeg@user/justsomeguy)
01:53:54 <DigitalKiwi> if only i could limit it to the subset of videos i have watched before that would reduce the search space...
01:54:44 <DigitalKiwi> oh wait that's all of them LOL <3
01:58:26 iridescent joins (~iridescen@41337027.cst.lightpath.net)
01:58:34 <iridescent> what does the line "class Randomizable spec f | spec -> f" mean?
01:58:46 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
01:58:46 <iridescent> i'm not sure what the syntax here is
01:59:13 <geekosaur> it's a class with a functional dependency saying that for any spec there can be only one f
01:59:30 × nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds)
02:00:00 × sander quits (~sander@user/sander) (Quit: So long! :))
02:00:21 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 264 seconds)
02:00:33 <geekosaur> this helps with type resolution in the presence of multiparameter typeclasses
02:01:06 sander joins (~sander@user/sander)
02:01:26 jespada joins (~jespada@90.254.242.55)
02:02:16 <iridescent> what do you mean by that second statement?
02:03:19 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds)
02:03:42 <geekosaur> without the functional dependency, the typeclass could mean nearly anything and you would have to annotate all uses with their types. with the fundep ghc knows that if it knows spec, there's only one possible f instead of just about anything
02:05:23 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/functional_dependencies.html
02:07:02 × td_ quits (~td@94.134.91.54) (Ping timeout: 244 seconds)
02:08:53 td_ joins (~td@94.134.91.38)
02:09:24 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
02:10:23 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
02:11:22 × iridescent quits (~iridescen@41337027.cst.lightpath.net) (Ping timeout: 250 seconds)
02:11:35 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
02:13:05 phma_ joins (phma@2001:5b0:215d:8f48:bacd:d5e3:1440:7006)
02:16:01 × GIANTWORLDKEEPER quits (~pjetcetal@2.95.204.25) (Ping timeout: 244 seconds)
02:16:26 GIANTWORLDKEEPER joins (~pjetcetal@2.95.204.25)
02:16:32 × phma quits (~phma@host-67-44-209-1.hnremote.net) (Ping timeout: 244 seconds)
02:17:06 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds)
02:18:27 phma_ is now known as phma
02:19:27 qrpnxz parts (~qrpnxz@user/qrpnxz) (Disconnected: closed)
02:20:11 curiousgay joins (~quassel@178.217.208.8)
02:21:57 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1)
02:25:41 qrpnxz joins (~qrpnxz@user/qrpnxz)
02:25:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:29:26 <Cale> Henson: It's fantastic. It's actually way easier to learn than the usual piano keyboard layout, since you generally arrange it so that musical intervals and spatial intervals coincide.
02:30:36 <Cale> and then you get to generalise to larger tuning systems in a natural way, but play them similarly regardless (provided they support whatever temperament is implied by your layout)
02:32:38 <Cale> https://imgur.com/a/91xHTjS -- 31 equal divisions of the octave Wicki-Hayden schematic and on the keyboard :)
02:33:22 <theproffesor> I love microtonal keyboards.. I think that one looks pretty sweet. Has there been any good updates software wise yet? I know that there is an ethernet port among other future planned upgrades
02:33:28 <Cale> That type of layout, with perfect fifths on the / axis and perfect fourths on the \ axis so that whole tones go across is my favourite
02:34:52 <Cale> There was one firmware update almost immediately after shipping with some hotfixes, but yeah, there should be a lot of potential cool stuff
02:35:15 da39a3ee5e6b4b0d joins (~textual@2403:6200:8876:2955:f1c5:68ee:212f:e12f)
02:35:17 × da39a3ee5e6b4b0d quits (~textual@2403:6200:8876:2955:f1c5:68ee:212f:e12f) (Client Quit)
02:35:18 wei2912 joins (~wei2912@112.199.250.21)
02:35:45 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds)
02:36:01 curiousgay_ joins (~quassel@178.217.208.8)
02:36:10 × curiousgay_ quits (~quassel@178.217.208.8) (Client Quit)
02:36:55 <qrpnxz> anything in particular that made the devs go from ghc 8 to 9? (got a changelog?)
02:37:02 <Cale> I also have to try to convince them to open source the firmware... for the sake of convenience it would be really nice to have an MPE mode, which I'd write myself if I could (I ended up writing a Lua script for moony.lv2 to convert channel-per-octave into MPE, but it's not as good as building it in would be)
02:37:15 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:37:17 <Cale> qrpnxz: I guess LinearHaskell?
02:37:31 <qrpnxz> what's that
02:38:16 <Cale> It lets you restrict the number of times functions are allowed to use their arguments based on their type.
02:38:41 smokey991 parts (sid369395@id-369395.brockwell.irccloud.com) ()
02:39:03 <qrpnxz> so for example, does sum a = a + a use the argument twice?
02:39:08 <Cale> yeah
02:39:22 <qrpnxz> ohhhh, that's pretty nice, you can optimize a lot of it's only one use
02:39:39 <Cale> Yeah, except that at least at present, it doesn't give you any additional optimisation.
02:39:40 <qrpnxz> well, idk why you'd want it as part of the type
02:40:00 <qrpnxz> alright thx i'll look more into it
02:40:39 <Cale> I personally don't think it'll turn out to be very useful, and gives a fair amount of rope with which to hang yourself, but people are interested in the potential regardless.
02:42:23 <Henson> Cale: cool, thanks for the info on the keyboard!
02:42:27 <Cale> The most interesting example usages I've seen have all involved making various uses of unsafePerformIO safe, but they don't really buy you much more than the ST monad would.
02:42:33 unyu joins (~pyon@user/pyon)
02:44:02 <Cale> (but slightly more terse syntax usually, you get to avoid do notation I guess)
02:44:49 da39a3ee5e6b4b0d joins (~textual@171.6.243.223)
02:46:53 lavaman joins (~lavaman@98.38.249.169)
02:47:25 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds)
02:49:30 × Henson quits (~kvirc@23-233-1-122.cpe.pppoe.ca) (Quit: goodnight)
02:49:43 × zebrag quits (~chris@user/zebrag) (Remote host closed the connection)
02:50:14 <qrpnxz> i'm reading an article on this (https://blog.acolyer.org/2018/01/24/linear-haskell-practical-linearity-in-a-higher-order-polymorphic-language/ for reference), and it feels a LOT like ownership tbh. Because when you use a value multiple times essentially you are making an implicit copy of that value, so these types are essentially restricting your ability to copy the value, which is indeed rather useful in
02:50:14 <qrpnxz> determining who has to (or can) destruct,drop,close,free,unlock,mutate etc. that value.
02:50:19 <qrpnxz> I wonder if haskell just had something like Rust's Copy and Clone traits that you'd be able to do basically the same thing in many cases idk.
02:53:59 <Cale> Yeah, they kind of picked... not the substructural set of operations that I'd be most interested in. Personally, I'm quite interested in stuff like Conal's "constrained categories", which translate pretty-much-arbitrary Haskell expressions into operations involving a bunch of subclasses of Category, and just leaving out constraints for the subclasses that let you duplicate values (and/or discard them, etc.) would then
02:53:59 <Cale> be a better way to express substructural stuff like linearity/affineness/etc.
02:55:47 <Cale> I'm not even sure it would have been much more complicated than LinearHaskell to build something like that into GHC, and I feel like it would in any case have gotten much more bang for the buck.
02:55:59 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
02:56:10 × hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.)
02:57:22 <Cale> There are not a lot of practical combinator libraries that are exactly linear, but there's a lot of stuff which is somewhere in that direction, but perhaps more constrained, or a bit less.
02:59:02 hmmmas joins (~chenqisu1@183.217.200.246)
02:59:39 <Cale> and the way they've rigged it up in LinearHaskell also kind of forces you into using unsafePerformIO to do anything really interesting, which is also kind of gross. They're trying too hard to overlap with the usual (->) type and that results in something which is less useful than you'd perhaps hope for.
02:59:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
03:00:52 <Cale> (Usually I'd think you'd prefer to have a totally separate type from the type of ordinary Haskell functions, and just overload lambda to be able to produce values of your new type)
03:01:44 × hiruji quits (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Ping timeout: 252 seconds)
03:02:08 <Cale> But we'll see, maybe someone will find some sort of killer app for LinearHaskell
03:04:44 slowButPresent joins (~slowButPr@user/slowbutpresent)
03:07:59 hiruji joins (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6)
03:13:51 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
03:14:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:14:31 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
03:14:45 <arahael> Given a date time, how do I format it given a particular format string and locale?
03:14:55 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:15:10 lavaman joins (~lavaman@98.38.249.169)
03:15:16 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:15:33 lavaman joins (~lavaman@98.38.249.169)
03:15:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:16:16 × ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 244 seconds)
03:17:01 ubikium joins (~ubikium@2400:2200:3f7:6d04:f545:ef78:6130:411e)
03:17:54 <janus> arahael: did you see https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Format-ISO8601.html ?
03:19:05 <arahael> janus: That's mostly biased towards parsing, I think? I want to produce a human-friendly time, such as: "Saturday 12th June".
03:21:28 sheepduck joins (~sheepduck@2607:fea8:2a61:4800::ea20)
03:22:21 <arahael> I think what I need is something like formatCalendarTime in `old-time`, but that's a deprecated module.
03:23:26 <janus> araheal well i think it shouldn't be hard to make the serialization, you can use e.g. https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Calendar-OrdinalDate.html#v:mondayStartWeek
03:23:37 <janus> and the month name surely must also be easy to get
03:23:51 <janus> dunno if it is worse to make it yourself or use old-time...
03:24:39 <janus> maybe easiest just to use https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Format.html#v:formatTime
03:24:42 <arahael> Yeah, it shouldn't be that much work, I wonder how most people deal with time formatting.
03:24:53 <janus> i just use iso8601 for everything ;)
03:24:56 <arahael> Yeah, I looked at formatTime, but... How do you do the '12th"?
03:26:26 <janus> that is so english-centric, i am kinda happy it isn't in 'time' ;) i see there is https://hackage.haskell.org/package/ordinal
03:27:03 <arahael> janus: Yeah, so we're going back to "Manually, painstakingly, format it yourself, by hand". :(
03:28:25 <janus> but are you sure your users would even appreciate the ordinal form? i know i always turn it off if i can
03:28:52 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
03:29:05 <janus> it's not even available with strftime
03:29:07 <arahael> janus: This is going to go into the string: "Come and meet us at <location> on Saturday 12th June at 11 AM!"
03:29:30 kiweun joins (~sheepduck@2607:fea8:2a61:4800::ea20)
03:29:41 × sheepduck quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Read error: Connection reset by peer)
03:29:52 <arahael> So I was wanting to format the latter part of that string.
03:30:32 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
03:31:29 <qrpnxz> rfc3339 gang
03:31:30 × ubikium quits (~ubikium@2400:2200:3f7:6d04:f545:ef78:6130:411e) (Ping timeout: 268 seconds)
03:31:36 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
03:32:19 <arahael> qrpnxz: That's not exactly "conversational", though.
03:32:19 <qrpnxz> format you want looks like rfc1123
03:32:31 <qrpnxz> see rfc1123 :)
03:32:35 <janus> qrpnxz: is rfc3339 a subset of iso8601?
03:32:46 <janus> looks good
03:32:49 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
03:32:50 Lord_of_Life_ is now known as Lord_of_Life
03:33:18 <qrpnxz> i think it's supposed to be the same, there's a good SO answer on a comparison between the two. I'm team rfc because ofc that's a std i can actually read xD
03:33:23 <arahael> qrpnxz: Similar, except I want full names, and no year. :)
03:33:41 <qrpnxz> sounds like a custom format
03:33:42 <qrpnxz> gl
03:33:55 <arahael> qrpnxz: Of course, trivially supported using the likes of strftime.
03:34:18 <janus> qrpnxz: looks like neither of these have the ordinal ending https://hackage.haskell.org/package/time-http
03:34:20 <qrpnxz> janus, from SO: "RFC 3339 is listed as a profile of ISO 8601" :) https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats
03:34:23 <janus> and that package includes 1123
03:34:39 <janus> qrpnxz: right , that's what the rfc text says. dunno what a profile is
03:34:57 <janus> but i guess it is better to use that name for it since it looks like iso8601 is way too big
03:34:58 ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
03:35:02 <qrpnxz> probably effectively a subset
03:35:24 <qrpnxz> or an instanciation
03:36:47 <qrpnxz> another area go shines is time https://golang.org/pkg/time/#pkg-constants
03:37:56 <janus> qrpnxz: is it really shining or is it just cutting the right corners ? ;) i see a problem already when saying "MST is -07:00" like they do there
03:38:13 <qrpnxz> two different formats
03:38:34 <qrpnxz> you pick
03:39:25 <janus> right, but timezone names can change, and where does "MST" come from? what if it changes , and i give it a timestamp in a period where it had the old definition?
03:39:48 <qrpnxz> MST just marks where the timezone goes in the format
03:39:55 <qrpnxz> like Jan marks where the month goes
03:40:10 <qrpnxz> and 02 marks the day and so on
03:40:18 ec_ joins (~ec@gateway/tor-sasl/ec)
03:40:31 <qrpnxz> you can make your own custom format string quite easily
03:40:37 <janus> ok, where does the mapping MST -> -07:00 take place? if it doesn't take place, why is MST mentioned in the docs?
03:41:31 <janus> i understand that it works in 90% of the cases, probably comes from your local olson db
03:41:32 <qrpnxz> maybe i don't understand the question. MST is GMT-0700, that's just what it is. Not sure what you are asking now
03:42:05 <janus> i am saying that it is effectively not a "pure computation" because it comes from a database that is outside of go's control
03:42:16 <qrpnxz> no it's in the lib
03:42:31 <qrpnxz> you don't have to fetch it anywhere, it's not changing
03:42:51 <janus> ok, so it can't handle DST changes then?
03:43:19 <qrpnxz> i think it does, but DST produces different timezone codes
03:43:36 <qrpnxz> like CST <-> CDT
03:43:48 <qrpnxz> both central time, but one is DST and the other isnt
03:44:24 <qrpnxz> 1:00 CST doesn't change meaning on what time of year you are in
03:47:27 <arahael> So I'm using formatTime with the format string "%d", to get the day of the month, which I then convert to an integer, so that I can then get the Ordinal suffix for it and concat it.
03:47:33 <arahael> Seems quite a lot.
03:48:44 <arahael> Oh, and stripping spaces from it...
03:48:52 <arahael> A bit of a mess.
03:50:02 <arahael> I might as well just split my input string by '-' for the date parts.
03:52:20 <arahael> Heh, Data.DateTime from datetime has this comment in the code: -- the craziness of the Haskell standard library date and time functions.
03:52:42 <Cale> arahael: That sounds crazy, why not just go directly?
03:52:50 <Cale> What are you starting with?
03:54:06 <arahael> Cale: Unbelievably, just an ISO 8601 date.
03:54:06 <davean> Yah, I mean you can just ask for the month
03:54:10 <Cale> Usually you'll want to convert your UTCTime into a LocalTime in order to get the (local) Day from it, and then you can take that apart in various ways
03:54:18 da39a3ee_ joins (~textual@171.6.243.223)
03:54:36 <Cale> You'll need to specify which TimeZone you want to know the day in though, since otherwise it'd be ambiguous.
03:54:38 <arahael> davean: But I don't want to ask for the date, the month, the day, the name of the day, the ordinal suffix of the day, etc, when I can just infer it all from the date itself.
03:54:43 <arahael> Cale: Yeah, always local.
03:55:06 <arahael> Cale: Taking it apart seems to be the *insane* bit in Haskell, though maybe I'm looking at the wrong module.
03:55:13 <davean> arahael: except you're formating it out!
03:55:23 <davean> arahael: I think you're totally confused
03:55:23 <arahael> davean: In this particular instance, yes.
03:55:30 <janus> arahael: what do you mean by "taking it apart" ? surely the iso8601 parsing is easy since it has already been written
03:55:42 <Cale> toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth)
03:55:52 <Cale> is probably what you wanted?
03:56:19 <Cale> Assuming that you're starting with a Day
03:56:21 <arahael> Cale: I completely missed that since it's already in Gregorian... Yes, that's what I want.
03:56:34 <arahael> Cale: Well, LocalTime has a Day.
03:56:39 <Cale> yeah
03:57:14 <arahael> That works nicely. :)
03:57:50 × da39a3ee5e6b4b0d quits (~textual@171.6.243.223) (Ping timeout: 245 seconds)
03:57:55 <Cale> A Day is meant to be an abstract notion of a day, and it's internally stored as the number of days since a particular day in 1858 :D
03:59:30 <arahael> Makes sense. :) But... Does it support anything other than Gregorian (or Julian, even?)
04:00:02 <davean> arahael: if you looked at how format was doing it you'd have found:
04:00:06 <davean> mapGregorian :: Format (Integer, (Int, Int)) -> Format Day
04:00:07 <Cale> There's the WeekDate stuff
04:00:12 <davean> mapGregorian = mapMFormat (\(y, (m, d)) -> fromGregorianValid y m d) (\day -> (\(y, m, d) -> Just (y, (m, d))) $ toGregorian day)
04:00:14 <Cale> which counts weeks of the year
04:00:27 <janus> toModifiedJulianDay in https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Calendar.html#t:Day
04:00:29 <pavonia> What happened o that particular day?
04:00:34 <pavonia> *on
04:00:35 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
04:01:05 <arahael> davean: Where's mapGregorian? (And again, I dismissed all the 'gregorian' stuff as I didn't realise I had to convert calendarws)
04:01:40 <janus> arahael: you don't have to "convert" calendars afaik, because the iso8601 parser will know that it is parsing a gregorian date
04:02:02 <Cale> pavonia: https://groups.google.com/g/comp.os.vms/c/IMWn2Fg46VA has an answer of sorts for why it's that particular day
04:02:05 <davean> arahael: the Format Day implimentation
04:02:06 <janus> when you get the DayOfMonth and such, that is an integer that is also using the gregorian calendar
04:02:13 <arahael> janus: Yes, that's what i was saying...
04:02:15 <davean> arahael: which is how you were printing IOS8601
04:02:42 <arahael> davean: I'm printing ISO 8601 by physically typing the characters in!
04:02:51 <janus> arahael: but there is no conversion necessarily taking place. haskell is just abstracting the internal representation which isn't necessarily gregorian. for example a unix time isn't really gregorian
04:03:26 <pavonia> Cale: Thanks. Was already reading about https://en.wikipedia.org/wiki/Great_Stink :D
04:03:33 <janus> arahael: but there is no conversion necessarily taking place. haskell is just abstracting the internal representation which isn't necessarily gregorian. for example a unix time isn't really gregorian know what it means?
04:03:36 <arahael> janus: I think we got our signals mixed up. Cale brought up 'toGregorgian", which turned out to be exactly what I wanted... I was saying I only dismissed that when reading the docs the first time because... I was *already* using gregorian!
04:03:53 <monochrom> Haha I should have become an astronomer. My day starts at noon.
04:04:15 <janus> araheal: but how do you know you were already using gregorian? the Day doesn't say that it is using that internally
04:04:27 <monochrom> But I can be talked into "you were right to join computer science instead, CS grad student day starts at 4PM"
04:04:27 <arahael> janus: Because I'm typing in the ****'ing date myself in gregorigan! :)
04:04:47 lavaman joins (~lavaman@98.38.249.169)
04:04:59 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 252 seconds)
04:05:22 <janus> arahael: but how? the Day constructor takes a ModifiedJulianDay
04:05:40 × pe200012 quits (~pe200012@183.63.73.36) (Ping timeout: 272 seconds)
04:05:44 <arahael> janus: Yes. Perhaps I should have just ignored hackage and read the source code myself.
04:06:01 <janus> so if you're typing a iso8601 and parsing that, you're only using gregorian because that is what iso8601 uses. but when you got your Day, you forgot about the fact that it was ever a gregorian
04:06:47 <arahael> janus: Yeah, well, I didn't have my Day, I had a LocalTime.
04:07:25 × derelict quits (~derelict@user/derelict) (Ping timeout: 272 seconds)
04:08:18 <arahael> janus: And Day is documented in a completely different place. :) I was wondering: "Do I need to convert this to a UnixTime?".
04:09:38 <arahael> janus: I also checked stackoverflow and other places, look at how much *code* is in https://stackoverflow.com/questions/4174372/haskell-date-parsing-and-formatting
04:11:17 <arahael> Do we have a wiki or something where we consolidate all this documentation so that it's clearer to navigate/
04:11:19 <arahael> ?
04:11:41 <janus> there is wiki, it is easy to get a user
04:11:49 <janus> or you can just send me some content and i can make a page for you
04:12:26 <janus> you can also ask an SO question and answer it yourself, i kinda like that model
04:14:23 <arahael> Perhaps I should think about doing a decent tutorial on the wiki.
04:14:31 × ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds)
04:15:02 ubikium joins (~ubikium@2400:2200:3f1:982e:b73d:c88d:7f8e:831b)
04:16:02 <Cale> arahael: Yeah, the time library is actually really good and has most of what you'd ever need, but it takes a moment to get used to :)
04:16:28 <janus> arahael: there is also a wikibook on haskell, you could add a chapter
04:16:40 <arahael> janus: Another possibility.
04:16:53 <arahael> Cale: Yeah, it's definitely not easy to dive in and see everything.
04:17:50 <janus> check out this diagram https://wiki.haskell.org/File:Time-diagram.png
04:17:59 reumeth joins (~reumeth@user/reumeth)
04:18:49 <davean> I don't think that diagram is quite right
04:19:07 <janus> looks weird with "Day - Day" not being Void :P
04:19:21 <arahael> janus: The best thing about that particular diagram is the "The following pages link to this file:", bringing up the Time docs.
04:19:31 thelounge92 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com)
04:19:34 <arahael> janus: All my searching was focused on either date, or datetime!
04:19:42 <arahael> Those time docs are quite good.
04:19:58 <davean> Pretty sure that diagram screws up the relation between AbsoluteTime and UTCTime janus
04:20:18 <janus> i wouldn't call them docs on the wiki :P i mean, the diagram is on there
04:20:40 <janus> would suck to make a library only for someone to make a bad diagram , put it on the wiki page, and now people tell you that your docs suck :P
04:21:14 <janus> davean: thanks for the pointers! a shame, i like diagrams :P
04:21:22 <arahael> janus: The back link is docs. :)
04:21:37 <arahael> janus: https://wiki.haskell.org/Time
04:22:18 <davean> janus: there is a function AbsoluteTime -> UTCTime but no map UTCTime -> AbsoluteTime specificly
04:22:24 <janus> but documentation written mostly by Russell O'Connor in 2013. when people say "docs" don't they usually talk about the official ones?
04:22:42 × tomsmeding quits (~tomsmedin@2a03:b0c0:0:1010::767:3001) (Quit: ZNC 1.8.2 - https://znc.in)
04:23:20 <davean> janus: Some UTCTimes map to multiple AbsoluteTimes
04:23:29 <davean> since UTCTime isn't monotonic
04:24:24 <janus> why is UTC not monotonic? because of leap seconds?
04:24:27 Morrow_ joins (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net)
04:24:29 <davean> janus: yes
04:24:41 <davean> which can go forward or backwards, so UTCTime repeats
04:25:00 <janus> i wish there was a name for UTC-with-time-smearing?
04:25:10 <davean> I mean just use AbsoluteTime
04:25:13 <davean> TAI is pretty easy
04:25:21 <davean> And its far more correct
04:25:37 <davean> UTCTime is for display to humans
04:25:45 <davean> computers should always just use time in TAI
04:26:09 <arahael> janus: At this point, I'd have been happy with *any* docs. The hackage modules barely refer to each other except when they happen to use a type in another module.
04:26:49 <janus> davean: ok, but in practice, if they don't use TAI , and they use UTC with time smearing, wouldn't it be easier to invent a new correct name for this variant, instead of rewriting everything to use TAI?
04:27:03 <davean> janus: smearing varies
04:27:06 <davean> so no, it wouldn't
04:27:12 × MorrowM quits (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
04:27:12 <davean> smearing is a huge mess
04:27:21 <davean> So I just check the time at the time, and convert into TAI
04:27:30 <davean> computers DO keep a monotonic clock
04:27:35 <davean> since they can't possibly keep UTC correctly
04:27:43 <davean> so I just access the monotonic clock, and get TAI out
04:28:43 × hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.)
04:28:54 <janus> "TAI clock, if it exists. Note that it is unlikely to be set correctly, without due care and attention."
04:28:57 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
04:28:58 <janus> from https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Clock-TAI.html
04:29:18 <davean> sure, which is why I use https://hackage.haskell.org/package/tai instead of time
04:29:33 <janus> oh my
04:29:39 <davean> That deals with the system details
04:29:51 <janus> oh it's your own library :D
04:29:54 <davean> Yes
04:29:59 <davean> I've dealt with the time issues a lot
04:30:16 <janus> space traveller?
04:30:34 <glguy> aren't we all?
04:30:35 <davean> as I said, the systems use mononic time, rarely TAI
04:30:42 <davean> they present UTCTime
04:30:57 <davean> You just have to align them
04:31:07 <davean> janus: a second is a huge amount of time
04:31:17 <davean> a smeared second causes a TON of issues
04:31:34 <arahael> A second is long enough to crash all the eftpos terminals in my state. :)
04:31:49 <davean> it might be mononic and continuous but it either drops a second or packs two times as much in
04:31:56 × justBull quits (~justache@user/justache) (Excess Flood)
04:31:59 <davean> arahael: right, a second is a big deal :)
04:32:42 <janus> but isn't the whole point of time smearing that it is smeared out over such a long period that the delta will never grow close to a second?
04:32:45 justBull joins (~justache@user/justache)
04:32:49 teaSlurper joins (~chris@81.96.113.213)
04:32:52 <davean> janus: depends on the smearing
04:32:56 <davean> so ... no
04:33:04 <davean> as I said, theres no specific smearing
04:33:05 <arahael> davean: Yep, I just get sad at how it comes as a huge surprise even now, if the system depends on sub-second precision, why don't they do it properly? :(
04:33:17 <arahael> janus: Sometimes it's smeared over "two" seconds
04:33:39 <davean> janus: and even a second smeared over a day is pretty fucking obvious to anyone looking
04:33:50 <davean> which isn't want anything does in practice
04:34:12 <davean> so yah, mostly you get rediculous errors if you deal with UTCTime
04:34:49 arahael now finally has 'the xth day".
04:34:58 <arahael> So... Now for the month! Another timesink!
04:35:25 <arahael> Of course, I could simply write a 12-case switch, but blegh. This has surely been done.
04:35:57 <davean> arahael: most people don't care to do their jobs well? I mean thats how people got in this situation in the first place
04:36:13 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
04:36:56 <arahael> davean: The big problem is when responsibilities overlap or are split out. Collobrating with other components in your organisation about some technical issue that only happens maybe for a *second* once or twice every other year is a pretty big ask for many businesses.
04:38:10 × HarveyPwca quits (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving)
04:38:34 <davean> arahael: I mean they had to have a pretty big fundimental flaw to get there in the first place
04:38:39 <davean> arahael: sure its hard to fix AFTER
04:39:22 <arahael> davean: I'm convinced it's related to not only being a bit lazy, but also due to how software systems are partitioned today.
04:39:35 <arahael> (In the organisations)
04:39:47 <arahael> Ie, this is not just a technical issue, but also a social one.
04:40:00 <janus> davean: your library needs a base bump to work on ghc 9, btw
04:40:26 <davean> janus: lol, so I can't actually verify it on GHC 9 ATM because of package issues with GHC 9!
04:40:36 <davean> janus: so uh, no, it doesn't need a bump :(
04:40:48 <janus> :(
04:40:50 <davean> I have to wait for the ecosystem to percolate
04:41:01 davean shakes fist at sky
04:41:25 <janus> huge amount of broken packages, just submitted 4 bump requests last week on the trustees tracker
04:41:50 <davean> yah, there were a few issues, unrelated to GHC, that made the 9 transition difficult
04:41:51 arahael uses formatTime to get the month name out.
04:42:26 <davean> janus: for MOST configurations I think jail breaking it is fine
04:42:47 <davean> janus: I just wasn't going to bump it until it was actually passing tests properly
04:42:54 <davean> (across all targets, etc)
04:48:54 × kiweun quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 264 seconds)
04:50:12 × nerdypepper quits (~nerdypepp@user/nerdypepper) (Remote host closed the connection)
04:53:58 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
04:55:06 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
04:56:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:04:15 × alx741 quits (~alx741@181.196.69.243) (Quit: alx741)
05:07:42 × da39a3ee_ quits (~textual@171.6.243.223) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:09:48 × renzhi quits (~xp@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 252 seconds)
05:14:46 MQ-17J joins (~MQ-17J@8.21.10.116)
05:15:27 nerdypepper joins (~nerdypepp@152.67.162.71)
05:27:13 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
05:30:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
05:44:18 chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295)
05:47:34 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
05:47:53 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:48:51 sheepduck joins (~sheepduck@2607:fea8:2a61:4800::ea20)
05:49:18 × aerona quits (~aerona@2600:6c54:4600:f300:6de7:8f27:ad87:4107) (Quit: Leaving)
05:51:36 × shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
05:52:03 × Morrow_ quits (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
05:52:25 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds)
05:53:42 × sheepduck quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 264 seconds)
05:54:18 × haskl quits (~haskeller@2601:643:897f:561d::af3) (Ping timeout: 264 seconds)
05:55:50 anandprabhu joins (~anandprab@87.201.97.214)
06:01:44 Bartosz joins (~textual@24.35.90.211)
06:03:40 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
06:04:07 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
06:05:00 × Adran quits (adran@botters/adran) (Quit: Este é o fim.)
06:11:10 × benin036 quits (~benin@183.82.176.84) (Ping timeout: 245 seconds)
06:11:29 benin036 joins (~benin@183.82.176.166)
06:12:00 × MQ-17J quits (~MQ-17J@8.21.10.116) (Remote host closed the connection)
06:12:16 Adran joins (~adran@botters/adran)
06:12:16 MQ-17J joins (~MQ-17J@8.21.10.116)
06:15:21 haskl joins (~haskeller@2601:643:897f:561d::af3)
06:16:12 adios joins (~adios@244.92.151.186.static.intelnet.net.gt)
06:21:56 × bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 252 seconds)
06:27:12 × Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:31:09 amahl joins (~amahl@dxv5skyhc49fswhfjlcpy-3.rev.dnainternet.fi)
06:34:22 × fvr quits (uid503686@id-503686.highgate.irccloud.com) ()
06:34:33 fvr joins (uid503686@id-503686.highgate.irccloud.com)
06:37:49 sheepduck joins (~sheepduck@2607:fea8:2a61:4800::ea20)
06:40:25 qbt joins (~edun@user/edun)
06:40:25 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
06:40:38 × xff0x quits (~xff0x@2001:1a81:53bf:ae00:b6fb:e579:3973:61d4) (Ping timeout: 252 seconds)
06:40:58 × zmt00 quits (~zmt00@user/zmt00) (Quit: Gone.)
06:42:38 xff0x joins (~xff0x@2001:1a81:53da:9800:7857:139c:679e:1591)
06:47:47 × sheepduck quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 252 seconds)
06:48:44 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
06:49:58 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
06:50:23 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
06:54:02 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
06:54:22 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
06:58:42 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
07:00:07 matsurago joins (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp)
07:01:05 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
07:02:00 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
07:02:57 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
07:03:01 × xff0x quits (~xff0x@2001:1a81:53da:9800:7857:139c:679e:1591) (Ping timeout: 268 seconds)
07:04:49 xff0x joins (~xff0x@2001:1a81:53da:f000:a10f:4223:ab2e:3175)
07:05:06 × ubikium quits (~ubikium@2400:2200:3f1:982e:b73d:c88d:7f8e:831b) (Ping timeout: 264 seconds)
07:05:21 ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
07:09:09 dunkeln joins (~dunkeln@94.129.65.28)
07:11:33 × haskl quits (~haskeller@2601:643:897f:561d::af3) (Remote host closed the connection)
07:11:50 haskl joins (~haskeller@2601:643:897f:561d::af3)
07:13:32 × haskl quits (~haskeller@2601:643:897f:561d::af3) (Remote host closed the connection)
07:13:49 haskl joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
07:14:29 × nerdypepper quits (~nerdypepp@152.67.162.71) (Changing host)
07:14:29 nerdypepper joins (~nerdypepp@user/nerdypepper)
07:19:22 notzmv joins (~zmv@user/notzmv)
07:21:56 <maerwald> is there a function to get a temporary filename (without creating it)?
07:22:11 wonko joins (~wjc@62.115.229.50)
07:27:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:30:43 × xff0x quits (~xff0x@2001:1a81:53da:f000:a10f:4223:ab2e:3175) (Ping timeout: 272 seconds)
07:32:01 xff0x joins (~xff0x@2001:1a81:53db:5a00:806f:9a3:56a7:aca6)
07:35:50 × beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection)
07:36:19 beka joins (~beka@104-244-27-23.static.monkeybrains.net)
07:41:45 × beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection)
07:42:39 beka joins (~beka@104-244-27-23.static.monkeybrains.net)
07:42:42 × amahl quits (~amahl@dxv5skyhc49fswhfjlcpy-3.rev.dnainternet.fi) (Remote host closed the connection)
07:44:25 × xff0x quits (~xff0x@2001:1a81:53db:5a00:806f:9a3:56a7:aca6) (Ping timeout: 244 seconds)
07:45:12 lavaman joins (~lavaman@98.38.249.169)
07:45:37 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
07:46:13 xff0x joins (~xff0x@2001:1a81:53db:9400:2ec8:4cb:1537:c74)
07:46:53 Peng7 joins (~Peng@188.233.111.108)
07:46:53 <Peng7> /!\ THΙЅ СΗANΝEⅬ ᎻAS МⲞVΕⅮ ТO IRϹ.LIBEᎡА.CዘAᎢ #HᎪΜᖇΑᎠIⲞ ⁄!\
07:46:53 × Peng7 quits (~Peng@188.233.111.108) (K-Lined)
07:48:04 <Rembane_> maerwald: Do you want the name but not the file?
07:48:36 <maerwald> Rembane_: yeah
07:48:58 <maerwald> I want the juice, not the fruit
07:49:06 <Rembane_> maerwald: Do you care at all about the shape of the name? Can it be ugly?
07:49:21 <maerwald> it has to be *valid*
07:49:28 <maerwald> which isn't that easy on windows
07:49:41 <maerwald> otherwise you run it through `makeValid`
07:50:03 <Rembane_> Are dashes valid in file names on Windows? Because if they are, you could generate an UUID that's a function of time.
07:50:18 <Rembane_> And if they aren't, you could still use an UUID but remove the dashes.
07:50:58 poljar1 joins (~poljar@93-139-36-109.adsl.net.t-com.hr)
07:51:01 <Vq> Is going beyond 8+3 filenames still an extension? Could be tricky with so short filenames.
07:52:22 × poljar quits (~poljar@93-139-68-198.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
07:56:50 <maerwald> filename length is a problem on windows
07:57:36 <Rembane_> Is 8+3 still the max length?
07:57:54 <maerwald> that depends on the path length of the temporary system directory
07:59:32 <Rembane_> That's way too exciting.
08:02:02 <xsperry> Rembane_, 260 should be safe (IIRC there's a way to go beyond that, but it requires registry tweaks). https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-vds/9d39e835-514b-4308-a3f9-d4a6cbe5691b
08:02:19 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
08:04:39 <xsperry> of course that's the whole path, there's no specific length limit for filename alone AFAIK
08:05:04 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:06:16 jasonm joins (~bc817c21@217.29.117.252)
08:06:38 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 244 seconds)
08:07:03 fendor_ is now known as fendor
08:07:39 hendursa1 joins (~weechat@user/hendursaga)
08:07:40 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
08:08:00 <jasonm> hi. is there a scanf equivalent for haskell? that takes an actual string. there's scanf, but it works with template haskell
08:08:27 <jasonm> (I'm working with config files that, among other things, includes user supplied scanf string)
08:08:30 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
08:08:54 lavaman joins (~lavaman@98.38.249.169)
08:08:55 <Rembane_> jasonm: There's a bad one because you throw all type safety out of the window.
08:08:55 mikoto-c1 joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
08:09:28 <Rembane_> jasonm: Nevermind, I mixed it up with printf.
08:09:40 <[exa]> jasonm: using attoparsec is usually faster and much more convenient
08:10:04 <jasonm> [exa], but I'd have to rewrite scanf basically
08:10:23 <[exa]> do you have user-specified format strings or something?
08:10:33 <jasonm> yes, I actually said that above :)
08:10:34 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds)
08:10:41 <[exa]> ah sorry I just kinda arrived :D
08:11:38 <[exa]> hm, like, okay, that's hard
08:12:18 <[exa]> what would be the higher purpose?
08:12:21 <jasonm> np. can scanf package work with strings? this is an example from their page: scanf [fmt|Hello %s|] "Hello world!" :: Maybe (String :+ ())
08:12:40 <nshepperd> you might need to write your own scanf
08:12:42 <jasonm> I am working with a config file that, among other things, includes scanf string
08:12:43 <Rembane_> How much work is it to map the scanf "commands" to some series of attoparsec combinators?
08:12:55 <nshepperd> either that or call out to C. if you need compatibility
08:14:12 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
08:15:01 <[exa]> jasonm: what would happen if the user attempts buffer overflow by specifying "%d%d%d%d%d%d.........." ?
08:16:47 <jasonm> bad things.. they assume cooperation of the user. that's why it be better if there was a pure haskell version, i'd get a nice error instead of memory corruption or segfault
08:18:43 <aerkenemesis> jasonm I would use FFI for that
08:19:07 <maerwald> Can you tell stack to use a different msys2?
08:19:17 tomsmeding joins (~tomsmedin@tomsmeding.com)
08:21:08 <siers> how do people usually represent that only As are present in a list if you have data D = A | B?
08:22:03 <siers> ah, there's even no A type like in scala, so you can't use that for a phantom type. so perhaps this is not a good question then
08:22:04 zaquest joins (~notzaques@5.128.210.178)
08:22:23 <Rembane_> siers: What's the problem you really are trying to solve?
08:22:47 gehmehgeh joins (~user@user/gehmehgeh)
08:23:08 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
08:23:16 <jasonm> D is a type, A is one of two possible values of D
08:23:17 <siers> Rembane_, I have history with two entries and I want to filter and store only "A"s. If I use the D type, I will later have to make a function that handles the two cases though I care only about one.
08:23:45 <siers> I guess I can move all of A's data into its own data and then D will only represent the discrimination
08:24:02 <jasonm> your type is equivalent to data Bool = True | False
08:24:12 <Rembane_> siers: Something like: filter (\case; A -> True; _ -> False) [{- list of As and Bs -}]
08:24:55 <siers> I'd never seen an inline case, cool
08:25:18 <tomsmeding> if you want type-level evidence of having only A's in a list, you need to reflect the information of "being A" on the type level
08:25:21 <Rembane_> You need to activate LambdaCase, but it's worth it imo
08:25:40 TheRAt is now known as TheRAt_AWAY
08:25:42 TheRAt_AWAY is now known as TheRAt
08:25:57 <tomsmeding> e.g. data D a where A :: D 'True ; B :: D 'False -- where I'm using DataKinds so that 'a' has kind Bool
08:26:29 <tomsmeding> then a list of D 'True can contain only As, but you can't have a list of whatevers anymore
08:26:35 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
08:26:37 <maerwald> tomsmeding: yes... and in the end you'll still write your own filter function that just happens to then manipulate the types, which is one of those instances where I find type level programming pointless
08:26:42 <maerwald> because you can still mess up
08:26:52 <tomsmeding> but you can't mess up here?
08:26:58 <tomsmeding> you can't stuff a B in a list of D 'True
08:27:51 <siers> maerwald, and also you won't have to handle the cases when consuming
08:28:08 <tomsmeding> you do still have to write your own filter function, but aside from skipping items / putting them in the wrong order (which the types do not prohibit), you can't put items in the wrong list
08:28:18 <maerwald> siers: you convert to a different type then
08:28:44 <siers> tomsmeding, pretty cool, that was kind of what I was looking for
08:28:49 <tomsmeding> which is equivalent, I guess? having my GADT or instead two data types is kind of the same thing with different syntax
08:29:19 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
08:29:26 <siers> maerwald, I was thinking that is the saner of options
08:29:30 <tomsmeding> siers: if you want a list of "either A or B", with my GADT you now have to do wrap them though
08:29:55 <siers> maerwald, I still want to know what's the alternative, crazier solution :)
08:30:00 <tomsmeding> data Some f where Some :: f a -> Some f -- or alternatively, same meaning different syntax: data Some f = forall a. Some (f a)
08:30:04 <tomsmeding> or use:
08:30:05 <tomsmeding> @hackage some
08:30:05 <lambdabot> https://hackage.haskell.org/package/some
08:31:03 __monty__ joins (~toonn@user/toonn)
08:31:33 <tomsmeding> which makes Some a newtype using some unsafeCoerce magic
08:32:46 <tomsmeding> siers: to answer your original question, I guess: for most people that's making two datatypes, data A = A and data B = B, and having a function splitD :: [D] -> ([A], [B])
08:32:58 <jasonm> can Some be used to have a list of types that implement some typeclass?
08:32:59 <tomsmeding> and for the people that like type-level trickery, the GADT solution that I described
08:33:07 Rembane_ is now known as Rembane
08:33:21 <tomsmeding> jasonm: do you have an example?
08:33:47 <siers> "mkSome" :D funny... is Some like a Proxy? I don't yet understand what it does
08:34:05 × MQ-17J quits (~MQ-17J@8.21.10.116) (Ping timeout: 245 seconds)
08:34:06 <tomsmeding> siers: 'Some Maybe' is a type that contains a 'Maybe a' for some existential 'a'
08:34:07 <jasonm> tomsmeding, having a list of Show a => [a], for example. existential types can be used for this
08:34:40 <tomsmeding> siers: in this case, with my GADT-based D, you can have a list of 'Some D' where each item is a 'D a' for some existential 'a' -- i.e. either 'True or 'False in this case
08:34:45 × matsurago quits (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving)
08:35:06 <siers> tomsmeding, it's starting to make sense
08:35:15 <siers> the some part // the D a part is clear
08:35:23 hmmmas joins (~chenqisu1@183.217.200.246)
08:35:31 <tomsmeding> it's not like a Proxy in that a Proxy has only a phantom type variable; Some carries data but hides one type variable behind an existential
08:37:09 <tomsmeding> but you don't have to use Some for your D; you can also directly write: data SomeD where SomeD :: D a -> SomeD -- or equivalently: data SomeD = forall a. SomeD (D a)
08:37:14 <siers> but if TagInt :: Tag Int, then shouldn't Some TagInt be Some Tag?
08:37:16 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Remote host closed the connection)
08:37:30 <tomsmeding> siers: is TagInt a constructor of a GADT named Tag?
08:37:39 <maerwald> tomsmeding: your example requires using a different type... I was thinking of type families
08:37:44 <tomsmeding> then yes Some TagInt :: Some Tag
08:37:45 <siers> tomsmeding, ah, gotcha
08:38:06 <siers> I'm not used to data .. where syntax
08:38:40 <tomsmeding> jasonm: (sorry missed your message) no for that you have to write a custom GADT
08:39:06 <jasonm> ok
08:39:39 <tomsmeding> or, I guess, Some (Product (Has Show) []), where Product is from Data.Functor.Product, and data Has c a where Has :: c a => Has c a
08:39:54 <tomsmeding> (using ConstraintKinds to pass a constraint to the type variable 'c' of Has)
08:40:06 <tomsmeding> but at that point just write a custom GADT :p
08:40:11 yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se)
08:40:45 <tomsmeding> siers: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/gadt.html?highlight=gadts
08:40:51 <tomsmeding> maerwald: I'm not sure I see how?
08:42:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
08:43:04 <siers> tomsmeding, cool link
08:43:17 <tomsmeding> siers: the ghc user's guide is underappreciated
08:43:35 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
08:44:42 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:b19b:35e2:2fd0:444d)
08:44:46 × tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
08:46:06 tomsmeding joins (~tomsmedin@tomsmeding.com)
08:48:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
08:48:09 × jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
08:48:28 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 268 seconds)
08:49:31 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
08:50:34 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
08:53:14 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
08:54:58 fendor_ joins (~fendor@77.119.131.227.wireless.dyn.drei.com)
08:57:57 × fendor quits (~fendor@91.141.0.106.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
09:00:07 berberman joins (~berberman@user/berberman)
09:00:42 <maerwald> tomsmeding: yeah, on second thought... me neither
09:01:02 <tomsmeding> :)
09:01:30 × berberman_ quits (~berberman@user/berberman) (Ping timeout: 264 seconds)
09:02:43 neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
09:03:06 dunkeln joins (~dunkeln@94.129.65.28)
09:06:54 × xff0x quits (~xff0x@2001:1a81:53db:9400:2ec8:4cb:1537:c74) (Ping timeout: 264 seconds)
09:07:50 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:08:22 xff0x joins (~xff0x@2001:1a81:53dc:de00:96fb:36f9:fddc:a0cb)
09:08:26 hseg joins (~gesh@185.120.126.41)
09:10:28 da39a3ee5e6b4b0d joins (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a)
09:11:07 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
09:14:00 <hseg> Hi. I want a function :: Semigroup v => (k -> v -> [l]) -> Map k v -> Map l v that replaces all (k,v) pairs in the map by their image, then collects them all, sconcat'ing if there are duplicate keys
09:14:13 <hseg> The current way I have of doing this is fromListWith (<>) . toList . traverseWithKey f
09:14:50 <hseg> but a) am unsure whether this will fuse away the intermediate list and b) seems like an awkward way of doing things
09:14:56 <hseg> am I missing something?
09:15:21 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
09:15:46 <hseg> (in fact, this is the unary case of what is actually a parametrized binary op on Maps in my use case)
09:16:31 <hseg> (ie convolveF :: (_, Foldable f, Semigroup v) => (i -> j -> f k) -> Map i v -> Map j v -> Map k v
09:16:59 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
09:18:25 <tomsmeding> hseg: that function doesn't seem to typecheck
09:18:48 <hseg> bc of the hole in the context?
09:19:05 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
09:19:06 <c_wraith> because traverseWithKey is returning a list of maps
09:19:43 <hseg> ah oops
09:20:52 <hseg> yeah, ig that intermediate toList should be map toList ?
09:21:51 <hseg> ... foldMap toList
09:21:54 <c_wraith> maybe concatMap?
09:22:01 <hseg> concatMap, right
09:22:15 <hseg> (though for lists those coincide, right?
09:22:24 <c_wraith> yeah, those two are the same in that case
09:23:24 <c_wraith> in that case, I can basically guarantee the intermediate lists are not getting fused away
09:23:30 <hseg> hrm... a moment, I made a mistake in my type tetris
09:23:33 × tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:23:45 <hseg> (the traversal is modifying the values, not the keys)
09:23:58 <hseg> but the general point is clear
09:24:31 <hseg> ig that containers doesn't provide a clean, quick way of doing this then?
09:24:55 <hseg> and that i need to use monoidal-containers instead?
09:24:57 <c_wraith> Not clean, but foldlWithKey' would be efficient.
09:25:22 <c_wraith> though it doesn't do a thing for your binary case
09:25:48 <hseg> oh well. it's what I get for abusing a container outside its intended use case
09:26:25 <hseg> Map k v is meant to be "v-valued container keyed by k", not "v-valuation on k values"
09:28:14 mc47 joins (~mc47@xmonad/TheMC47)
09:28:25 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
09:29:19 <hseg> ... actually, instead of destructing+reconstructing, could just unionsWith (<>)
09:29:28 <hseg> so at least there's that
09:29:56 <tomsmeding> which is, then, probably the best you'll get
09:30:06 <hseg> ... and that's yet another thing Map has that HashMap doesn't *frustration*
09:30:12 <hseg> yeah, ig
09:31:30 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 264 seconds)
09:32:14 azeem joins (~azeem@176.201.21.98)
09:33:32 teaSlurper joins (~chris@81.96.113.213)
09:33:45 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:35:17 × cheater quits (~Username@user/cheater) (Quit: (BitchX) A gentleman is one who knows how to play the bagpipes, but chooses not to.)
09:38:08 <hseg> ... ok, so the "solution" I began with doesn't even work, since it modifies the values, not the keys
09:38:09 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds)
09:38:29 <hseg> and indeed, I don't see a traversal in containers that permits altering the keys
09:38:49 <hseg> like, except mapKeys
09:41:10 <hseg> and even with that, I can end up with a Map (f k) v, but with no way of distributing that f over Map
09:42:31 <tomsmeding> because in terms of a tree data structure, that operation makes no sense anywah
09:42:33 <tomsmeding> *anyway
09:43:05 <tomsmeding> you basically can't do better than iterating over the tree and building a new one, which is exactly what the approach that goes via a list does
09:43:08 <c_wraith> the binary version is a cartesian product anyway. might as well perform it on lists
09:43:33 <hseg> fair. am being myopic
09:43:58 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
09:47:29 L29Ah is now known as L29Ah[XMPP]
09:47:30 cheater joins (~Username@user/cheater)
09:48:44 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 252 seconds)
09:50:03 rusua joins (uid124537@id-124537.highgate.irccloud.com)
09:50:34 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
09:51:17 PotatoGim joins (sid99505@id-99505.tooting.irccloud.com)
09:51:31 × azeem quits (~azeem@176.201.21.98) (Read error: Connection reset by peer)
09:52:35 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
09:53:28 jakalx joins (~jakalx@base.jakalx.net)
09:53:50 lavaman joins (~lavaman@98.38.249.169)
09:55:14 bfrk joins (~bfrk@200116b845b21700ca15fbad8d1b9d07.dip.versatel-1u1.de)
09:55:49 jneira joins (~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
09:58:33 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
10:00:21 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:00:30 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
10:01:20 dunkeln joins (~dunkeln@94.129.65.28)
10:04:46 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer)
10:07:25 hulo joins (~hulo@182.18.206.5)
10:08:26 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:08:47 hulo parts (~hulo@182.18.206.5) ()
10:14:05 × beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 245 seconds)
10:17:29 jakalx parts (~jakalx@base.jakalx.net) ()
10:22:39 jakalx joins (~jakalx@base.jakalx.net)
10:25:10 × sudden quits (~cat@h-98-128-128-173.A351.priv.bahnhof.se) (Quit: Lost terminal)
10:25:33 sudden joins (~cat@h-98-128-128-173.A351.priv.bahnhof.se)
10:27:26 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:28:45 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:30:54 × oxide quits (~lambda@user/oxide) (Ping timeout: 265 seconds)
10:32:07 blankhart joins (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net)
10:35:47 gedda joins (~gedda@user/gedda)
10:36:31 × da39a3ee5e6b4b0d quits (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:36:47 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
10:37:38 <gedda> is there a difference in lazyness in `f foo = case foo of ...` vs pattern matching on foo directly?
10:37:53 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
10:38:44 <gedda> oh wow first result on google gave me the answer smh
10:40:10 <maerwald> gedda: I don't think so (in this case)
10:40:49 <aerkenemesis> I'm looking to discuss CI using nix flakes, so step forward if that's something that floats your boat
10:41:12 <maerwald> gedda: but if you're using -XStrict, then yes
10:41:30 <gedda> maerwald, apparently pattern matching gets transformed into cases in core, just like if's
10:41:39 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
10:41:48 <gedda> maerwald, interesting, but not -XStrictData i presume?
10:42:05 <maerwald> StrictData is something entirely different
10:42:33 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds)
10:42:58 <gedda> Yep, I'm just mixing things up sorry
10:43:08 <maerwald> oh wait, no I misread... it's the same for Strict too
10:43:25 <maerwald> I was thinking of f = \foo -> case foo of
10:43:40 <maerwald> I think that's different under -XStrict than f foo
10:44:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:44:54 <gedda> is -XStrict actually useful in production somewhere? feels like more of a flag for testing purposes
10:45:29 xkuru joins (~xkuru@user/xkuru)
10:46:11 <maerwald> gedda: https://github.com/yesodweb/wai/pull/752#issuecomment-501531386
10:49:29 bor0 joins (~boro@user/bor0)
10:50:01 <maerwald> I've started using it in my own projects too... the times it causes problems are rather obvious ones
10:50:12 <maerwald> e.g. some monadic combinators
10:50:17 × hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.)
10:50:35 <maerwald> and when you want fusion etc. you also don't want it
10:51:26 <gedda> yeah i would believe the performance angle is the one that allows for XStrict
10:51:38 × ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds)
10:52:27 <maerwald> well, it can worsen performance too
10:53:14 <maerwald> but I feel... if you rely on huge performance gain based on the fact that a function argument hides a huge computation... either it's a "combinator" library (like lens) or you're doing something odd
10:54:39 ubikium joins (~ubikium@2400:2200:3f7:8d39:b162:d489:71fa:a323)
10:55:06 <maerwald> it might blow up sooner or later anyway
10:55:37 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: brb)
10:55:46 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
10:58:08 pe200012 joins (~pe200012@120.236.162.19)
10:58:29 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
10:59:12 × nerdypepper quits (~nerdypepp@user/nerdypepper) (Quit: bye)
11:00:10 pkkm joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl)
11:00:55 <maerwald> anything non-trivial doesn't fuse easily anyway (look at what lengths libraries like streamly have to go to make fusion work... and then it easily breaks with a new GHC version)
11:01:38 <maerwald> so I don't buy the "better performance with laziness" argument, because you have to specifically engineer for it
11:07:51 × nf quits (~n@monade.li) (Quit: Fairfarren.)
11:09:26 × anandprabhu quits (~anandprab@87.201.97.214) (Quit: Leaving)
11:10:16 nf joins (~n@monade.li)
11:13:15 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
11:16:21 dunkeln joins (~dunkeln@94.129.65.28)
11:18:38 × sailboat quits (uid503239@id-503239.tinside.irccloud.com) (Quit: Connection closed for inactivity)
11:18:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
11:21:45 jakalx joins (~jakalx@base.jakalx.net)
11:23:15 × haltux quits (~haltux@a89-154-181-47.cpe.netcabo.pt) (Ping timeout: 245 seconds)
11:24:33 × xkuru quits (~xkuru@user/xkuru) (Ping timeout: 272 seconds)
11:24:43 lavaman joins (~lavaman@98.38.249.169)
11:26:49 xkuru joins (~xkuru@user/xkuru)
11:27:11 × mjs2600_ quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
11:28:17 <int-e> so @more should no longer produce that embarrassing `init` error... but it's still broken, because it keeps forgetting the history that it is supposed to be replaying
11:28:59 bramhaag parts (~bramhaag@134.195.121.39) (The Lounge - https://thelounge.chat)
11:29:05 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
11:35:45 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 264 seconds)
11:41:52 × bor0 quits (~boro@user/bor0) (Quit: Leaving)
11:44:29 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:45:22 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
11:45:31 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
11:47:57 teaSlurper joins (~chris@81.96.113.213)
11:49:21 dunkeln joins (~dunkeln@94.129.65.28)
11:49:57 zebrag joins (~chris@user/zebrag)
11:50:06 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 264 seconds)
11:51:05 Deide joins (~Deide@user/deide)
11:51:21 × hseg quits (~gesh@185.120.126.41) (Ping timeout: 264 seconds)
11:53:32 <nitrix> glguy, Do I have to go through you for the cloak on Libera or the staff?
11:53:50 <[exa]> nitrix: join #libera or maybe #libera-cloak
11:56:01 <nitrix> I can't join #libera-cloak as I'm already cloak with the user unaffiliated one.
11:57:23 <nitrix> Yeah, Libera just confirmed the affiliated cloaks go through the respective groups.
11:59:09 × TheRAt quits (~TheRAt@user/therat) (Ping timeout: 264 seconds)
12:00:32 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
12:00:40 <nitrix> Oh, I just checked my emails, it isn't glguy, sorry for the noise :]
12:01:51 TheRAt joins (~TheRAt@user/therat)
12:02:21 dhil joins (~dhil@195.213.192.47)
12:07:37 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
12:08:33 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
12:10:33 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 252 seconds)
12:12:21 jiribenes joins (~jiribenes@rosa.jiribenes.com)
12:12:31 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
12:12:51 mc47 joins (~mc47@xmonad/TheMC47)
12:13:26 da39a3ee5e6b4b0d joins (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a)
12:14:01 Morrow joins (~MorrowM_@147.161.8.134)
12:15:19 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:15:44 × Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
12:15:49 × mikoto-c1 quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-c1)
12:16:04 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
12:16:38 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
12:16:56 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
12:19:21 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
12:19:46 P1RATEZ joins (piratez@user/p1ratez)
12:22:22 Ranhir joins (~Ranhir@157.97.53.139)
12:23:44 × dunkeln quits (~dunkeln@94.129.65.28) (Quit: leaving)
12:24:11 wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
12:24:27 dhil joins (~dhil@80.208.56.181)
12:25:48 × wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Client Quit)
12:27:14 × Ranhir quits (~Ranhir@157.97.53.139) (Client Quit)
12:27:39 tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
12:27:39 tremon is now known as tremon_
12:29:27 unclechu joins (~unclechu@2001:470:69fc:105::354)
12:31:43 Ranhir joins (~Ranhir@157.97.53.139)
12:32:14 machinedgod joins (~machinedg@24.105.81.50)
12:33:33 × Morrow quits (~MorrowM_@147.161.8.134) (Remote host closed the connection)
12:33:50 Morrow joins (~MorrowM_@147.161.8.134)
12:37:10 haltux joins (~haltux@a89-154-181-47.cpe.netcabo.pt)
12:38:18 × haltux quits (~haltux@a89-154-181-47.cpe.netcabo.pt) (Remote host closed the connection)
12:42:12 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:46:18 × Morrow quits (~MorrowM_@147.161.8.134) (Ping timeout: 252 seconds)
12:46:22 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
12:46:48 × leah2 quits (~leah@vuxu.org) (Remote host closed the connection)
12:46:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
12:47:12 leah2 joins (~leah@vuxu.org)
12:51:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 244 seconds)
12:51:29 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
12:58:17 × sekun quits (~sekun@180.190.155.195) (Ping timeout: 272 seconds)
12:58:32 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
13:01:16 alx741 joins (~alx741@181.196.69.243)
13:02:04 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
13:02:53 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 252 seconds)
13:04:19 delYsid joins (~user@62-178-101-151.cable.dynamic.surfer.at)
13:04:55 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
13:05:48 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:08:00 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
13:09:35 geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com)
13:09:57 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:11:26 benin0364 joins (~benin@183.82.205.8)
13:13:29 × benin036 quits (~benin@183.82.176.166) (Ping timeout: 272 seconds)
13:13:30 benin0364 is now known as benin036
13:13:46 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
13:14:43 × delYsid quits (~user@62-178-101-151.cable.dynamic.surfer.at) (Remote host closed the connection)
13:14:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:15:13 hendursaga joins (~weechat@user/hendursaga)
13:26:01 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:26:06 lavaman joins (~lavaman@98.38.249.169)
13:26:13 × xff0x quits (~xff0x@2001:1a81:53dc:de00:96fb:36f9:fddc:a0cb) (Ping timeout: 272 seconds)
13:27:34 xff0x joins (~xff0x@2001:1a81:53e1:ab00:45af:7b21:1d2b:3d2e)
13:31:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
13:33:36 × pe200012 quits (~pe200012@120.236.162.19) (Ping timeout: 252 seconds)
13:33:37 pe200012_ joins (~pe200012@58.248.179.150)
13:34:24 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:36:50 mirko1 joins (~mirko@ip1f115d03.dynamic.kabel-deutschland.de)
13:37:20 mirko1 parts (~mirko@ip1f115d03.dynamic.kabel-deutschland.de) ()
13:38:39 × Hafydd quits (~Hafydd@2001:41d0:305:2100::31aa) (Changing host)
13:38:39 Hafydd joins (~Hafydd@user/hafydd)
13:46:54 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
13:48:45 hseg joins (~gesh@185.120.126.41)
13:49:35 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
13:54:56 × dhil quits (~dhil@80.208.56.181) (Ping timeout: 245 seconds)
13:56:40 matsurago joins (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp)
14:00:33 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 252 seconds)
14:02:51 jespada joins (~jespada@90.254.242.55)
14:04:36 × taeaad quits (~taeaad@user/taeaad) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
14:07:11 dustingetz joins (~textual@pool-173-49-123-198.phlapa.fios.verizon.net)
14:11:01 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
14:12:26 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer)
14:14:09 Solarion_ is now known as Solarion
14:14:23 iridescent joins (~iridescen@41337027.cst.lightpath.net)
14:14:26 <iridescent> has anyone seen this? https://bitemyapp.com/blog/grokking-sums-and-constructors/
14:14:40 <iridescent> i'm having trouble understanding the point of all of this
14:14:56 <iridescent> they're wrapping things with value constructors, but can't you just do the exact same thing without them?
14:15:07 <iridescent> definitely missing something, but not sure what it is
14:20:03 × xkuru quits (~xkuru@user/xkuru) (Remote host closed the connection)
14:20:40 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
14:23:10 × thelounge92 quits (~thelounge@cpe-23-240-28-18.socal.res.rr.com) (Ping timeout: 272 seconds)
14:24:30 <nitrix> The article seems to try to introduce some core concepts of the language; it's not really trying to achieve anything special.
14:25:19 <nitrix> What is the wrapping you think of and what confuses you?
14:26:43 <iridescent> oh hm
14:26:46 <iridescent> just like
14:26:53 <iridescent> if you don't actually need names for fruits
14:27:08 <iridescent> why would you want to have data Apple and data Orange over data Fruit = Apple | Orange
14:27:57 <nitrix> Right. I see the confusion now.
14:28:05 × da39a3ee5e6b4b0d quits (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) (Quit: Textual IRC Client: www.textualapp.com)
14:28:52 <janus> if you have them separate, you can use them to parametrize other types
14:29:26 <janus> essentially, do you want the distinction at runtime or compile time?
14:29:30 oxide joins (~lambda@user/oxide)
14:29:31 <nitrix> iridescent, If you allow me, I think I have an example that makes more sense then theirs to build your intuition.
14:29:39 <iridescent> sure why not :)
14:29:40 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
14:29:53 <iridescent> also how is this different from dependent types?
14:30:03 <iridescent> or is it just a specific instance of that
14:30:04 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 252 seconds)
14:30:25 <nitrix> iridescent, Haskell has two data types, you can have either product types or sum types. I can explain why they're named this way later, but they conceptually are very close to a struct and a tagged union if you're familiar with those.
14:30:26 jaevanko joins (~jaevanko@2600:1700:1330:2bef:d2ba:7480:75b7:9b34)
14:30:40 Nixkernal joins (~Nixkernal@2a02:1205:34ed:fa00:a5f7:ad7:30d5:9688)
14:30:40 × pe200012_ quits (~pe200012@58.248.179.150) (Remote host closed the connection)
14:30:44 <iridescent> yeah i get the concept of sum and product types
14:31:07 pe200012_ joins (~pe200012@58.248.179.150)
14:31:18 <nitrix> iridescent, So, starting with the product types, a couple examples would be: data Circle = MkCircle Float and data Rectangle = MkRectangle Int Int
14:31:49 <iridescent> yep
14:32:14 <nitrix> Here, `Circle` and `Rectangle` are the type names, while `MkCircle` and `MkRectangle` are the constructors. They are functions that will accept either a `Float` or two `Int` to eventually create a Circle or a Rectangle.
14:32:37 hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net)
14:32:57 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
14:33:19 <iridescent> got it
14:33:40 <nitrix> Similarly, you can also have sum types. The syntax is a bit different, the different possible options are separated by a | character. An example would be: data Weekday = Monday | Tuesday | Wednesday | Thirday | Friday.
14:34:30 <nitrix> Here, `Monday` is also a constructor, but it doesn't take any argument. Using it immediately creates a `Weekday`.
14:35:49 <nitrix> Haskell is said to have algebraic data types, and so, to showcase a bit that "algebra" (which I think is what the article was trying to do), you would combine sum types with product types into a new type.
14:35:51 × ubikium quits (~ubikium@2400:2200:3f7:8d39:b162:d489:71fa:a323) (Read error: Connection reset by peer)
14:37:13 <nitrix> iridescent, Something like data Shape = TheCircle Circle | TheSquare Square, where `Shape` can be constructed with two different ways, either TheCircle or TheSquare, which accepts a Circle and a Square respectively.
14:37:27 ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
14:37:42 bmo joins (~bmo@185.254.75.34)
14:38:09 shapr joins (~user@pool-108-28-144-11.washdc.fios.verizon.net)
14:38:40 <nitrix> Does that make sense or I lost you :P ?
14:40:47 × hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Quit: Quit)
14:41:44 bleloch_ joins (bleloch@gateway/vpn/protonvpn/bleloch)
14:41:50 hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net)
14:42:14 <bmo> What are currently the "best" frameworks (non-static) to write web-applications? It's been a while I used yesod before and servant as well but I wasn't necessarily too convinced of either.
14:42:36 <bmo> yesod felt like a very over-kill solution and pretty heavy-weight.
14:43:24 <bmo> servant was nice and I liked it quite a bit sometimes, however I recall having to write my own authentication layer which felt wrong
14:43:40 <bmo> What do people use nowadays?
14:44:39 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
14:45:20 × dustingetz quits (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:46:31 pavonia joins (~user@user/siracusa)
14:47:41 derelict joins (~derelict@user/derelict)
14:48:04 <janus> bmo: i am not sure people that like advanced typing stuff ever stopped using servant
14:48:15 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
14:48:37 × gedda quits (~gedda@user/gedda) (Quit: Lost terminal)
14:49:26 Bartosz joins (~textual@24.35.90.211)
14:53:41 slowButPresent joins (~slowButPr@user/slowbutpresent)
14:56:37 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
15:01:51 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
15:03:04 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
15:03:25 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
15:07:29 × oxide quits (~lambda@user/oxide) (Ping timeout: 272 seconds)
15:07:32 <iridescent> nitrix: think it makes sense, so basically your last example is like <constructor 1 which can take in a lot of arguments> OR <constructor 2 which can take a lot of argumnets>, and the lots of arguments is the product type
15:08:37 gentauro joins (~gentauro@user/gentauro)
15:09:24 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
15:09:33 rk04 joins (~rk04@user/rajk)
15:09:40 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
15:11:11 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
15:11:29 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
15:11:33 <nitrix> iridescent, The sum type gives you a choice between multiple values to construct the type. data Foo = A | B | C, there are 3 possible values of type Foo, the A, B and C.
15:12:53 <nitrix> iridescent, Product types combines existing types, so data Bar = F Foo Foo, would construct a Bar with two Foo, that's 9 possible values, F A A, F A B, F A C, F B A, F B B, F B C, F C A, F C B, F C C.
15:13:34 <nitrix> I guess that's a little hint as to why they're called sum versus product.
15:14:09 <nitrix> Sorry, 6 values x]
15:14:14 <nitrix> Two Foo with 3 values each, 2 * 3 = 6.
15:16:28 <nitrix> As for the sum, if I did data Bar = F1 Foo | F2 Foo, the possible values would be F1 A, F1 B, F1 C, F2 A, F2 B, F2 C, aka sum type, 3 + 3 = 6.
15:17:00 <nitrix> I chose a bad example that both arrives to 6, but you can see how the arithmetic is different :P
15:17:08 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
15:18:04 <iridescent> yeah
15:18:05 <iridescent> i see
15:19:15 dustingetz joins (~textual@pool-173-49-123-198.phlapa.fios.verizon.net)
15:19:40 dunkeln joins (~dunkeln@94.129.65.28)
15:22:49 bhrgunatha joins (~bhrgunath@2001-b011-8011-27f4-086a-6ad6-9ae6-0f90.dynamic-ip6.hinet.net)
15:23:09 fendor_ is now known as fendor
15:24:22 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
15:24:34 <pavonia> nitrix: 9 values was correct, it's Foo x Foo
15:25:48 <nitrix> Oh, thank god. I was wondering if I was losing it while explaining that, haha.
15:25:48 × tv quits (~tv@user/tv) (Read error: Connection reset by peer)
15:26:44 <nitrix> So yeah, 3x3=9 vs 3+3=6, as an example of why the product `F Foo Foo` differs from the sum `F1 Foo | F2 Foo`.
15:26:53 <iridescent> got it
15:27:00 <iridescent> i guess product is like taking combinations
15:27:04 <nitrix> Yep.
15:27:29 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
15:27:55 × bleloch_ quits (bleloch@gateway/vpn/protonvpn/bleloch) (Remote host closed the connection)
15:28:40 × rk04 quits (~rk04@user/rajk) (Ping timeout: 245 seconds)
15:28:50 <bmo> janus, thanks for the response. guess I'll stick to servant then, the auth "issue" might turn out to be none as I am free of requirements there
15:29:02 <nitrix> And sum would be enumerating things (which could themselves be combinations).
15:29:48 <nitrix> It's all very layman, just to give an intuition.
15:29:52 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1)
15:30:24 <iridescent> yeah i see
15:31:15 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
15:32:12 rk04 joins (~rk04@user/rajk)
15:32:28 × rk04 quits (~rk04@user/rajk) (Client Quit)
15:35:02 fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
15:35:53 × dustingetz quits (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:36:11 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
15:37:04 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
15:38:11 × pe200012_ quits (~pe200012@58.248.179.150) (Remote host closed the connection)
15:38:37 pe200012_ joins (~pe200012@120.236.162.19)
15:39:43 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
15:39:47 × fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds)
15:40:30 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit)
15:40:46 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
15:40:58 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit)
15:41:55 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
15:42:00 teaSlurper joins (~chris@81.96.113.213)
15:42:10 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit)
15:43:51 tv joins (~tv@user/tv)
15:43:57 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
15:45:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:45:49 Guest9 joins (~Guest9@103.240.169.98)
15:46:33 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
15:47:15 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds)
15:49:01 <bmo>
15:49:21 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
15:50:39 aerona joins (~aerona@2600:6c54:4600:f300:dd2b:2b3b:fbbd:f67)
15:51:29 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
15:52:50 zmt00 joins (~zmt00@user/zmt00)
15:54:21 <kaol> "cabal build all" tells me that things are up to date even though I did changes to a source file. How can I give it a nudge? (Short of rm -rf dist-newstyle.)
15:55:08 nerdypepper joins (~nerdypepp@user/nerdypepper)
15:56:13 <quintasan> Did anyone manage to produce fully static binary of Scotty + PostgreSQL web app?
15:56:53 <kaol> With cabal-install 3.0.0.0.
15:57:21 × Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 264 seconds)
15:57:23 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
15:57:44 teaSlurper joins (~chris@81.96.113.213)
15:57:49 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:58:28 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
15:58:43 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
15:59:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
15:59:21 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:59:43 <quintasan> kaol: hmm, any details on how to do this? I tried doing that in an alpine container but never managed to get it working due to missing symbols when linking
16:00:41 × Guest9 quits (~Guest9@103.240.169.98) (Ping timeout: 272 seconds)
16:01:03 <kaol> quintasan: Sorry for the confusion, I wasn't responding you but adding details to my own question.
16:01:07 × Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:01:20 <quintasan> bah, silly me
16:01:33 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
16:01:55 <quintasan> kaol: wouldn't touching the file make cabal think it's time to rebuild?
16:02:30 <geekosaur> I've found bugs in cabal < 3.4, might want to upgrade it
16:02:31 <kaol> Yes, but it's not happening and I'm trying to figure out why.
16:03:26 Bartosz joins (~textual@24.35.90.211)
16:07:00 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 245 seconds)
16:09:05 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
16:09:21 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:10:00 machinedgod joins (~machinedg@24.105.81.50)
16:10:53 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
16:12:01 <kaol> Does new style cabal even look into source files or does it do checking by package versions only?
16:12:37 bartavelle parts (~bartavell@2001:41d0:1:744c::1) ()
16:13:00 × alx741 quits (~alx741@181.196.69.243) (Quit: alx741)
16:13:12 <geekosaur> it looks at source files associated with your project, package versions only for dependencies outside of your project
16:13:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
16:14:40 alx741 joins (~alx741@181.196.69.243)
16:14:58 <kaol> If I have a cabal.project file at the project root and the change is to a package in a subdirectory, does it see changes to its sources? Is it considered "outside of project" for this?
16:16:30 <geekosaur> I think it won't look if it's listed as a dependency, as opposed to being directly part of your project
16:18:45 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:18:59 Sgeo joins (~Sgeo@user/sgeo)
16:19:37 <kaol> I guess I'll just have to reorganize my project and not use packages internally. If that's what it takes to make incremental builds work.
16:20:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
16:22:28 jakalx joins (~jakalx@base.jakalx.net)
16:22:33 dunkeln joins (~dunkeln@94.129.65.28)
16:24:50 <kaol> This feels like a step down from using sandboxes.
16:28:10 <maerwald> I liked them too
16:28:17 <maerwald> it's a clean API
16:28:35 Guest9 joins (~Guest9@103.240.169.98)
16:28:37 <maerwald> well... s/API/user interface/
16:28:44 allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com)
16:28:54 <maerwald> doesn't cargo do the same still?
16:29:50 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 272 seconds)
16:31:30 ozataman joins (~ozataman@71.190.112.58)
16:31:33 allbery_b is now known as geekosaur
16:31:41 <kaol> I think I'll go with v1 commands for now. I may have to start sending patches if I want to stick to my workflow in a few years.
16:33:52 econo joins (uid147250@user/econo)
16:35:17 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
16:35:34 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
16:35:55 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
16:43:07 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds)
16:43:43 alanz__ joins (~user@host86-135-160-135.range86-135.btcentralplus.com)
16:45:33 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:47:18 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
16:47:32 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
16:50:14 <teaSlurper> hey
16:53:15 × pe200012_ quits (~pe200012@120.236.162.19) (Ping timeout: 272 seconds)
16:53:32 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
16:53:47 × derelict quits (~derelict@user/derelict) (Ping timeout: 268 seconds)
16:55:38 lbseale joins (~lbseale@user/ep1ctetus)
16:57:07 <teaSlurper> in a haskel, cabal project, what's best way to execute/run individual files?
16:57:21 <teaSlurper> right now i have 1 main file under exe folder
16:57:32 <teaSlurper> and i used cabal run to execute that
16:58:35 <Rembane> teaSlurper: Add another executable section to your cabal file
17:00:03 Guest71 joins (~Guest71@176.232.106.148)
17:01:38 grepcake joins (~artyom@77.234.203.54)
17:02:58 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:03:15 × chexum quits (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection)
17:05:22 Guest71 parts (~Guest71@176.232.106.148) ()
17:06:03 chexum joins (~chexum@gateway/tor-sasl/chexum)
17:07:34 × grepcake quits (~artyom@77.234.203.54) (Quit: Konversation terminated!)
17:12:25 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds)
17:13:11 carr joins (~user@2601:645:4000:db:5c42:3046:45d6:af66)
17:13:29 × iridescent quits (~iridescen@41337027.cst.lightpath.net) (Quit: Client closed)
17:13:59 Erutuon joins (~Erutuon@user/erutuon)
17:14:40 carr parts (~user@2601:645:4000:db:5c42:3046:45d6:af66) ()
17:15:06 mc47 joins (~mc47@xmonad/TheMC47)
17:15:15 × mc47 quits (~mc47@xmonad/TheMC47) (Client Quit)
17:15:34 mc47 joins (~mc47@xmonad/TheMC47)
17:16:30 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:18:21 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
17:18:29 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:18:38 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
17:23:55 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
17:24:08 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
17:24:28 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
17:24:34 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
17:24:44 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
17:26:51 × jasonm quits (~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
17:26:54 Obo parts (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (WeeChat 2.8)
17:27:20 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
17:27:23 lavaman joins (~lavaman@98.38.249.169)
17:27:28 fjmorazan_ is now known as fjmorazan
17:28:00 <sm[m]> bmo: yesod and servant are still the most popular and probably the best out there - one or the other will be a better fit depending on your needs.
17:28:03 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
17:28:03 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:28:18 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
17:28:52 jumper149 joins (~jumper149@80.240.31.34)
17:29:17 <sm[m]> though, what do you mean by "non-static" ? If you are building largely client-side apps, miso might be a candidate
17:30:01 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
17:30:27 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
17:30:28 <jumper149> Hi, is it possible to somehow derive MonadTrans for a newtype over 2 transformers, for example: `newtype MyT m a = MyT (ExceptT String (ReaderT Int m) a) deriving stock (...) deriving MonadTrans via ???`
17:32:11 × aerkenemesis quits (~aerkeneme@c83-252-164-58.bredband.tele2.se) (Quit: Client closed)
17:32:31 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
17:33:01 <geekosaur> what goes wrong if you just derive it normally with GND?
17:33:05 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
17:33:58 <c_wraith> I don't think you can GND it, because it's two layers
17:34:22 <c_wraith> But you can just write the instance by hand, it's literally lift = MyT . lift . lift
17:34:32 <jumper149> yeah GND doesn't work here
17:34:45 <jumper149> c_wraith: Surely I can, but it would be neet :p
17:35:26 <jumper149> I have it in mind for MonadTransControl too.
17:35:38 <jumper149> There it's a bit more cumbersome to write instances
17:35:55 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
17:36:04 <jumper149> And this https://hackage.haskell.org/package/monad-control-1.0.2.3/docs/Control-Monad-Trans-Control.html#v:defaultLiftWith2
17:36:11 <jumper149> ^ doesn't work anymore with GHC 9
17:36:16 mc47 joins (~mc47@xmonad/TheMC47)
17:36:20 × mc47 quits (~mc47@xmonad/TheMC47) (Client Quit)
17:36:21 × hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Ping timeout: 264 seconds)
17:36:43 <jumper149> So I was thinking, maybe it's worth to use deriving via
17:37:05 hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
17:40:28 mc47 joins (~mc47@xmonad/TheMC47)
17:41:43 × bhrgunatha quits (~bhrgunath@2001-b011-8011-27f4-086a-6ad6-9ae6-0f90.dynamic-ip6.hinet.net) (Quit: Leaving)
17:42:01 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
17:42:31 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:46:29 <jumper149> I actually just came up with this: http://ix.io/3pQs
17:47:13 <jumper149> Would enjoy seeing some opinion on that :)
17:47:32 ent joins (entgod@kapsi.fi)
17:49:20 derelict joins (~derelict@user/derelict)
17:50:11 × matsurago quits (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving)
17:52:03 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
17:53:11 <jumper149> and it even works for MonadTransControl http://ix.io/3pQu
17:54:37 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:55:37 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
17:56:09 dunkeln joins (~dunkeln@94.129.65.28)
17:56:10 × shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
17:57:44 beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net)
17:59:02 × jaevanko quits (~jaevanko@2600:1700:1330:2bef:d2ba:7480:75b7:9b34) (Quit: Leaving)
18:03:34 × evie1 quits (~evie@188.27.66.89) (Quit: WeeChat 2.7.1)
18:08:37 × qbt quits (~edun@user/edun) (Ping timeout: 272 seconds)
18:09:04 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
18:09:19 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
18:12:46 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
18:13:22 × Guest9 quits (~Guest9@103.240.169.98) (Quit: Connection closed)
18:13:53 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:14:17 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
18:14:36 mc47 joins (~mc47@xmonad/TheMC47)
18:16:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:20:00 charukiewicz_ is now known as charukiewicz
18:20:09 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
18:20:48 teaSlurper joins (~chris@81.96.113.213)
18:20:54 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:24:33 wonko joins (~wjc@62.115.229.50)
18:25:06 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 252 seconds)
18:25:11 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
18:25:11 × Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:28:02 <dminuoso> jumper149: Why wouldn't it work with GHC 9 anymor
18:28:04 × P1RATEZ quits (piratez@user/p1ratez) ()
18:28:40 <dminuoso> jumper149: Is that even worth it? What are you saving?
18:28:43 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
18:29:05 <dminuoso> It seems to me handrolling the MonadTrans/MonadTransControl instance is less code and clearer.
18:29:24 chaosite joins (~chaosite@user/chaosite)
18:30:46 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:30:53 <jumper149> https://github.com/basvandijk/monad-control/issues/52
18:31:30 <jumper149> dminuoso: The reason is simplified subsumption: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption
18:31:35 <dminuoso> jumper149: You should be fine with eta-extending it.
18:31:54 <dminuoso> The first two arguments, that is.
18:32:01 <jumper149> I tried
18:32:05 <dminuoso> Both?
18:32:12 <dminuoso> Or.. the third actually. Sorry
18:32:24 <jumper149> Say exactly what you mean and I'll test it
18:32:35 <dminuoso> Try eta-extending each argument.
18:33:19 <jumper149> I think the problem lies in the `Run` type alias, which can't be unified with `RunDefault2`
18:34:06 <jumper149> dminuoso: I tried pretty hard. But I am not absolutely sure, whether it's really not possible
18:34:17 <dminuoso> jumper149: So Im a bit fuzzy on the details, but with the new simplified subsumption, you can make stuff compile again when you eta-expend
18:34:26 <dminuoso> I think something along the lines of":
18:34:33 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
18:34:40 <dminuoso> liftWith f = defaultLiftWith2 RecolorXT unRecolorXT (\x -> f x)
18:36:07 jao joins (jao@gateway/vpn/protonvpn/jao)
18:36:25 × mc47 quits (~mc47@xmonad/TheMC47) (Quit: Leaving)
18:37:22 <jumper149> dminuoso: Wow, that actually seems to work
18:37:57 dan joins (~AdminUser@host86-167-185-202.range86-167.btcentralplus.com)
18:41:38 dustingetz joins (~textual@pool-173-49-123-198.phlapa.fios.verizon.net)
18:42:58 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
18:43:15 × dan quits (~AdminUser@host86-167-185-202.range86-167.btcentralplus.com) (Ping timeout: 252 seconds)
18:43:52 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
18:43:54 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
18:44:08 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
18:44:19 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
18:44:44 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
18:44:44 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
18:44:52 <jumper149> dminuoso: Can you explain to me, how you knew, that is the exact place which needed eta-expansion?
18:46:32 fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6)
18:46:41 <dminuoso> You told me, I just guessed.
18:46:49 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
18:47:06 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
18:48:43 dhil joins (~dhil@80.208.56.181)
18:50:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
18:50:46 <dminuoso> jumper149: I actually wonder whether `liftWith f = defaultWithWith2 RecolorXT unRecolorXT f` is even enough
18:51:18 × fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Ping timeout: 264 seconds)
18:51:43 <jumper149> dminuoso: http://ix.io/3pQS
18:51:51 <jumper149> ^ That's what you get then
18:52:01 <dminuoso> Ah hold on I found the relevant part
18:52:11 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption
18:52:15 <dminuoso> This seems to be the second example
18:52:20 <dminuoso> f' :: (Eq a, Eq b) => a -> b -> b
18:52:23 <dminuoso> g' :: (Eq p => p -> Eq q => q -> q) -> Int
18:52:25 <dminuoso> etc
18:52:36 <jumper149> hm
18:52:38 <jumper149> ?
18:53:07 <dminuoso> Like I said, Im a bit fuzzy on the details. I have a very sketchy understanding what deep-skolemnization even is.
18:54:02 × dustingetz quits (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
18:54:44 <jumper149> Ah yeah, I see why you think the second example fits right here. Basically the type alias `Run` brings this additional context.
18:54:46 <jumper149> @Run
18:54:48 <lambdabot> <no location info>: error: not an expression: ‘’
18:55:00 <jumper149> https://hackage.haskell.org/package/monad-control-1.0.2.3/docs/Control-Monad-Trans-Control.html#t:Run
18:55:30 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
18:56:09 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
18:57:08 <dminuoso> I guess the confusion is just based on not even understanding how higher rank type inference works. It almost seems as if you have to read SPJs `Practical Type Inference for Arbitrary-Rank Types`
18:57:21 <dminuoso> That paper is outside of my reach.
18:58:15 <dminuoso> I find it a bit sad that the GHC manual does not elaborate on what "relies on deep skolemization" even means.
18:58:55 Patrick joins (~Patrick@pool-100-36-167-42.washdc.fios.verizon.net)
18:59:18 <Rembane> Could that be considered a bug?
18:59:45 <dminuoso> A documentation bug, yes.
19:00:31 Patrick is now known as Patrick157
19:01:51 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:02:11 <dminuoso> jumper149: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#deep-instantiation
19:02:13 <dminuoso> Mmm
19:02:34 <dminuoso> jumper149: Or is this a case of deep instantiation? Im beginning to suspect this is the case
19:03:31 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:03:45 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:03:50 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:04:19 <shapr> OH SURE
19:04:26 <shapr> dmwit: hi, how's life?
19:05:46 <dmwit> hi shapr!
19:05:51 <jumper149> dminuoso: That may be right. I honestly don't understand it enough to argue for one or the other.
19:06:03 <dmwit> Recently I've been being bad at computer vision! It's great.
19:06:13 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:06:17 <dmwit> What's life like in shapr-land?
19:06:28 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:07:04 <shapr> dmwit: that sounds exciting, are you building some fun projects with computer vision?
19:07:14 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:07:28 <shapr> dmwit: just got the second moderna shot, so I can spend time with people again
19:07:29 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:08:00 <dmwit> grats!
19:08:17 dispater joins (~dispater@mail.brprice.uk)
19:09:30 × dispater quits (~dispater@mail.brprice.uk) (Client Quit)
19:09:35 <dmwit> I've been staying quarantined-ish even though I'm vax'd. But I'm hopeful that we get to a point where I feel like we've solved it as a country rather than just personally having solved it.
19:10:45 <dmwit> I'm excited for people that are choosing to rejoin society, too. ^_^
19:10:51 dispater joins (~dispater@mail.brprice.uk)
19:10:57 <shapr> yeah, I agree
19:11:23 <shapr> last weekend (or the one before?) I learned how to package a simple C application with nix, and then how to add that as an overlay to my system
19:11:34 <shapr> this weekend I'm trying to learn how to write a plugin for haskell-language-server
19:11:55 <dmwit> oh, I should learn HLS at some point
19:12:01 <dmwit> I have like three bookmarks. =P
19:12:07 <shapr> at my job it's easy to lose track of which language pragmas are in scope, so I figured I'd try to make a code lens that displays all implicit pragmas at the top of the file
19:12:14 <maerwald> dmwit: new hls release is on the way
19:12:17 <dminuoso> jumper149: My rough understanding of the change is: GHC used to do this eta-expansion implicitly in order to elaborate said programs into Core. But eta-expansion changes semantics (because in WHNF `\x -> undefined x` will not bottom out, while `undefined` will)
19:12:33 <shapr> dmwit: oh if you're not using it, my example file may help some: https://github.com/shapr/hlsexamples/blob/main/src/Examples.hs#L38
19:12:45 × hseg quits (~gesh@185.120.126.41) (Quit: WeeChat 3.1)
19:12:55 <shapr> I need to update that example file for hls 1.1
19:13:09 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
19:13:19 <shapr> cdsmith and I were pairing on something yesterday and I got to demonstrate some of the amazing wingman features.
19:13:31 polyphem joins (~polyphem@2a02:810d:640:776c:12c4:e67d:3560:5ad7)
19:13:41 <dminuoso> jumper149: So GHC changed the RankNTypes type inference that this would not happen again (avoiding implicitly changing program semantics, and simplifying implementation) - but that means if you still want these things that automatically inferred, you have to do this eta-expansion explicitly (and thus there's no change in semantics anymore)
19:14:11 <shapr> anyway, I'm slowly working my way through the hls plugin tutorial, happily a code lens is the first example.
19:14:23 × sm2n quits (~sm2n@user/sm2n) (Ping timeout: 268 seconds)
19:14:28 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
19:14:29 <shapr> my mvp is "show all enabled language pragmas"
19:14:53 <dminuoso> I admit, this is all very handwaving.
19:15:41 <shapr> I have a bunch of other plugin/feature ideas, like "rewrite all imports to implicit on load, rewrite all imports to explicit on save"
19:15:43 <maerwald> shapr: I wanted to do a code lens that shows function arity on hover (bc that is important for inlining and can be relevant for memory leaks as well)0000000
19:15:55 <shapr> maerwald: oh that's a cool idea!
19:15:56 <maerwald> oops, my qmk config needs fixing
19:16:34 <jumper149> dminuoso: The `undefined` example and the fact that it's a change to the type inference with RankNTypes is already quite a bit eye-opening to me :)
19:17:57 <dminuoso> jumper149: type system wise, it was exactly 4 parts (covariante of function types, contravariance of function types, deep skolemisation and deep instanstation) that caused this implicit eta-extension. In the GHC proposal these things were just yanked without replacement.
19:18:11 <shapr> another idea I have is to use the "find references" feature to look only in the thisproject:test section to run tests that reference a function after the file is saved, and add some kind of syntax highlighting to show the test status.
19:18:20 <dminuoso> It's just that I cant match what these exactly mean or when GHC would use them. You'd have to read the paper I cited earlier.
19:19:16 × dispater quits (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.1 - https://znc.in)
19:19:38 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
19:19:39 dispater joins (~dispater@user/brprice)
19:19:46 <maerwald> shapr: I'd want it for right-click->run-tests... "on save" might be a bit excessive, depending on the tests
19:19:53 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:20:09 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:20:24 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:20:31 <maerwald> I think some IDEs have visual buttons for "you can run a test here"
19:20:36 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:20:38 <maerwald> not sure if that's integratable with hls
19:21:08 <dminuoso> jumper149: Luckily, all of this means: Without contra/covariance of function types, deep skolemisation and instanation - you can still make all programs type check if you apply the eta-extension manually in the exact place that GHC would have done it implicitly. Because once you eta-expand, you dont need these 4 things anyhow.
19:21:19 <maerwald> first, you'd need *file locations* that can run tests, I guess
19:21:22 × dispater quits (~dispater@user/brprice) (Client Quit)
19:21:43 dispater joins (~dispater@user/brprice)
19:21:43 <maerwald> and then a way to tell HLS: "run test for this file location"
19:22:18 esclear is now known as esclear[m]
19:22:36 <maerwald> this might very well be outside of LSP protocol scope...
19:22:45 esclear[m] is now known as esclear[i]
19:22:58 <maerwald> so clients would need to support it manually
19:23:36 <janus> when was (<>) added to prelude? i am having little log googling it
19:24:16 <janus> *luck
19:24:43 <Clint> was it part of AMP?
19:24:48 <janus> the ghc wiki says it was added to base in ghc 8, but that doesn't mean it went directly into the prelude, i imagine
19:24:50 <davean> https://hackage.haskell.org/package/base-4.15.0.0/changelog see?
19:25:00 <davean> Theres a changelog that lists this specificly
19:25:10 <janus> aaah right! i thought it would be older
19:25:30 <janus> wait, it says 4.11 from March 2018. so it is quite old
19:25:37 × dispater quits (~dispater@user/brprice) (Client Quit)
19:25:55 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:25:55 <janus> weird how i am just getting this error now with ghc 9
19:26:07 <maerwald> means you're getting older as well
19:26:58 dispater joins (~dispater@user/brprice)
19:29:13 <shapr> maerwald: it'd be interesting to try
19:29:21 <shapr> maerwald: certainly blog post worthy
19:29:32 <shapr> I still don't understand enough lsp details to know what might not work
19:29:55 <maerwald> there are many things where you need to go beyond lsp protocol
19:30:06 <maerwald> e.g. "type of expression" isn't currently supported by the protocol
19:30:11 <maerwald> but we really want it, right?
19:30:43 lavaman joins (~lavaman@98.38.249.169)
19:31:10 <maerwald> https://github.com/microsoft/language-server-protocol/issues/377
19:31:35 × xsperry quits (~as@user/xsperry) (Remote host closed the connection)
19:32:28 xsperry joins (~as@user/xsperry)
19:33:03 <maerwald> I think the main thing would be: make it work in VSCode
19:33:43 <shapr> I would certainly want to be able to select part of my buffer and get the type of that selection
19:34:08 <shapr> I do that manually by factoring out that chunk to its own name and looking at that.
19:34:27 <shapr> but most people I've seen try to hover over the end parentheses to get the type of the parens.
19:34:38 <maerwald> right, because type computation is hard... I might know what `fmap` is, but not `fmap . fmap . fmap . fmap` :)
19:35:29 <shapr> yeah, I have that question often
19:36:57 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: Lost terminal)
19:37:27 <shapr> I like that so many things in Haskell are compositional, I just wish laziness weren't the big exception
19:39:32 × alanz__ quits (~user@host86-135-160-135.range86-135.btcentralplus.com) (Remote host closed the connection)
19:40:27 <maerwald> I haven't made up my mind... I think having Laziness on type level is interesting, but I can't say that I've tried enough Idris to judge the ergonomics
19:40:32 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Quit: Reconnecting)
19:40:39 <davean> shapr: I'm confused by that statement - it seems laziness is the most compositional
19:40:47 unclechu joins (~unclechu@2001:470:69fc:105::354)
19:40:49 <maerwald> davean: you never know when it breaks
19:41:34 <maerwald> oh, you accidentially kept a reference for later, now it doesn't fuse and blows up your ram
19:42:30 <dminuoso> Before I sketch it out, tyfam application disappear in generics right?
19:42:33 <dmwit> Is strict superior there?
19:42:36 <shapr> Haskell is still my favorite language by far, but it's good to be aware of the scary bits.
19:42:39 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
19:42:49 <maerwald> dmwit: no, but what if you had proof of laziness?
19:43:04 <davean> maerwald: I think you just explained it as compositional to say it wasn't. I'm confused - what composition rule do you expect?
19:43:07 <shapr> I wish the type could somehow describe the laziness of a function.
19:43:28 <janus> shapr: did you see how it works in idris?
19:43:33 <shapr> janus: I have not!
19:43:45 <shapr> does idris express laziness or strictness on the type level?
19:43:46 <Rembane> Or that there was some part of compilation or some other static tooling that automatically helped with it.
19:43:49 <davean> shapr: the type does, the function is lazy. The question is what will be pulled through when you force it.
19:43:50 <dminuoso> shapr: `A -> B` with A having some fields as strict, others not. How would you expect this to be communicated?
19:43:53 <janus> shapr: http://docs.idris-lang.org/en/latest/tutorial/typesfuns.html#laziness
19:43:57 P1RATEZ joins (piratez@user/p1ratez)
19:44:13 <shapr> hello P1RATEZ, are you learning Haskell?
19:44:23 <maerwald> davean: if you combine two lazy functions, they should *generally* fuse. That's not a very formal description, but is easily violated in haskell... very easily.
19:44:25 <P1RATEZ> i was a long time ago
19:44:37 <davean> maerwald: fusion and laziness are seperate
19:44:38 <maerwald> davean: depending on code and even GHC version
19:44:39 <shapr> P1RATEZ: aha! so you're back to try the lambda lifestyle again?
19:44:41 <maerwald> davean: yes
19:44:48 <davean> maerwald: so why are you talking about fusion?
19:44:58 <maerwald> davean: it's a way to describe when you broke laziness
19:45:18 <davean> I think of fusion as a way of talking about code optimization by replacement
19:45:19 <shapr> P1RATEZ: are you using ghcup to install the latest version of the compiler and the lsp plugin?
19:45:31 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
19:45:48 <P1RATEZ> i don't have it installed at the moment but i could give it a shot
19:45:56 <P1RATEZ> having troubles?
19:46:16 <shapr> P1RATEZ: no, just wanting to help someone who's jumping into the lambda lifestyle again
19:46:17 × teddyc quits (theodorc@cassarossa.samfundet.no) (Quit: WeeChat 2.3)
19:46:20 <davean> maerwald: the problem with fusion is it implicitly runs functions on your code, but thats true of strict *or* lazy
19:46:22 <maerwald> davean: well... "purity" was also defined in terms of evaluation strategy equivalence... so I think defining laziness semantics in terms of fusion could be a reasonable attempt
19:46:28 teddyc joins (theodorc@cassarossa.samfundet.no)
19:46:30 <davean> maerwald: the fusion issue is entirely independent
19:46:40 <maerwald> not independent
19:46:48 <maerwald> but there are more problems to fusion than laziness
19:47:34 <maerwald> I'm not writing a paper about it :)
19:47:44 <shapr> maerwald, davean : perhaps we can make up "Big L notation" that describes the space usage per number of inputs?
19:47:52 <shapr> L for laziness? :-)
19:48:31 <davean> shapr: so in the worst case you're talking about something the size of computability - but few sane functions will hit that really.
19:49:10 <davean> maerwald: So fusion can cause you to force *less* stuff than the non-fused code, but shouldn't allow you to force more for correctly implimented fusion
19:49:54 <maerwald> My point is that rules for maintaining laziness are similarly obscure as rules for triggering fusion
19:50:07 <davean> But not in terms of bounds
19:50:34 × yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Quit: C-x C-c, Shutting down OS...)
19:50:46 <maerwald> Most ppl, I'm certain, have no intuition about which of their functions are really properly lazy... and the only time you really develop this intuition is... when you deal with fusion
19:50:59 <davean> I do not deal with fusion and I do
19:51:08 <davean> so you're very much clearly showing some bias I'm unfamiliar with
19:51:18 <shapr> davean: we could run a poll
19:51:31 × Xnuk quits (~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in)
19:51:42 <shapr> or we could put up a quiz where people see the source code and then say which variables are strict or lazy or whatnot.
19:51:48 Xnuk joins (~xnuk@vultr.xnu.kr)
19:51:49 <davean> mmm
19:51:52 <maerwald> "understanding laziness" is an effort of fixing memory leaks in your haskell code :p
19:51:56 remedan joins (~remedan@balak.me)
19:51:59 <davean> maerwald: no it isn't
19:52:06 <davean> maerwald: its an effort to extract performance
19:52:09 <maerwald> well, I have very different experience
19:52:10 <dmwit> One thing to keep in mind is that if you are using Haskell professionally, there may well be people on the project who are not as intimately familiar with Haskell as we are.
19:52:30 <shapr> true that
19:52:41 <dmwit> So I agree that there is something to be said for programming in a way that leaves things robust, even if that means you don't use cool language features.
19:52:42 <davean> maerwald: laziness lets us do better than the general performance bounds.
19:52:55 <maerwald> when you've been paying for 64GB ram amazon instances, because you didn't use StrictData in the right places... then you start to have a somewhat different opinion
19:53:31 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:53:31 <maerwald> (and that after you hired expensive haskell consultants, who couldn't find it either)
19:53:38 <shapr> I bought a laptop with 128GB ram, so much easier!
19:53:38 <davean> I think the largest Haskell programs I have are ~12GiB and thats because I load the entire dataset into memory of a few million node graph for performance.
19:53:45 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 272 seconds)
19:54:03 allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com)
19:54:31 <davean> and even then about 2GiB of it is a cache
19:54:36 kayprish_ joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:54:42 <shapr> I've still eaten far more than 128gb when I wrote a space leak. It took twenty seconds to eat my ram, and ten seconds to wait for the kill command to stop the problem.
19:54:45 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds)
19:54:48 kayprish1 joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
19:55:07 allbery_b is now known as geekosaur
19:55:26 <maerwald> however... I can't say if that platform would have been truly better with "strict by default"... but I can say that debugging laziness issues is very non-trivial in haskell, and I'm wondering if the Idris approach would have helped
19:55:30 <maerwald> I'm not sure
19:55:54 <davean> maerwald: your experience doesn't at all match mine
19:56:43 <davean> But your perspective and take on the problem doesn't either
19:56:50 <davean> we clearly come at this from very different directions
19:57:24 <maerwald> davean: https://github.com/yesodweb/wai/pull/752#issuecomment-501531386
19:57:28 <maerwald> I agree with Kazu
19:57:47 <shapr> I really enjoy laziness for many solutions
19:57:55 <shapr> I just wish it were somehow more compositional
19:57:57 <davean> maerwald: yah well, lets talk about warp ...
19:58:01 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:58:01 × kayprish_ quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:58:01 × kayprish1 quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
19:58:06 <davean> maerwald: that code base is a mess and I had to fork it
19:58:12 <maerwald> :p
19:58:20 <davean> It doesn't even manage exceptions!
19:58:27 <davean> It doesn't work in production IME
19:58:32 <maerwald> davean: guess what... I had to fork `tar`, because it's a broken mess and even after forking doesn't work correctly
19:58:33 <davean> but it didn't take long to fix
19:58:41 <maerwald> part of it being over-use of "lazy patterns"
19:58:44 <davean> maerwald: right, its a mostly-rewrite
19:58:50 <davean> maerwald: yes, that is a problem in tar
19:59:00 <maerwald> while it should use a proper streaming library
19:59:01 <davean> maerwald: thats actually ... yah, tar is a fuckfest
19:59:08 <davean> yes, I have a version thatstarts to
19:59:10 <maerwald> see, we finally agree :D
19:59:14 <davean> this is actually a security bug
19:59:24 <davean> tar uses laziness for a dumb reason
19:59:27 <davean> and they wouldn't fix it
19:59:30 <davean> so now I get to
19:59:39 <davean> its better than maintaining my own warp!
19:59:44 <maerwald> yes... if you have a 200mb file in the tar archive, you'll get that 200mb file loaded into memory
19:59:50 <davean> no, no
19:59:58 <davean> you can use tar in constant space for arbitrary files
19:59:58 <maerwald> yes
20:00:01 <davean> I've done that a lot
20:00:01 <maerwald> no
20:00:05 <davean> No, I have
20:00:09 <maerwald> I don't believe you!
20:00:14 <davean> I've streameed tape through it
20:00:24 <maerwald> (I'm talking about unpack)
20:00:25 <davean> but you can force it to load all the data
20:00:50 <davean> Oh unpack?
20:00:51 <maerwald> https://github.com/haskell/tar/issues/57
20:00:55 <davean> No you have to use the base combinators
20:00:56 <maerwald> yes, it leaks file size
20:01:05 <davean> Right
20:01:07 <davean> unpack is broken
20:01:14 <maerwald> yeah... I fixed it with streamly
20:01:15 <davean> You need to use the folds
20:01:29 <maerwald> but then I thought... why use tar at all, I'm gonna re-implement it in streamly
20:01:46 <maerwald> but then I was too lazy and used `libarchive`
20:02:00 <maerwald> which now exposed me to tons of c2hs errors
20:02:10 <maerwald> you can't win :)
20:02:31 <davean> So you can use the folds interface just fine of tar
20:02:42 <shapr> I kinda want to start a hackathon to add more tests to the most used libraries on hackage
20:02:49 <shapr> too bad I won't be at zurihac :-(
20:03:04 <maerwald> shapr: why not?
20:03:07 <davean> shapr: Yah, we actually signed up for the UNIX tests as an OSS project to run the ACTUAL standards tests on tar
20:03:28 <Rembane> shapr: If you start a distancehackathon wtih that purpose I'm in!
20:03:55 <davean> shapr: you've seen my test coverage :-p
20:03:58 <shapr> maerwald: I'm driving to see my family this weekend, emergency things that have to be done
20:04:10 <davean> shapr: I tend to give up when I start finding bugs in the linux kernel via my unit tests
20:04:15 <shapr> cdsmith showed me hpc yesterday, somehow I've never seen it before!
20:04:28 <shapr> I'd like to see hpc coverage for all the libraries, in reverse dependcy order.
20:04:30 <davean> shapr: wait, really? No you have
20:04:40 <davean> shapr: because you've seen my coverage
20:04:51 <shapr> davean: might have been years ago?
20:04:55 × juhp quits (~juhp@128.106.188.66) (Ping timeout: 245 seconds)
20:04:56 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:04:58 <davean> Sure, it was in like 2018
20:05:09 <shapr> I must have forgotten
20:05:40 <davean> I've done coverage with you though when we paired
20:05:48 shapr shrugs
20:06:09 <davean> shapr: cabal wants hpc to be something it isn't :(
20:06:19 <davean> That entire tree is such a mess
20:06:32 <shapr> I think it'd be nice to have a tests hackathon
20:07:01 <davean> shapr: I know I specificly went over how I did the tests in 'miss' with you BTW
20:07:21 <davean> getting a fast test suite with high coverage
20:07:25 <davean> I remember that specificly
20:07:36 juhp joins (~juhp@128.106.188.66)
20:07:40 <davean> talking about testing methedologies in Haskell
20:07:55 <davean> shapr: you know theres laziness testing libraries, right?
20:08:16 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
20:08:25 <shapr> davean: I think I've heard of such
20:08:28 <davean> actually, maerwald and dminuoso - if you do work with people who don't understand the details, have you tried specifying and using inspection testing?
20:09:08 × hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 252 seconds)
20:10:26 hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
20:10:50 <maerwald> I've not used hpc that extensively
20:11:44 machinedgod joins (~machinedg@24.105.81.50)
20:13:01 <maerwald> my real world problem are IO probles (e.g. in ghcup... some file operation blowing up on windows 7, bc some registry key is not set)
20:13:04 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:13:11 <davean> maerwald: its not very loved.
20:13:17 <davean> maerwald: well, thats what hpc is good for though
20:13:33 <maerwald> given that you HAVE a windows 7 machine :p
20:13:37 <davean> maerwald: I think you may not have read closely enough? hpc is coverage, it tells you what code is used. inspection testing is entirely seperate
20:13:47 <davean> maerwald: I mean thats what CI is for?
20:14:02 <davean> maerwald: but thats actually not the problem
20:14:07 <maerwald> davean: yeah, except half of our runners are broken due to docker right now
20:14:10 <davean> not having a W7 machine is what hpc helps with
20:14:13 <maerwald> but I'm going offtrack
20:14:19 <davean> it shows you *haven't checked that code path on any machine*
20:14:38 <maerwald> davean: I'm not sure that would catch it... bc I do run that codepath on Windows 10
20:14:42 <maerwald> it just behaves different there
20:14:56 <davean> maerwald: you sure? you sure there isn't a branch not taken on W10?
20:15:30 <maerwald> in MY code all paths are taken
20:15:35 <maerwald> dependencies, ffi etc, I dunno
20:15:47 <davean> Yah well how far you push coverage down is a thing
20:16:01 <maerwald> So what I'm more interested in is testing behavior
20:16:03 <davean> I've been pushing coverage into the kernel for some of my more important projects, but thats hard with Haskell
20:16:10 dunkeln joins (~dunkeln@94.129.65.28)
20:16:23 <davean> If I ever figure out a useful setup for that, I should write it up ...
20:16:26 <davean> everything I've got is shit
20:16:28 <maerwald> when half your code is about IO and file operations, behavior matters more than anything else
20:16:33 × alex3 quits (~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 272 seconds)
20:16:37 ajarmst joins (~user@S01066032b134d205.ed.shawcable.net)
20:16:56 thelounge92 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com)
20:17:20 alex3 joins (~alex3@BSN-77-82-41.static.siol.net)
20:17:31 <maerwald> I thought about using freer or whatnot to define all these operations in a DSL, which may give me more flexibility... but this might just be "cool", but not help in any way
20:17:56 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
20:18:05 <maerwald> however, you could write interpreters, that simulate e.g. windows 7
20:18:06 <davean> I've used that (with free, not freer) to get cleaner code and faster testing before
20:18:22 <maerwald> like simulate file locking, right?
20:18:25 <maerwald> that would be cool
20:18:29 × reumeth quits (~reumeth@user/reumeth) (Remote host closed the connection)
20:18:34 <davean> I actually worked on a FS crash simulator
20:18:40 <davean> Need to restart that project
20:18:53 reumeth joins (~reumeth@user/reumeth)
20:18:57 <davean> but it cuts off at the FS access level, and produces all legal FS behaviors as a tree
20:18:58 <maerwald> linux vs windows is a HUGE difference... mainly due to file locking
20:19:09 <davean> File locking was a reason for it
20:19:17 <davean> git is ... hard to get right with respect to locks
20:19:37 <davean> the design is highly inconsistent
20:19:50 <davean> maerwald: why would you choose freer?
20:19:54 <maerwald> like... self-updating an exe on linux: just remove it... on windows: 1. uh, try file rename, 2. but oh wait... needs to be atomic... so 3. are we on the same device and 4. make sure it really is atomic
20:20:11 <maerwald> davean: becase `eff` isn't ready yet
20:20:18 <maerwald> not sure it ever will
20:20:31 <davean> You're happy with the freer design though?
20:21:06 <davean> I'm much more comfortable with the 'free' approach
20:21:49 benin0366 joins (~benin@183.82.205.8)
20:21:50 <maerwald> I dunno... I also looked at polysemy and it wasn't that bad either. But from what I understand they're all slow and may even be unsound
20:22:03 <davean> Right, this is why I lean to 'free' over any of them
20:22:15 × benin036 quits (~benin@183.82.205.8) (Ping timeout: 272 seconds)
20:22:16 benin0366 is now known as benin036
20:22:26 <davean> so I'm curious what your selection approach was
20:22:36 <maerwald> "ergonomics", less technical
20:22:52 <davean> Hum, the technicalities were critical to me, interesting
20:22:53 <maerwald> my code is IO-bound
20:23:04 <davean> Its nto about performance
20:23:10 <davean> infact, its harder to get performance with 'free'
20:23:15 × dhil quits (~dhil@80.208.56.181) (Ping timeout: 245 seconds)
20:23:16 <davean> (though totally possible)
20:23:36 <maerwald> Well, this sounds like a good project for zurihac
20:24:07 <davean> but things like bracketing and how they behave in 'freer'
20:24:14 <kayprish> [A[A
20:24:23 <kayprish> [A[A[A
20:24:38 <kayprish> trx
20:24:43 <kayprish> sat
20:24:49 <maerwald> davean: I never went that deep... I just wrote some small stuff... testing it on a real program will surely be more insightful
20:24:59 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
20:25:17 <davean> maerwald: Ah, did you not take time to understand the implimentation before using it?
20:25:32 <maerwald> hell no
20:25:36 <davean> Seriously?
20:26:04 <kayprish> apologies guys, my client started messing with me
20:26:16 <davean> kayprish: we'll never forgive you but quickly forget
20:26:34 <maerwald> davean: from what I read, sometimes the authors don't understand their own implementation ;)
20:26:51 <davean> maerwald: yah, which is why I take time to consider them ...
20:27:01 <davean> like when reading a paper - redo the proofs
20:27:09 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:27:09 <davean> satisfy YOURSELF they're right, don't take the author's word
20:27:19 <davean> saves a bunch of time
20:27:20 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
20:27:33 <maerwald> that's way too serious for a "lemme see if I can improve this real quick" :)
20:28:24 <shapr> davean: have you considered writing blog posts about these not so well known tools?
20:28:24 safinaskar joins (~safinaska@109.252.90.89)
20:28:42 zeenk joins (~zeenk@188.26.30.39)
20:28:51 <safinaskar> is there some online haskell compiler with relatively new ghc?
20:29:01 <davean> shapr: Yes, though I'd NEVER think hpc wasn't well known. There the performance book over at HF thats comeing together. We had a long debate about how to handle tools.
20:29:07 <safinaskar> i tried repl.it and godbolt.org, but they have old ghc versions
20:29:23 <safinaskar> for example, -XGHC2021 seems not supported
20:29:38 <maerwald> safinaskar: I think repl.it is indeed one of the more updated ones
20:30:53 <safinaskar> maerwald: i just checked, -XGHC2021 still gives error there
20:34:05 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
20:34:34 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
20:34:46 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 244 seconds)
20:34:53 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
20:34:59 <maerwald> safinaskar: offline is not an option?
20:35:50 <safinaskar> maerwald: of course, it is. i am simply curious whether such site exists. it would speed up my productivity
20:36:24 × hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 268 seconds)
20:36:48 hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
20:36:51 <maerwald> Could be another topic for the HF...
20:37:00 dhil joins (~dhil@195.213.192.47)
20:38:22 jakefromstatefar joins (~jakefroms@2001:470:69fc:105::15ef)
20:39:35 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
20:41:09 ddellacosta joins (~ddellacos@89.45.224.48)
20:41:53 × beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds)
20:42:52 × ddellacosta quits (~ddellacos@89.45.224.48) (Remote host closed the connection)
20:43:21 ddellacosta joins (~ddellacos@89.45.224.48)
20:45:30 ddellaco_ joins (~ddellacos@89.45.224.243)
20:46:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:47:50 × ddellacosta quits (~ddellacos@89.45.224.48) (Ping timeout: 245 seconds)
20:51:03 Guest2 joins (~Guest2@154.21.21.108)
20:51:51 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
20:52:10 beka joins (~beka@104-244-27-23.static.monkeybrains.net)
20:56:31 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
20:56:45 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:57:33 hrnz is now known as hrnz[m]
20:57:50 hrnz[m] is now known as hrnz
20:58:44 teaSlurper joins (~chris@81.96.113.213)
21:01:30 × haskl quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Ping timeout: 264 seconds)
21:01:35 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 245 seconds)
21:02:20 haskl joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
21:03:22 bmo_ joins (~bmo@185.254.75.34)
21:03:30 fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6)
21:03:36 allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com)
21:03:59 slowButPresent joins (~slowButPr@user/slowbutpresent)
21:04:32 curiousgay_ joins (~quassel@178.217.208.8)
21:04:36 Scotty_Trees2 joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
21:04:37 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer)
21:04:37 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer)
21:04:37 × bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Read error: Connection reset by peer)
21:04:38 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer)
21:04:38 × kadoban quits (~kadoban@user/kadoban) (Read error: Connection reset by peer)
21:04:38 × wallymathieu[m] quits (~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer)
21:04:38 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer)
21:04:38 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Read error: Connection reset by peer)
21:04:38 × siraben quits (~siraben@user/siraben) (Read error: Connection reset by peer)
21:04:38 × MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Write error: Connection reset by peer)
21:04:38 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (Read error: Connection reset by peer)
21:04:38 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer)
21:04:38 × autrim64[m] quits (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer)
21:04:38 × bitonic quits (~bitonic@2001:470:69fc:105::1812) (Read error: Connection reset by peer)
21:04:38 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Read error: Connection reset by peer)
21:04:38 × fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Read error: Connection reset by peer)
21:04:38 × tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Read error: Connection reset by peer)
21:04:39 × Soft quits (~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer)
21:04:39 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer)
21:04:39 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer)
21:04:39 × maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer)
21:04:39 × jakefromstatefar quits (~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer)
21:04:39 × cdepillabout[m] quits (~cdepillab@2001:470:69fc:105::3d3) (Read error: Connection reset by peer)
21:04:39 × dualinverter[m] quits (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer)
21:04:39 × RohitGoswami[m] quits (~rgoswamim@2001:470:69fc:105::16cc) (Read error: Connection reset by peer)
21:04:39 × yin[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer)
21:04:39 × bryan[m] quits (~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer)
21:04:39 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer)
21:04:40 × ac quits (~aloiscoch@2001:470:69fc:105::65) (Write error: Connection reset by peer)
21:04:40 × sm[m] quits (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer)
21:04:40 × peddie quits (~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer)
21:04:40 × jophish quits (~jophish@2001:470:69fc:105::670) (Write error: Connection reset by peer)
21:04:40 × adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Write error: Connection reset by peer)
21:04:40 × kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Write error: Connection reset by peer)
21:04:40 × srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Write error: Connection reset by peer)
21:04:40 × Drezil quits (~drezilkif@2001:470:69fc:105::7f8) (Write error: Connection reset by peer)
21:04:40 × amesgen[m] quits (~amesgenam@2001:470:69fc:105::82b) (Write error: Connection reset by peer)
21:04:40 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Write error: Connection reset by peer)
21:04:40 × thedward[m] quits (~thedwardm@2001:470:69fc:105::f79) (Write error: Connection reset by peer)
21:04:40 × eddiemundo quits (~eddiemund@2001:470:69fc:105::a9c) (Write error: Connection reset by peer)
21:04:40 × hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Write error: Connection reset by peer)
21:04:40 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Write error: Connection reset by peer)
21:04:42 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer)
21:04:42 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer)
21:04:42 × the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer)
21:04:42 × psydroid quits (~psydroidm@user/psydroid) (Read error: Connection reset by peer)
21:04:48 poljar joins (~poljar@93-139-36-109.adsl.net.t-com.hr)
21:04:55 comerijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:05:00 ralu7 joins (~ralu@static.211.245.203.116.clients.your-server.de)
21:05:01 lambdap2 joins (~lambdap@static.167.190.119.168.clients.your-server.de)
21:05:15 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
21:05:18 thedward[m] joins (~thedwardm@2001:470:69fc:105::f79)
21:05:21 waleee-cl joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
21:05:22 bmo__ joins (~bmo@185.254.75.34)
21:05:24 nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
21:05:57 × jao quits (jao@gateway/vpn/protonvpn/jao) (Ping timeout: 245 seconds)
21:05:57 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
21:05:57 × pkkm quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 245 seconds)
21:05:57 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 245 seconds)
21:05:57 × Techcable quits (~Techcable@168.235.93.147) (Read error: Connection reset by peer)
21:05:57 × ajarmst quits (~user@S01066032b134d205.ed.shawcable.net) (Ping timeout: 245 seconds)
21:05:57 × dispater quits (~dispater@user/brprice) (Ping timeout: 245 seconds)
21:05:57 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
21:05:57 × bmo quits (~bmo@185.254.75.34) (Ping timeout: 245 seconds)
21:05:57 × cheater quits (~Username@user/cheater) (Ping timeout: 245 seconds)
21:05:57 × td_ quits (~td@94.134.91.38) (Ping timeout: 245 seconds)
21:05:57 × dcoutts__ quits (~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 245 seconds)
21:05:57 beka_ joins (~beka@104-244-27-23.static.monkeybrains.net)
21:06:00 teaSlurp_ joins (~chris@81.96.113.213)
21:06:06 ac joins (~aloiscoch@2001:470:69fc:105::65)
21:06:06 siraben joins (~siraben@user/siraben)
21:06:06 sm[m] joins (~sm@plaintextaccounting/sm)
21:06:06 maralorn joins (~maralorn@2001:470:69fc:105::251)
21:06:07 peddie joins (~peddie@2001:470:69fc:105::25d)
21:06:07 fgaz joins (~fgaz@2001:470:69fc:105::842)
21:06:07 fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db)
21:06:07 bb010g joins (~bb010gmat@2001:470:69fc:105::9a5)
21:06:07 psydroid joins (~psydroidm@2001:470:69fc:105::165)
21:06:07 MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22)
21:06:07 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
21:06:07 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
21:06:07 the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f)
21:06:07 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
21:06:07 kadoban joins (~kadoban@user/kadoban)
21:06:07 jophish joins (~jophish@2001:470:69fc:105::670)
21:06:08 thelounge923 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com)
21:06:10 × beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 245 seconds)
21:06:10 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 245 seconds)
21:06:11 × zebrag quits (~chris@user/zebrag) (Ping timeout: 245 seconds)
21:06:11 shapr` joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
21:06:14 pkkm joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl)
21:06:16 pavonia_ joins (~user@user/siracusa)
21:06:18 srid[m] joins (~sridmatri@2001:470:69fc:105::1c2)
21:06:18 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
21:06:18 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
21:06:18 dualinverter[m] joins (~dualinver@2001:470:69fc:105::16a7)
21:06:18 hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd)
21:06:19 cdepillabout[m] joins (~cdepillab@2001:470:69fc:105::3d3)
21:06:19 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
21:06:19 tomferon[m] joins (~tomferon@2001:470:69fc:105::268)
21:06:19 wallymathieu[m] joins (~wallymath@2001:470:69fc:105::16ae)
21:06:19 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
21:06:19 Drezil joins (~drezilkif@2001:470:69fc:105::7f8)
21:06:19 Soft joins (~soft-matr@2001:470:69fc:105::c75)
21:06:19 kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d)
21:06:19 bryan[m] joins (~bchreekat@2001:470:69fc:105::16b5)
21:06:19 autrim64[m] joins (~autrim64m@2001:470:69fc:105::16a1)
21:06:19 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
21:06:19 amesgen[m] joins (~amesgenam@2001:470:69fc:105::82b)
21:06:19 eddiemundo joins (~eddiemund@2001:470:69fc:105::a9c)
21:06:19 adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d)
21:06:19 RohitGoswami[m] joins (~rgoswamim@2001:470:69fc:105::16cc)
21:06:19 yin[m] joins (~zwromatri@2001:470:69fc:105::1d4)
21:06:19 jakefromstatefar joins (~jakefroms@2001:470:69fc:105::15ef)
21:06:23 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
21:06:27 Techcable joins (~Techcable@168.235.93.147)
21:06:27 cheater joins (~Username@user/cheater)
21:06:34 unclechu joins (~unclechu@2001:470:69fc:105::354)
21:06:34 jaror[m] joins (~jaror@2001:470:69fc:105::265)
21:06:35 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
21:06:35 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
21:06:35 bitonic joins (~bitonic@2001:470:69fc:105::1812)
21:06:35 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
21:06:36 × betelgeuse quits (~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 245 seconds)
21:06:40 benin0367 joins (~benin@183.82.205.8)
21:06:41 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer)
21:06:41 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds)
21:06:41 × jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Ping timeout (120 seconds))
21:06:41 × dtman34_ quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
21:06:41 × P1RATEZ quits (piratez@user/p1ratez) (Ping timeout: 252 seconds)
21:06:41 × lechner quits (~lechner@letbox-vps.us-core.com) (Ping timeout: 252 seconds)
21:06:42 × sshine quits (~simon@hubris.eta.solutions) (Ping timeout: 252 seconds)
21:06:43 dispater joins (~dispater@user/brprice)
21:06:48 × juhp quits (~juhp@128.106.188.66) (Ping timeout: 252 seconds)
21:06:48 × ozataman quits (~ozataman@71.190.112.58) (Ping timeout: 252 seconds)
21:06:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
21:06:48 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 252 seconds)
21:06:49 × justBull quits (~justache@user/justache) (Ping timeout: 252 seconds)
21:06:49 × awth13 quits (~user@user/awth13) (Ping timeout: 252 seconds)
21:06:49 × Square quits (~a@178.62.91.8) (Ping timeout: 252 seconds)
21:06:49 × asm quits (~alexander@user/asm) (Ping timeout: 252 seconds)
21:06:49 × meejah quits (~meejah@rutas.meejah.ca) (Ping timeout: 252 seconds)
21:06:49 × urdh quits (~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 252 seconds)
21:07:03 justBull joins (~justache@user/justache)
21:07:05 awth13 joins (~user@user/awth13)
21:07:21 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 252 seconds)
21:07:21 × thelounge92 quits (~thelounge@cpe-23-240-28-18.socal.res.rr.com) (Ping timeout: 252 seconds)
21:07:21 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 252 seconds)
21:07:22 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds)
21:07:22 × lambdap quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 252 seconds)
21:07:22 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (Ping timeout: 252 seconds)
21:07:25 × fendor quits (~fendor@77.119.131.227.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
21:07:26 sndr joins (~sander@user/sander)
21:07:32 asm joins (~alexander@burner.asm89.io)
21:07:34 xsarnik joins (xsarnik@lounge.fi.muni.cz)
21:07:34 chaosite_ joins (~chaosite@user/chaosite)
21:07:39 poljar_ joins (~poljar@93-139-36-109.adsl.net.t-com.hr)
21:07:43 lechner joins (~lechner@letbox-vps.us-core.com)
21:08:10 stefan-_ joins (~cri@42dots.de)
21:08:13 saolof joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
21:08:21 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:08:28 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
21:08:29 nshepperd29 joins (~nshepperd@li364-218.members.linode.com)
21:08:54 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
21:09:08 GIANTWORLDKEEPR_ joins (~pjetcetal@2.95.204.25)
21:09:09 slowButP1esent joins (~slowButPr@user/slowbutpresent)
21:09:25 gabiruh_ joins (~gabiruh@vps19177.publiccloud.com.br)
21:09:55 seeg- joins (~seeg@2a05:f480:1400:311:5400:1ff:feff:256)
21:10:03 jespada_ joins (~jespada@90.254.242.55)
21:10:12 zeenk2 joins (~zeenk@188.26.30.39)
21:10:18 betelgeuse joins (~john2gb@94-225-47-8.access.telenet.be)
21:10:21 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
21:10:21 aighearach_ joins (~paris@c-71-63-160-210.hsd1.or.comcast.net)
21:10:23 zaquest_ joins (~notzaques@5.128.210.178)
21:10:23 Square joins (~a@178.62.91.8)
21:10:24 sshine joins (~simon@hubris.eta.solutions)
21:10:35 curiousgay__ joins (~quassel@178.217.208.8)
21:10:36 dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net)
21:10:58 td_ joins (~td@94.134.91.38)
21:10:58 × Aighearach quits (~paris@c-71-63-160-210.hsd1.or.comcast.net) (Killed (NickServ (GHOST command used by aighearach_)))
21:11:02 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
21:11:03 charukiewicz_ joins (~quassel@irouteince04.i.subnet.rcn.com)
21:11:05 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
21:11:06 aighearach_ is now known as Aighearach
21:11:07 ell2 joins (~ellie@user/ellie)
21:11:19 np joins (~nerdypepp@user/nerdypepper)
21:11:21 MidAutumnMoon2 joins (~MidAutumn@user/midautumnmoon)
21:11:22 lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de)
21:11:27 pierrot_ joins (~pi@user/pierrot)
21:11:31 abhixec_ joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
21:11:37 urdh joins (~urdh@h88-129-148-132.cust.a3fiber.se)
21:11:38 wolfshappen_ joins (~waff@irc.furworks.de)
21:11:51 LambdaDu1k joins (~anka@ksit.fixme.fi)
21:11:51 barrucad1 joins (~barrucadu@carcosa.barrucadu.co.uk)
21:12:01 thaumavorio_ joins (~thaumavor@thaumavor.io)
21:12:10 xerox_ joins (~edi@user/edi)
21:12:14 mjrosenb joins (~mrosenbe@nyc.schrodinger.com)
21:12:18 Shards joins (~Scraeling@user/scraeling)
21:12:23 hpc_ joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
21:12:24 comerijn_ joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:12:25 int-e_ joins (~noone@int-e.eu)
21:12:26 ubuntu_ joins (~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com)
21:12:33 ptrcmd_ joins (~ptrcmd@user/ptrcmd)
21:12:34 Bartosz joins (~textual@24.35.90.211)
21:12:34 × Bartosz quits (~textual@24.35.90.211) (Client Quit)
21:12:35 jneira_ joins (~jneira_@166.red-81-39-172.dynamicip.rima-tde.net)
21:12:48 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
21:12:48 geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com)
21:12:49 × GIANTWORLDKEEPER quits (~pjetcetal@2.95.204.25) (Ping timeout: 272 seconds)
21:12:49 ajarmst` joins (~user@S01066032b134d205.ed.shawcable.net)
21:12:49 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 272 seconds)
21:12:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
21:12:49 × pavonia quits (~user@user/siracusa) (Ping timeout: 272 seconds)
21:12:49 × zaquest quits (~notzaques@5.128.210.178) (Ping timeout: 272 seconds)
21:12:49 × poljar1 quits (~poljar@93-139-36-109.adsl.net.t-com.hr) (Ping timeout: 272 seconds)
21:12:49 × allbery_b quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 272 seconds)
21:12:49 × bmo_ quits (~bmo@185.254.75.34) (Ping timeout: 272 seconds)
21:12:49 × benin036 quits (~benin@183.82.205.8) (Ping timeout: 272 seconds)
21:12:49 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
21:12:49 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds)
21:12:49 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
21:12:49 × curiousgay quits (~quassel@178.217.208.8) (Ping timeout: 272 seconds)
21:12:49 × sander quits (~sander@user/sander) (Ping timeout: 272 seconds)
21:12:49 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 272 seconds)
21:12:50 sndr is now known as sander
21:12:50 benin0367 is now known as benin036
21:12:54 dixie_ joins (~dixie@real.wilbury.sk)
21:13:00 slowButP1esent is now known as slowButPresent
21:13:08 dy` joins (~dy@user/dy)
21:13:09 jneira_ is now known as jneira
21:13:22 meridion_ joins (~meridion@punt.hetgrotebos.org)
21:13:47 xlei_ joins (znc@pool-68-129-84-118.nycmny.fios.verizon.net)
21:13:50 machinedgod joins (~machinedg@24.105.81.50)
21:14:01 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
21:14:03 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
21:14:11 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds)
21:14:29 forell_ joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
21:14:37 mniip_ joins (mniip@libera/staff/mniip)
21:14:38 × chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 268 seconds)
21:14:46 × chaosite quits (~chaosite@user/chaosite) (Read error: Connection reset by peer)
21:14:46 × curiousgay_ quits (~quassel@178.217.208.8) (Read error: Connection reset by peer)
21:14:46 × dy quits (~dy@user/dy) (Ping timeout: 264 seconds)
21:14:46 × yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 264 seconds)
21:14:46 × xerox quits (~edi@user/edi) (Ping timeout: 264 seconds)
21:14:46 × Ekho quits (~Ekho@user/ekho) (Ping timeout: 264 seconds)
21:14:46 × wolfshappen quits (~waff@irc.furworks.de) (Read error: Connection reset by peer)
21:14:46 × pavonia_ quits (~user@user/siracusa) (Ping timeout: 264 seconds)
21:14:46 × shapr` quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
21:14:47 × bmo__ quits (~bmo@185.254.75.34) (Ping timeout: 264 seconds)
21:14:47 × poljar quits (~poljar@93-139-36-109.adsl.net.t-com.hr) (Ping timeout: 264 seconds)
21:14:47 × Scotty_Trees2 quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 264 seconds)
21:14:47 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
21:14:47 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Ping timeout: 264 seconds)
21:14:47 × ptrcmd quits (~ptrcmd@user/ptrcmd) (Ping timeout: 264 seconds)
21:14:47 × forell quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Ping timeout: 264 seconds)
21:14:47 × LambdaDuck quits (~anka@ksit.fixme.fi) (Ping timeout: 264 seconds)
21:14:47 × nshepperd2 quits (~nshepperd@li364-218.members.linode.com) (Ping timeout: 264 seconds)
21:14:47 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 264 seconds)
21:14:47 × superbil quits (~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 264 seconds)
21:14:47 × bjfs quits (bart@kobayashi.com.pl) (Ping timeout: 264 seconds)
21:14:47 × ralu7 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 264 seconds)
21:14:47 × comerijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
21:14:47 × zeenk quits (~zeenk@188.26.30.39) (Ping timeout: 264 seconds)
21:14:47 × seeg_ quits (~seeg@45.76.32.162) (Ping timeout: 264 seconds)
21:14:47 × mjrosenb_ quits (~mrosenbe@104.225.243.2) (Ping timeout: 264 seconds)
21:14:47 × ell quits (~ellie@user/ellie) (Ping timeout: 264 seconds)
21:14:47 × Guest2041 quits (~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com) (Ping timeout: 264 seconds)
21:14:47 × thaumavorio quits (~thaumavor@thaumavor.io) (Ping timeout: 264 seconds)
21:14:47 × int-e quits (~noone@int-e.eu) (Ping timeout: 264 seconds)
21:14:47 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 264 seconds)
21:14:47 × Scraeling quits (~Scraeling@34.84.165.63) (Ping timeout: 264 seconds)
21:14:47 × meridion quits (~meridion@punt.hetgrotebos.org) (Ping timeout: 264 seconds)
21:14:47 × nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds)
21:14:47 × lambdap2 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 264 seconds)
21:14:47 × tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 264 seconds)
21:14:47 × pierrot quits (~pi@user/pierrot) (Ping timeout: 264 seconds)
21:14:47 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
21:14:47 × charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 264 seconds)
21:14:47 × hpc quits (~juzz@98.169.35.13) (Ping timeout: 264 seconds)
21:14:47 × dixie quits (~dixie@real.wilbury.sk) (Ping timeout: 264 seconds)
21:14:47 × nerdypepper quits (~nerdypepp@user/nerdypepper) (Ping timeout: 264 seconds)
21:14:47 × mniip quits (mniip@libera/staff/mniip) (Ping timeout: 624 seconds)
21:14:47 × chkno_ quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:14:47 × xlei quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 264 seconds)
21:14:47 MidAutumnMoon2 is now known as MidAutumnMoon
21:14:48 ell2 is now known as ell
21:14:58 Sgeo_ joins (~Sgeo@ool-18b9875e.dyn.optonline.net)
21:15:11 meejah joins (~meejah@rutas.meejah.ca)
21:15:13 nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
21:15:29 poljar joins (~poljar@93-139-36-109.adsl.net.t-com.hr)
21:15:33 yahb joins (xsbot@user/mniip/bot/yahb)
21:15:33 notzmv joins (~zmv@user/notzmv)
21:15:50 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
21:16:02 teaSlurper joins (~chris@81.96.113.213)
21:16:09 × waleee-cl quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds)
21:16:09 beka__ joins (~beka@104-244-27-23.static.monkeybrains.net)
21:16:16 safinaskar parts (~safinaska@109.252.90.89) ()
21:16:34 nshepperd2 joins (~nshepperd@li364-218.members.linode.com)
21:17:05 benin0362 joins (~benin@183.82.205.8)
21:17:12 awth13` joins (~user@185.209.196.143)
21:17:18 pavonia joins (~user@user/siracusa)
21:17:22 × ham quits (~ham4@user/ham) (Read error: Connection reset by peer)
21:17:40 waleee-cl joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
21:18:02 thelounge9230 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com)
21:18:14 oxide joins (~lambda@user/oxide)
21:18:39 pkkm2 joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl)
21:18:42 teehemkay_ joins (sid14792@id-14792.tooting.irccloud.com)
21:18:43 wroathe_ joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:18:58 Tuplanolla1 joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
21:19:16 iphy_ joins (sid67735@id-67735.tooting.irccloud.com)
21:19:21 chaosite joins (~chaosite@user/chaosite)
21:19:26 ham joins (~ham4@user/ham)
21:19:42 NemesisD_ joins (sid24071@id-24071.tooting.irccloud.com)
21:19:45 × teehemkay quits (sid14792@id-14792.tooting.irccloud.com) (Ping timeout: 265 seconds)
21:19:45 × acid quits (~acid@user/acid) (Ping timeout: 265 seconds)
21:19:45 × iphy quits (sid67735@2001:67c:2f08:4::1:897) (Ping timeout: 265 seconds)
21:19:45 × jackhill quits (~jackhill@kalessin.dragonsnail.net) (Ping timeout: 265 seconds)
21:19:45 × kmein quits (~weechat@user/kmein) (Ping timeout: 265 seconds)
21:19:45 × dwt_ quits (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 265 seconds)
21:19:45 × liskin quits (~liskin@xmonad/liskin) (Ping timeout: 265 seconds)
21:19:45 × NemesisD quits (sid24071@2001:67c:2f08:4::5e07) (Ping timeout: 265 seconds)
21:19:45 × esclear[i] quits (~esclear@phobos.esclear.de) (Ping timeout: 265 seconds)
21:19:45 × koz quits (~koz@121.99.240.58) (Ping timeout: 265 seconds)
21:19:46 teehemkay_ is now known as teehemkay
21:19:46 iphy_ is now known as iphy
21:19:46 NemesisD_ is now known as NemesisD
21:19:49 Techcable_ joins (~Techcable@168.235.93.147)
21:19:54 lisk1n joins (~liskin@xmonad/liskin)
21:19:55 kmein joins (~weechat@user/kmein)
21:20:00 xsarnik3 joins (xsarnik@lounge.fi.muni.cz)
21:20:00 koz- joins (~koz@121.99.240.58)
21:20:03 koz- is now known as koz
21:20:14 sndr joins (~sander@user/sander)
21:20:18 slowButP1esent joins (~slowButPr@user/slowbutpresent)
21:20:19 asm_ joins (~alexander@burner.asm89.io)
21:20:24 bcoppens_ joins (~bartcopp@vpn2.bartcoppens.be)
21:20:57 × comerijn_ quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
21:21:02 × Guest2 quits (~Guest2@154.21.21.108) (Quit: Client closed)
21:21:07 NieDzejkob_ joins (~quassel@195.149.98.3)
21:21:11 Unode_ joins (~Unode@194.94.44.220)
21:21:13 mekeor joins (~user@2001:a61:34b6:5701:f8e2:383b:42a4:84ad)
21:21:22 pie__bnc joins (~pie_bnc@user/pie/x-2818909)
21:21:36 acid joins (~acid@user/acid)
21:21:40 lisq_ joins (~quassel@lis.moe)
21:21:44 esclear[i] joins (~esclear@phobos.esclear.de)
21:21:45 Aleksejs_Home joins (~Aleksejs@haskell.lv)
21:21:54 × neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 264 seconds)
21:22:01 × NieDzejkob quits (~quassel@195.149.98.3) (Ping timeout: 265 seconds)
21:22:02 × fjmorazan quits (~quassel@user/fjmorazan) (Ping timeout: 265 seconds)
21:22:02 × bcoppens quits (~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 265 seconds)
21:22:02 × Aleksejs quits (~Aleksejs@haskell.lv) (Ping timeout: 265 seconds)
21:22:02 × Unode quits (~Unode@194.94.44.220) (Ping timeout: 265 seconds)
21:22:02 × pie_bnc quits (~pie_bnc@user/pie/x-2818909) (Ping timeout: 265 seconds)
21:22:02 × amir quits (sid22336@user/amir) (Ping timeout: 265 seconds)
21:22:02 × c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 265 seconds)
21:22:02 × agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Ping timeout: 265 seconds)
21:22:02 × dexterfoo quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Ping timeout: 265 seconds)
21:22:02 × kaychaks_ quits (sid236345@id-236345.brockwell.irccloud.com) (Ping timeout: 265 seconds)
21:22:02 Unode_ is now known as Unode
21:22:04 × incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 265 seconds)
21:22:04 × lisq quits (~quassel@lis.moe) (Ping timeout: 265 seconds)
21:22:04 × bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 265 seconds)
21:22:04 × ski quits (~ski@ed-3358-10.studat.chalmers.se) (Ping timeout: 265 seconds)
21:22:04 × peutri quits (~peutri@ns317027.ip-94-23-46.eu) (Ping timeout: 265 seconds)
21:22:04 × T_S_ quits (sid501726@id-501726.highgate.irccloud.com) (Ping timeout: 265 seconds)
21:22:04 × integral quits (sid296274@user/integral) (Ping timeout: 265 seconds)
21:22:06 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca)
21:22:06 fjmorazan_ joins (~quassel@user/fjmorazan)
21:22:23 ski joins (~ski@ed-3358-10.studat.chalmers.se)
21:22:30 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Killed (NickServ (GHOST command used by Tuplanolla1)))
21:22:33 kaychaks_ joins (sid236345@brockwell.irccloud.com)
21:22:33 Tuplanolla1 is now known as Tuplanolla
21:22:33 amir joins (sid22336@user/amir)
21:22:42 × abrar quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 265 seconds)
21:22:42 × adamse quits (sid72084@user/adamse) (Ping timeout: 265 seconds)
21:22:44 dexterfoo joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec)
21:22:45 cheater1__ joins (~Username@user/cheater)
21:22:50 abrar_ joins (~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
21:22:51 peutri joins (~peutri@ns317027.ip-94-23-46.eu)
21:23:00 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
21:23:02 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
21:23:08 × Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 265 seconds)
21:23:08 × pieguy128_ quits (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (Ping timeout: 265 seconds)
21:23:31 T_S_ joins (sid501726@id-501726.highgate.irccloud.com)
21:23:34 integral joins (sid296274@user/integral)
21:23:38 Patternm1ster joins (~georg@li1192-118.members.linode.com)
21:23:40 Ekho- joins (~Ekho@user/ekho)
21:23:42 agander_m joins (sid407952@id-407952.tinside.irccloud.com)
21:23:44 adamse joins (sid72084@user/adamse)
21:23:49 × remexre quits (~nathan@user/remexre) (Remote host closed the connection)
21:24:04 remexre joins (~nathan@user/remexre)
21:24:10 meridion_ is now known as meridion
21:24:22 tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp)
21:24:23 bbhoss joins (sid18216@id-18216.tinside.irccloud.com)
21:24:48 jackhill joins (~jackhill@kalessin.dragonsnail.net)
21:24:53 × zaquest_ quits (~notzaques@5.128.210.178) (*.net *.split)
21:24:53 × xlei_ quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (*.net *.split)
21:24:53 × GIANTWORLDKEEPR_ quits (~pjetcetal@2.95.204.25) (*.net *.split)
21:24:53 × slowButPresent quits (~slowButPr@user/slowbutpresent) (*.net *.split)
21:24:53 × nshepperd29 quits (~nshepperd@li364-218.members.linode.com) (*.net *.split)
21:24:53 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (*.net *.split)
21:24:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (*.net *.split)
21:24:53 × saolof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (*.net *.split)
21:24:53 × stefan-_ quits (~cri@42dots.de) (*.net *.split)
21:24:53 × poljar_ quits (~poljar@93-139-36-109.adsl.net.t-com.hr) (*.net *.split)
21:24:53 × chaosite_ quits (~chaosite@user/chaosite) (*.net *.split)
21:24:53 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (*.net *.split)
21:24:53 × asm quits (~alexander@burner.asm89.io) (*.net *.split)
21:24:53 × sander quits (~sander@user/sander) (*.net *.split)
21:24:53 × awth13 quits (~user@user/awth13) (*.net *.split)
21:24:53 × benin036 quits (~benin@183.82.205.8) (*.net *.split)
21:24:53 × Techcable quits (~Techcable@168.235.93.147) (*.net *.split)
21:24:53 × justBull quits (~justache@user/justache) (*.net *.split)
21:24:53 × cheater quits (~Username@user/cheater) (*.net *.split)
21:24:53 × pkkm quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (*.net *.split)
21:24:53 × thelounge923 quits (~thelounge@cpe-23-240-28-18.socal.res.rr.com) (*.net *.split)
21:24:53 × teaSlurp_ quits (~chris@81.96.113.213) (*.net *.split)
21:24:53 × beka_ quits (~beka@104-244-27-23.static.monkeybrains.net) (*.net *.split)
21:24:53 × xsperry quits (~as@user/xsperry) (*.net *.split)
21:24:53 × Sgeo quits (~Sgeo@user/sgeo) (*.net *.split)
21:24:53 × tv quits (~tv@user/tv) (*.net *.split)
21:24:53 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split)
21:24:54 Lord_of_Life_ is now known as Lord_of_Life
21:24:55 sndr is now known as sander
21:24:55 benin0362 is now known as benin036
21:24:55 xsarnik3 is now known as xsarnik
21:24:57 cheater1__ is now known as cheater
21:25:02 stefan-__ joins (~cri@42dots.de)
21:25:21 × Pent quits (sid313808@id-313808.tooting.irccloud.com) (Ping timeout: 265 seconds)
21:25:21 × tureba quits (tureba@tureba.org) (Ping timeout: 265 seconds)
21:25:27 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
21:25:34 c_wraith joins (~c_wraith@adjoint.us)
21:25:37 justBull7 joins (~justache@user/justache)
21:25:49 × V quits (~v@anomalous.eu) (Ping timeout: 265 seconds)
21:25:49 × Patternmaster quits (~georg@li1192-118.members.linode.com) (Ping timeout: 265 seconds)
21:26:00 tv joins (~tv@user/tv)
21:26:18 zaquest_ joins (~notzaques@5.128.210.178)
21:26:23 incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com)
21:26:25 lisk1n is now known as liskin
21:26:26 slowButP1esent is now known as slowButPresent
21:26:36 V joins (~v@anomalous.eu)
21:26:36 Pent joins (sid313808@id-313808.tooting.irccloud.com)
21:27:27 xlei joins (znc@pool-68-129-84-118.nycmny.fios.verizon.net)
21:27:40 wroathe_ is now known as wroathe
21:27:44 vicfred joins (~vicfred@user/vicfred)
21:27:46 tureba joins (~tureba@tureba.org)
21:27:52 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:28:15 Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
21:28:53 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
21:29:17 xsperry joins (~as@user/xsperry)
21:30:10 × Megant quits (megant@user/megant) (Ping timeout: 265 seconds)
21:30:34 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Changing host)
21:30:34 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:30:39 Megant joins (megant@user/megant)
21:30:53 GIANTWORLDKEEPR_ joins (~pjetcetal@2.95.204.25)
21:35:05 Bartosz joins (~textual@104.192.206.22)
21:35:15 sm2n joins (~sm2n@user/sm2n)
21:36:05 justBull7 is now known as justBull
21:36:35 blackbar1 joins (~sv@pool-173-63-177-191.nwrknj.fios.verizon.net)
21:36:43 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:37:12 × haskl quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Remote host closed the connection)
21:37:16 haskller joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
21:37:20 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:b19b:35e2:2fd0:444d) (Quit: Leaving)
21:37:42 superbil joins (~superbil@1-34-176-171.HINET-IP.hinet.net)
21:37:53 bjfs joins (bart@kobayashi.com.pl)
21:38:22 barrucad1 is now known as barrucadu
21:38:24 × zfnmxt quits (~zfnmxt@user/zfnmxt) (Quit: Bye!)
21:41:55 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer)
21:43:31 × sander quits (~sander@user/sander) (Quit: So long! :))
21:44:35 × fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Remote host closed the connection)
21:47:59 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
21:50:43 × bfrk quits (~bfrk@200116b845b21700ca15fbad8d1b9d07.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
21:51:19 forell_ is now known as forell
21:53:07 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
21:53:57 × chaosite quits (~chaosite@user/chaosite) (Ping timeout: 272 seconds)
21:54:48 × Bartosz quits (~textual@104.192.206.22) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:54:52 × tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
21:57:07 × superbil quits (~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 244 seconds)
21:57:20 warnz joins (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6)
21:58:23 tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp)
21:59:22 chaosite joins (~chaosite@user/chaosite)
22:00:29 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
22:00:40 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:01:30 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
22:02:11 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
22:02:24 <blackbar1> Does anyone know of a haskell library that could do something like this (from BOSL2 library for OpenSCAD) https://github.com/revarbat/BOSL2/wiki/walls.scad#module-sparse_strut ?
22:02:43 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
22:03:05 × ddellaco_ quits (~ddellacos@89.45.224.243) (Remote host closed the connection)
22:03:34 ddellacosta joins (~ddellacos@89.45.224.243)
22:04:21 × chaosite quits (~chaosite@user/chaosite) (Ping timeout: 244 seconds)
22:05:04 chaosite joins (~chaosite@user/chaosite)
22:05:37 bontaq joins (~user@ool-18e47f8d.dyn.optonline.net)
22:06:26 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
22:06:52 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:07:50 × ddellacosta quits (~ddellacos@89.45.224.243) (Ping timeout: 245 seconds)
22:09:44 × chaosite quits (~chaosite@user/chaosite) (Ping timeout: 272 seconds)
22:11:05 × ajarmst` quits (~user@S01066032b134d205.ed.shawcable.net) (Remote host closed the connection)
22:12:04 taeaad joins (~taeaad@user/taeaad)
22:22:29 dunkeln joins (~dunkeln@94.129.65.28)
22:24:07 superbil joins (~superbil@1-34-176-171.HINET-IP.hinet.net)
22:24:13 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:27:54 × haskller quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Ping timeout: 264 seconds)
22:29:03 <DigitalKiwi> https://github.com/Haskell-Things/ImplicitCAD
22:29:38 <DigitalKiwi> idk if it can do what you want but that's the only haskell openscad library i know of
22:30:46 haskller joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
22:31:02 × beka__ quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 252 seconds)
22:31:21 <DigitalKiwi> davean: who's hpc?
22:31:32 zfnmxt joins (~zfnmxtzfn@user/zfnmxt)
22:31:57 × benin036 quits (~benin@183.82.205.8) (Ping timeout: 272 seconds)
22:32:41 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 252 seconds)
22:34:29 slowButPresent joins (~slowButPr@user/slowbutpresent)
22:35:28 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
22:36:27 × russruss quits (~russruss@my.russellmcc.com) (Quit: The Lounge - https://thelounge.chat)
22:37:48 beka__ joins (~beka@104-244-27-23.static.monkeybrains.net)
22:38:37 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
22:38:49 × jrm quits (~jrm@156.34.187.65) (Quit: ciao)
22:39:10 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
22:39:35 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
22:39:57 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
22:39:58 jrm joins (~jrm@156.34.187.65)
22:40:20 teaSlurper joins (~chris@81.96.113.213)
22:40:56 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
22:43:08 × jrm quits (~jrm@156.34.187.65) (Client Quit)
22:43:33 jrm joins (~jrm@156.34.187.65)
22:45:17 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 268 seconds)
22:46:13 dunkeln joins (~dunkeln@94.129.65.28)
22:49:30 Jeanne-Kamikaze joins (~Jeanne-Ka@192.252.212.54)
22:52:34 × warnz quits (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) (Remote host closed the connection)
22:52:57 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 252 seconds)
22:57:20 × awth13` quits (~user@185.209.196.143) (Quit: ERC (IRC client for Emacs 27.2))
22:57:39 awth13 joins (~user@185.209.196.143)
22:58:06 × awth13 quits (~user@185.209.196.143) (Client Quit)
22:59:57 awth13 joins (~user@user/awth13)
23:02:05 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
23:02:37 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
23:05:01 × beka__ quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 268 seconds)
23:05:24 beka__ joins (~beka@104-244-27-23.static.monkeybrains.net)
23:06:29 dhil joins (~dhil@80.208.56.181)
23:07:27 × jrm quits (~jrm@156.34.187.65) (Quit: ciao)
23:07:51 jrm joins (~jrm@156.34.187.65)
23:08:30 teaSlurper joins (~chris@81.96.113.213)
23:17:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:19:40 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
23:20:20 iDead joins (~iDead@254.142.71.148.rev.vodafone.pt)
23:20:27 fendor joins (~fendor@77.119.131.227.wireless.dyn.drei.com)
23:20:27 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
23:21:13 <iDead> heyyy, anyone up? need some help with point free notation
23:21:38 <dminuoso> @pl \x -> (x,) <$> f x
23:21:38 <lambdabot> (line 1, column 9):
23:21:38 <lambdabot> unexpected ","
23:21:38 <lambdabot> expecting letter or digit, variable, "(", operator or ")"
23:21:39 <geekosaur> there's probably a few people here, and there's lambdabot
23:22:02 × tremon_ quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
23:22:29 <DigitalKiwi> i'm only good at pointless conversation ;(
23:22:36 <geekosaur> preferably without things it doesn't parse like tuple sections
23:23:15 × jakesyl quits (sid56879@id-56879.stonehaven.irccloud.com) (Ping timeout: 272 seconds)
23:23:48 <Clint> you'd think it would have spontaneously learned by now
23:24:03 <iDead> ;) i'm working on mutual recursion and catamorphism's* (pardon my french but i'm not native)
23:25:12 jakesyl joins (sid56879@id-56879.stonehaven.irccloud.com)
23:25:56 <iDead> can someone help me find a point free notation for the average of a list?
23:26:01 <DigitalKiwi> Clint: it took me a minute to realize you meant lambdabot and not me ;(
23:27:18 <DigitalKiwi> http://pointfree.io/ does your function fit in the box
23:27:57 <iDead> DigitalKiwi very much appreciated :)
23:29:23 <Clint> DigitalKiwi: ha
23:29:53 × pkkm2 quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 252 seconds)
23:30:07 ec_ joins (~ec@gateway/tor-sasl/ec)
23:32:23 <monochrom> Summing is a catamorphism. Finding length is also a catamorphism. You can also do both at once, computing the tuple (sum, length) is also a catamorphism. These are all good exercises.
23:32:39 <monochrom> But I doubt that making them pointfree is a good exercise.
23:34:15 × dhil quits (~dhil@80.208.56.181) (Ping timeout: 244 seconds)
23:34:22 <zfnmxt> DigitalKiwi: Do you have any restrictions/allowences aside from just "pointfree"?
23:35:25 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Ping timeout: 272 seconds)
23:35:32 <DigitalKiwi> i'm not supposed to be fed after midnight
23:36:05 <zfnmxt> Oh, sorry. Wrong person. :)
23:36:21 <zfnmxt> DigitalKiwi: (if I feed you will you forgive me?)
23:37:03 <DigitalKiwi> absolutely
23:37:14 <monochrom> They say no water too, but now I wonder about wine, whiskey, rubbing alcohol. >:)
23:37:22 hpc_ is now known as hpc
23:37:31 fjmorazan_ is now known as fjmorazan
23:37:49 <Clint> ammonia
23:38:02 <DigitalKiwi> doc said i need to cut back on my rubbing alcohol consumption
23:38:18 <monochrom> :)
23:38:47 × hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Read error: Connection reset by peer)
23:40:04 hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
23:40:14 <monochrom> I just notice that the topic includes "#matrix bridge should be coming soon". Is it outdated? Maybe I should delete that part.
23:40:30 <geekosaur> I think it's still technically in testing?
23:40:34 <zfnmxt> I'm using the bridge right now.
23:41:06 <geekosaur> it can lag a bit still
23:41:52 <monochrom> There ar a lot of "formally still in beta" out there that are, like, tenured beta, so it's as permanent and final as you could get.
23:42:23 <monochrom> And it is not like one day they will simply declare "the test has failed, goodbye".
23:43:58 hmmmas joins (~chenqisu1@183.217.200.246)
23:44:14 <Clint> unless it's google
23:44:42 × hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 264 seconds)
23:44:49 <monochrom> And a lot of standard Haskell packages have "stability: experiment" to this date, for example mtl
23:44:59 hemlock joins (~hemlock@2607:fb90:9618:4bab:bc7a:b402:9e43:cf55)
23:45:12 fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6)
23:45:17 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
23:45:44 <hpc> stability should just be (version < 1.0.0.0)
23:45:48 geekosaur shrugs
23:46:03 ChanServ sets mode +o geekosaur
23:46:14 geekosaur sets topic to "https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org | Paste code/errors: https://paste.tomsmeding.com | tunes.org-style logging should be coming soon | Logs: https://ircbrowse.tomsmeding.com/browse/lchaskell"
23:46:18 <monochrom> Thanks.
23:46:48 <dminuoso> monochrom: Does the stability matter at all? As long as the field has no (de-facto) standardized meaning/patterns of values, it's useless anyhow,.
23:46:53 <geekosaur> I wonder about the rest of that because tunes.org was already down (people reporting it requested username/password) while we were still on Freenode
23:47:02 flounders joins (~flounders@173.246.200.33)
23:47:30 <dminuoso> Like if I wrote "stable" you would have no way of understanding what that even meant.
23:47:42 geekosaur sets mode -o geekosaur
23:47:53 dhil joins (~dhil@195.213.192.47)
23:47:55 <monochrom> Yeah I wouldn't touch the tunes.org log part, I know nothing about it.
23:47:56 <dminuoso> (Id argue that stability should be removed for that reason alone)
23:47:57 <DigitalKiwi> some of my most reliable/well tested software never left "alpha" lol
23:48:29 <geekosaur> "there is nothing so permanent as a quick hack"
23:48:57 <dminuoso> Yup, we say this a lot at $work
23:49:14 × fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Ping timeout: 244 seconds)
23:49:18 <DigitalKiwi> https://github.com/Kiwi/clyde#readme
23:49:27 <monochrom> dminuoso: So I think the stability field was invented before PVP. And in a time when people still hoped that stable API could be attained over time.
23:49:30 × hemlock quits (~hemlock@2607:fb90:9618:4bab:bc7a:b402:9e43:cf55) (Ping timeout: 264 seconds)
23:49:52 <dminuoso> Does PVP invalidate stability?
23:50:10 <dminuoso> PVP does not prevent you from bumping a major version every day..
23:50:14 <geekosaur> it was also borrowed from other package repositories which hadn't yet concluded that "stable" meant "dead"
23:50:25 <monochrom> PVP solves the stability question.
23:50:31 ddellacosta joins (~ddellacos@86.106.121.230)
23:50:34 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
23:50:47 <monochrom> Every x.y.*.* is stable.
23:50:50 <hpc> every version is stable because package uploads are immutable, and you set upper bounds on dependencies right?
23:51:01 hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net)
23:51:17 <monochrom> PVP acknoledges the reality that, in general, you have multiple stable states, not just one single stable state.
23:51:25 <monochrom> Yes hpc.
23:51:40 <hpc> oh, that was "right?" as in "wink wink nudge nudge"
23:51:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
23:51:47 <hpc> :P
23:51:53 <monochrom> Ah OK, yes I agree :)
23:52:10 <dminuoso> hpc: But package metadata can be changed after the fact, no?
23:52:40 <monochrom> Just because you have published both 3.2.0.0 and 3.4.0.0 doesn't mean that anything is unstable.
23:53:17 <monochrom> But a single field "data Stable = Experimental | Stable | IDon'tKnow" is not going to cut it.
23:53:22 <hpc> dminuoso: my understanding is that feature doesn't get used very often
23:53:24 <dminuoso> monochrom: All Im saying is, the term "stability" might have different meaning to some people. I would understand stability as a general goal of "when we make modifications to this package, we strive to not break API"
23:53:38 dunkeln joins (~dunkeln@94.129.65.28)
23:53:39 <dminuoso> (in the sense of, "stable means the author tries to only release patch updates)
23:53:59 <hpc> and only to fix when the metadata is truly bad
23:54:05 <monochrom> Hrm, OK, interesting.
23:54:11 <hpc> like putting breaking changes in a patch release by mistake
23:54:43 <DigitalKiwi> fun fact; one of the biggest reasons i gave up on clyde was because libalpm was NOT stable
23:54:58 × ddellacosta quits (~ddellacos@86.106.121.230) (Ping timeout: 268 seconds)
23:55:01 × awth13 quits (~user@user/awth13) (Read error: Connection reset by peer)
23:55:17 <DigitalKiwi> (on an ABI level)
23:57:05 <hpc> it has a TODO note in the manpage synopsis
23:57:29 <DigitalKiwi> pacman had far more (active, skilled) developers/contributors i just couldn't keep up with all of their changes ;(
23:57:33 <hpc> that package might as well say "dead dove, do not eat" :P
23:57:56 × Jeanne-Kamikaze quits (~Jeanne-Ka@192.252.212.54) (Ping timeout: 252 seconds)

All times are in UTC on 2021-06-13.