2023/10/29

2023-10-29 00:00:23 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-10-29 00:02:49 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-10-29 00:04:00 +0200notzmv(~zmv@user/notzmv)
2023-10-29 00:05:44 +0200doyougnu(~doyougnu@45.46.170.68) (Ping timeout: 272 seconds)
2023-10-29 00:07:37 +0200son0p(~ff@181.136.122.143)
2023-10-29 00:14:51 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl)
2023-10-29 00:18:52 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-10-29 00:19:13 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2023-10-29 00:19:31 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2023-10-29 00:19:46 +0200Jackneill(~Jackneill@20014C4E1E03D800AF259D09E48C0D87.dsl.pool.telekom.hu) (Ping timeout: 252 seconds)
2023-10-29 00:21:41 +0200harveypwca(~harveypwc@2601:246:c280:5ce0:e63c:23ce:ba5:e027)
2023-10-29 00:22:35 +0200 <Inst> this is so cute
2023-10-29 00:22:48 +0200 <Inst> it turns out acumulating parameter (done carefully) beats STRef on O2, but loses on O1
2023-10-29 00:24:13 +0200accord(uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-29 00:28:31 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 255 seconds)
2023-10-29 00:31:29 +0200aljazmc(~aljazmc@user/aljazmc) (Quit: Leaving)
2023-10-29 00:38:55 +0200shapr(~user@2600:1700:c640:3100:d092:5c7c:734:98b6)
2023-10-29 00:50:29 +0200acidjnk(~acidjnk@p200300d6e72b9355f44ae38018441913.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2023-10-29 00:53:54 +0200 <EvanR> if you look at the compiler output you can maybe see that the recursive code became a tight loop after doing -O2
2023-10-29 00:55:50 +0200geekosaurwonders if that's worth reporting
2023-10-29 00:56:11 +0200 <geekosaur> -O2 is usually high-cost low-percentage optimizations
2023-10-29 01:05:58 +0200 <dibblego> am I reinventing an existing function? getsM :: MonadState s m => (s -> m a) -> m a; getsM = join . gets
2023-10-29 01:06:49 +0200 <int-e> or (get >>=)
2023-10-29 01:07:42 +0200 <dibblego> ah yeah, ta
2023-10-29 01:07:52 +0200ChanServ-o dibblego
2023-10-29 01:19:32 +0200target_i(~target_i@217.175.14.39) (Quit: leaving)
2023-10-29 01:22:20 +0200John_Ivan_(~John_Ivan@user/john-ivan/x-1515935) (Ping timeout: 248 seconds)
2023-10-29 01:25:00 +0200chomwitt(~chomwitt@2a02:587:7a01:8f00:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
2023-10-29 01:26:29 +0200John_Ivan_(~John_Ivan@user/john-ivan/x-1515935)
2023-10-29 01:36:00 +0200harveypwca(~harveypwc@2601:246:c280:5ce0:e63c:23ce:ba5:e027) (Quit: Leaving)
2023-10-29 01:49:20 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-29 02:04:22 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 255 seconds)
2023-10-29 02:10:11 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 02:13:26 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-10-29 02:13:44 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-29 02:21:31 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-29 02:22:59 +0100dolio(~dolio@130.44.134.54)
2023-10-29 02:26:39 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-29 02:30:46 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-29 02:32:16 +0100dolio(~dolio@130.44.134.54)
2023-10-29 02:35:25 +0100Square(~Square@user/square) (Ping timeout: 255 seconds)
2023-10-29 02:48:24 +0100Square(~Square@user/square)
2023-10-29 02:58:32 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-10-29 03:02:52 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-29 03:10:22 +0100Square(~Square@user/square) (Ping timeout: 255 seconds)
2023-10-29 03:19:13 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2023-10-29 03:21:39 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 258 seconds)
2023-10-29 03:23:46 +0100Guest37(~Guest37@149.159.193.108)
2023-10-29 03:27:15 +0100califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-29 03:29:32 +0100 <Guest37> I am trying to understand lenses, but I am not getting a clear answer as to what they exactly are! Some say they are getters and setters, and some say they are Turing complete, and I have seen some examples of them being used on JSON data like a query language. So, what exactly are they?
2023-10-29 03:29:57 +0100califax(~califax@user/califx)
2023-10-29 03:30:05 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2023-10-29 03:32:06 +0100otto_s(~user@p5b044193.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-10-29 03:32:49 +0100 <EvanR> functional references on steroids
2023-10-29 03:33:20 +0100 <EvanR> they let you reach into a data structure and do stuff
2023-10-29 03:33:48 +0100otto_s(~user@p5de2ff12.dip0.t-ipconnect.de)
2023-10-29 03:35:52 +0100 <EvanR> Guest37, this documentation has a guided tour of using lenses, called optics here because there's more than just lenses going on https://hackage.haskell.org/package/optics-0.4.2/docs/Optics.html
2023-10-29 03:35:52 +0100 <Guest37> I read on reddit that someone used lenses to manipulate json easily (instead of using some xpath/xquery style query language)
2023-10-29 03:36:07 +0100 <Guest37> So, do they replace query languages?
2023-10-29 03:37:58 +0100 <Guest37> EvanR, thanks for that link. I'll go through it.
2023-10-29 03:38:10 +0100 <geekosaur> you can think of them as a query language but they're more flexible than that
2023-10-29 03:38:13 +0100 <EvanR> a set of combinators for your data structure could act as a query language easily, if all you want to do is extract pieces
2023-10-29 03:38:31 +0100 <EvanR> but lens lets you go in and update pieces
2023-10-29 03:38:36 +0100 <EvanR> and other things
2023-10-29 03:39:00 +0100 <geekosaur> I suspect the reason you can't find "what they exactly are" is that you're trying to cram them into a box you already know about, and they refuse to fit
2023-10-29 03:39:34 +0100 <Guest37> geekosaur, yes exactly! I want to know which box they fit into.
2023-10-29 03:39:41 +0100 <geekosaur> good luck
2023-10-29 03:40:04 +0100 <geekosaur> the box they fit into is called "profunctor lenses". it's *bigger* than the boxes you know about
2023-10-29 03:41:04 +0100 <EvanR> stuff you know about, getter, setter, fits into lens
2023-10-29 03:41:12 +0100 <EvanR> query language, fits into lens
2023-10-29 03:41:21 +0100 <geekosaur> they are more than just getters and setters. they are more than just a query language. they are a general mechnism for manipulating data that is already almost a complete language — then they're embedded into, and can use the features of, Haskell for even more flexibility
2023-10-29 03:46:58 +0100 <Guest37> so, they are a family of combinators for data manipulation? I say a family because, I suppose lenses themselves are pretty limiting. But once we have lenses, prisms, traversals, etc., we get a lot of power.
2023-10-29 03:48:29 +0100 <geekosaur> essentially, but with more power
2023-10-29 03:49:34 +0100 <Guest37> can you give an example (even an abridged one or even a description) of such power in action?
2023-10-29 03:49:45 +0100 <geekosaur> "a family of combinators for data menipulation" was Conal Elliot's semantic editor combinators (http://conal.net/blog/posts/semantic-editor-combinators). Lenses generalized that.
2023-10-29 03:51:49 +0100 <EvanR> thanks to the type system a lot of power comes from being able to direct the power of lens usefully, if it type checks, it probably does something interesting
2023-10-29 03:52:29 +0100ubert1(~Thunderbi@178.115.74.249.wireless.dyn.drei.com)
2023-10-29 03:53:00 +0100ubert(~Thunderbi@91.141.50.52.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2023-10-29 03:53:01 +0100ubert1ubert
2023-10-29 03:54:27 +0100 <Guest37> If Lenses generalize semantic editor combinators (which are combinators for data manipulation), in what way are they generalizing them? Are they generalizing they in terms of being a uniform description or are they generalizing them by being able to do more things?
2023-10-29 03:55:46 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-29 03:56:21 +0100 <geekosaur> for example, they work over more data types (although they sometimes need help in the form of template haskell to build new combinators on the fly)
2023-10-29 03:56:34 +0100 <EvanR> some lenses (optics) aren't really editors, for example Iso represent an isomorphism between types
2023-10-29 03:56:50 +0100 <EvanR> but you can use an Iso as part of a larger edit
2023-10-29 03:56:51 +0100 <geekosaur> also any Haskell Functor is automatically a lens, as I understand it
2023-10-29 03:58:38 +0100 <geekosaur> (I'm actually not a very good person to talk to about lenses; I only very rarely work with anything that really needs lens)
2023-10-29 03:59:09 +0100 <EvanR> there's an isomorphism between Word32 and a vector of 32 Bits. So you can edit individual bits using a combination of Iso and a lens for vector
2023-10-29 03:59:31 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2023-10-29 04:00:19 +0100 <EvanR> but that example is mentioned on conal's blog post, so it doesn't answer your question about generalizations
2023-10-29 04:01:56 +0100 <Guest37> Ah, that's an interesting example. I still haven't read Conal's blog post; l'll read it.
2023-10-29 04:09:06 +0100td_(~td@i5387091A.versanet.de) (Ping timeout: 272 seconds)
2023-10-29 04:10:17 +0100td_(~td@i53870907.versanet.de)
2023-10-29 04:14:14 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-10-29 04:14:14 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-10-29 04:14:14 +0100finn_elijaFinnElija
2023-10-29 04:15:00 +0100 <geekosaur> much of the generalization is that you can _have_ things like Prisms and Traversals, and they all fit together seamlessly
2023-10-29 04:20:15 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 240 seconds)
2023-10-29 04:21:18 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-29 04:25:27 +0100 <Guest37> Thank you for your answers EvanR and geekosaur.
2023-10-29 04:31:24 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-10-29 04:40:35 +0100 <EvanR> for how dense lens stuff can seem, I just found the motherlode of truths. The instances for class `Is' in optics https://hackage.haskell.org/package/optics-core-0.4.1/docs/Optics-Optic.html#t:Is
2023-10-29 04:41:29 +0100 <EvanR> clinton was famous for emphasizing the importance of what the definition of Is is, and there it... is
2023-10-29 04:45:13 +0100Guest37(~Guest37@149.159.193.108) (Quit: Client closed)
2023-10-29 04:50:43 +0100 <EvanR> UndecidableInstances, nvm, don't look
2023-10-29 04:52:10 +0100Guest37(~Guest37@149.159.193.108)
2023-10-29 05:27:54 +0100shapr(~user@2600:1700:c640:3100:d092:5c7c:734:98b6) (Remote host closed the connection)
2023-10-29 05:28:08 +0100shapr(~user@2600:1700:c640:3100:fd0a:e422:9294:eac8)
2023-10-29 05:42:20 +0100Inst(~Inst@120.244.192.250) (Ping timeout: 248 seconds)
2023-10-29 05:42:36 +0100aforemny(~aforemny@i59F516D2.versanet.de)
2023-10-29 05:43:28 +0100aforemny_(~aforemny@2001:9e8:6cf4:800:bfe8:1a13:2556:84ce) (Ping timeout: 272 seconds)
2023-10-29 05:48:20 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
2023-10-29 05:53:02 +0100Inst(~Inst@120.244.192.250)
2023-10-29 06:09:23 +0100CO2(CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.0)
2023-10-29 06:16:31 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 264 seconds)
2023-10-29 06:17:38 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-10-29 06:21:49 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 258 seconds)
2023-10-29 06:23:31 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-29 06:36:35 +0100raym(~ray@user/raym) (Ping timeout: 240 seconds)
2023-10-29 06:55:56 +0100xff0x(~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 248 seconds)
2023-10-29 06:57:19 +0100kitzman(~kitzman@user/dekenevs) (Ping timeout: 264 seconds)
2023-10-29 06:57:42 +0100xff0x(~xff0x@178.255.149.135)
2023-10-29 06:58:23 +0100 <Inst> is there a reason I should like Rust? ?:(
2023-10-29 06:58:49 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-29 07:01:30 +0100Lycurgus(~georg@user/Lycurgus)
2023-10-29 07:03:10 +0100 <Inst> at least it's helping me understand why people hate static typing
2023-10-29 07:03:29 +0100kitzman(~kitzman@user/dekenevs)
2023-10-29 07:03:35 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-10-29 07:04:57 +0100 <EvanR> check out the rust channel for more
2023-10-29 07:10:21 +0100 <Inst> no, it's more that the weird correctness semantics are screwing me over
2023-10-29 07:15:45 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-29 07:16:12 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:cbb:98c3:c8f9:5eef)
2023-10-29 07:16:13 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:cbb:98c3:c8f9:5eef) (Changing host)
2023-10-29 07:16:13 +0100random-jellyfish(~tiber@user/random-jellyfish)
2023-10-29 07:17:52 +0100euleritian(~euleritia@x52716a95.dyn.telefonica.de) (Ping timeout: 255 seconds)
2023-10-29 07:18:46 +0100euleritian(~euleritia@dynamic-046-114-215-047.46.114.pool.telefonica.de)
2023-10-29 07:18:55 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2023-10-29 07:19:27 +0100 <EvanR> if I'm not mistaken that's the correctness semantics *stopping* you from screwing yourself over
2023-10-29 07:25:48 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
2023-10-29 07:27:48 +0100Jackneill(~Jackneill@20014C4E1E03D800E5D9A09D5A1B64B5.dsl.pool.telekom.hu)
2023-10-29 07:28:44 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-10-29 07:32:43 +0100xff0x(~xff0x@178.255.149.135) (Ping timeout: 255 seconds)
2023-10-29 07:34:31 +0100xff0x(~xff0x@ai101218.d.east.v6connect.net)
2023-10-29 07:34:43 +0100 <Inst> it feels like the first thing i'm going to do is to learn some unsafe rust
2023-10-29 07:43:38 +0100 <Inst> EvanR: more that it was a pain to refactor from Vec to array / []
2023-10-29 07:44:46 +0100 <Inst> which is sort of ironic given that arrays in Rust resemble DT vectors in Haskell
2023-10-29 07:46:35 +0100Jackneill(~Jackneill@20014C4E1E03D800E5D9A09D5A1B64B5.dsl.pool.telekom.hu) (Ping timeout: 240 seconds)
2023-10-29 07:47:26 +0100Jackneill(~Jackneill@20014C4E1E03D800752B92BCDFEE2878.dsl.pool.telekom.hu)
2023-10-29 07:51:37 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 07:59:44 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 08:00:43 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2023-10-29 08:10:30 +0100aljazmc(~aljazmc@user/aljazmc)
2023-10-29 08:15:20 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 08:16:48 +0100kimiamania46(~b4f4a2ab@user/kimiamania) (Quit: Ping timeout (120 seconds))
2023-10-29 08:19:02 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 08:19:04 +0100euleritian(~euleritia@dynamic-046-114-215-047.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-10-29 08:19:22 +0100euleritian(~euleritia@2a02:2455:18da:6900:9763:7241:db5:90f1)
2023-10-29 08:19:29 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-29 08:20:08 +0100kimiamania46(~b4f4a2ab@user/kimiamania)
2023-10-29 08:20:22 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 08:23:41 +0100aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2023-10-29 08:24:44 +0100aljazmc(~aljazmc@user/aljazmc)
2023-10-29 08:26:59 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 08:34:10 +0100aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2023-10-29 08:34:30 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-29 08:37:06 +0100aljazmc(~aljazmc@user/aljazmc)
2023-10-29 08:40:10 +0100fendor(~fendor@2a02:8388:1640:be00:4648:ee17:640e:e578)
2023-10-29 08:50:14 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-10-29 08:50:14 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 08:51:25 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-10-29 08:52:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-29 08:55:48 +0100Guest37(~Guest37@149.159.193.108) (Quit: Client closed)
2023-10-29 08:56:39 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 08:57:08 +0100sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-10-29 09:01:43 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
2023-10-29 09:04:02 +0100Pickchea(~private@user/pickchea)
2023-10-29 09:04:19 +0100 <Inst> okay, so I did, converted the function calls to pushing and popping onto a stack
2023-10-29 09:04:35 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-10-29 09:04:38 +0100 <Inst> performance suffered
2023-10-29 09:05:22 +0100 <Inst> but it was a fun exercise
2023-10-29 09:06:10 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp)
2023-10-29 09:18:03 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
2023-10-29 09:20:04 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp)
2023-10-29 09:20:28 +0100acidjnk(~acidjnk@p200300d6e72b938491b352852f43969f.dip0.t-ipconnect.de)
2023-10-29 09:24:51 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d94b:a6c4:b05d:2c65) (Remote host closed the connection)
2023-10-29 09:26:47 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-10-29 09:33:31 +0100rosco(~rosco@yp-150-69.tm.net.my)
2023-10-29 09:36:49 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection)
2023-10-29 09:37:37 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2023-10-29 09:39:28 +0100 <davean> Inst: why would you have a stack at all for quicksort?
2023-10-29 09:39:37 +0100euleritian(~euleritia@2a02:2455:18da:6900:9763:7241:db5:90f1) (Ping timeout: 258 seconds)
2023-10-29 09:40:31 +0100euleritian(~euleritia@dynamic-046-114-215-047.46.114.pool.telefonica.de)
2023-10-29 09:41:06 +0100vglfr(~vglfr@46.96.15.94) (Read error: Connection reset by peer)
2023-10-29 09:41:19 +0100 <mauke> what else would you use? a queue?
2023-10-29 09:41:35 +0100 <davean> A fixed set of variables
2023-10-29 09:41:44 +0100 <nullie> quicksort requires stack
2023-10-29 09:42:24 +0100 <davean> No?
2023-10-29 09:42:46 +0100 <davean> You have the bounds of the overall array, you have the size blocks you're currently quicksorting
2023-10-29 09:42:53 +0100 <davean> you step down the sizes and then back up
2023-10-29 09:43:00 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-29 09:43:18 +0100 <nullie> https://en.wikipedia.org/wiki/Quicksort#Space_complexity
2023-10-29 09:43:57 +0100 <mauke> davean: that doesn't make sense to me
2023-10-29 09:44:39 +0100 <mauke> I sort my subarray and get two smaller blocks of size n1 and n2. then what?
2023-10-29 09:45:00 +0100 <mauke> (and by "sort" I mean partition)
2023-10-29 09:46:04 +0100 <Inst> davean: because I wanted to see what it'd look like
2023-10-29 09:46:34 +0100 <davean> Right quicksort is the one with the variable value pivot
2023-10-29 09:49:49 +0100gmg(~user@user/gehmehgeh)
2023-10-29 09:54:41 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 09:55:37 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-10-29 10:00:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 10:01:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-10-29 10:03:58 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 10:04:41 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d94b:a6c4:b05d:2c65)
2023-10-29 10:05:51 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2023-10-29 10:06:18 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-10-29 10:13:41 +0100santiagopim(~user@90.167.66.131)
2023-10-29 10:17:34 +0100Inst(~Inst@120.244.192.250) (Ping timeout: 245 seconds)
2023-10-29 10:18:21 +0100mrcsno(~mrcsno@user/mrcsno)
2023-10-29 10:20:34 +0100snowsauce(~snowsauce@pa9-84-91-207-96.netvisao.pt) (Ping timeout: 255 seconds)
2023-10-29 10:25:48 +0100vglfr(~vglfr@46.96.15.94) (Read error: Connection reset by peer)
2023-10-29 10:26:01 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 10:26:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-29 10:28:41 +0100mrcsno(~mrcsno@user/mrcsno) (Remote host closed the connection)
2023-10-29 10:29:45 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-10-29 10:29:56 +0100mmhat(~mmh@p200300f1c7445ed2ee086bfffe095315.dip0.t-ipconnect.de)
2023-10-29 10:30:09 +0100mmhat(~mmh@p200300f1c7445ed2ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-10-29 10:33:28 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 10:34:36 +0100mrcsno(~mrcsno@user/mrcsno)
2023-10-29 10:35:11 +0100lispy(~lispy@82.212.115.68) (Ping timeout: 248 seconds)
2023-10-29 10:37:38 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-29 10:42:14 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-29 10:47:20 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-29 10:51:32 +0100mrcsno(~mrcsno@user/mrcsno) (Quit: WeeChat 3.5)
2023-10-29 10:56:34 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-10-29 11:01:30 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-10-29 11:06:27 +0100CO2(CO2@gateway/vpn/protonvpn/co2)
2023-10-29 11:08:52 +0100vglfr(~vglfr@46.96.15.94) (Read error: Connection reset by peer)
2023-10-29 11:09:03 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-10-29 11:23:04 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-29 11:27:18 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-29 11:34:20 +0100rosco(~rosco@yp-150-69.tm.net.my) (Read error: Connection reset by peer)
2023-10-29 11:57:53 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 12:01:00 +0100snowsauce(~snowsauce@pa9-84-91-207-96.netvisao.pt)
2023-10-29 12:11:19 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 245 seconds)
2023-10-29 12:12:58 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 12:13:44 +0100mrcsno(~mrcsno@user/mrcsno)
2023-10-29 12:14:00 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-10-29 12:15:01 +0100mrcsno(~mrcsno@user/mrcsno) (Client Quit)
2023-10-29 12:16:08 +0100mrcsno(~mrcsno@user/mrcsno)
2023-10-29 12:17:25 +0100mrcsno(~mrcsno@user/mrcsno) (Client Quit)
2023-10-29 12:17:44 +0100mrcsno(~mrcsno@user/mrcsno)
2023-10-29 12:18:17 +0100mrcsno(~mrcsno@user/mrcsno) (Client Quit)
2023-10-29 12:19:57 +0100mrcsno(~mrcsno@user/mrcsno)
2023-10-29 12:26:30 +0100__monty__(~toonn@user/toonn)
2023-10-29 12:26:43 +0100Lycurgus(~georg@user/Lycurgus)
2023-10-29 12:44:54 +0100vglfr(~vglfr@46.96.15.94) (Remote host closed the connection)
2023-10-29 12:45:30 +0100mrcsno(~mrcsno@user/mrcsno) (WeeChat 3.5)
2023-10-29 12:45:31 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 12:45:50 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 13:07:43 +0100rosco(~rosco@yp-150-69.tm.net.my)
2023-10-29 13:17:30 +0100Square(~Square@user/square)
2023-10-29 13:27:23 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-29 13:30:42 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 13:34:04 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-10-29 13:38:53 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 13:40:59 +0100chomwitt(~chomwitt@2a02:587:7a01:8f00:1ac0:4dff:fedb:a3f1)
2023-10-29 13:52:23 +0100jargon(~jargon@174-22-221-150.phnx.qwest.net)
2023-10-29 13:55:45 +0100Guest90(~Guest90@2600:4040:959f:a700:b584:f047:a032:2523)
2023-10-29 13:56:26 +0100Guest90(~Guest90@2600:4040:959f:a700:b584:f047:a032:2523) (Client Quit)
2023-10-29 14:10:32 +0100vglfr(~vglfr@46.96.15.94) (Remote host closed the connection)
2023-10-29 14:11:47 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 14:14:50 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-29 14:17:40 +0100rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-10-29 14:23:40 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 14:24:27 +0100notzmv(~zmv@user/notzmv)
2023-10-29 14:40:28 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-29 14:42:59 +0100rosco(~rosco@yp-150-69.tm.net.my)
2023-10-29 14:43:45 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-29 14:45:09 +0100jargon(~jargon@174-22-221-150.phnx.qwest.net) (Remote host closed the connection)
2023-10-29 14:46:32 +0100vglfr(~vglfr@46.96.15.94) (Read error: Connection reset by peer)
2023-10-29 14:48:46 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-29 14:49:21 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 255 seconds)
2023-10-29 14:53:41 +0100Nixkernal_(~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch)
2023-10-29 14:53:48 +0100Nixkernal(~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 240 seconds)
2023-10-29 14:55:51 +0100Square(~Square@user/square) (Ping timeout: 240 seconds)
2023-10-29 14:59:47 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-29 15:05:05 +0100Nixkernal_(~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Read error: Connection reset by peer)
2023-10-29 15:05:45 +0100Nixkernal(~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch)
2023-10-29 15:06:41 +0100 <John_Ivan_> geekosaur, I decided yesterday to switch to a different network library. wreq. I get the same reference errors. what does one do in a situation like this?
2023-10-29 15:07:45 +0100 <geekosaur> like I said yesterday, this sounds like a corrupted cabal store
2023-10-29 15:08:07 +0100 <geekosaur> if you go around removing things, you need to remove everything or you get errors like this
2023-10-29 15:08:43 +0100 <geekosaur> @@ or use tools like @where cabal-gc
2023-10-29 15:08:43 +0100 <lambdabot> or use tools like I know nothing about cabal-gc.
2023-10-29 15:08:47 +0100 <geekosaur> bah
2023-10-29 15:08:51 +0100 <geekosaur> @where cabalgc
2023-10-29 15:08:51 +0100 <lambdabot> https://github.com/treblacy/cabalgc
2023-10-29 15:09:09 +0100 <geekosaur> whihc know how to remove things from the cabal store safely
2023-10-29 15:09:43 +0100 <John_Ivan_> geekosaur, but I reinstalled cabal. unless "cabal clean" is what actually broke my code.
2023-10-29 15:09:47 +0100 <John_Ivan_> store*
2023-10-29 15:10:17 +0100 <John_Ivan_> geekosaur, reinstalling cabal + cabal build didn't throw errors. i got errors after a cabal clean.
2023-10-29 15:10:42 +0100 <geekosaur> cabal clean only cleans dist-newstyle, that should not cause problems like this unless you vendored the library
2023-10-29 15:10:49 +0100euleritian(~euleritia@dynamic-046-114-215-047.46.114.pool.telefonica.de) (Ping timeout: 258 seconds)
2023-10-29 15:11:16 +0100 <John_Ivan_> then I'm very confused. geekosaur aren't cabal projects treated isolated with their own dependencies?
2023-10-29 15:12:28 +0100 <geekosaur> cabal tracks specific builds needed and keeps them in its store, so it can reuse them when possible
2023-10-29 15:13:06 +0100 <John_Ivan_> I'll take that as a "no".
2023-10-29 15:13:15 +0100 <geekosaur> https://cabal.readthedocs.io/en/3.8/nix-local-build-overview.html#nix-style-local-builds
2023-10-29 15:14:58 +0100 <geekosaur> they are isolated, but the kind of isolation you are thinking of is kinda useless when making new libraries that you intend to use for something else; you want isolation but you also want the exact versions of dependencies to be kept around for future use
2023-10-29 15:15:19 +0100 <geekosaur> cabal keeps track of this for you
2023-10-29 15:17:12 +0100 <John_Ivan_> geekosaur, I think I'm going to give cabal the middle finger and try stack. if that does the same thing, I'll just supply my own libraries in C
2023-10-29 15:17:31 +0100 <geekosaur> it will, in its own way
2023-10-29 15:17:37 +0100 <John_Ivan_> geekosaur, because this is apt all over again.
2023-10-29 15:18:37 +0100ph88(~ph88@2a02:8109:9e26:c800:4880:74f:beb0:527)
2023-10-29 15:19:08 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-29 15:27:49 +0100merijn(~merijn@233-142-158-163.dynamic.caiway.nl)
2023-10-29 15:27:54 +0100mc47(~mc47@xmonad/TheMC47)
2023-10-29 15:32:17 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2023-10-29 15:33:48 +0100swistak(~swistak@185.21.216.141) (Ping timeout: 248 seconds)
2023-10-29 15:34:59 +0100merijn(~merijn@233-142-158-163.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2023-10-29 15:42:18 +0100yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-29 15:50:30 +0100Tlsx(~rscastilh@187.40.125.21)
2023-10-29 15:58:44 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-10-29 16:00:00 +0100swistak(~swistak@185.21.216.141)
2023-10-29 16:11:23 +0100euleritian(~euleritia@dynamic-046-114-213-077.46.114.pool.telefonica.de)
2023-10-29 16:18:20 +0100 <tomsmeding> John_Ivan_: try removing ~/.cabal/store/ghc-<GHCVERSION>
2023-10-29 16:18:23 +0100 <tomsmeding> in its entirety
2023-10-29 16:18:44 +0100 <tomsmeding> then you'll need to rebuild dependencies again, but at least you'll get a consistent store so that you can rule out a corrupted store as the source of trouble
2023-10-29 16:20:45 +0100notzmv(~zmv@user/notzmv)
2023-10-29 16:21:58 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-29 16:22:22 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-29 16:25:36 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2023-10-29 16:26:07 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 264 seconds)
2023-10-29 16:27:45 +0100eggplant_(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-10-29 16:28:49 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d94b:a6c4:b05d:2c65) (Ping timeout: 245 seconds)
2023-10-29 16:32:08 +0100eggplant_(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-10-29 16:36:04 +0100notzmv(~zmv@user/notzmv)
2023-10-29 16:40:00 +0100tomboy64(~tomboy64@user/tomboy64)
2023-10-29 16:40:13 +0100ghoulpine(xfnw@tilde.team) (Quit: Connection reset by purr)
2023-10-29 16:40:34 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-29 16:41:38 +0100vulpine(xfnw@tilde.team)
2023-10-29 17:04:21 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-10-29 17:06:21 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-10-29 17:13:12 +0100michalz(~michalz@185.246.207.218)
2023-10-29 17:13:31 +0100hueso(~root@user/hueso) (Ping timeout: 264 seconds)
2023-10-29 17:14:31 +0100hueso(~root@user/hueso)
2023-10-29 17:17:11 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-29 17:20:14 +0100Square(~Square@user/square)
2023-10-29 17:22:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-29 17:23:30 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-10-29 17:27:01 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-29 17:28:10 +0100Inst(~Inst@120.244.192.250)
2023-10-29 17:29:37 +0100 <monochrom> It is easy to hypothesize "corrupted cabal store" but how to corrupt it is not so clear. cabal itself doesn't corrupt it. Someone else has to actively try that.
2023-10-29 17:29:50 +0100tremon(~tremon@83.80.159.219)
2023-10-29 17:32:24 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8059:24c1:b008:c079)
2023-10-29 17:34:42 +0100random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 272 seconds)
2023-10-29 17:36:43 +0100akshitkr(~user@218.185.248.66)
2023-10-29 17:36:47 +0100 <akshitkr> hey
2023-10-29 17:37:29 +0100 <akshitkr> i'm finding it hard to wrap my head around the different versions of ghc and cabal
2023-10-29 17:38:09 +0100 <akshitkr> specifically: whenever i use cabal install it asks me to change my ghc version since its not compatible with the one I've installed
2023-10-29 17:38:34 +0100 <akshitkr> my ghc: 9.4.7 and cabal: 3.6.2
2023-10-29 17:38:40 +0100 <akshitkr> (marked recommended on ghcup tuie)
2023-10-29 17:39:51 +0100 <sclv> do nor change your ghc version
2023-10-29 17:39:51 +0100 <c_wraith> monochrom: well, there are some cases where no one did it intentionally, like a system crash in the middle of an installation.
2023-10-29 17:40:08 +0100 <sclv> just use the latest cabal and it is compat with all prior ghcs
2023-10-29 17:40:38 +0100 <c_wraith> or even "by actively making a choice" in place of "intentionally"
2023-10-29 17:41:03 +0100 <akshitkr> sclv: thanks, will do that
2023-10-29 17:41:11 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-10-29 17:41:13 +0100 <akshitkr> can you also help me get around installing new packaged
2023-10-29 17:41:16 +0100 <akshitkr> packages*
2023-10-29 17:41:18 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-29 17:41:19 +0100 <geekosaur> akshitkr, some projects do need different ghc versions because they need different base versions and base is wired into ghc.
2023-10-29 17:41:40 +0100 <akshitkr> lets say i want to install backprop https://hackage.haskell.org/package/backprope, i know the latest version is 0.2.6.5
2023-10-29 17:42:07 +0100 <akshitkr> so i updated the .cabal to have backprop ^>=0.2.6.5 in the build depends
2023-10-29 17:42:21 +0100 <akshitkr> but it doesn't seem to install it when i run ~cabal install backprop~
2023-10-29 17:42:35 +0100 <akshitkr> `cabal install backprop`
2023-10-29 17:43:03 +0100 <geekosaur> you don't typically install libraries directly, you let cabal install them as dependencies. if you want to access cabal's version in ghci you do something like `cabal repl -b backprop`
2023-10-29 17:43:05 +0100fendor(~fendor@2a02:8388:1640:be00:4648:ee17:640e:e578) (Remote host closed the connection)
2023-10-29 17:43:25 +0100 <akshitkr> do i just do cabal install then?
2023-10-29 17:43:37 +0100 <geekosaur> (raw ghci is unprincipled and will do things like linking multiple versions of a package in)
2023-10-29 17:43:58 +0100 <akshitkr> ok doing `cabal build` seems to do something
2023-10-29 17:44:26 +0100 <akshitkr> gotcha
2023-10-29 17:46:35 +0100 <akshitkr> alright so my build-depends is this
2023-10-29 17:46:38 +0100 <akshitkr> build-depends: base ^>=4.17.2.0, backprop ^>=0.2.6.5
2023-10-29 17:47:01 +0100 <akshitkr> but putting this import in my hs files doesn't seem to work: Import Numeric.backprop
2023-10-29 17:48:38 +0100 <c_wraith> "doesn't seem to work" is missing a lot of details. What does happen?
2023-10-29 17:48:51 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-10-29 17:49:16 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 248 seconds)
2023-10-29 17:51:37 +0100 <akshitkr> Import Numeric.backprop
2023-10-29 17:51:37 +0100 <akshitkr> module Main where
2023-10-29 17:51:37 +0100 <akshitkr> main :: IO ()
2023-10-29 17:52:00 +0100 <akshitkr> "parse error on input 'module'"
2023-10-29 17:53:44 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 258 seconds)
2023-10-29 17:54:31 +0100ph88(~ph88@2a02:8109:9e26:c800:4880:74f:beb0:527) (Quit: Leaving)
2023-10-29 17:56:35 +0100 <monochrom> Put the "module" line before the "import" line.
2023-10-29 17:57:12 +0100raym(~ray@user/raym)
2023-10-29 17:57:16 +0100 <akshitkr> getting "Parse error: module header, import declaration"
2023-10-29 17:57:20 +0100 <akshitkr> after doing that^
2023-10-29 17:57:50 +0100 <geekosaur> @where paste
2023-10-29 17:57:50 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2023-10-29 17:57:54 +0100 <monochrom> Perhaps it's Backprop instead of backprop?
2023-10-29 17:58:03 +0100 <akshitkr> lemme check
2023-10-29 17:58:12 +0100 <akshitkr> yeah i'll use a pastebin, apologies
2023-10-29 17:58:16 +0100 <geekosaur> you import a module, not a library
2023-10-29 17:58:44 +0100 <geekosaur> you may want `import Numeric.Backprop`
2023-10-29 17:59:10 +0100 <geekosaur> https://hackage.haskell.org/package/backprop-0.2.6.5/docs/Numeric-Backprop.html
2023-10-29 17:59:17 +0100euleritian(~euleritia@dynamic-046-114-213-077.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-10-29 17:59:19 +0100 <akshitkr> https://paste.tomsmeding.com/P7UqWmXe
2023-10-29 17:59:21 +0100 <monochrom> Is this a "dive-in project"? This is what's wrong with dive-in projects.
2023-10-29 17:59:34 +0100euleritian(~euleritia@2a02:2455:18da:6900:f843:d23f:cfa3:a8b4)
2023-10-29 18:00:09 +0100 <akshitkr> diving into haskell perhaps, I have experience with fp in OCaml
2023-10-29 18:00:39 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2023-10-29 18:00:40 +0100 <geekosaur> also `import` has to be lowercase
2023-10-29 18:01:08 +0100 <akshitkr> ah right
2023-10-29 18:01:11 +0100 <akshitkr> that was the issue
2023-10-29 18:01:29 +0100 <akshitkr> only getting "Could not find module Numeric.Backprop" now
2023-10-29 18:03:17 +0100 <geekosaur> can you pastebin your cabal file?
2023-10-29 18:04:23 +0100 <akshitkr> https://paste.tomsmeding.com/cRtY2JDh
2023-10-29 18:05:33 +0100AlexNoo_(~AlexNoo@94.233.241.58)
2023-10-29 18:06:37 +0100 <geekosaur> oh. cabal.project is not the same as your cabal file, it specifies information applicable to all libraries in a project
2023-10-29 18:06:44 +0100rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-10-29 18:06:45 +0100 <geekosaur> rename it to something like `myapp.cabal`
2023-10-29 18:07:00 +0100 <monochrom> But then it is also missing many fields.
2023-10-29 18:07:31 +0100AlexZenon(~alzenon@178.34.162.116) (Ping timeout: 264 seconds)
2023-10-29 18:07:34 +0100 <akshitkr> updated: https://paste.tomsmeding.com/4hiocmTQ
2023-10-29 18:08:22 +0100 <monochrom> Have you heard of "cabal init"? It is on the list from "cabal --help".
2023-10-29 18:08:46 +0100 <akshitkr> ive already done cabal init
2023-10-29 18:08:46 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-29 18:08:55 +0100 <akshitkr> that is how i got this file anyway
2023-10-29 18:09:00 +0100AlexNoo(~AlexNoo@178.34.162.116) (Ping timeout: 248 seconds)
2023-10-29 18:09:09 +0100 <geekosaur> you're missing a lot of stuff that cabal init would have put in there
2023-10-29 18:09:30 +0100 <monochrom> There are multiple missing compulsory fields. "cabal init" does not omit them.
2023-10-29 18:09:36 +0100AlexNoo_AlexNoo
2023-10-29 18:09:49 +0100 <[exa]> good afternoon all
2023-10-29 18:09:54 +0100 <akshitkr> I am not sure how i got there :P
2023-10-29 18:10:00 +0100 <akshitkr> ill do cabal init again
2023-10-29 18:10:10 +0100 <monochrom> 2nd law of thermodynamics.
2023-10-29 18:10:36 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2023-10-29 18:10:48 +0100 <[exa]> akshitkr: if you backup your current one you should be able to merge it with the freshly autogenerated one using e.g. gvimdiff or meld or so
2023-10-29 18:11:24 +0100 <akshitkr> didn't really do a lot yet so its fine for now to just nuke it and create a new project
2023-10-29 18:13:17 +0100Xe(~cadey@perl/impostor/xe) (Quit: WeeChat 4.0.2)
2023-10-29 18:17:14 +0100 <akshitkr> re-initialized the whole thing
2023-10-29 18:17:30 +0100 <akshitkr> seems to work except the language server has a problem with me importing Number.Backprop
2023-10-29 18:17:58 +0100AlexZenon(~alzenon@94.233.241.58)
2023-10-29 18:18:05 +0100 <EvanR> what editor are you using, vscode?
2023-10-29 18:18:11 +0100 <monochrom> Number? Numeric?
2023-10-29 18:18:39 +0100 <akshitkr> using emacs
2023-10-29 18:18:57 +0100 <akshitkr> yeah Numeric*, sorry
2023-10-29 18:20:15 +0100 <akshitkr> killed the buffer and opened it again, works now
2023-10-29 18:20:26 +0100 <akshitkr> thanks for the help everyone!
2023-10-29 18:22:00 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 18:22:21 +0100akshitkr(~user@218.185.248.66) (Killed buffer)
2023-10-29 18:25:06 +0100 <[exa]> o/
2023-10-29 18:26:22 +0100komikat(~akshitkr@218.185.248.66)
2023-10-29 18:34:28 +0100vglfr(~vglfr@46.96.15.94) (Remote host closed the connection)
2023-10-29 18:35:17 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 18:45:16 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-29 18:49:24 +0100Katarushisu12(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2023-10-29 18:49:58 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-29 18:50:16 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 260 seconds)
2023-10-29 18:50:16 +0100Katarushisu12Katarushisu1
2023-10-29 19:07:49 +0100 <EvanR> > let x@[1,2,3] = [1,2,3] in x!!1
2023-10-29 19:07:50 +0100 <lambdabot> 2
2023-10-29 19:08:00 +0100 <EvanR> > let [1,2,3]@x = [1,2,3] in x!!1
2023-10-29 19:08:01 +0100 <lambdabot> <hint>:1:12: error: parse error on input ‘@’
2023-10-29 19:08:07 +0100 <EvanR> shucks
2023-10-29 19:08:37 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-29 19:08:45 +0100 <EvanR> that was almost the haskell version of C x[0] = 0[x]
2023-10-29 19:09:17 +0100 <c_wraith> you can only put an identifier before the @
2023-10-29 19:10:22 +0100monochrommonodoom
2023-10-29 19:10:38 +0100 <c_wraith> only one doom? that's down like 1700% from yesterday! woo!
2023-10-29 19:11:06 +0100 <nullie> 1700% down would be negative doom
2023-10-29 19:11:28 +0100 <c_wraith> not when you started at 1800%
2023-10-29 19:13:07 +0100 <monodoom> :)
2023-10-29 19:13:35 +0100 <monodoom> One way to doom them all.
2023-10-29 19:15:59 +0100 <EvanR> I wrote this haskell program with "no dependencies", but it uses ViewPatterns. Will it run on anything other than GHC
2023-10-29 19:16:17 +0100 <monodoom> Probably not even Hugs.
2023-10-29 19:16:22 +0100 <EvanR> cool
2023-10-29 19:17:18 +0100 <monodoom> We now have an axis for library dependencies and another axis for compiler dependencies. :)
2023-10-29 19:17:50 +0100notzmv(~zmv@user/notzmv)
2023-10-29 19:19:54 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 19:22:38 +0100biberu(~biberu@user/biberu)
2023-10-29 19:30:36 +0100dhil(~dhil@2001:8e0:2014:3100:846e:9cc4:60ae:ba95)
2023-10-29 19:32:01 +0100quarkyalice(~alice@user/quarkyalice)
2023-10-29 19:37:48 +0100Sgeo(~Sgeo@user/sgeo)
2023-10-29 19:39:00 +0100 <EvanR> in the wikipedia article for simply typed lambda calculus they detail a language which has lambdas like \x:T -> e, annotated with an explicit type. The type language is T = Unit | T -> T. Later they claim with a 1 paragraph blurb that there is an "alternative syntax" without the annotation, and inference is used to check the types
2023-10-29 19:39:36 +0100 <EvanR> with the example \x -> x would get the type alpha -> alpha. But alpha comes out of nowhere
2023-10-29 19:39:58 +0100 <EvanR> is this still simply typed lambda calculus or did they advance along a lambda cube axis by doing this
2023-10-29 19:41:55 +0100 <monodoom> You can choose either way.
2023-10-29 19:42:35 +0100 <EvanR> by introducing the alpha thing does that add any additional "power"
2023-10-29 19:43:02 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
2023-10-29 19:43:18 +0100 <monodoom> If you insist that the context allows you to monomorphize alpha to something actually in the type language (or else you declare "type error: polymorphism not supported"), then you can stay with simply typed.
2023-10-29 19:43:38 +0100 <ncf> could you link to the paragraph you're referring to?
2023-10-29 19:43:40 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 19:43:56 +0100 <monodoom> If you add let-generalization, then yes you have to go rank-1 polymorphism.
2023-10-29 19:44:22 +0100 <EvanR> https://en.wikipedia.org/wiki/Simply_typed_lambda_calculus#Alternative_syntaxes
2023-10-29 19:44:34 +0100 <monodoom> Yes and no. If you let alpha survive, yes. If you keep it internal and kill it eventually, no.
2023-10-29 19:45:05 +0100euleritian(~euleritia@2a02:2455:18da:6900:f843:d23f:cfa3:a8b4) (Ping timeout: 240 seconds)
2023-10-29 19:45:17 +0100euleritian(~euleritia@109.125.111.185)
2023-10-29 19:45:18 +0100 <monodoom> If you keep alpha internal and kill it eventually, you can call it a "meta variable", "placeholder", "for internal use only".
2023-10-29 19:46:11 +0100 <ncf> looks like whoever wrote that forgot the title of the article
2023-10-29 19:46:21 +0100 <monodoom> For example if the whole term is "(\x -> x) unit" then alpha is just an internal intermediate when you were zooming into "\x -> x". Later you will zoom out and realize alpha=Unit.
2023-10-29 19:46:31 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2023-10-29 19:47:27 +0100 <ncf> or i guess what this really says is that adding rank-1 polymorphism is a *very* thin layer on top of STLC
2023-10-29 19:47:30 +0100 <monodoom> haha ncf.
2023-10-29 19:47:46 +0100 <ncf> you just pretend that metavariables don't have to be solved
2023-10-29 19:48:00 +0100 <monodoom> But yeah you could use the HM inference algorithm and then ban polymorphism after the fact.
2023-10-29 19:49:36 +0100 <monodoom> I actually did that in a toy. :)
2023-10-29 19:49:39 +0100euleritian(~euleritia@109.125.111.185) (Ping timeout: 245 seconds)
2023-10-29 19:50:02 +0100euleritian(~euleritia@dynamic-046-114-213-077.46.114.pool.telefonica.de)
2023-10-29 19:53:52 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds)
2023-10-29 19:56:17 +0100Pickchea(~private@user/pickchea)
2023-10-29 20:01:06 +0100 <EvanR> so to be clear, if you add HM and judge \x -> x to have type alpha -> alpha, it's not STLC anymore
2023-10-29 20:01:14 +0100kilolympus(~kilolympu@31.205.200.235) (Quit: See you later! :))
2023-10-29 20:01:30 +0100 <EvanR> unless you are being monodoom, and allowing that internal to a term only and no one ever knows
2023-10-29 20:02:11 +0100vglfr(~vglfr@46.96.15.94) (Remote host closed the connection)
2023-10-29 20:02:26 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 20:02:33 +0100 <EvanR> maybe this is like is or is pluto not a planet, which is annoying
2023-10-29 20:03:05 +0100 <monodoom> Nah, this is less ambiguous than Pluto.
2023-10-29 20:03:39 +0100 <monodoom> Wikipedia contributors can get carried away, too.
2023-10-29 20:05:59 +0100 <monodoom> You know what, the right stance in this case is "[citation needed]". Really, I have not seen any textbook or paper that says STLC allows "\x -> x".
2023-10-29 20:06:14 +0100 <EvanR> so \x:T -> x is canonical
2023-10-29 20:06:23 +0100 <monodoom> or even "(\x -> x) unit" despite my remark on it being well-defined.
2023-10-29 20:06:32 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2023-10-29 20:06:46 +0100 <dolio> I don't think it's that unusual to not have to annotate variables.
2023-10-29 20:07:30 +0100 <EvanR> (\x -> x) unit, it's well defined. (\x -> x) it's not?
2023-10-29 20:08:08 +0100 <dolio> It is. There just isn't a principal type for `\x -> x` in the STLC.
2023-10-29 20:08:36 +0100 <dolio> If you're presenting it that way.
2023-10-29 20:10:02 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-10-29 20:10:54 +0100 <dolio> There's a principal schema, which you could think about as a sort of meta-reasoning about actual STLC derivations. Which is probably what is typically done if you really have just STLC with some ground type, because it's kind of an impoverished system.
2023-10-29 20:11:54 +0100 <dolio> HM internalizes that with let.
2023-10-29 20:15:32 +0100 <dolio> Anyhow, in actual derivations, you can judge `(\x -> x) : () -> ()` and `(\x -> x) : (() -> ()) -> () -> ()` and so on. The derivations all have the same structure, but you have to do each one separately, because there's no common type that insantiates to all the others.
2023-10-29 20:18:23 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 255 seconds)
2023-10-29 20:19:29 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2023-10-29 20:19:31 +0100Luj(~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Ping timeout: 260 seconds)
2023-10-29 20:19:58 +0100 <EvanR> that makes sense, but since there's no explicit signature on \x, the 4 typing rules given don't work literally. I guess you can just remove that from the language and the rule still works
2023-10-29 20:20:06 +0100Luj(~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb)
2023-10-29 20:20:54 +0100neceve(~neceve@user/neceve)
2023-10-29 20:21:11 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-10-29 20:21:53 +0100califax(~califax@user/califx)
2023-10-29 20:21:58 +0100Xe(~cadey@perl/impostor/xe)
2023-10-29 20:22:58 +0100 <EvanR> but doesn't suggest a deterministic course of action for a type checker
2023-10-29 20:26:28 +0100ph88(~ph88@91.64.226.114)
2023-10-29 20:29:41 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 20:30:41 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-29 20:31:05 +0100 <EvanR> I found some course notes on stlc where the instructor decided to put explicit types on every subexpression xD
2023-10-29 20:31:12 +0100 <dolio> Well, HM can calculate the schema. You don't really even need all of HM, because there's no let.
2023-10-29 20:32:19 +0100 <EvanR> does let really add anything
2023-10-29 20:33:04 +0100 <dolio> You can do better than HM, too, I think. STLC probably has 'principal typings.' So you can judge whether or not any open expression admits typings, without context.
2023-10-29 20:33:17 +0100 <EvanR> isn't let x = term1 in term2 = (\x -> term2) term1
2023-10-29 20:34:05 +0100sm(~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds)
2023-10-29 20:34:37 +0100 <dolio> Like, in HM, with some base types, you can't know whether `(x "hello", x 5)` is valid without knowing if x is lambda or let bound. But in STLC it will never be well typed.
2023-10-29 20:35:32 +0100 <EvanR> ok let is important in HM
2023-10-29 20:35:40 +0100 <EvanR> let generalization
2023-10-29 20:36:52 +0100vulpineghoulpine
2023-10-29 20:37:58 +0100 <dolio> Principal typings are nice because you can just run the algorithm on arbitrary open subexpressions and merge the results, instead of having to e.g. check the stuff in a let first because it supplies context necessary to check the body.
2023-10-29 20:39:08 +0100 <EvanR> principal typings, with an s, is what exactly
2023-10-29 20:39:48 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
2023-10-29 20:40:06 +0100redmp(~redmp@mobile-166-137-179-187.mycingular.net)
2023-10-29 20:40:30 +0100 <EvanR> for being simply typed this is getting pretty deep
2023-10-29 20:41:14 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 256 seconds)
2023-10-29 20:47:00 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-10-29 20:49:35 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
2023-10-29 20:50:25 +0100 <EvanR> by detecting that no type could possibly check, does that indicate "no principle typings", otherwise "yes principle typings"
2023-10-29 20:50:37 +0100 <EvanR> principal*
2023-10-29 20:51:34 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-29 20:56:09 +0100 <dolio> Principal typings are like most general derivable judgment schemas for an open term.
2023-10-29 20:58:01 +0100 <dolio> So, like, given an open term E, you can calculate a most general `Γ ⊢ E : T` for it. And every type derivation involving E will have an instantiation of that judgment.
2023-10-29 20:59:12 +0100 <dolio> And the typings for compound terms can be calculated by combining the typings of the subterms.
2023-10-29 21:06:29 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-29 21:11:01 +0100falafel_(~falafel@143.244.47.73)
2023-10-29 21:13:53 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds)
2023-10-29 21:15:12 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:683f:d223:28c9:3aae)
2023-10-29 21:15:12 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:683f:d223:28c9:3aae) (Changing host)
2023-10-29 21:15:12 +0100random-jellyfish(~tiber@user/random-jellyfish)
2023-10-29 21:20:39 +0100Guest7614(~Max@178.237.232.145)
2023-10-29 21:20:55 +0100 <Guest7614> hello
2023-10-29 21:21:01 +0100 <Guest7614> Is this for haskell, right?
2023-10-29 21:21:07 +0100 <geekosaur> yes
2023-10-29 21:21:15 +0100 <Guest7614> Because I have a problem and i don't know how to solve it
2023-10-29 21:21:22 +0100 <Guest7614> I tried searching and using chat gpt
2023-10-29 21:21:27 +0100 <Guest7614> but nothing seems to work
2023-10-29 21:21:41 +0100Tlsx(~rscastilh@187.40.125.21) (Read error: Connection reset by peer)
2023-10-29 21:23:01 +0100 <geekosaur> @where paste
2023-10-29 21:23:01 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2023-10-29 21:23:13 +0100 <Guest7614> ld.lld: error: undefined symbol: ghczuwrapperZC0ZChashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276ZCDataziHashableziLowLevelZChashablezufnvzuhashzuoffset
2023-10-29 21:23:13 +0100 <Guest7614> >>> referenced by libHSaeson-2.2.1.0-02a1c0fee0861df53ac8d1042bdad68d6b54029a.a(Internal.o):(aesonzm2zi2zi1zi0zm02a1c0fee0861df53ac8d1042bdad68d6b54029a_DataziAesonziTypesziInternal_zdwhashValue_info)
2023-10-29 21:23:14 +0100 <Guest7614> >>> referenced by libHSscientific-0.3.7.0-b454375fe5cb0412b0580304d35c6fc2921f8c46.a(Scientific.o):(scientificzm0zi3zi7zi0zmb454375fe5cb0412b0580304d35c6fc2921f8c46_DataziScientific_zdwzdchashWithSalt_info)
2023-10-29 21:23:15 +0100 <Guest7614> >>> referenced 30 more times
2023-10-29 21:23:15 +0100 <Guest7614> ld.lld: error: undefined symbol: hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziLowLevel_hashInt_closure
2023-10-29 21:23:16 +0100 <Guest7614> >>> referenced by libHShashable-1.4.3.0-1961fe79003fd705645c177b7f4aca0399a4d276.a(Class.o):(hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziClass_zdfHashableInt_closure)
2023-10-29 21:23:16 +0100 <Guest7614> ld.lld: error: undefined symbol: ghczuwrapperZC1ZChashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276ZCDataziHashableziLowLevelZChashablezufnvzuhash
2023-10-29 21:23:17 +0100 <Guest7614> >>> referenced by libHShashable-1.4.3.0-1961fe79003fd705645c177b7f4aca0399a4d276.a(Class.o):(hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziClass_zdfHashable2ConstzuzdcliftHashWithSalt2_info)
2023-10-29 21:23:17 +0100 <Guest7614> >>> referenced by libHShashable-1.4.3.0-1961fe79003fd705645c177b7f4aca0399a4d276.a(Class.o):(hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziClass_hashPtr1_info)
2023-10-29 21:23:18 +0100 <Guest7614> >>> referenced by libHShashable-1.4.3.0-1961fe79003fd705645c177b7f4aca0399a4d276.a(Class.o):(hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziClass_zdwzdchashWithSalt4_slow)
2023-10-29 21:23:18 +0100 <Guest7614> >>> referenced 1 more times
2023-10-29 21:23:19 +0100 <Guest7614> ld.lld: error: undefined symbol: hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziLowLevel_hashWord64_closure
2023-10-29 21:23:19 +0100 <Guest7614> >>> referenced by libHShashable-1.4.3.0-1961fe79003fd705645c177b7f4aca0399a4d276.a(Class.o):(hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziClass_zdfHashableWord64_closure)
2023-10-29 21:23:20 +0100 <Guest7614> ld.lld: error: undefined symbol: hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziLowLevel_hashInt64_closure
2023-10-29 21:23:20 +0100 <Guest7614> >>> referenced by libHShashable-1.4.3.0-1961fe79003fd705645c177b7f4aca0399a4d276.a(Class.o):(hashablezm1zi4zi3zi0zm1961fe79003fd705645c177b7f4aca0399a4d276_DataziHashableziClass_zdfHashableInt64_closure)
2023-10-29 21:23:21 +0100 <Guest7614> clang: error: linker command failed with exit code 1 (use -v to see invocation)
2023-10-29 21:23:21 +0100 <Guest7614> ghc-9.4.7.exe: `clang.exe' failed in phase `Linker'. (Exit code: 1)
2023-10-29 21:23:40 +0100falafel_(~falafel@143.244.47.73) (Remote host closed the connection)
2023-10-29 21:23:44 +0100 <monodoom> Yeah please use https://paste.tomsmeding.com instead.
2023-10-29 21:23:45 +0100 <Guest7614> this is the error
2023-10-29 21:24:08 +0100 <Guest7614> done
2023-10-29 21:24:15 +0100falafel_(~falafel@143.244.47.73)
2023-10-29 21:24:31 +0100 <Guest7614> it is a program used to read JSON data
2023-10-29 21:24:39 +0100 <Guest7614> and then print its content until the line 100
2023-10-29 21:25:05 +0100falafel_(~falafel@143.244.47.73) (Remote host closed the connection)
2023-10-29 21:25:59 +0100 <[exa]> Guest7614: how do you measure lines in JSON? (or are these the lines in the input text stream?)
2023-10-29 21:26:35 +0100 <[exa]> because technically all json fits on a signle line
2023-10-29 21:26:58 +0100aljazmc(~aljazmc@user/aljazmc) (Quit: Leaving)
2023-10-29 21:27:30 +0100 <int-e> but apparently the program failed to compile (well, link) so is that even relevant?
2023-10-29 21:28:00 +0100 <monodoom> I was thinking that too. But then I was also OK with tangential discussions. :)
2023-10-29 21:28:03 +0100 <int-e> (more info needed... what is the failing command... it's probably also useful to know how ghc was installed)
2023-10-29 21:28:10 +0100 <monodoom> or generally curiosities.
2023-10-29 21:28:32 +0100 <int-e> (But I'm clueless about how these things work on Windows)
2023-10-29 21:28:32 +0100 <[exa]> int-e: you can save a lot of compile errors by coding a different program :D
2023-10-29 21:28:50 +0100 <monodoom> I don't envy Windows users and Mac users. >:)
2023-10-29 21:29:00 +0100 <monodoom> Haha nice.
2023-10-29 21:29:03 +0100Guest7614(~Max@178.237.232.145) (Quit: Client closed)
2023-10-29 21:29:07 +0100Tlsx(~rscastilh@187.40.125.21)
2023-10-29 21:29:09 +0100 <[exa]> Guest7614: btw how did you install your haskell? this looks ... ok they left
2023-10-29 21:29:25 +0100 <int-e> [exa]: Ah, so next you'll suggest just using Python instead?
2023-10-29 21:29:58 +0100 <monodoom> Noooo! Use the unix "head" program. It's just "head -100" no? >:)
2023-10-29 21:30:03 +0100 <int-e> ...
2023-10-29 21:30:20 +0100 <[exa]> int-e: oh no not puthon, but for some interpretations this might work with just `interact (unlines .take 100 . lines)` or so
2023-10-29 21:30:36 +0100 <monodoom> told you so :)
2023-10-29 21:30:37 +0100 <[exa]> monodoom: man what happened with your chrom
2023-10-29 21:30:51 +0100 <monodoom> Halloween.
2023-10-29 21:30:56 +0100 <[exa]> scary.
2023-10-29 21:31:25 +0100 <monodoom> I might not be around on Tuesday, so I start now. :)
2023-10-29 21:32:37 +0100 <monodoom> "ld.lld ... unresolved ..." seems to be pretty common recently.
2023-10-29 21:33:48 +0100 <int-e> . o O ( The Haskell cabal strikes again. (No, I don't know that, it's just a pun.) )
2023-10-29 21:34:04 +0100 <monodoom> :)
2023-10-29 21:35:25 +0100Guest9064(~Max@178.237.232.145)
2023-10-29 21:35:30 +0100 <Guest9064> May it work reinstalling ghc?
2023-10-29 21:35:37 +0100 <Guest9064> it's me again
2023-10-29 21:36:30 +0100 <[exa]> Guest9064: what's your cabal version?
2023-10-29 21:36:46 +0100 <Guest9064> 2.4
2023-10-29 21:36:54 +0100 <[exa]> Guest9064: anyway yeah looks like something is a tiny little bit off with the installation; there are similar reports here: https://gitlab.haskell.org/ghc/ghc/-/issues/22085
2023-10-29 21:37:09 +0100 <[exa]> oh, can you try a recent one? (I think the above bugreport mentions 3.8)
2023-10-29 21:37:16 +0100 <Guest9064> okey
2023-10-29 21:37:21 +0100 <Guest9064> I will try it
2023-10-29 21:37:22 +0100 <Guest9064> thx
2023-10-29 21:37:28 +0100 <Guest9064> I think I will reinstalled it
2023-10-29 21:37:33 +0100 <Guest9064> So, things will be easier
2023-10-29 21:37:45 +0100 <int-e> "Oh, I'm told I need to use cabal 3.8 with GHC 9.4.1 on Windows. Sorry for the noise."
2023-10-29 21:37:49 +0100 <Guest9064> I am totally newbie in Haskell ahhaha
2023-10-29 21:37:56 +0100 <int-e> (as exa said)
2023-10-29 21:38:05 +0100 <[exa]> Guest9064: this is not much haskell related, more like, unfortunately stuff tends to break notoriously on windows so old versions often cease to work
2023-10-29 21:38:10 +0100 <Guest9064> Can I ask something else about the language?
2023-10-29 21:38:13 +0100 <[exa]> sure
2023-10-29 21:38:26 +0100 <Guest9064> What kind of programm is better to build in Haskell?
2023-10-29 21:39:19 +0100random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 264 seconds)
2023-10-29 21:39:20 +0100 <Guest9064> I come from programming language sucha s Python, Java, Javascript,etc
2023-10-29 21:39:24 +0100 <Guest9064> as*
2023-10-29 21:39:33 +0100 <Guest9064> And I wanted to learn something totally different
2023-10-29 21:39:49 +0100 <Guest9064> And I want to practice it by building a project
2023-10-29 21:39:49 +0100 <[exa]> well it's a general language so whatever you want should work. it's really good for text- and structure-chewing tools (think compilers or pandoc) and various web things (microservices, static content generators)
2023-10-29 21:40:01 +0100 <Guest9064> oh
2023-10-29 21:40:07 +0100 <Guest9064> What about machine learning?
2023-10-29 21:40:12 +0100 <Guest9064> Like Sentiment-Analysis?
2023-10-29 21:40:25 +0100 <monodoom> If you forget objects, everything is better in Haskell.
2023-10-29 21:40:30 +0100benjaminl(~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
2023-10-29 21:40:30 +0100 <Guest9064> hahahah
2023-10-29 21:40:44 +0100 <Guest9064> Make totally sense
2023-10-29 21:40:45 +0100benjaminl(~benjaminl@user/benjaminl)
2023-10-29 21:40:47 +0100 <[exa]> machine learning is more like about preprocessing data (pain) and multiplying enough matrices (hardware hurts), I'd say language doesn't matter there a lot
2023-10-29 21:41:00 +0100 <[exa]> everything is shifted towards pythons in that community tho
2023-10-29 21:41:02 +0100 <Guest9064> I was thinking about the libraries
2023-10-29 21:41:33 +0100 <Guest9064> Like if there is a library with things done
2023-10-29 21:41:36 +0100 <monodoom> We don't have good or plentiful of machine learning libraries though.
2023-10-29 21:41:50 +0100 <[exa]> there's also nice projects for utilizing GPUs for whatever, incl. machine learning algorithms
2023-10-29 21:41:59 +0100 <monodoom> There ought to be something but I am not into that fad so I don't know.
2023-10-29 21:42:40 +0100 <Guest9064> mmm
2023-10-29 21:42:46 +0100 <[exa]> https://hackage.haskell.org/packages/#cat:Machine%20Learning
2023-10-29 21:42:48 +0100 <Guest9064> Well, something is better than nothing
2023-10-29 21:42:55 +0100 <[exa]> oh wow there's a typed pytorch clone
2023-10-29 21:43:00 +0100 <Guest9064> wow
2023-10-29 21:43:04 +0100 <Guest9064> nice
2023-10-29 21:43:11 +0100 <Guest9064> thank you very much
2023-10-29 21:43:23 +0100 <monodoom> Generally: Is Haskell good for writing programs properly? Yes. Is Haskell good for the latest fad? No.
2023-10-29 21:44:24 +0100 <Guest9064> Understandable
2023-10-29 21:44:46 +0100 <Guest9064> My teacher from college said that Haskell is quite used in finantial sector
2023-10-29 21:44:50 +0100 <[exa]> Guest9064: btw for starting I always recommend to code a game in Gloss (easiest interface to graphics ever) and in Brick (same but for terminals)
2023-10-29 21:44:51 +0100 <Guest9064> more like security aspects
2023-10-29 21:45:01 +0100Tlsx(~rscastilh@187.40.125.21) ()
2023-10-29 21:45:58 +0100 <[exa]> yeah that's a nice language property, if you manage to type your stuff well, the chances of making a stupid mistake are, like, small
2023-10-29 21:46:09 +0100 <Guest9064> Nice
2023-10-29 21:46:16 +0100 <Guest9064> Thanks for all the recommendations and tips
2023-10-29 21:46:32 +0100 <[exa]> financials love stuff that doesn't break
2023-10-29 21:46:37 +0100 <Guest9064> hahahah
2023-10-29 21:46:38 +0100 <Guest9064> make sense
2023-10-29 21:46:39 +0100quarkyalice(~alice@user/quarkyalice) (Ping timeout: 240 seconds)
2023-10-29 21:46:50 +0100 <Guest9064> hope to see you guys frequently
2023-10-29 21:46:58 +0100 <Guest9064> nice to know that the community is quite active
2023-10-29 21:47:00 +0100 <[exa]> there was some bitcoin-related stuff (hledger?)
2023-10-29 21:47:06 +0100 <Guest9064> wow
2023-10-29 21:47:14 +0100 <geekosaur> hledger is plaintext accounting
2023-10-29 21:47:20 +0100 <[exa]> ah. :D
2023-10-29 21:47:21 +0100 <Guest9064> nice to know
2023-10-29 21:47:25 +0100 <geekosaur> cardano's the bitcoin thing
2023-10-29 21:47:25 +0100Guest9064(~Max@178.237.232.145) ()
2023-10-29 21:47:30 +0100 <monodoom> hledger is a spreadsheet. But there is blockchain stuff from IOHK.
2023-10-29 21:47:36 +0100xstill_(xstill@fimu/xstill) (Read error: Connection reset by peer)
2023-10-29 21:47:38 +0100xsarnik(xsarnik@lounge.fi.muni.cz) (Read error: Connection reset by peer)
2023-10-29 21:47:53 +0100xsarnik(xsarnik@lounge.fi.muni.cz)
2023-10-29 21:48:05 +0100 <monodoom> err I guess "accounting" is more accurate than "spreadsheet".
2023-10-29 21:49:58 +0100xstill_(xstill@fimu/xstill)
2023-10-29 21:50:11 +0100 <[exa]> smarter spreadsheets
2023-10-29 21:50:19 +0100 <[exa]> btw no idea how I assumed it's bitcoin
2023-10-29 21:50:34 +0100 <[exa]> interesting.
2023-10-29 21:51:31 +0100pavonia(~user@user/siracusa)
2023-10-29 21:53:03 +0100 <monodoom> accounting -> money -> crypto money? :)
2023-10-29 21:53:25 +0100 <monodoom> "This is how LLMs work." >:)
2023-10-29 21:53:27 +0100 <int-e> there's also the "distributed ledger" keyword to cause confusion
2023-10-29 21:53:52 +0100 <monodoom> Ah that is a much stronger correlation.
2023-10-29 21:54:13 +0100 <int-e> . o O ( low-level machines )
2023-10-29 21:55:09 +0100 <monodoom> Well, in light of SECD and STG being "high-level machines"... :)
2023-10-29 21:55:25 +0100 <monodoom> It's lasagna all the way down.
2023-10-29 21:56:14 +0100 <int-e> linguistic lasagna manufacturing
2023-10-29 21:57:57 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-29 22:00:38 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 22:05:07 +0100sm(~sm@plaintextaccounting/sm) (Ping timeout: 264 seconds)
2023-10-29 22:07:32 +0100redmp(~redmp@mobile-166-137-179-187.mycingular.net) (Quit: leaving)
2023-10-29 22:08:01 +0100 <[exa]> hm yeah looks like I got LLMcinnated by the distributed ledgers.
2023-10-29 22:09:32 +0100Jackneill(~Jackneill@20014C4E1E03D800752B92BCDFEE2878.dsl.pool.telekom.hu) (Ping timeout: 255 seconds)
2023-10-29 22:11:22 +0100Lycurgus(~georg@user/Lycurgus)
2023-10-29 22:13:49 +0100neceve(~neceve@user/neceve) (Ping timeout: 255 seconds)
2023-10-29 22:14:10 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-29 22:14:36 +0100shapr(~user@2600:1700:c640:3100:fd0a:e422:9294:eac8) (Remote host closed the connection)
2023-10-29 22:14:50 +0100shapr(~user@2600:1700:c640:3100:3677:a0fc:91df:dab4)
2023-10-29 22:16:52 +0100quarkyalice(~alice@59.sub-75-198-129.myvzw.com)
2023-10-29 22:16:52 +0100quarkyalice(~alice@59.sub-75-198-129.myvzw.com) (Changing host)
2023-10-29 22:16:52 +0100quarkyalice(~alice@user/quarkyalice)
2023-10-29 22:17:59 +0100vglfr(~vglfr@46.96.15.94) (Read error: Connection reset by peer)
2023-10-29 22:18:09 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-10-29 22:18:27 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-29 22:23:02 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-29 22:24:19 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2023-10-29 22:27:40 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2023-10-29 22:28:06 +0100waleee(~waleee@h-176-10-144-38.na.cust.bahnhof.se)
2023-10-29 22:31:00 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 22:35:52 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 255 seconds)
2023-10-29 22:36:24 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2023-10-29 22:46:48 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-29 22:51:37 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-10-29 22:53:35 +0100 <EvanR> that's either the 2nd or 3rd ld.lld error dump issue this week
2023-10-29 22:53:51 +0100 <EvanR> did windows implode
2023-10-29 22:57:12 +0100sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-29 22:59:47 +0100quarkyalice(~alice@user/quarkyalice) (Ping timeout: 246 seconds)
2023-10-29 23:00:03 +0100 <[exa]> last like 28 years I've been waiting patiently for the windows implosion to conclude
2023-10-29 23:07:03 +0100dhil(~dhil@2001:8e0:2014:3100:846e:9cc4:60ae:ba95) (Ping timeout: 240 seconds)
2023-10-29 23:07:16 +0100 <EvanR> a common theme in esoteric programming languages is the ability to somehow get chars from standard input them somehow yield chars to standard output. If you take STLC with nothing but unit type and function type as an esoteric language, I'm wondering how to accomplish this xD
2023-10-29 23:07:58 +0100 <EvanR> extensionally it seems like there is exactly 1 function of any type
2023-10-29 23:10:00 +0100 <EvanR> you could say the input char determines the argument type, encoding one of 256 different possibilities
2023-10-29 23:10:21 +0100ph88(~ph88@91.64.226.114) (Read error: Connection reset by peer)
2023-10-29 23:10:57 +0100 <EvanR> your program takes 256 arguments of the appropriate type xD
2023-10-29 23:11:05 +0100 <EvanR> wait no
2023-10-29 23:14:09 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-29 23:16:13 +0100 <[exa]> for the pure calculus you have to interpret the chars into functions and then interpret the functions that you get back to chars
2023-10-29 23:17:28 +0100 <EvanR> if the function type representing chars is fixed, there would be no way to observe the difference
2023-10-29 23:17:34 +0100 <EvanR> from inside the language
2023-10-29 23:17:41 +0100 <[exa]> that's true
2023-10-29 23:18:15 +0100 <[exa]> you only get the functions that you can run on stuff, for observing the differences you need to smuggle in something observable
2023-10-29 23:18:50 +0100sm(~sm@plaintextaccounting/sm)
2023-10-29 23:19:49 +0100 <[exa]> e.g. λ program gives you a church numeral (basically e.g. (λfx.f(f(f x))) standing for 3; to see what that does you push in an "ugly impure" function `increase` and value `0` to recover the integer
2023-10-29 23:20:02 +0100 <[exa]> which is funnily similar to what haskell does with IO
2023-10-29 23:21:00 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-29 23:21:08 +0100 <[exa]> (s/"ugly impure"/"ugly"/ -- this one's actually pure but doesn't really need to be)
2023-10-29 23:24:56 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds)
2023-10-29 23:25:38 +0100 <EvanR> program returns a church numeral and rts interprets it as a number. Ok. For input rts converts number to church numeral. And this input can make a difference?
2023-10-29 23:26:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-29 23:26:35 +0100 <EvanR> ok, it makes a difference if you can see the terms
2023-10-29 23:26:43 +0100 <EvanR> weird
2023-10-29 23:28:00 +0100quarkyalice(~alice@59.sub-75-198-129.myvzw.com)
2023-10-29 23:28:00 +0100quarkyalice(~alice@59.sub-75-198-129.myvzw.com) (Changing host)
2023-10-29 23:28:00 +0100quarkyalice(~alice@user/quarkyalice)
2023-10-29 23:30:21 +0100 <EvanR> ironically that setup is not well typed, since you can return a bogus numeral
2023-10-29 23:31:54 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 272 seconds)
2023-10-29 23:34:12 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 23:38:25 +0100waleee(~waleee@h-176-10-144-38.na.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-10-29 23:40:44 +0100notzmv(~zmv@user/notzmv)
2023-10-29 23:44:58 +0100chomwitt(~chomwitt@2a02:587:7a01:8f00:1ac0:4dff:fedb:a3f1) (Ping timeout: 260 seconds)
2023-10-29 23:45:42 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-29 23:45:51 +0100acidjnk(~acidjnk@p200300d6e72b938491b352852f43969f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-10-29 23:48:00 +0100vglfr(~vglfr@46.96.15.94) (Remote host closed the connection)
2023-10-29 23:48:34 +0100vglfr(~vglfr@46.96.15.94)
2023-10-29 23:52:40 +0100xff0x(~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 252 seconds)
2023-10-29 23:53:03 +0100xff0x(~xff0x@178.255.149.135)
2023-10-29 23:55:11 +0100michalz(~michalz@185.246.207.218) (Remote host closed the connection)