2020/11/23

2020-11-23 00:01:09 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-11-23 00:01:37 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:31ca:eef6:b3d5:eefb)
2020-11-23 00:02:17 +0100crdrost(~crdrost@2601:646:8280:85f0:20c8:1ab8:3926:f8e3)
2020-11-23 00:02:22 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-23 00:03:41 +0100christo(~chris@81.96.113.213)
2020-11-23 00:04:21 +0100ph88(~ph88@2a02:8109:9e00:7e5c:5dee:702e:778c:4427) (Ping timeout: 272 seconds)
2020-11-23 00:04:41 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2020-11-23 00:05:41 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-11-23 00:05:43 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-11-23 00:07:41 +0100rtpchan(~rtpchan@c-98-198-235-37.hsd1.tx.comcast.net) (Quit: Leaving)
2020-11-23 00:07:50 +0100LostCanvas(~iharper@75-108-155-188.chstcmtk01.res.dyn.suddenlink.net)
2020-11-23 00:07:58 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-23 00:08:02 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-23 00:08:46 +0100shadowdaemon(~user@unaffiliated/shadowdaemon)
2020-11-23 00:11:30 +0100s00pcan(~chris@107.181.165.217) (Ping timeout: 260 seconds)
2020-11-23 00:11:52 +0100conal_(~conal@66.115.157.141)
2020-11-23 00:12:44 +0100crdrost(~crdrost@2601:646:8280:85f0:20c8:1ab8:3926:f8e3) (Quit: Leaving)
2020-11-23 00:13:00 +0100hackagemassiv 0.5.6.0 - Massiv (Массив) is an Array Library. https://hackage.haskell.org/package/massiv-0.5.6.0 (lehins)
2020-11-23 00:13:09 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com)
2020-11-23 00:13:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-23 00:14:19 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 2.8)
2020-11-23 00:14:30 +0100hackagemassiv-test 0.1.5 - Library that contains generators, properties and tests for Massiv Array Library. https://hackage.haskell.org/package/massiv-test-0.1.5 (lehins)
2020-11-23 00:14:35 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-11-23 00:14:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-23 00:15:14 +0100rednaZ2(rednaZ2@freebnc.bnc4you.xyz) (Quit: ZNC from ##bnc4you)
2020-11-23 00:15:19 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-23 00:15:39 +0100e2(e2@sponsored.by.bnc4you.xyz) (Quit: Stable ZNC provider ##bnc4you)
2020-11-23 00:15:56 +0100 <dolio> Why do you need the Haskell report if it's just going to say that Haskell is GHC?
2020-11-23 00:16:14 +0100 <monochrom> :)
2020-11-23 00:18:23 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-23 00:18:30 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-11-23 00:19:38 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-11-23 00:20:48 +0100 <hekkaidekapus> lol See also the GHC20XX proposal.
2020-11-23 00:21:29 +0100 <hekkaidekapus> Some people fork compilers, we fork the report.
2020-11-23 00:24:07 +0100 <koz_> :t uncurry
2020-11-23 00:24:08 +0100 <lambdabot> (a -> b -> c) -> (a, b) -> c
2020-11-23 00:24:37 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 272 seconds)
2020-11-23 00:27:13 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-11-23 00:31:41 +0100jbox(~atlas@unaffiliated/jbox)
2020-11-23 00:31:56 +0100incertia(~incertia@d4-50-42-33.try.wideopenwest.com) (Ping timeout: 240 seconds)
2020-11-23 00:33:19 +0100evanm(182c6bd4@ool-182c6bd4.dyn.optonline.net)
2020-11-23 00:34:37 +0100 <dolio> I mean, that probably makes sense, if it does what I think it does. Why not have some additional 'default language' levels that turn on a bunch of GHC stuff that is generally safe and useful, if that's the only tangible difference including them in the report makes?
2020-11-23 00:34:37 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-23 00:35:02 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 00:35:03 +0100 <Lycurgus> since Algol, she's gotta have it
2020-11-23 00:35:13 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2020-11-23 00:35:13 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Client Quit)
2020-11-23 00:36:30 +0100GuerrillaMonkey(~Jeanne-Ka@66.115.189.157) (Ping timeout: 256 seconds)
2020-11-23 00:36:40 +0100 <Lycurgus> only lumpen langs don't have a report
2020-11-23 00:36:42 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Ping timeout: 260 seconds)
2020-11-23 00:37:28 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-11-23 00:38:03 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving)
2020-11-23 00:38:10 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-23 00:38:27 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2020-11-23 00:39:02 +0100christo(~chris@81.96.113.213)
2020-11-23 00:41:21 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-23 00:42:43 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-23 00:43:28 +0100christo(~chris@81.96.113.213) (Ping timeout: 246 seconds)
2020-11-23 00:43:45 +0100hekkaidekapus_hekkaidekapus
2020-11-23 00:44:41 +0100 <hekkaidekapus> dolio: “[GHC20XX] can be used as a language extension […] but also as a language versions in places where Haskell98 or Haskell2010 is valid.”
2020-11-23 00:44:47 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal)
2020-11-23 00:45:10 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-23 00:45:14 +0100stu002(77120261@119-18-2-97.771202.syd.nbn.aussiebb.net)
2020-11-23 00:46:02 +0100 <hekkaidekapus> That’s a low-key way of saying let’s throw away any attemps of making a new report geared to the ‘greater’ Haskell.
2020-11-23 00:46:30 +0100 <dminuoso> hekkaidekapus: I thought everyone has given up on any further Haskell reports.
2020-11-23 00:46:42 +0100 <hekkaidekapus> It seems so.
2020-11-23 00:47:03 +0100 <hekkaidekapus> But that’s betting on GHC being forever maintained.
2020-11-23 00:47:04 +0100 <stu002> Is there an idiomatic way to create a haddock hyperlink to a local file in the library source tree? I'd like to refer to the README and other markdown files from the package haddock docs
2020-11-23 00:47:56 +0100 <dminuoso> hekkaidekapus: Well, what other implementation is keeping up with GHC extensions anyway?
2020-11-23 00:48:01 +0100feliocrat(~feliocrat@95.70.154.29) (Remote host closed the connection)
2020-11-23 00:48:16 +0100 <dminuoso> hekkaidekapus: I mean it's largely a management and manpower problem
2020-11-23 00:48:31 +0100 <merijn> UHC implements a handful, iirc
2020-11-23 00:48:52 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-23 00:48:55 +0100 <dolio> A new report isn't going to happen by making average users type more crap at the top of their files.
2020-11-23 00:49:06 +0100 <dminuoso> hekkaidekapus: https://reasonablypolymorphic.com/blog/haskell202x/
2020-11-23 00:49:09 +0100 <hekkaidekapus> I’m not disputing the practical considerations of focusing on GHC right now.
2020-11-23 00:49:35 +0100 <dminuoso> hekkaidekapus: Different people, different team, different job.
2020-11-23 00:49:39 +0100 <dminuoso> It's not about "focusing on GHC"
2020-11-23 00:50:14 +0100 <merijn> Haskell' needs a cat herder :p
2020-11-23 00:51:02 +0100 <hekkaidekapus> If you are a compiler hacker in 2050, starting from a spec is far more interesting than reviving a 60 years old project.
2020-11-23 00:51:55 +0100arahael(~arahael@124-150-64-50.tpgi.com.au) (Quit: WeeChat 2.7.1)
2020-11-23 00:56:23 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-11-23 00:58:04 +0100conal_(~conal@66.115.157.141) (Quit: Computer has gone to sleep.)
2020-11-23 01:00:10 +0100christo(~chris@81.96.113.213)
2020-11-23 01:00:15 +0100atk(~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
2020-11-23 01:00:37 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 246 seconds)
2020-11-23 01:01:08 +0100conal(~conal@66.115.157.141)
2020-11-23 01:01:39 +0100atk(~Arch-TK@ircpuzzles/staff/Arch-TK)
2020-11-23 01:05:37 +0100 <hekkaidekapus> dminuoso: I read the page you linked. The main point there is a need of Benefactor Dictator For Life. Let’s say that I am a bit skeptic. ;)
2020-11-23 01:06:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 2.8)
2020-11-23 01:06:44 +0100 <dminuoso> And funding.
2020-11-23 01:06:46 +0100 <dolio> I don't understand the argument. First off, it's inappropriate for a language standard to specify things down to an intermediate language level. That means every compiler has to make a ton of decisions exactly like GHC down to a very low level. If you just want documentation of what GHC does, there's already a bunch of papers and wikis and users guides that actually describe GHC already.
2020-11-23 01:07:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-23 01:08:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-23 01:08:35 +0100 <hekkaidekapus> dolio: If you check the backlog, you will see that I expressed a few hours ago that I am not fond of rigourous standards.
2020-11-23 01:09:21 +0100 <hekkaidekapus> My argument here is that taking over Haskell98 and Haskell2010 by a backdoor is a sneaky way of handling matters.
2020-11-23 01:12:33 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-11-23 01:12:48 +0100 <hekkaidekapus> As to why very detailed standard are not my cup of coffee, things end up set in stone, drastic changes practically impossible.
2020-11-23 01:13:41 +0100weilzach(~weilzach@pool-72-66-93-213.washdc.fios.verizon.net)
2020-11-23 01:13:48 +0100 <dminuoso> Unrelatedly, is there some cool trick to traverse over a data structure and fail if it has more than one target?
2020-11-23 01:13:59 +0100Lycurgus(~niemand@98.4.114.74) (Quit: Exeunt)
2020-11-23 01:14:09 +0100 <dminuoso> Beyond the very obvious toList and pattern matching on its length
2020-11-23 01:14:09 +0100weilzach(~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) (Client Quit)
2020-11-23 01:14:11 +0100 <dolio> Also, if you want an active standard process, you need to make new viable Haskell implementations. The standard process is useful as a way of codifying the commonalities of multiple implementations. That's how it originated. The standards process being useless is a symptom of GHC being the only viable choice.
2020-11-23 01:15:29 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530)
2020-11-23 01:15:31 +0100weilzach(~weilzach@pool-72-66-93-213.washdc.fios.verizon.net)
2020-11-23 01:15:43 +0100 <dminuoso> dolio: Perhaps, it could arguably also help in that regard. If we had a new vision of what "standard haskell" in the current state of haskell could be, it would reduce the willingness to flip on extensions and stick to "standard haskell" - perhaps opening up doors for newer implementations
2020-11-23 01:15:50 +0100 <dminuoso> Right now hackage is extension wild west.
2020-11-23 01:16:30 +0100 <dolio> You mean, like specifying a bunch of standard GHC extensions that are considered good enough to be mainstream?
2020-11-23 01:16:35 +0100 <dolio> The 'sneaky' thing?
2020-11-23 01:16:40 +0100 <hekkaidekapus> heh
2020-11-23 01:16:57 +0100 <dminuoso> Not necessarily just that. But at least part of it, yes.
2020-11-23 01:17:07 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 260 seconds)
2020-11-23 01:17:27 +0100weilzach(~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-23 01:17:27 +0100 <dminuoso> Haskell has resulted from academics doing research and trying out ideas. GHCs extensions are just that process.
2020-11-23 01:17:43 +0100 <dminuoso> I dont see anything fundamentally wrong as GHC extensions as precursors of haskell report features.
2020-11-23 01:18:33 +0100weilzach(~weilzach@pool-72-66-93-213.washdc.fios.verizon.net)
2020-11-23 01:18:37 +0100 <Axman6> unpopular opinion: extensions are just language feature flags #facebookdev
2020-11-23 01:19:10 +0100 <hpc> how else would you develop new language features, anyway?
2020-11-23 01:19:29 +0100 <Axman6> laborious committee process like C++
2020-11-23 01:19:43 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds)
2020-11-23 01:19:52 +0100 <hpc> even then you have an implementation of it somewhere before it gets standardized
2020-11-23 01:20:20 +0100 <hekkaidekapus> hpc: Let’s do that then.
2020-11-23 01:20:45 +0100 <hpc> and then make that implementation optional
2020-11-23 01:20:48 +0100vhs(~vhs@41.44.147.255) (Remote host closed the connection)
2020-11-23 01:20:56 +0100 <hpc> and then to make it easy to use, make it enabled with a comment at the top of the file
2020-11-23 01:20:59 +0100 <hpc> :P
2020-11-23 01:21:07 +0100vhs(~vhs@41.44.147.255)
2020-11-23 01:21:35 +0100 <hekkaidekapus> How many compilers are Report2010-compliants?
2020-11-23 01:22:28 +0100 <Axman6> probably up to one
2020-11-23 01:22:39 +0100 <hekkaidekapus> That’s a bummer.
2020-11-23 01:22:53 +0100alp(~alp@2a01:e0a:58b:4920:2d01:9668:71aa:c2be) (Ping timeout: 272 seconds)
2020-11-23 01:23:00 +0100 <hekkaidekapus> No standard process possible with a singleton.
2020-11-23 01:23:03 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 01:25:56 +0100 <hekkaidekapus> stu002: I am not aware of such a Haddock feature.
2020-11-23 01:26:39 +0100 <hekkaidekapus> You can distribute the README by setting the `extra-files` in .cabal.
2020-11-23 01:26:45 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 01:27:37 +0100 <hekkaidekapus> Some programmers make Haskell modules containing only documentation. Therein, the full extent of the Haddock syntax is available.
2020-11-23 01:28:00 +0100 <dolio> Anyhow, my point is, don't think about this in a backwards way. Forcing people to demand the release of another 'official standard' before they can type less garbage in their files isn't going to create more Haskell implementations. Because the implementations created the standard, not the other way around.
2020-11-23 01:29:16 +0100 <dminuoso> One prohibiting factor for new implementations to arise, is that without supporting most extensions, you couldn't use much of hackage. Transitively you quickly depend on a lot of extensions.
2020-11-23 01:29:48 +0100 <hekkaidekapus> dolio: Point taken.
2020-11-23 01:30:19 +0100arahael(~arahael@124-150-64-50.tpgi.com.au)
2020-11-23 01:30:38 +0100 <hekkaidekapus> stu002: For instance, this module has not a single Haskell identifier: <https://hackage.haskell.org/package/dhall-1.36.0/docs/Dhall-Tutorial.html>
2020-11-23 01:30:43 +0100 <dminuoso> And part of why so packages so freely depend on extensions without caring about interoperability, is because there's not even some principle Haskell2020 that you could even adhere to
2020-11-23 01:30:58 +0100 <dminuoso> The best we have is Haskell2010, and that's very limiting
2020-11-23 01:31:10 +0100 <dolio> Even if there was, there would be no reason to not use GHC's extensions beyond 2020.
2020-11-23 01:31:25 +0100 <dolio> Because there is no other compiler to use.
2020-11-23 01:31:32 +0100fendor_(~fendor@91.141.2.69.wireless.dyn.drei.com)
2020-11-23 01:31:51 +0100 <dminuoso> I guess it's a vicious circle.
2020-11-23 01:32:49 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-11-23 01:33:29 +0100siwica(~user@p200300f6171ea70026a3ceac3db524b2.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2020-11-23 01:33:45 +0100 <monochrom> At this point, you can compare (another Haskell compiler competing with GHC) with (a new manufacturer of photocopiers competing with existing brands)
2020-11-23 01:33:52 +0100fendor__(~fendor@77.119.131.102.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
2020-11-23 01:33:58 +0100 <dminuoso> But I stand by my opinion that with a modern Haskell 202x standard, it would be easier to get people away from just using off-standard GHC extensions.
2020-11-23 01:34:11 +0100 <dminuoso> Without a standard you can't even try
2020-11-23 01:35:06 +0100 <monochrom> Users now have so much expectations of a Haskell compiler or a photocopier (now called "office document centre") that only GHC and only the existing very experienced manufacturers can live up to those expectations.
2020-11-23 01:35:14 +0100christo(~chris@81.96.113.213)
2020-11-23 01:35:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 01:35:52 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-11-23 01:36:07 +0100 <monochrom> Indeed look at the feature creeps into GHC that bring it further and further away from very simple Haskell, and the feature creeps that turned simple photocopiers to monstrous know-it-alls.
2020-11-23 01:36:13 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-11-23 01:36:41 +0100 <dolio> I don't think you need to compile hackage to be a useful Haskell compiler, incidentally. There's probably like 0.1% of hackage or less that matters.
2020-11-23 01:36:56 +0100 <dolio> Maybe less.
2020-11-23 01:37:34 +0100 <dminuoso> Ability to compile a notable portion of hackage is what a new implementation would require for good adoption.
2020-11-23 01:37:52 +0100 <dminuoso> Unless this was an industry implementation for some special use
2020-11-23 01:38:03 +0100 <dolio> PureScript compiles 0% of hackage, I expect.
2020-11-23 01:38:11 +0100 <dminuoso> PureScript is not Haskell though.
2020-11-23 01:38:22 +0100 <dolio> And yet people use it.
2020-11-23 01:38:43 +0100 <monochrom> But purescript compiles 100% of the purescript library repository :)
2020-11-23 01:39:11 +0100 <hekkaidekapus> dminuoso: That’s a tall order. Look at head.hackage and all the cycles going there to test new GHC features against a few Hackage packages.
2020-11-23 01:39:21 +0100 <dminuoso> If you tell me "this is a haskell compiler", and yet it cant compile most packages dubbed as "haskell package", then why should I buy your implementation?
2020-11-23 01:39:37 +0100 <dolio> monochrom: That's probably wrong, too.
2020-11-23 01:39:40 +0100Tops2(~Tobias@dyndsl-095-033-027-066.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-11-23 01:39:46 +0100 <dolio> They keep making major language changes.
2020-11-23 01:39:53 +0100 <dolio> Or at least, did in the past.
2020-11-23 01:40:03 +0100 <monochrom> There is the expectattion that if you called your compiler "purescript compiler" people don't expect it to be compatible with any of Hackage, whereas if you call it "Haskell compiler" people suddenly do.
2020-11-23 01:40:26 +0100 <monochrom> Ah OK, oh well.
2020-11-23 01:40:55 +0100 <dolio> dminuoso: Why would anyone buy it, period. The problem is, there's nothing that isn't GHC that has a tangible reason for people to use it. The tangible reason to not use GHC comes first.
2020-11-23 01:41:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-23 01:41:37 +0100 <dminuoso> That's a fair point.
2020-11-23 01:41:39 +0100 <hekkaidekapus> dolio: You seem to be okay with monocultures.
2020-11-23 01:41:53 +0100 <dminuoso> I don't think dolio suggested he's *okay* with the situation.
2020-11-23 01:42:26 +0100 <hekkaidekapus> I got the point about implementations preceding standardisation.
2020-11-23 01:42:28 +0100 <dolio> I'm describing what the reality is, yes.
2020-11-23 01:42:51 +0100 <dolio> If you don't like it, you need to change the reality.
2020-11-23 01:43:10 +0100 <stu002> @hekkaidekapus thanks for that
2020-11-23 01:43:10 +0100 <lambdabot> Unknown command, try @list
2020-11-23 01:43:28 +0100 <hekkaidekapus> stu002: yw
2020-11-23 01:43:59 +0100 <dminuoso> Perhaps its actually projects like Frege that could drive alternate implementations.
2020-11-23 01:44:21 +0100weilzach(~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) ()
2020-11-23 01:44:35 +0100 <dminuoso> A reason not to use GHC is because you might want more free interop with the JVM if inline-java is not enough.
2020-11-23 01:44:44 +0100 <monochrom> I suddenly have a feeling that the Haskell Report died because Paul Hudak died.
2020-11-23 01:44:47 +0100 <dminuoso> At the very least that's a large industry.
2020-11-23 01:45:03 +0100 <dolio> If there were a real alternative to GHC that did something way better, but didn't implement all of GHC's stuff, there'd be people saying, "hey, can you make stuff compatible with this other thing? Maybe we should standardize it."
2020-11-23 01:45:37 +0100 <dminuoso> dolio: Yeah. Frege fits that description exactly I guess.
2020-11-23 01:45:57 +0100 <dolio> But making the alternative is the significant work, and just asking people to behave as if that other thing existed won't make the work happen, and eventually people will notice that you're asking them to do a lot of work conforming to your morality for no real benefit.
2020-11-23 01:46:36 +0100cosimone(~cosimone@5.171.24.24)
2020-11-23 01:46:56 +0100 <monochrom> Yeah, hell, when I write in C I code to folklore x86-64 C, not the C standard.
2020-11-23 01:47:32 +0100 <dminuoso> Heh, barely anyone ever adheres to the C standard
2020-11-23 01:47:36 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-11-23 01:47:57 +0100 <monochrom> When I teach Haskell to students I shamelessly say "lazy evaluation" not what the Haskell Report tries to avoid to say.
2020-11-23 01:48:16 +0100 <monochrom> (BTW IMO the Haskell Report also fails in its attempt to shy away from lazy evaluation.)
2020-11-23 01:48:22 +0100 <dminuoso> Most of C appears to be not even folklore C but "whatever I imagine"-C
2020-11-23 01:48:29 +0100 <hekkaidekapus> Standards are for compiler implementors anyway.
2020-11-23 01:48:42 +0100 <monochrom> (For example explain to me why else "seq" is called "seq" not merely "strict" or "strictify")
2020-11-23 01:48:45 +0100 <dminuoso> hekkaidekapus: That's a pretty inadequate bar, honestly.
2020-11-23 01:48:52 +0100 <hekkaidekapus> heh
2020-11-23 01:49:00 +0100 <dminuoso> If only language implementors can read it, how should a language user understand your language?
2020-11-23 01:49:45 +0100cosimone(~cosimone@5.171.24.24) (Client Quit)
2020-11-23 01:50:11 +0100 <dminuoso> If you take this to the extreme you end with something like C++ where not even the C++ committee understands what some of their standard means.
2020-11-23 01:50:22 +0100cosimone(~user@5.171.24.24)
2020-11-23 01:50:35 +0100cosimone(~user@5.171.24.24) (Remote host closed the connection)
2020-11-23 01:50:56 +0100conal(~conal@66.115.157.141) (Quit: Computer has gone to sleep.)
2020-11-23 01:51:09 +0100 <dminuoso> [13] is a great source for inconclusive debates
2020-11-23 01:51:32 +0100 <hekkaidekapus> I bet LLVM and GCC coders have a great grasp of the standard (those not on the C++ committee).
2020-11-23 01:51:42 +0100cosimone(~user@5.171.24.24)
2020-11-23 01:51:45 +0100hekkaidekapusis just hyperboling at this point.
2020-11-23 01:52:02 +0100 <int-e> monochrom: you like puns, how would you like an independent Haskell implementation without type literals and type-in-type shenanigans? :)
2020-11-23 01:52:25 +0100 <monochrom> Hrm, why is pun involved in that?
2020-11-23 01:52:34 +0100cosimone(~user@5.171.24.24) (Remote host closed the connection)
2020-11-23 01:52:50 +0100 <monochrom> Oh hahahahaha
2020-11-23 01:52:59 +0100 <int-e> (More seriously though, without another relevant Haskell implementation, the point of a standard is rather moon.)
2020-11-23 01:53:06 +0100 <int-e> moot.
2020-11-23 01:53:26 +0100 <hekkaidekapus> Define: relevant.
2020-11-23 01:53:40 +0100 <hekkaidekapus> Implementing the previous standard?
2020-11-23 01:53:50 +0100 <int-e> No, actually in use.
2020-11-23 01:54:07 +0100 <monochrom> I have a weak reason for wishing for a standard even though there is only one implementation. Much more precise, reliable documentation of what the hell the implementation does.
2020-11-23 01:54:13 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-11-23 01:54:17 +0100conal(~conal@66.115.157.141)
2020-11-23 01:54:36 +0100 <dolio> Weren't you the one that said GHC is better documented than the actual standard? :þ
2020-11-23 01:54:41 +0100 <dminuoso> int-e: okay it took me a minute to get the pub. quite cute
2020-11-23 01:55:26 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-23 01:55:54 +0100 <monochrom> I think I didn't say quite that quite directly. What I really think though is GHC is less worse than the Haskell Report.
2020-11-23 01:56:34 +0100 <monochrom> And GHC's is somewhat better than "less worse" (but not a lot better) if you also include the papers it cites.
2020-11-23 01:57:19 +0100 <monochrom> For example if you're looking for the typing rules of GHC 9's RankNTypes, you'd better read that bidirectional inference paper.
2020-11-23 01:57:37 +0100 <dolio> Yeah.
2020-11-23 01:57:39 +0100 <monochrom> rules that should have been in a standardized document.
2020-11-23 01:58:18 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-23 01:58:18 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-23 01:58:33 +0100 <dolio> It'd be nice if their wiki gave a compilation of how it works, since you never know what all from the past is relevant.
2020-11-23 01:58:34 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 01:58:36 +0100cosimone(~user@5.171.24.24)
2020-11-23 01:59:15 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-23 01:59:29 +0100 <Axman6> The top story on lobste.rs has the title "Booting from a vinyl record" and I was sad to see it wasn't haskell related
2020-11-23 01:59:51 +0100 <monochrom> heh
2020-11-23 02:00:55 +0100cosimone(~user@5.171.24.24) (Client Quit)
2020-11-23 02:02:36 +0100 <monochrom> err, the bidirectional inference paper for pre-9 RankNTypes; the quick-look paper for post-9 RankNTypes and impredicativity.
2020-11-23 02:03:04 +0100 <monochrom> but the latter tells you that they assume you have read the former, so you're still toasted.
2020-11-23 02:04:39 +0100 <monochrom> What I fear is that if a comittee were formed to add these to Haskell Report, a very vocal, counterproductive minority would argue "cannot go with these rules verbatim, we need to allow different compilers to make different trade-offs"
2020-11-23 02:04:59 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-11-23 02:05:14 +0100 <monochrom> And that will land you with: either no change to the Haskell Report, or the C standard.
2020-11-23 02:07:03 +0100 <dolio> Yeah, that would probably be useless.
2020-11-23 02:07:18 +0100tv-(~tv@unaffiliated/tv-) (Quit: WeeChat 2.8)
2020-11-23 02:08:08 +0100 <dolio> Although what would the situation be if it were standardized? GHC keeps changing what you're allowed to do.
2020-11-23 02:08:15 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-23 02:08:20 +0100 <dolio> Would the standard keep shifting?
2020-11-23 02:10:59 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-23 02:11:09 +0100 <monochrom> That's a tough one. My preference is GHC changes quickly, the standard changes slowly to summarize the sweet spots GHC has found.
2020-11-23 02:11:14 +0100 <dolio> I think a lot of the development has been allowing it to infer strictly more cases, but sometimes it has switched trade-offs.
2020-11-23 02:11:47 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2020-11-23 02:12:54 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2020-11-23 02:13:30 +0100 <dolio> Oh, and of course, keeping multiple, distinct checking algorithms around in a single implementation wouldn't be very nice. :)
2020-11-23 02:13:41 +0100 <dolio> So that wouldn't be a solution.
2020-11-23 02:14:01 +0100vhs(~vhs@41.44.147.255) (Quit: Leaving)
2020-11-23 02:14:07 +0100guest1123(~user@49.5.6.87)
2020-11-23 02:14:30 +0100conal(~conal@66.115.157.141) (Quit: Computer has gone to sleep.)
2020-11-23 02:15:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 02:16:31 +0100 <monochrom> Windows 95 managed to have two kernels inside it haha
2020-11-23 02:18:14 +0100 <monochrom> to be sure, you would be fair to point out "that exactly shows what wrong with it"
2020-11-23 02:18:46 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-11-23 02:19:02 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-11-23 02:19:39 +0100conal(~conal@66.115.157.141)
2020-11-23 02:19:39 +0100conal(~conal@66.115.157.141) (Remote host closed the connection)
2020-11-23 02:20:35 +0100Fractalis(~Fractalis@2601:987:280:8d40:389d:748e:cbb9:62)
2020-11-23 02:21:08 +0100 <dolio> Lots more workers, too.
2020-11-23 02:23:26 +0100JWS(8d54455c@141.84.69.92)
2020-11-23 02:25:13 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2020-11-23 02:27:05 +0100mirrorbird(~psutcliff@89.45.7.148) (Ping timeout: 240 seconds)
2020-11-23 02:29:27 +0100Fractalis(~Fractalis@2601:987:280:8d40:389d:748e:cbb9:62) (Ping timeout: 260 seconds)
2020-11-23 02:31:40 +0100jedws(~jedws@101.184.150.93)
2020-11-23 02:35:12 +0100Lord_of_Life(~Lord@46.217.221.12)
2020-11-23 02:35:37 +0100Lord_of_Life_(~Lord@46.217.221.152) (Ping timeout: 264 seconds)
2020-11-23 02:36:31 +0100JWS(8d54455c@141.84.69.92) (Remote host closed the connection)
2020-11-23 02:45:28 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 02:45:47 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2020-11-23 02:46:15 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 02:46:30 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
2020-11-23 02:46:48 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-11-23 02:48:26 +0100stu002(77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) (Remote host closed the connection)
2020-11-23 02:50:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-23 02:53:37 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-11-23 02:54:36 +0100sdrodge(~sdrodge@unaffiliated/sdrodge)
2020-11-23 02:57:36 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds)
2020-11-23 02:58:34 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-23 02:58:57 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 03:00:19 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 246 seconds)
2020-11-23 03:01:03 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2020-11-23 03:02:08 +0100cosimone(~user@5.171.24.24)
2020-11-23 03:03:22 +0100cosimone(~user@5.171.24.24) (Client Quit)
2020-11-23 03:05:24 +0100cosimone(~user@5.171.24.24)
2020-11-23 03:06:30 +0100incertia_(~incertia@d4-50-26-103.nap.wideopenwest.com)
2020-11-23 03:06:37 +0100cosimone(~user@5.171.24.24) (Remote host closed the connection)
2020-11-23 03:06:42 +0100tv-(~tv@unaffiliated/tv-)
2020-11-23 03:07:00 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
2020-11-23 03:07:18 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-11-23 03:08:01 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 03:08:22 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 260 seconds)
2020-11-23 03:09:40 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 03:11:39 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-11-23 03:11:58 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-11-23 03:13:15 +0100christo(~chris@81.96.113.213)
2020-11-23 03:14:40 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds)
2020-11-23 03:17:05 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-23 03:18:27 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 260 seconds)
2020-11-23 03:19:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 03:20:17 +0100Sarma(~Amras@unaffiliated/amras0000)
2020-11-23 03:24:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-23 03:28:55 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-23 03:29:02 +0100 <boxscape> :o are there no operator sections on the type level?
2020-11-23 03:29:26 +0100 <boxscape> % :kind (+ 4) 6
2020-11-23 03:29:26 +0100 <yahb> boxscape: ; <interactive>:1:2: error: Operator applied to too few arguments: +
2020-11-23 03:30:03 +0100 <boxscape> I can see why it's not a thing for type families (since we don't have unsaturated ones yet) but it seems like it should work for type constructors at least
2020-11-23 03:30:16 +0100 <boxscape> but it's syntax error from what I can tell :(
2020-11-23 03:32:54 +0100 <monochrom> There is no type-level lambda, therefore no type operator sections.
2020-11-23 03:33:00 +0100hackagesr-extra 1.85 - Module limbo https://hackage.haskell.org/package/sr-extra-1.85 (DavidFox)
2020-11-23 03:34:22 +0100 <monochrom> OK, one of them is OK, (Int :+:) is just (:+:) Int, uncontroversial. I guess no one got around to implement it.
2020-11-23 03:34:29 +0100jedws(~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-23 03:35:07 +0100 <boxscape> hm, maybe I'll look into it once we have unsaturated type families, which I think might make it worth it
2020-11-23 03:35:15 +0100xff0x(~fox@2001:1a81:53fc:6700:2ab6:9c1b:8ed5:c7e5) (Ping timeout: 272 seconds)
2020-11-23 03:35:19 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2020-11-23 03:36:04 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc)
2020-11-23 03:36:34 +0100xff0x(~fox@2001:1a81:5237:b800:d8c8:bfa0:43f3:b736)
2020-11-23 03:36:55 +0100 <sleblanc> I like XMonad's approach to configuration, where it "recompiles" itself when you update your configuration file. How does XMonad do it?
2020-11-23 03:40:16 +0100Iceland_jack(~user@31.124.48.169) (Ping timeout: 240 seconds)
2020-11-23 03:40:25 +0100jedws(~jedws@101.184.150.93)
2020-11-23 03:41:11 +0100toorevitimirp(~tooreviti@117.182.183.18)
2020-11-23 03:41:16 +0100jedws(~jedws@101.184.150.93) (Client Quit)
2020-11-23 03:43:36 +0100mozzarella(~sam@unaffiliated/sam113101) (Ping timeout: 272 seconds)
2020-11-23 03:46:01 +0100mozzarella(~sam@unaffiliated/sam113101)
2020-11-23 03:47:36 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
2020-11-23 03:48:30 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser)
2020-11-23 03:49:56 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 272 seconds)
2020-11-23 03:50:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 03:50:55 +0100 <sim590> I have this code: https://paste.debian.net/1173920/ which makes use of lenses. It is a multi constructor data type. One of which doesn't have private key, hence using (view privateKey) asks me to put the Monoid constraint on my function. How can I solve that?
2020-11-23 03:51:05 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-11-23 03:51:24 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-11-23 03:51:32 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-11-23 03:52:28 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 272 seconds)
2020-11-23 03:52:56 +0100 <sim590> Is there a way to call some Lens magic functions that would return (Maybe v) instead of the plain (view privateKey) ?
2020-11-23 03:53:26 +0100kupi(uid212005@gateway/web/irccloud.com/x-fgjaulxwhgglmlzx) (Quit: Connection closed for inactivity)
2020-11-23 03:53:26 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-11-23 03:55:55 +0100 <dibblego> you'd use a Traversal
2020-11-23 03:58:02 +0100LostCanvas(~iharper@75-108-155-188.chstcmtk01.res.dyn.suddenlink.net) ("Leaving")
2020-11-23 03:58:53 +0100 <sim590> dibblego: hmmmmmm. OK.
2020-11-23 03:59:00 +0100 <sim590> I'm a bit new to lenses.
2020-11-23 03:59:43 +0100acidjnk_new(~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de)
2020-11-23 03:59:53 +0100 <dibblego> _StartUpRemoteUser :: Prism' (UserInfo v b) (v, b)
2020-11-23 04:00:03 +0100 <dibblego> _StartUpRemoteUser_privateKey :: Traversal' (UserInfo v b) v
2020-11-23 04:03:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-11-23 04:04:19 +0100 <sim590> OK. I didn't understand the types you wrote... I'm sorry. However, I found that I can use (^?) instead of view. I really need to a good course on lenses.
2020-11-23 04:04:24 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 04:04:29 +0100 <sim590> I've watched and read already, but not enough.
2020-11-23 04:05:20 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-23 04:06:02 +0100 <dibblego> or use preview
2020-11-23 04:06:08 +0100christo(~chris@81.96.113.213)
2020-11-23 04:08:07 +0100jedws(~jedws@101.184.150.93)
2020-11-23 04:08:10 +0100Lowl3v3l(~Lowl3v3l@dslb-090-186-186-201.090.186.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2020-11-23 04:09:49 +0100 <dibblego> https://gist.github.com/tonymorris/1bbc3aff874a97722d78cb9a9154c494
2020-11-23 04:10:35 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2020-11-23 04:12:37 +0100 <sim590> So that's what makePrisms and makeLenses expand to (partly)?
2020-11-23 04:13:46 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-11-23 04:15:26 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-23 04:16:28 +0100clynamen(~clynamen@net-2-35-88-16.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2020-11-23 04:16:30 +0100 <dibblego> yes
2020-11-23 04:16:42 +0100 <dibblego> makePrisms makes that prism among other things
2020-11-23 04:16:51 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-11-23 04:16:51 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-11-23 04:16:51 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-23 04:19:04 +0100noteness(noteness@unaffiliated/nessessary129) (Quit: I'LL BE BACK)
2020-11-23 04:19:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-23 04:20:04 +0100clynamen(~clynamen@37.183.22.31)
2020-11-23 04:21:14 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-23 04:22:39 +0100Lowl3v3l(~Lowl3v3l@dslb-088-072-167-013.088.072.pools.vodafone-ip.de)
2020-11-23 04:24:50 +0100dftxbs3e_(~dftxbs3e@unaffiliated/dftxbs3e)
2020-11-23 04:24:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-23 04:27:49 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 264 seconds)
2020-11-23 04:28:03 +0100dftxbs3e_(~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
2020-11-23 04:29:43 +0100Sarma(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-11-23 04:31:15 +0100koala_man(~vidar@unaffiliated/koala-man/x-2491903) (Remote host closed the connection)
2020-11-23 04:35:55 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-23 04:39:06 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds)
2020-11-23 04:40:27 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-23 04:42:25 +0100lagothrixGuest16478
2020-11-23 04:42:25 +0100Guest16478(~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services)))
2020-11-23 04:42:31 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-23 04:43:03 +0100drbean(~drbean@TC210-63-209-85.static.apol.com.tw)
2020-11-23 04:48:06 +0100theDon(~td@muedsl-82-207-238-007.citykom.de) (Ping timeout: 256 seconds)
2020-11-23 04:48:59 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:d589:f18c:8211:e758)
2020-11-23 04:49:56 +0100jlamothe(~jlamothe@198.251.55.207) (Ping timeout: 240 seconds)
2020-11-23 04:50:00 +0100theDon(~td@94.134.91.120)
2020-11-23 04:55:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 04:58:54 +0100 <ezzieyguywuf> in hledger do I have to use $ for dollars, or can I use "USD" like in beancount?
2020-11-23 05:00:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-23 05:00:49 +0100z0(~z0@188.251.79.4)
2020-11-23 05:01:28 +0100z0(~z0@188.251.79.4) (Client Quit)
2020-11-23 05:01:52 +0100 <jle`> ezzieyguywuf: there are no built-in currencies i believe, either are valid currency labels
2020-11-23 05:02:01 +0100 <ezzieyguywuf> jle`: 👍️
2020-11-23 05:02:01 +0100 <jle`> so there is no special-casing for dollars
2020-11-23 05:02:05 +0100 <ezzieyguywuf> gotcha
2020-11-23 05:02:15 +0100 <ezzieyguywuf> I'm used to the USD now, so I think I'll just go with that
2020-11-23 05:02:37 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2020-11-23 05:03:08 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-23 05:06:46 +0100 <MarcelineVQ> there's a #hledger channel too that's quite helpful
2020-11-23 05:06:58 +0100 <MarcelineVQ> in particular due to sm[m]
2020-11-23 05:15:28 +0100 <texasmynsted> Where may I find more information about how to best unit test modules. Specifically if you use something like hunit, how do you test code in a module that is not exported?
2020-11-23 05:15:46 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 246 seconds)
2020-11-23 05:17:45 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-23 05:19:05 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
2020-11-23 05:19:38 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-23 05:20:07 +0100keep_learning(~keep_lear@43.231.26.152)
2020-11-23 05:22:07 +0100 <hololeap> is hledger really more useful than a spreadsheet?
2020-11-23 05:22:46 +0100 <MarcelineVQ> idk but it's pretty nice
2020-11-23 05:23:14 +0100 <sleblanc> hololeap, for one, hledger supports currencies and ad-hoc commodities
2020-11-23 05:23:15 +0100cosimone(~cosimone@5.171.24.44)
2020-11-23 05:23:35 +0100 <hololeap> i took a look at it once and didn't understand what was so good about it. i'm sure i didn't give it enough of a chance.
2020-11-23 05:24:00 +0100 <sleblanc> hololeap, I hope no one is trying to sell it to you
2020-11-23 05:24:34 +0100 <hololeap> no, i was just looking for a ledger program, and i like haskell. seemed like a natural choice to check it out.
2020-11-23 05:25:58 +0100 <hololeap> it seems popular enough, though
2020-11-23 05:26:07 +0100 <MarcelineVQ> I find it really convenient to edit plaintext files rather than work in a spreadsheet, especially to add more-specific/sub accounts on the fly
2020-11-23 05:28:09 +0100jlamothe(~jlamothe@198.251.55.207)
2020-11-23 05:29:36 +0100 <jle`> hololeap: for me i sort of juts treat it like spreadsheet with built in command line tools for querying and stuff
2020-11-23 05:30:08 +0100 <jle`> so i don't have to implement it all myself
2020-11-23 05:30:49 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 264 seconds)
2020-11-23 05:30:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 05:32:06 +0100 <jle`> it makes it more simple to do double-entry accounting too
2020-11-23 05:37:38 +0100 <dsal> texasmynsted: You don't test stuff that's not exported. You can't import it to test it. What kind of testing are you doing? hunit style is usually my second choice.
2020-11-23 05:39:30 +0100awk(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2020-11-23 05:43:38 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-11-23 05:43:48 +0100keep_learning(~keep_lear@43.231.26.152) (Quit: Leaving)
2020-11-23 05:43:50 +0100 <sm[m]> hail hololeap! It's a good question, I think each is good at certain things
2020-11-23 05:44:53 +0100 <texasmynsted> Have some routines to read TSV files for redirects and things. I only export the data and the functions needed. I wanted to add and test some validation. I have a redirect so two URLs per record.
2020-11-23 05:45:32 +0100 <texasmynsted> I want to validate that the first URL is relative, not absolute and does not start with /. I would not export this validation function but I would like to test it.
2020-11-23 05:46:38 +0100cosimone(~cosimone@5.171.24.44) (Quit: cosimone)
2020-11-23 05:46:46 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-23 05:46:52 +0100 <texasmynsted> How would you handle this?
2020-11-23 05:47:15 +0100SanchayanMaity(~Sanchayan@106.200.254.25)
2020-11-23 05:51:51 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-23 05:52:08 +0100 <texasmynsted> It seems like if it is exported it is a bit more like an integration test than a unit test.
2020-11-23 05:52:24 +0100 <texasmynsted> I do not care what it is called though
2020-11-23 05:55:47 +0100MrSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-23 05:56:19 +0100fxg(~fxg@unaffiliated/fxg)
2020-11-23 05:58:22 +0100 <dsal> My first choice is usually property tests. Define what a kinds of things make up a valid relative URL. Verify you parse it as such.
2020-11-23 06:00:48 +0100 <dsal> You can get a massive amount of test coverage (usually including things you didn't think of) this way. I assume you've got a RelativeURL type. You just need an Arbitrary instance and a way to serialize it to a string in the format the parser wants. Then you just ask if there's any valid RelativeURL that can't be parsed as a RelativeURL.
2020-11-23 06:02:01 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds)
2020-11-23 06:05:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-23 06:07:22 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 272 seconds)
2020-11-23 06:07:52 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:d589:f18c:8211:e758) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 06:08:17 +0100 <dsal> Your test could be something like this:
2020-11-23 06:08:18 +0100 <dsal> @check read . show >>= (===)
2020-11-23 06:08:20 +0100 <lambdabot> +++ OK, passed 100 tests.
2020-11-23 06:09:14 +0100 <dsal> I use that kind of thing when I hand-write read or show (or do some other kind of parser/serialize thing).
2020-11-23 06:16:07 +0100ggole(~ggole@2001:8003:8119:7200:1c3c:45be:a6d:c507)
2020-11-23 06:19:03 +0100 <texasmynsted> :-)
2020-11-23 06:19:25 +0100 <texasmynsted> nice
2020-11-23 06:19:27 +0100 <texasmynsted> thank you
2020-11-23 06:20:26 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-23 06:21:31 +0100hackagetime 1.11.1 - A time library https://hackage.haskell.org/package/time-1.11.1 (AshleyYakeley)
2020-11-23 06:28:02 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 260 seconds)
2020-11-23 06:31:31 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-23 06:32:01 +0100texasmynsted(~texasmyns@212.102.45.121) (Remote host closed the connection)
2020-11-23 06:32:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 06:32:52 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 06:35:56 +0100redmp(~redmp@mobile-166-137-178-144.mycingular.net) (Ping timeout: 240 seconds)
2020-11-23 06:37:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-23 06:38:24 +0100christo(~chris@81.96.113.213)
2020-11-23 06:49:26 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-11-23 06:52:30 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-11-23 06:52:49 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-11-23 06:55:39 +0100koala_man(~vidar@157.146.251.23.bc.googleusercontent.com)
2020-11-23 06:55:39 +0100koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) (Changing host)
2020-11-23 06:55:39 +0100koala_man(~vidar@unaffiliated/koala-man/x-2491903)
2020-11-23 06:59:41 +0100knupfer(~Thunderbi@i59F7FFC3.versanet.de)
2020-11-23 07:03:14 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-11-23 07:08:02 +0100guest112`(~user@49.5.6.87)
2020-11-23 07:08:16 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-23 07:09:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 07:12:15 +0100guest1123(~user@49.5.6.87) (Ping timeout: 256 seconds)
2020-11-23 07:12:36 +0100knupfer(~Thunderbi@i59F7FFC3.versanet.de) (Ping timeout: 256 seconds)
2020-11-23 07:12:48 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 265 seconds)
2020-11-23 07:14:12 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-23 07:23:14 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-23 07:24:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2020-11-23 07:28:18 +0100cur8or(~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da)
2020-11-23 07:29:15 +0100dennisb(~dennisb@89-160-106-195.cust.bredband2.com) (Ping timeout: 256 seconds)
2020-11-23 07:32:58 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-23 07:35:21 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-11-23 07:36:05 +0100maksio(~user@185.246.204.42)
2020-11-23 07:39:59 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 260 seconds)
2020-11-23 07:42:13 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-23 07:43:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-23 07:43:54 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-23 07:44:05 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-23 07:44:33 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-23 07:45:02 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-23 07:46:19 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-23 07:51:15 +0100Sarma(~Amras@unaffiliated/amras0000)
2020-11-23 07:53:03 +0100dansho(~dansho@ip68-108-167-185.lv.lv.cox.net)
2020-11-23 07:57:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-11-23 08:04:03 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2020-11-23 08:08:23 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-23 08:08:23 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-11-23 08:08:42 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
2020-11-23 08:10:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 08:10:53 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-23 08:11:13 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-23 08:11:33 +0100ironmarx(~ironmarx@185.163.110.116) (Remote host closed the connection)
2020-11-23 08:13:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-23 08:15:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-23 08:15:51 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 08:18:07 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-23 08:18:36 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-23 08:25:04 +0100sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-11-23 08:26:18 +0100chaosmasttter(~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de)
2020-11-23 08:27:29 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-23 08:32:06 +0100JohnONolan(~JohnONola@217.146.82.202)
2020-11-23 08:32:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-11-23 08:33:02 +0100jlamothe(~jlamothe@198.251.55.207) (Quit: leaving)
2020-11-23 08:34:49 +0100cur8or(~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) (Ping timeout: 272 seconds)
2020-11-23 08:36:24 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
2020-11-23 08:37:32 +0100maksio(~user@185.246.204.42) (Ping timeout: 260 seconds)
2020-11-23 08:38:46 +0100acidjnk_new(~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-23 08:39:17 +0100acidjnk_new(~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de)
2020-11-23 08:39:18 +0100darjeeling_(~darjeelin@122.245.219.209) (Ping timeout: 256 seconds)
2020-11-23 08:39:29 +0100Franciman(~francesco@host-82-51-90-98.retail.telecomitalia.it)
2020-11-23 08:41:05 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-11-23 08:41:16 +0100acidjnk_new(~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-23 08:41:36 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-23 08:41:41 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-11-23 08:42:23 +0100cur8or(~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da)
2020-11-23 08:43:40 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2020-11-23 08:44:20 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-23 08:45:14 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-kgipcwwyhxxkjxhq)
2020-11-23 08:46:37 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-11-23 08:47:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 08:48:32 +0100francesco_(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-23 08:48:37 +0100Franciman(~francesco@host-82-51-90-98.retail.telecomitalia.it) (Ping timeout: 260 seconds)
2020-11-23 08:49:30 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-23 08:50:16 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-23 08:51:06 +0100jlamothe(~jlamothe@198.251.55.207)
2020-11-23 08:53:07 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-23 08:54:49 +0100SanchayanMaity(~Sanchayan@106.200.254.25) (Quit: SanchayanMaity)
2020-11-23 08:55:13 +0100SanchayanMaity(~Sanchayan@106.200.254.25)
2020-11-23 08:58:03 +0100darjeeling_(~darjeelin@122.245.219.209)
2020-11-23 09:00:36 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-23 09:00:45 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-23 09:01:05 +0100bitmagie(~Thunderbi@200116b806ed110085bc8dfe3e60bb59.dip.versatel-1u1.de)
2020-11-23 09:02:24 +0100francesco_Franciman
2020-11-23 09:04:14 +0100invaser1(~Thunderbi@178-133-218-247.mobile.vf-ua.net)
2020-11-23 09:04:14 +0100taurux(~taurux@net-188-152-78-21.cust.dsl.teletu.it) (Ping timeout: 256 seconds)
2020-11-23 09:04:16 +0100invaser1(~Thunderbi@178-133-218-247.mobile.vf-ua.net) (Client Quit)
2020-11-23 09:04:27 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-23 09:04:40 +0100jespada(~jespada@90.254.245.49)
2020-11-23 09:04:50 +0100bitmagie(~Thunderbi@200116b806ed110085bc8dfe3e60bb59.dip.versatel-1u1.de) (Client Quit)
2020-11-23 09:06:51 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-23 09:07:06 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-23 09:07:38 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
2020-11-23 09:07:51 +0100kish`(~oracle@unaffiliated/oracle) (Ping timeout: 256 seconds)
2020-11-23 09:11:15 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-11-23 09:11:16 +0100toorevitimirp(~tooreviti@117.182.183.18) (Remote host closed the connection)
2020-11-23 09:12:01 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 246 seconds)
2020-11-23 09:12:22 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-11-23 09:13:05 +0100andos(~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 240 seconds)
2020-11-23 09:14:43 +0100toorevitimirp(~tooreviti@117.182.183.18)
2020-11-23 09:14:51 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-23 09:17:15 +0100Lycurgus(~niemand@98.4.114.74)
2020-11-23 09:18:27 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-23 09:19:55 +0100alp(~alp@2a01:e0a:58b:4920:21cf:ab8e:85fd:bb5c)
2020-11-23 09:20:56 +0100toorevitimirp(~tooreviti@117.182.183.18) (Remote host closed the connection)
2020-11-23 09:22:05 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-23 09:22:39 +0100toorevitimirp(~tooreviti@117.182.183.18)
2020-11-23 09:22:42 +0100cur8or(~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) (Ping timeout: 260 seconds)
2020-11-23 09:22:46 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-23 09:22:47 +0100_linker_(~linker@2a02:a31a:a041:9a80:1550:ab25:bf6f:9a3a)
2020-11-23 09:26:00 +0100hackagemu-protobuf 0.4.0.3 - Protocol Buffers serialization and gRPC schema import for Mu microservices https://hackage.haskell.org/package/mu-protobuf-0.4.0.3 (AlejandroSerrano)
2020-11-23 09:27:27 +0100 <Xnuk> What are the benefits of the Monad concept in other language, if you have to explain?
2020-11-23 09:27:34 +0100cur8or(~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da)
2020-11-23 09:28:38 +0100toorevitimirp(~tooreviti@117.182.183.18) (Remote host closed the connection)
2020-11-23 09:28:56 +0100drbean(~drbean@TC210-63-209-85.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-11-23 09:30:32 +0100toorevitimirp(~tooreviti@117.182.183.18)
2020-11-23 09:30:47 +0100 <merijn> almost none, since most other languages don't have typeclasses nor type inference
2020-11-23 09:31:25 +0100 <Xnuk> Lots of people say "Monad is good and important concept", but I still think Monad is just one of typeclasses satisfying `(>>=)` and `return`.
2020-11-23 09:32:25 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-11-23 09:32:43 +0100 <Xnuk> merijn: I completely agree
2020-11-23 09:34:00 +0100hackagetypesafe-precure 0.7.10.1 - Type-safe transformations and purifications of PreCures (Japanese Battle Heroine) https://hackage.haskell.org/package/typesafe-precure-0.7.10.1 (igrep)
2020-11-23 09:34:35 +0100 <dminuoso> 09:31:25 Xnuk | Lots of people say "Monad is good and important concept", but I still think Monad is just one of typeclasses satisfying `(>>=)` and `return`.
2020-11-23 09:34:39 +0100 <dminuoso> You're thinking just right. :)
2020-11-23 09:34:56 +0100 <dminuoso> The usefulness of monad comes from not using it, but writing code polymorphically over it.
2020-11-23 09:35:43 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2020-11-23 09:36:25 +0100fxg(~fxg@unaffiliated/fxg) (Ping timeout: 240 seconds)
2020-11-23 09:36:33 +0100 <dminuoso> Well and not having to remember different names for functions that all follow the same shape, the same reason we have say `<>` and `mempty`
2020-11-23 09:36:47 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52)
2020-11-23 09:37:00 +0100hackagehlint 3.2.3 - Source code suggestions https://hackage.haskell.org/package/hlint-3.2.3 (NeilMitchell)
2020-11-23 09:37:30 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-23 09:37:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2020-11-23 09:37:43 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds)
2020-11-23 09:37:49 +0100 <Xnuk> dminuoso: "The usefulness of monad comes from not using it" Can I steal your words
2020-11-23 09:37:52 +0100 <[exa]> Xnuk: 'first-class overloaded code sequencing with assignment' is the main feature the other languages should be after, imo
2020-11-23 09:38:03 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-11-23 09:38:04 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-11-23 09:38:09 +0100 <dminuoso> Xnuk: Oh haha sorry. That was supposed to read "not from using it"
2020-11-23 09:38:32 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-11-23 09:38:42 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-23 09:38:50 +0100 <tomsmeding> 23:16:42 maerwald | hmm, we need latex support on tomsmeding paste
2020-11-23 09:38:55 +0100 <tomsmeding> I await your case maerwald
2020-11-23 09:39:06 +0100 <dminuoso> tomsmeding: I think it was cheek-in-tongue..
2020-11-23 09:39:12 +0100 <tomsmeding> :p I think so too
2020-11-23 09:39:13 +0100 <dminuoso> Considering the surrounding discussion. :p
2020-11-23 09:39:23 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-23 09:39:24 +0100 <dminuoso> Oh haha. tongue-in-cheek
2020-11-23 09:39:34 +0100 <dminuoso> Doing it the other way is anatomically difficult
2020-11-23 09:39:46 +0100 <tomsmeding> kind of
2020-11-23 09:42:11 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-23 09:43:43 +0100stu002(77120261@119-18-2-97.771202.syd.nbn.aussiebb.net)
2020-11-23 09:44:54 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 09:46:27 +0100raichoo(~raichoo@dslb-178-001-144-018.178.001.pools.vodafone-ip.de)
2020-11-23 09:49:38 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-23 09:51:35 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds)
2020-11-23 09:51:50 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
2020-11-23 09:52:00 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr)
2020-11-23 09:54:01 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 09:55:03 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds)
2020-11-23 09:55:17 +0100f-a(~f-a@151.68.193.237)
2020-11-23 09:55:57 +0100SanchayanM(~Sanchayan@171.76.82.54)
2020-11-23 09:57:34 +0100SanchayanMaity(~Sanchayan@106.200.254.25) (Ping timeout: 256 seconds)
2020-11-23 10:00:00 +0100hackageservant-openapi3 2.0.1.1 - Generate a Swagger/OpenAPI/OAS 3.0 specification for your servant API. https://hackage.haskell.org/package/servant-openapi3-2.0.1.1 (maksbotan)
2020-11-23 10:00:07 +0100sureyeaah(shauryab98@gateway/shell/matrix.org/x-mqricolhiyievodh) (Quit: Idle for 30+ days)
2020-11-23 10:00:48 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:31ca:eef6:b3d5:eefb) (Quit: Leaving)
2020-11-23 10:01:45 +0100plutoniix(~q@ppp-27-55-84-13.revip3.asianet.co.th)
2020-11-23 10:01:48 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-23 10:02:48 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 10:03:58 +0100Yumasi(~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr)
2020-11-23 10:07:06 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-ndxrdxmbozimfblk) (Quit: Connection closed for inactivity)
2020-11-23 10:07:08 +0100Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Ping timeout: 256 seconds)
2020-11-23 10:08:23 +0100tinwood_tinwood
2020-11-23 10:08:35 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 10:09:05 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-23 10:11:16 +0100Lord_of_Life(~Lord@46.217.221.12) (Changing host)
2020-11-23 10:11:16 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-11-23 10:12:10 +0100plutoniix(~q@ppp-27-55-84-13.revip3.asianet.co.th) (Quit: Leaving)
2020-11-23 10:13:50 +0100 <dminuoso> For associated tyfams, would you rather write `f :: n ~ TyF t => Proxy t -> n -> ...` or `t :: Proxy t -> TyF t -> ...`?
2020-11-23 10:15:29 +0100Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
2020-11-23 10:15:58 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 10:16:48 +0100kuribas(~user@ptr-25vy0i8kkf9triykmnn.18120a2.ip6.access.telenet.be)
2020-11-23 10:18:07 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-23 10:18:35 +0100 <kuribas> I don't understand how you can make effects independent of the order.
2020-11-23 10:18:56 +0100 <kuribas> For example ExceptT and StateT, at one point you have to decide which one takes precedence right?
2020-11-23 10:19:20 +0100 <kuribas> like, is state passed when throwing an exception?
2020-11-23 10:19:30 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi)
2020-11-23 10:19:58 +0100 <kuribas> both are valid IMO
2020-11-23 10:21:46 +0100borne(~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de)
2020-11-23 10:22:16 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving)
2020-11-23 10:22:25 +0100hololeap(~hololeap@unaffiliated/hololeap) (Ping timeout: 240 seconds)
2020-11-23 10:23:16 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-11-23 10:24:09 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-23 10:24:23 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi)
2020-11-23 10:24:23 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-23 10:24:38 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi)
2020-11-23 10:24:38 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-23 10:24:53 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi)
2020-11-23 10:24:53 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-23 10:25:08 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi)
2020-11-23 10:25:08 +0100supercoven(~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-23 10:31:10 +0100jbox(~atlas@unaffiliated/jbox) (Quit: WeeChat 2.9)
2020-11-23 10:34:14 +0100travis_scott(~prateekpr@37.231.243.133)
2020-11-23 10:34:22 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-23 10:34:33 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 10:34:46 +0100travis_scott(~prateekpr@37.231.243.133) (Quit: leaving)
2020-11-23 10:38:02 +0100Lycurgus(~niemand@98.4.114.74) (Quit: Exeunt)
2020-11-23 10:40:22 +0100 <merijn> kuribas: Hence why the typeclassy mtl approach doesn't work so well
2020-11-23 10:41:26 +0100cur8or(~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) (Ping timeout: 264 seconds)
2020-11-23 10:41:27 +0100 <kuribas> merijn: you mean the typeclasses don't show the order?
2020-11-23 10:41:45 +0100 <merijn> yeah
2020-11-23 10:41:52 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
2020-11-23 10:42:46 +0100 <kuribas> That's why I never write functions that have mtl typeclass constraints.
2020-11-23 10:42:58 +0100 <kuribas> I just use them as convenience inside my own transformer stacks.
2020-11-23 10:43:56 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 10:43:58 +0100 <kuribas> where I already *know* the order, so it doesn't matter.
2020-11-23 10:44:53 +0100stu002(77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) (Remote host closed the connection)
2020-11-23 10:44:53 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za)
2020-11-23 10:45:41 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-11-23 10:46:23 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 10:46:56 +0100 <cads> does ghc have installation directions hidden somewhere in the manual? I may be missing it https://downloads.haskell.org/ghc/latest/docs/html/users_guide/
2020-11-23 10:47:15 +0100 <cads> the 6.2 instructions had it as chapter 2 https://downloads.haskell.org/~ghc/6.2/docs/html/users_guide/users-guide.html
2020-11-23 10:48:47 +0100 <Uniaika> cads: https://www.haskell.org/ghcup/
2020-11-23 10:50:21 +0100larou(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
2020-11-23 10:51:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-23 10:51:52 +0100 <cads> thanks Uniaika
2020-11-23 10:52:04 +0100 <Uniaika> you're welcome
2020-11-23 10:52:26 +0100cadslikes that there are clear wsl instructions
2020-11-23 10:53:05 +0100 <cads> so the idea is that haskell platform takes care of install, so GHC docs don't need to have an install chapter?
2020-11-23 10:53:56 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-23 10:55:11 +0100 <merijn> cads: tbh, the install instructions on *nix of GHC itself are basically just "./configure --prefix=path/to/install && make install" and in the README, so that doesn't really warrant a user guide thing. And the windows story is still a bit of a mess
2020-11-23 10:55:45 +0100 <cads> g h c u p - a slightly perverse claim :D
2020-11-23 10:58:48 +0100 <merijn> rats...I just realised I need to refactor my code to handle connections to multiple databases, that's gonna suck >.>
2020-11-23 10:59:16 +0100 <cads> merijn, I did see that, but of course I managed to encounter a totally inexcplicable make issue, and wished I had something more to sanity check that I had not missed some dependency or important config parameter
2020-11-23 10:59:36 +0100 <merijn> cads: Which platform? Linux?
2020-11-23 10:59:41 +0100 <cads> WSL
2020-11-23 10:59:53 +0100 <cads> so yes/no
2020-11-23 10:59:55 +0100 <merijn> ah, yeah, that's probably rather untested ;)
2020-11-23 11:00:35 +0100 <cads> well I will give credit to gh-ketchup, because the WSL solution /worked/ https://www.haskell.org/ghcup/
2020-11-23 11:01:26 +0100 <cads> and it's right there under my unobservant nose. It felt really good as a user experience to finally see something that I had some reason to believe will work <3
2020-11-23 11:01:26 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-23 11:01:46 +0100 <maerwald> gh-ketchup?
2020-11-23 11:01:53 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 11:02:14 +0100rsoeldner(c3916504@195.145.101.4)
2020-11-23 11:02:24 +0100 <cads> for some reason I see ghcup and my brain turns it into gh-ketchup
2020-11-23 11:02:40 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-23 11:02:41 +0100cadsshrugs
2020-11-23 11:03:13 +0100 <Uniaika> cads: fantastic hahaha
2020-11-23 11:03:18 +0100 <cads> usually if I'm making a wierd mnemonic or nick-name that's a sign that I like it and will remember it
2020-11-23 11:03:39 +0100rsoeldner(c3916504@195.145.101.4) (Remote host closed the connection)
2020-11-23 11:03:51 +0100 <cads> Uniaika, whoever put that wsl line there has my specific thanks and admiration!
2020-11-23 11:03:55 +0100 <Uniaika> < merijn> rats...I just realised I need to refactor my code to handle connections to multiple databases, that's gonna suck >.> // RIP 💀
2020-11-23 11:04:08 +0100 <Uniaika> cads: héhé, you may ask for maerwald I think?
2020-11-23 11:04:22 +0100 <guest112`> is ghc available on linux distro on arm?
2020-11-23 11:04:34 +0100 <merijn> guest112`: Yes *
2020-11-23 11:04:44 +0100 <merijn> * - some masochism maybe required
2020-11-23 11:04:46 +0100 <Uniaika> *conditions may apply
2020-11-23 11:04:50 +0100 <guest112`> merijn: I tried archlinuxarm, there's no ghc yet
2020-11-23 11:04:57 +0100 <maerwald> https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-armv7-deb10-linux.tar.xz
2020-11-23 11:05:02 +0100 <Uniaika> guest112`: which ARM arch?
2020-11-23 11:05:22 +0100 <guest112`> Uniaika: arm v8
2020-11-23 11:05:24 +0100 <Uniaika> if it's armv7 there is a bindist, as maerwald showed
2020-11-23 11:05:25 +0100 <Uniaika> ah
2020-11-23 11:05:34 +0100 <guest112`> aha
2020-11-23 11:05:48 +0100 <maerwald> I think angerman is currently the only one doing ARM love?
2020-11-23 11:05:52 +0100 <merijn> guest112`: arm is a tier2 architecture, so it requires some amount of DIY involved, depending on exactly which architecture, etc.
2020-11-23 11:06:14 +0100 <guest112`> maerwald: it's debian only?
2020-11-23 11:06:51 +0100 <Uniaika> hmm I think it's for debian derivatives too, guest112`
2020-11-23 11:06:53 +0100 <maerwald> well, who cares... just have to fix your dynamic libs
2020-11-23 11:06:55 +0100 <guest112`> merijn: is it in debian's repo? could I use apt to install
2020-11-23 11:07:19 +0100 <angerman> PSA: Do not use arm for anything critical right now. The rts is seriously broken wrt correctness.
2020-11-23 11:07:35 +0100 <guest112`> dynamic libs on arm, I think that's a lot
2020-11-23 11:07:50 +0100 <angerman> Head with the llvm backend is ok, it you don’t use perf.
2020-11-23 11:08:42 +0100f-a(~f-a@151.68.193.237) ()
2020-11-23 11:08:51 +0100 <angerman> If you must use older GHCs. Ensure you use single threaded only.
2020-11-23 11:09:43 +0100 <cads> merijn, do you think WSL will become the primary path for haskell on windows?
2020-11-23 11:09:52 +0100 <angerman> Patched 8.6.5 that’s somewhat usable https://github.com/input-output-hk/ghc/tree/release/8.6.5-iohk
2020-11-23 11:10:24 +0100 <angerman> Ghc 9.2 will likely be pretty good on arm.
2020-11-23 11:11:46 +0100guest112`(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2020-11-23 11:12:22 +0100 <arahael> angerman: Sweet. :)
2020-11-23 11:12:51 +0100 <cads> Uniaika, this is the commit that adds the line - thanks Julian Ospald / ! https://gitlab.haskell.org/haskell/ghcup-hs/-/commit/8c4cde3d14ca79e8dac95cc3fd63581be2cda4b2
2020-11-23 11:13:19 +0100 <cads> though I am not 100% on the attribution - could be a that Julian applied a patch
2020-11-23 11:14:53 +0100 <maerwald> lol
2020-11-23 11:15:17 +0100 <cads> lol, was it really you, maerwald ?
2020-11-23 11:15:57 +0100sphalerite(~sphalerit@NixOS/user/lheckemann) (Quit: reboot time!)
2020-11-23 11:16:16 +0100 <maerwald> gitlab shows nickname if you hover over the real name
2020-11-23 11:19:05 +0100 <aplainzetakind> So I can't handle encoding: https://gist.github.com/aplainzetakind/155843dab732f0aeffb5bb0e3b679021
2020-11-23 11:19:24 +0100 <aplainzetakind> When I try this out I gen invalid utf8 bytes.
2020-11-23 11:19:34 +0100 <aplainzetakind> s/gen/get
2020-11-23 11:19:44 +0100 <dminuoso> Of course, not every byte sequence is valid UTF8.
2020-11-23 11:20:01 +0100 <dminuoso> With md5 in the pipeline, you're essentially generating pseudo random bytes
2020-11-23 11:20:07 +0100sphalerite(~sphalerit@NixOS/user/lheckemann)
2020-11-23 11:20:31 +0100tomsmedingexpects you want to encode the bytes as hexadecimal
2020-11-23 11:20:47 +0100 <aplainzetakind> That makes sense.
2020-11-23 11:21:09 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-23 11:21:38 +0100 <dminuoso> aplainzetakind: Check out base16-bytestring
2020-11-23 11:21:47 +0100 <dminuoso> (Or base64-bytestring)
2020-11-23 11:23:21 +0100 <aplainzetakind> How do I get from String to those?
2020-11-23 11:24:13 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 264 seconds)
2020-11-23 11:24:19 +0100 <aplainzetakind> Ah I need this only to decode?
2020-11-23 11:24:26 +0100 <aplainzetakind> No encode.
2020-11-23 11:24:34 +0100 <merijn> You probably just wanna show the resulting Digest
2020-11-23 11:24:34 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-23 11:25:06 +0100 <dminuoso> https://hackage.haskell.org/package/cryptonite-0.27/docs/src/Crypto.Hash.Types.html#line-86
2020-11-23 11:25:12 +0100 <merijn> That's what works for cryptonite
2020-11-23 11:25:12 +0100 <dminuoso> That seems to run it through base16-bytestring already indeed.
2020-11-23 11:25:19 +0100 <aplainzetakind> merijn: Argh, it has Show. OK.
2020-11-23 11:25:24 +0100 <merijn> And this seems to use the same API
2020-11-23 11:25:34 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-23 11:26:21 +0100fendor_fendor
2020-11-23 11:26:35 +0100 <aplainzetakind> Yes using show in place of T.unpack . T.decodeUtf8 . md5DigestBytes just works.
2020-11-23 11:26:37 +0100 <aplainzetakind> Thanks.
2020-11-23 11:28:34 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-23 11:30:36 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving)
2020-11-23 11:32:20 +0100 <cads> maerwald, thank you thank thank you for caring about wsl users!
2020-11-23 11:32:57 +0100 <maerwald> I think native ghcup on windows could be a thing too, but I haven't had anyone knowledgable about msys2 speak up on how to do it.
2020-11-23 11:33:23 +0100 <maerwald> And handling that right basically determines most of the user experience.
2020-11-23 11:33:45 +0100 <cads> imo anything that does linux on windows and uses mingw/msys rather than wsl is now a smell
2020-11-23 11:34:04 +0100 <cads> but I don't REALLY know what I am talking about, lmao
2020-11-23 11:34:14 +0100 <cads> just using that internally
2020-11-23 11:34:18 +0100kadoban(kadobanmat@gateway/shell/matrix.org/x-kttvbwikdhecuywx) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:18 +0100jeffcasavant[m](jeffcasava@gateway/shell/matrix.org/x-uqeetjdjsxvnlnzz) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:18 +0100Ericson2314(ericson231@gateway/shell/matrix.org/x-hlgbkoswcxilbeqd) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:19 +0100dominicusin[m](dominicusi@gateway/shell/matrix.org/x-qrkglxioyiapvbuy) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:19 +0100drozdziak1(drozdziak1@gateway/shell/matrix.org/x-xyfuxdepxamenewg) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:19 +0100PotatoHatsue(berbermanp@gateway/shell/matrix.org/x-cjitwcshsbuodjyn) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:19 +0100fgaz(fgazmatrix@gateway/shell/matrix.org/x-nhvyoqyawfdgtgqa) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:20 +0100themsay[m](themsaymat@gateway/shell/matrix.org/x-ioynzpwjpjzmejjh) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:20 +0100unclechu(unclechuma@gateway/shell/matrix.org/x-guiiopktxpzvwhvz) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:20 +0100lambdaclan(lambdaclan@gateway/shell/matrix.org/x-hhpdgpqllhwmhgtm) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:21 +0100hsiktas[m](hsiktasmat@gateway/shell/matrix.org/x-jpmuglwgcakxllmq) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:21 +0100betrion[m](betrionmat@gateway/shell/matrix.org/x-xwiqijmgzeynpvoj) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:23 +0100wanaks[m](wanaksmatr@gateway/shell/matrix.org/x-hwcfdrwbfomwajud) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:26 +0100falling-edge[m](falling-ed@gateway/shell/matrix.org/x-gqfvjootjpkyvsru) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:27 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-zwmchqxypgwrfvvf) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:27 +0100elpfen[m](elpfenmatr@gateway/shell/matrix.org/x-drqtnjthyplttipt) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:28 +0100ComaGrayce[m](commagrays@gateway/shell/matrix.org/x-dqibnbgwhohubrkt) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:28 +0100domenkozar[m](domenkozar@NixOS/user/domenkozar) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:28 +0100ttc(tomtauma1@gateway/shell/matrix.org/x-ipfwgcjvwwdcokds) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:28 +0100Hanma[m](hanmamatri@gateway/shell/matrix.org/x-okkoowimutlrlfkb) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:28 +0100sm[m](simonmicma@gateway/shell/matrix.org/x-vlvwwxdsuamzwmii) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:29 +0100jkaye[m](jkayematri@gateway/shell/matrix.org/x-rgucqpzlqszwinfz) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:29 +0100rednaZ[m](r3dnazmatr@gateway/shell/matrix.org/x-uudppykggjqnwgdt) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:29 +0100srid(sridmatrix@gateway/shell/matrix.org/x-wcquiejsxgjdmcxb) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:29 +0100pqwy[m](pqwymatrix@gateway/shell/matrix.org/x-ywgcsarxvhxyblcm) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:29 +0100johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-djygzhrhshoknqyz) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100iinuwa(iinuwamatr@gateway/shell/matrix.org/x-cburarlywoxtjfrp) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100zerstroyer[m](zerstroyer@gateway/shell/matrix.org/x-thvxsfmerzqegbym) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100Noughtmare[m](naughtmare@gateway/shell/matrix.org/x-srizjjooaoqrlgvr) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100jesser[m](jessermatr@gateway/shell/matrix.org/x-fnrjbdbcxycnmdhs) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100ThaEwat(thaewraptm@gateway/shell/matrix.org/x-dfjdlbdjkbnyawpv) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100siraben(sirabenmat@gateway/shell/matrix.org/x-moaedtsqvaqtshxu) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100camlriot42(camlriotma@gateway/shell/matrix.org/x-iyuyyccohcedziwd) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100mikr[m](mikrdavral@gateway/shell/matrix.org/x-xaesttypbsiulkoz) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100wi[m](w1gzmatrix@gateway/shell/matrix.org/x-xtlrgyxrbktyedto) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100andreabedini[m](andreabedi@gateway/shell/matrix.org/x-mbuhwpnbmozobgqs) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:30 +0100patier[m](patiermatr@gateway/shell/matrix.org/x-defohognfbqcqriu) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:31 +0100maralorn(maralornma@gateway/shell/matrix.org/x-qdyphvplrxcjzfoq) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:31 +0100tersetears[m](tersetears@gateway/shell/matrix.org/x-sudqunulnrivtufh) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:32 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) (Max SendQ exceeded)
2020-11-23 11:34:33 +0100psydruid(psydruidma@gateway/shell/matrix.org/x-tkomzubgcyrydslv) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:33 +0100rab24ack[m](rab24ackma@gateway/shell/matrix.org/x-psmufgypmrylcnyv) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:35 +0100theduke(thedukem1@gateway/shell/matrix.org/x-gnkymjnxqweoqcmt) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-gplzcqsrpqncxxzx) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100alexfmpe(alexfmpema@gateway/shell/matrix.org/x-rqudkbffvwwbtfrf) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100michaelpj(michaelpjm@gateway/shell/matrix.org/x-xcnlzlahcxbogqup) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100jtojnar(jtojnarmat@gateway/shell/matrix.org/x-xtyqemcpdpeklcda) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100TekShifter[m](tekshifter@gateway/shell/matrix.org/x-xtsbzpbdrwjrjwbu) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100boistordu1(boistordum@gateway/shell/matrix.org/x-zpdpvjbuxlhmobsh) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:36 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-11-23 11:34:47 +0100chreekat[m](chreekatma@gateway/shell/matrix.org/x-hzsdhguuchtmbexg) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:48 +0100jlv(jlvjustinl@gateway/shell/matrix.org/x-gfijbqrqwhvwkgqs) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:48 +0100loprakoa[m](loprakoama@gateway/shell/matrix.org/x-uehnwgnrwlslrkww) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:48 +0100miseenplace[m](miseenplac@gateway/shell/matrix.org/x-ywbimksbsmmywabw) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:49 +0100CRTified[m](schnecfkru@gateway/shell/matrix.org/x-qudvjaxqzetifqrv) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:49 +0100berberman[T](berberma4@gateway/shell/matrix.org/x-jhiqdhcukfrwwucl) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:49 +0100alephu5[m](alephu5mat@gateway/shell/matrix.org/x-ldzorvnirgjegsey) (Quit: Bridge terminating on SIGTERM)
2020-11-23 11:34:50 +0100 <cads> but it makes sense from the perspective of how much msft is investing in it, and how much more comfortable it is
2020-11-23 11:35:22 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis) (Remote host closed the connection)
2020-11-23 11:35:29 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2020-11-23 11:35:42 +0100 <cads> does ghcup compete with stack? Or can I see it as part of?
2020-11-23 11:36:46 +0100 <maerwald> cads: not really. I personally use stack and ghcup together in some docker images to build static executables (because ghcup provides alpine bindists that stack doesn't)
2020-11-23 11:37:06 +0100 <maerwald> you can tell stack to use system GHCs and then use ghcup to manage them
2020-11-23 11:37:12 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-11-23 11:37:16 +0100jedws(~jedws@101.184.150.93) (Ping timeout: 246 seconds)
2020-11-23 11:37:54 +0100 <maerwald> but stack doesn't help you much when you want to use cabal with multiple GHCs
2020-11-23 11:38:34 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-23 11:38:36 +0100 <maerwald> so you could say cabal + ghcup is kind of a substitute for stack for some use cases
2020-11-23 11:38:40 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Ping timeout: 246 seconds)
2020-11-23 11:38:41 +0100 <cads> and how much user share can we estimate it pulls? Is it well enough accepted for Darcs installation instructions to mention it? Currently they mention stack, and cabal. IMO these aren't the beginning of the story in windows, but ghcup is.
2020-11-23 11:39:02 +0100 <cads> https://darcsbook.acmelabs.space/chapter02.html#installing-darcs
2020-11-23 11:39:44 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-23 11:40:51 +0100jedws(~jedws@101.184.150.93)
2020-11-23 11:41:41 +0100theduke(thedukem1@gateway/shell/matrix.org/x-fkzkadqaqklwkoxx)
2020-11-23 11:42:50 +0100tomsmedingis a happy user of ghcup, please spread
2020-11-23 11:43:12 +0100 <maerwald> I'm not sure, the last haskell survey result had a data bug, but it's probably somewhere between 9-20%
2020-11-23 11:43:51 +0100 <cads> oo, we have a survey?
2020-11-23 11:43:55 +0100 <maerwald> https://taylor.fausak.me/2019/11/16/haskell-survey-results/#s2q1
2020-11-23 11:44:03 +0100 <maerwald> https://taylor.fausak.me/2020/11/22/haskell-survey-results/#s2q1
2020-11-23 11:44:12 +0100 <cads> and up to 1/5th is really something
2020-11-23 11:47:06 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 11:48:27 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-11-23 11:49:05 +0100 <cads> Hmm, I notice that the haskell call to action calls users to type a haskell expression, but now download a haskell installer or binary package
2020-11-23 11:50:42 +0100 <cads> If we look at go-lang.org - it has a code tester plus download button. Rust-lang.org has a download button, and then a notably accessible download page with a) Large flat download buttons in attention catching colors b) a curl line for deploying rustup.
2020-11-23 11:51:01 +0100 <cads> this is what windows user see https://imgur.com/a/ZI4UsBT
2020-11-23 11:51:24 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-23 11:51:45 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-23 11:52:40 +0100 <maerwald> cads: you may want to comment on https://gitlab.haskell.org/ghc/ghc/-/issues/18104
2020-11-23 11:53:00 +0100 <cads> could we borrow this "flat buttons mean actions" motif, and give haskel.org a awesome, rounded, regal purple button saying "Download Haskell" or "Get Started", and make similar updates for the download page?
2020-11-23 11:53:23 +0100 <maerwald> And https://github.com/haskell-infra/www.haskell.org/issues/12
2020-11-23 11:53:49 +0100zerstroyer[m](zerstroyer@gateway/shell/matrix.org/x-gegiretuusxprcab)
2020-11-23 11:53:50 +0100CRTified[m](schnecfkru@gateway/shell/matrix.org/x-eenugdcfqkikhazz)
2020-11-23 11:53:50 +0100iinuwa(iinuwamatr@gateway/shell/matrix.org/x-nirgmkkuiglbzdym)
2020-11-23 11:53:50 +0100berberman[T](berberma4@gateway/shell/matrix.org/x-gbdkkegajrsrxxkg)
2020-11-23 11:53:50 +0100themsay[m](themsaymat@gateway/shell/matrix.org/x-ijyhmdsdchceasci)
2020-11-23 11:53:50 +0100ComaGrayce[m](commagrays@gateway/shell/matrix.org/x-hgvgmfuatspyagpw)
2020-11-23 11:53:50 +0100Ericson2314(ericson231@gateway/shell/matrix.org/x-tegudoxxgcuckrrp)
2020-11-23 11:53:50 +0100sm[m](simonmicma@gateway/shell/matrix.org/x-kwpeizyjcphohngd)
2020-11-23 11:53:50 +0100PotatoHatsue(berbermanp@gateway/shell/matrix.org/x-libkhcmbrdqpqido)
2020-11-23 11:53:51 +0100ttc(tomtauma1@gateway/shell/matrix.org/x-lgjugwvkytxobgef)
2020-11-23 11:53:51 +0100Noughtmare[m](naughtmare@gateway/shell/matrix.org/x-qinronskgvjuesgd)
2020-11-23 11:53:51 +0100siraben(sirabenmat@gateway/shell/matrix.org/x-kbzgfwlklcotpjnz)
2020-11-23 11:53:51 +0100domenkozar[m](domenkozar@NixOS/user/domenkozar)
2020-11-23 11:53:51 +0100psydruid(psydruidma@gateway/shell/matrix.org/x-mpmiqxkbrlzaygik)
2020-11-23 11:53:51 +0100lambdaclan(lambdaclan@gateway/shell/matrix.org/x-cunxvrjdwttunvim)
2020-11-23 11:53:51 +0100sureyeaah(shauryab98@gateway/shell/matrix.org/x-xujaibeehyrzrqgr)
2020-11-23 11:53:51 +0100ThaEwat(thaewraptm@gateway/shell/matrix.org/x-eowhntdvamvdarxm)
2020-11-23 11:53:51 +0100hnOsmium0001[m](hnosmium00@gateway/shell/matrix.org/x-cujgdqencyyvcwtx)
2020-11-23 11:53:51 +0100fgaz(fgazmatrix@gateway/shell/matrix.org/x-ckdeidekxaxmbkrv)
2020-11-23 11:53:51 +0100SlackIntegration(slackbotma@gateway/shell/matrix.org/x-jwlsctxhtztxaioq)
2020-11-23 11:53:51 +0100lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-gyetbkvikjbbsrrd)
2020-11-23 11:53:51 +0100tersetears[m](tersetears@gateway/shell/matrix.org/x-yuvadosdugsnqrxf)
2020-11-23 11:53:51 +0100boistordu(boistordum@gateway/shell/matrix.org/x-mdyiyodwbwwmjcwq)
2020-11-23 11:53:51 +0100hsiktas[m](hsiktasmat@gateway/shell/matrix.org/x-diupvlqwumdpqenf)
2020-11-23 11:53:51 +0100chreekat[m](chreekatma@gateway/shell/matrix.org/x-qrurbafjmusxfuce)
2020-11-23 11:53:52 +0100rednaZ[m](r3dnazmatr@gateway/shell/matrix.org/x-ozioktnmvrvopylv)
2020-11-23 11:53:52 +0100pqwy[m](pqwymatrix@gateway/shell/matrix.org/x-qkyseftxctvdhmhh)
2020-11-23 11:53:52 +0100maralorn(maralornma@gateway/shell/matrix.org/x-opsadexttgzjqxrr)
2020-11-23 11:53:52 +0100micahsovereign[m(micahsover@gateway/shell/matrix.org/x-frusjvfqlxbbwchl)
2020-11-23 11:53:52 +0100unclechu(unclechuma@gateway/shell/matrix.org/x-fmibtulmvlcrrtyt)
2020-11-23 11:53:52 +0100michaelpj(michaelpjm@gateway/shell/matrix.org/x-bpqwjlstbvbemkvx)
2020-11-23 11:53:52 +0100jtojnar(jtojnarmat@gateway/shell/matrix.org/x-ygesxqztjkwljyzz)
2020-11-23 11:53:52 +0100dominicusin[m](dominicusi@gateway/shell/matrix.org/x-qzmdyqsqeazfuaho)
2020-11-23 11:53:52 +0100drozdziak1(drozdziak1@gateway/shell/matrix.org/x-vthisqiohgxugfqd)
2020-11-23 11:53:53 +0100srid(sridmatrix@gateway/shell/matrix.org/x-ddfumpcsdmsgnklz)
2020-11-23 11:53:53 +0100kadoban(kadobanmat@gateway/shell/matrix.org/x-ufwuzjufmgpbpvll)
2020-11-23 11:53:53 +0100PotatoHatsue|T(berbermanm@gateway/shell/matrix.org/x-ofrgdpmkybpiprzw)
2020-11-23 11:53:53 +0100jeffcasavant[m](jeffcasava@gateway/shell/matrix.org/x-javvwevsrvfabsjm)
2020-11-23 11:53:53 +0100johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-grtayloopdscsgus)
2020-11-23 11:53:53 +0100camlriot42(camlriotma@gateway/shell/matrix.org/x-iykqiffyqrfswvid)
2020-11-23 11:53:53 +0100kaychaks_riot(kaychaksma@gateway/shell/matrix.org/x-wzfqmwqobnsimpzc)
2020-11-23 11:53:55 +0100jkaye[m](jkayematri@gateway/shell/matrix.org/x-xgtxrdifoozwqxqt)
2020-11-23 11:53:56 +0100loprakoa[m](loprakoama@gateway/shell/matrix.org/x-jggrqgksdtnpxwbo)
2020-11-23 11:53:56 +0100TekShifter[m](tekshifter@gateway/shell/matrix.org/x-cfzrvymgkwpsjlwz)
2020-11-23 11:53:56 +0100betrion[m](betrionmat@gateway/shell/matrix.org/x-lhecpqwtjkkiglwb)
2020-11-23 11:53:56 +0100miseenplace[m](miseenplac@gateway/shell/matrix.org/x-wnnpqyuemudervxu)
2020-11-23 11:53:56 +0100wi[m](w1gzmatrix@gateway/shell/matrix.org/x-ywaugiascvhtlbjk)
2020-11-23 11:53:57 +0100mikr[m](mikrdavral@gateway/shell/matrix.org/x-wijhaydyfjgkrnqd)
2020-11-23 11:53:57 +0100falling-edge[m](falling-ed@gateway/shell/matrix.org/x-ingloazughuslvcy)
2020-11-23 11:53:57 +0100alexfmpe(alexfmpema@gateway/shell/matrix.org/x-uqlbdbsmgeiylcyi)
2020-11-23 11:53:58 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-rvvlgbaxbtmzugej)
2020-11-23 11:53:58 +0100patier[m](patiermatr@gateway/shell/matrix.org/x-yjfgmheqbsrvyvho)
2020-11-23 11:53:58 +0100jesser[m](jessermatr@gateway/shell/matrix.org/x-qvghulfnrarmvzsf)
2020-11-23 11:53:58 +0100andreabedini[m](andreabedi@gateway/shell/matrix.org/x-qitqfbtrbfnzbcmu)
2020-11-23 11:53:58 +0100wanaks[m](wanaksmatr@gateway/shell/matrix.org/x-evkorzdwtetbvvid)
2020-11-23 11:53:58 +0100alephu5[m](alephu5mat@gateway/shell/matrix.org/x-iqqwqpszzorkjviq)
2020-11-23 11:53:58 +0100jlv(jlvjustinl@gateway/shell/matrix.org/x-pkbhavgbkzlvwwnm)
2020-11-23 11:53:59 +0100Hanma[m](hanmamatri@gateway/shell/matrix.org/x-fchldacgfrgiwucu)
2020-11-23 11:53:59 +0100rab24ack[m](rab24ackma@gateway/shell/matrix.org/x-djastgiuyzrwwale)
2020-11-23 11:54:02 +0100elpfen[m](elpfenmatr@gateway/shell/matrix.org/x-aisvdtstqpsxnxki)
2020-11-23 11:54:07 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 260 seconds)
2020-11-23 11:54:41 +0100 <cads> lol @ issue 12
2020-11-23 11:54:53 +0100 <cads> sounds like I need to make a proposal, is all
2020-11-23 11:55:00 +0100 <cads> thanks!
2020-11-23 11:56:48 +0100boxscape(86ab2d68@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.45.104)
2020-11-23 11:58:17 +0100 <merijn> cads: People can't agree on what installer should be used :p
2020-11-23 11:58:25 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
2020-11-23 12:01:14 +0100 <maerwald> everyone has an opinion, but no one has time :p
2020-11-23 12:01:40 +0100 <cads> makes it very very easy for anyone with the time
2020-11-23 12:05:20 +0100 <cads> unless the other folks think they still get an opinion ;)
2020-11-23 12:06:45 +0100 <cads> like, sorry, but this the new download button, lmao https://imgur.com/a/tVkTeak ;)
2020-11-23 12:07:02 +0100cadsis partially kidding of course
2020-11-23 12:09:45 +0100jedws(~jedws@101.184.150.93) (Read error: Connection reset by peer)
2020-11-23 12:11:37 +0100 <tomsmeding> oh, can I order the Hask category? that would be neat
2020-11-23 12:12:27 +0100cadsthinks the hask category is the first category they ever heard of
2020-11-23 12:13:06 +0100 <tomsmeding> I believe it's not a particular interesting one, but don't ask me about category theory lol
2020-11-23 12:14:40 +0100 <cads> maerwald, I'm very interested in your docker workers - was trying to set that up earlier today when I thought that the installer story was broken for WSL
2020-11-23 12:15:17 +0100christo(~chris@81.96.113.213)
2020-11-23 12:15:25 +0100 <cads> I was going to have a ghc docker machine that I send builds to
2020-11-23 12:15:40 +0100dansho(~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
2020-11-23 12:16:18 +0100daGrevis(~daGrevis@unaffiliated/dagrevis) (Remote host closed the connection)
2020-11-23 12:16:44 +0100daGrevis(~daGrevis@unaffiliated/dagrevis)
2020-11-23 12:17:41 +0100 <cads> maerwald, also at this juncture I'm thinking about adding buttons, not forcing a choice on the installers. Although adding buttons kind of foregrounds the issue that we don't really have buttons for windows, I'm not against making buttons point to what we've got
2020-11-23 12:18:14 +0100 <cads> ie, that design can even remain in draft status till we figure out what the buttons are
2020-11-23 12:20:16 +0100rprije(~rprije@124.148.131.132) (Ping timeout: 240 seconds)
2020-11-23 12:22:05 +0100 <maerwald> cads: here's an example https://git.io/Jk6OS
2020-11-23 12:26:03 +0100 <cads> I'm currently building design references from: https://go-lang.org, https://rust-lang.org, https://typescriptlang.org, https://quarkus.io - these are four examples of programming platforms, whose web pages visually eliminate uncertainty and reduce the stress of getting started.. Other examples are welcome!
2020-11-23 12:26:21 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-11-23 12:27:04 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 240 seconds)
2020-11-23 12:27:20 +0100 <cads> maerwald, thanks! I did not know that I could fork a gist. But I do now, and I'm not ashamed :)
2020-11-23 12:28:18 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-23 12:28:51 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-11-23 12:29:44 +0100Tops2(~Tobias@dyndsl-095-033-021-036.ewe-ip-backbone.de)
2020-11-23 12:33:59 +0100Martinsos(~user@cpe-188-129-116-164.dynamic.amis.hr) (Remote host closed the connection)
2020-11-23 12:36:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-23 12:38:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 12:38:32 +0100thc202(~thc202@unaffiliated/thc202)
2020-11-23 12:41:21 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 12:46:12 +0100oleks(~oleks@188.166.34.97) (Remote host closed the connection)
2020-11-23 12:46:13 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-23 12:46:28 +0100Guest42(56ca6780@gateway/web/cgi-irc/kiwiirc.com/ip.86.202.103.128) (Quit: Connection closed)
2020-11-23 12:47:00 +0100klixto(~klixto@49.188.65.219)
2020-11-23 12:47:43 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-23 12:47:55 +0100SanchayanM(~Sanchayan@171.76.82.54) (Quit: SanchayanM)
2020-11-23 12:49:53 +0100cosimone(~user@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 12:51:14 +0100SanchayanMaity(~Sanchayan@171.76.82.54)
2020-11-23 12:52:43 +0100_ht(~huub@82-169-194-8.biz.kpn.net)
2020-11-23 12:53:01 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-11-23 12:53:09 +0100klixto(~klixto@49.188.65.219) (Quit: WeeChat 2.9)
2020-11-23 12:53:32 +0100SanchayanMaity(~Sanchayan@171.76.82.54) (Client Quit)
2020-11-23 12:53:37 +0100_ht(~huub@82-169-194-8.biz.kpn.net) (Client Quit)
2020-11-23 12:57:01 +0100alp(~alp@2a01:e0a:58b:4920:21cf:ab8e:85fd:bb5c) (Ping timeout: 272 seconds)
2020-11-23 12:58:58 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52)
2020-11-23 13:01:23 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2020-11-23 13:03:13 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-23 13:04:16 +0100boxscape33(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-23 13:05:26 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 13:07:02 +0100chaosmasttter(~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-23 13:07:08 +0100boxscape(86ab2d68@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.45.104) (Ping timeout: 246 seconds)
2020-11-23 13:08:20 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no)
2020-11-23 13:10:41 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-11-23 13:10:49 +0100 <sondr3> when writing parsers in Haskell where parsing depends on a sequence you parsec earlier on is there a way to avoid using state? The parser has a 'boundary' that is the end of a multiline string that you find in the beginning of parsing
2020-11-23 13:11:21 +0100statusfailed(~statusfai@statusfailed.com) (Quit: leaving)
2020-11-23 13:13:45 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-11-23 13:13:53 +0100statusfailed(~statusfai@statusfailed.com)
2020-11-23 13:14:38 +0100Entertainment(~entertain@104.246.132.210)
2020-11-23 13:16:09 +0100 <tomsmeding> that's what monadic parsing is for, right?
2020-11-23 13:16:28 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-11-23 13:16:43 +0100 <tomsmeding> do { sep <- choice [string "'", string "\""] ; body <- parseMultilineBody sep ; string sep ; return body }
2020-11-23 13:16:54 +0100alp(~alp@2a01:e0a:58b:4920:e13d:1293:cf10:eb67)
2020-11-23 13:17:05 +0100 <tomsmeding> of course changed to your particular situation sondr3
2020-11-23 13:17:31 +0100 <tomsmeding> your state is on the call stack, sort of
2020-11-23 13:18:17 +0100 <tomsmeding> now, if you'd need to know which separator was used in a completely different part of the thing you're parsing, then you probably need some kind of state
2020-11-23 13:19:22 +0100cosimone(~user@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: ERC (IRC client for Emacs 27.1))
2020-11-23 13:20:13 +0100 <sondr3> Yeah, the separator is shared between many entries when parsing where each entries separator must be an exact match to the first found separator
2020-11-23 13:22:43 +0100Iceland_jack(~user@31.124.48.169)
2020-11-23 13:22:49 +0100 <tomsmeding> is that only within the actual multiline string you're parsing? If so, can you not somehow write that parseMultilineBody function?
2020-11-23 13:22:57 +0100 <tomsmeding> note that it gets the used separator as an argument sondr3
2020-11-23 13:24:24 +0100 <sondr3> The spec says that the content is "any sequence of characters that neither begins with boundary nor NEWLINE boundary", I've been able to make a parser with state where it works
2020-11-23 13:24:39 +0100 <sondr3> But it feels kinda icky and I
2020-11-23 13:24:57 +0100 <sondr3> new keyboard, bear with me x)
2020-11-23 13:25:30 +0100oleks(~oleks@188.166.34.97)
2020-11-23 13:25:30 +0100oleks(~oleks@188.166.34.97) (Client Quit)
2020-11-23 13:25:36 +0100 <sondr3> *and I can't get hspec-megaparsec to agree with me when using ParsecT and not just Parsec
2020-11-23 13:27:20 +0100chaosmasttter(~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de)
2020-11-23 13:28:01 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2020-11-23 13:30:47 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-23 13:31:48 +0100danza(~francesco@151.74.104.171)
2020-11-23 13:32:57 +0100sheb(~Thunderbi@77.244.36.161)
2020-11-23 13:33:01 +0100 <tomsmeding> sondr3: which spec?
2020-11-23 13:33:29 +0100 <Iceland_jack> :t curr
2020-11-23 13:33:30 +0100 <lambdabot> error:
2020-11-23 13:33:30 +0100 <lambdabot> • Variable not in scope: curr
2020-11-23 13:33:30 +0100 <lambdabot> • Perhaps you meant ‘curry’ (imported from Data.Tuple)
2020-11-23 13:33:31 +0100 <Iceland_jack> :t curry
2020-11-23 13:33:32 +0100 <lambdabot> ((a, b) -> c) -> a -> b -> c
2020-11-23 13:33:43 +0100 <Iceland_jack> curry :: ((a, b) -> c)
2020-11-23 13:33:43 +0100 <Iceland_jack> -> (a -> b -> c)
2020-11-23 13:33:57 +0100 <tomsmeding> neat, isn't it?
2020-11-23 13:34:10 +0100sheb(~Thunderbi@77.244.36.161) ()
2020-11-23 13:34:15 +0100 <sondr3> tomsmeding: https://github.com/google/hrx, looked like a simple and useful thing to use when learning parsing in Haskell, it's just the boundary stuff that's tripping me up
2020-11-23 13:35:03 +0100 <tomsmeding> sondr3: can't you do this recursively?
2020-11-23 13:35:22 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving)
2020-11-23 13:35:54 +0100 <sondr3> tomsmeding: the thought have struck me, yeah
2020-11-23 13:37:42 +0100sheb(~Thunderbi@77.244.36.161)
2020-11-23 13:37:55 +0100NieDzejkob(~quassel@188.123.215.55) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2020-11-23 13:38:38 +0100 <sondr3> I'll try doing it recursively, thanks for being a rubber duck tomsmeding :)
2020-11-23 13:38:57 +0100 <tomsmeding> or even in a kind of continuation-passing style; parseComponent :: Maybe Boundary -> Parsec HRX ; parseComponent Nothing = parseNewBoundary >>= parseAfterBoundary ; parseComponent (Just bnd) = parseBoundary bnd >> parseAfterBoundary bnd ; parseAfterBoundary :: Boundary -> Parser HRX ; parseAfterBoundary bnd = do { item <- pComment bnd <|> pFile bnd <|> pDirectory bnd ; HRX rest <- parseComponent
2020-11-23 13:38:57 +0100 <tomsmeding> (Just bnd) ; return HRX (item : rest) }
2020-11-23 13:39:00 +0100 <tomsmeding> or something like that?
2020-11-23 13:39:06 +0100NieDzejkob(~quassel@188.123.215.55)
2020-11-23 13:39:10 +0100 <tomsmeding> s/ ; /\n/g
2020-11-23 13:39:20 +0100 <tomsmeding> pseudocode though :p
2020-11-23 13:39:24 +0100 <tomsmeding> that's CPS-like
2020-11-23 13:40:19 +0100sheb(~Thunderbi@77.244.36.161) ()
2020-11-23 13:40:38 +0100boxscape33boxscape
2020-11-23 13:40:50 +0100 <sondr3> Looks like Haskell to me :P thanks!
2020-11-23 13:41:08 +0100 <boxscape> % type TypeOf :: forall t . forall (a :: t) -> *; type family TypeOf t where TypeOf @t a = t
2020-11-23 13:41:08 +0100 <yahb> boxscape:
2020-11-23 13:41:09 +0100 <boxscape> % :kind! TypeOf (Just True)
2020-11-23 13:41:09 +0100 <yahb> boxscape: *; = Maybe Bool
2020-11-23 13:41:12 +0100 <boxscape> I like that this works
2020-11-23 13:41:28 +0100 <boxscape> feels almost like using a dynamically typed language in a way
2020-11-23 13:41:44 +0100sheb(~Thunderbi@77.244.36.161)
2020-11-23 13:43:35 +0100 <boxscape> % type TypeOf' :: forall t . t -> *; type family TypeOf' a where TypeOf' @t a = t -- I suppose my kind sig is more complicated than it has to be
2020-11-23 13:43:36 +0100 <yahb> boxscape:
2020-11-23 13:44:16 +0100danza(~francesco@151.74.104.171) (Quit: Leaving)
2020-11-23 13:45:31 +0100hackagesr-extra 1.85.1 - Module limbo https://hackage.haskell.org/package/sr-extra-1.85.1 (DavidFox)
2020-11-23 13:46:04 +0100 <boxscape> % Just True :: TypeOf (Just True) -- :)
2020-11-23 13:46:04 +0100 <yahb> boxscape: Just True
2020-11-23 13:46:23 +0100geekosaur(ac3a8b3a@172.58.139.58)
2020-11-23 13:48:10 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-23 13:48:17 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 13:49:10 +0100_xor(~xor@74.215.46.133) (Quit: WeeChat 3.0)
2020-11-23 13:49:28 +0100hseg(~gesh@185.120.126.113)
2020-11-23 13:49:31 +0100_xor(~xor@74.215.46.133)
2020-11-23 13:49:42 +0100 <hseg> hi. is there some way of dumping all bindings made in ghci?
2020-11-23 13:50:12 +0100 <hseg> have had a long ghci session, would like to save some of the more useful ones for tomorrow
2020-11-23 13:50:34 +0100Lden(5fa448e7@95.164.72.231)
2020-11-23 13:50:41 +0100 <geekosaur> not really
2020-11-23 13:50:53 +0100 <hseg> pity
2020-11-23 13:51:01 +0100 <boxscape> % :show bindings
2020-11-23 13:51:01 +0100 <yahb> boxscape: type Ghci6.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci6.Fam; type Ghci7.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci7.Fam; type Ghci8.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci8.Fam; type Ghci9.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci9.Fam; type Fam :: forall k (a :: k) (b :: k). a :~: b; type family Fam; type Foo :: *; data Foo = ...; foo
2020-11-23 13:51:11 +0100 <boxscape> hseg does that work?
2020-11-23 13:51:45 +0100 <boxscape> wait
2020-11-23 13:51:47 +0100 <boxscape> it doesn't
2020-11-23 13:51:58 +0100 <boxscape> it doesn't give you the definition, only the type
2020-11-23 13:51:59 +0100 <boxscape> :(
2020-11-23 13:52:21 +0100 <hseg> which is enough to ctrl-r back to the definition
2020-11-23 13:52:24 +0100 <hseg> thanks!
2020-11-23 13:52:29 +0100 <boxscape> np
2020-11-23 13:52:34 +0100 <boxscape> glad it help
2020-11-23 13:52:35 +0100 <boxscape> s
2020-11-23 13:52:45 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-23 13:53:30 +0100 <hseg> well, up to a point, but i'll take what i can get
2020-11-23 13:53:54 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-11-23 13:54:06 +0100SanchayanMaity(~Sanchayan@171.76.82.54)
2020-11-23 13:56:07 +0100carlomagno(~cararell@148.87.23.7) (Remote host closed the connection)
2020-11-23 13:58:33 +0100Lden(5fa448e7@95.164.72.231) ()
2020-11-23 13:58:44 +0100Lden(5fa448e7@95.164.72.231)
2020-11-23 13:58:55 +0100Lden(5fa448e7@95.164.72.231) (Remote host closed the connection)
2020-11-23 13:59:18 +0100LDem(5fa448e7@95.164.72.231)
2020-11-23 14:00:01 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
2020-11-23 14:00:43 +0100Tario(~Tario@201.192.165.173)
2020-11-23 14:01:26 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2020-11-23 14:01:44 +0100urodna(~urodna@unaffiliated/urodna)
2020-11-23 14:03:02 +0100texasmynsted(~texasmyns@212.102.45.103)
2020-11-23 14:03:20 +0100 <tomsmeding> hseg: try ~/.ghc/ghci_history?
2020-11-23 14:03:21 +0100texasmynsted(~texasmyns@212.102.45.103) (Read error: Connection reset by peer)
2020-11-23 14:03:44 +0100texasmynsted(~texasmyns@212.102.45.103)
2020-11-23 14:04:00 +0100 <tomsmeding> though it seems it only writes that file upon closing ghci, so that's going to be a scary close :p
2020-11-23 14:04:00 +0100ian-mi(~ian_milli@c-67-160-8-14.hsd1.wa.comcast.net) (Ping timeout: 256 seconds)
2020-11-23 14:04:06 +0100 <hseg> yup
2020-11-23 14:04:19 +0100 <hseg> and it's of bounded length
2020-11-23 14:04:30 +0100 <hseg> oh well
2020-11-23 14:04:31 +0100 <tomsmeding> oh true
2020-11-23 14:04:35 +0100 <hseg> not too much was lost
2020-11-23 14:04:49 +0100 <hseg> and needed to rewrite what was lost anyway
2020-11-23 14:06:44 +0100 <hseg> recommendations for improvement on http://ix.io/2FbY ?
2020-11-23 14:06:45 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2020-11-23 14:07:18 +0100 <hseg> (trying to compute the cycle notation of a permutation s, written out as [s 1, s 2, ..., s n])
2020-11-23 14:07:26 +0100 <ski> Xnuk : "Escaping Hell with Monads" by Philip Nilsson in 2017-05-08 at <https://philipnilsson.github.io/Badness10k/escaping-hell-with-monads/> might be interesting
2020-11-23 14:08:18 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-23 14:09:42 +0100lmw(866594e0@gateway/web/thelounge/ip.134.101.148.224)
2020-11-23 14:09:52 +0100lmwhugs ski
2020-11-23 14:10:07 +0100 <hseg> ski: neat exposition
2020-11-23 14:10:45 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2020-11-23 14:11:15 +0100 <ski> dminuoso : "The usefulness of monad comes from not using it" -- actually i think this (the original, unintended, formulation), is partially true, if you interpret it as expressing effects through monads, instead of by having side-effects in the language
2020-11-23 14:11:23 +0100 <ski> heya lmw :)
2020-11-23 14:12:28 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-23 14:13:31 +0100carlomagno(~cararell@148.87.23.7)
2020-11-23 14:17:22 +0100 <sondr3> I like how DuckDuckGo displays a little `Safe Haskell: Trustworthy Language: Haskell2010` beneath some Hackage packages
2020-11-23 14:17:54 +0100SanchayanMaity(~Sanchayan@171.76.82.54) (Quit: SanchayanMaity)
2020-11-23 14:18:08 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-23 14:18:20 +0100 <Iceland_jack> :D
2020-11-23 14:18:50 +0100 <ski> (in other words, part of the usefulness of expressing effects through monads (and idioms / applicative functors), rather than through side-effects, is that this clearly (in both types/interfaces, and in code) delineates and distinguishes where effects can occur, rather than potentially every call having a side-effect, thereby helping/improving refactoring and other reasoning)
2020-11-23 14:22:22 +0100 <hseg> ie a particular case of "sufficiently well-typed programs can only go limitedly wrong"
2020-11-23 14:22:34 +0100lmw(866594e0@gateway/web/thelounge/ip.134.101.148.224) (Quit: The Lounge - https://thelounge.chat)
2020-11-23 14:24:14 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530)
2020-11-23 14:26:11 +0100 <hseg> TIL: import Module as M imports all names from M as well as qualified versions qualified by M -- particularly useful when only a couple of names overlap
2020-11-23 14:26:26 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 264 seconds)
2020-11-23 14:30:07 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
2020-11-23 14:30:27 +0100JohnONolan(~JohnONola@217.146.82.202) (Remote host closed the connection)
2020-11-23 14:32:32 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-23 14:32:51 +0100thc202(~thc202@unaffiliated/thc202)
2020-11-23 14:33:15 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2020-11-23 14:33:49 +0100LDem(5fa448e7@95.164.72.231) (Ping timeout: 245 seconds)
2020-11-23 14:34:28 +0100Chi1thangoo(~Chi1thang@87.112.60.168)
2020-11-23 14:36:36 +0100fendor(~fendor@91.141.2.69.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2020-11-23 14:36:46 +0100SanchayanMaity(~Sanchayan@171.76.82.54)
2020-11-23 14:39:10 +0100ian-mi(~ian_milli@2601:600:9c80:322d:fffc:f6e1:b33f:3002)
2020-11-23 14:42:31 +0100fendor(~fendor@91.141.0.31.wireless.dyn.drei.com)
2020-11-23 14:43:05 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-11-23 14:45:35 +0100lxsameer(~lxsameer@unaffiliated/lxsameer) (Ping timeout: 260 seconds)
2020-11-23 14:47:27 +0100 <tomsmeding> I recommend using an unqualified import with an "as" binding very sparingly
2020-11-23 14:48:09 +0100 <tomsmeding> it suggests that this module exports names that collide with other things (otherwise you wouldn't need the "as"), and thus probably exports names that are fairly generic and hard to trace back to the module
2020-11-23 14:48:26 +0100 <tomsmeding> which _usually_ makes it hard to understand the code without IDE support
2020-11-23 14:48:39 +0100 <tomsmeding> but this is a very subjective recommendation, use your own judgement :)
2020-11-23 14:49:09 +0100 <tomsmeding> in particular 'import Data.Text as T' is very bad IMO
2020-11-23 14:49:18 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 14:49:18 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Read error: Connection reset by peer)
2020-11-23 14:53:52 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-23 14:54:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-23 14:55:07 +0100st8less(~st8less@2603:a060:11fd:0:b95c:25ed:47d7:d69f)
2020-11-23 14:55:16 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 240 seconds)
2020-11-23 14:56:56 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net)
2020-11-23 14:56:58 +0100 <PacoV> Hi.
2020-11-23 14:57:45 +0100 <tomsmeding> hseg: a pattern that I (and other people) do use is something like 'import qualified Data.Map.Strict as Map ; import Data.Map.Strict (Map)'
2020-11-23 14:58:05 +0100 <tomsmeding> re:your IS.IntSet
2020-11-23 15:00:15 +0100lxsameer(lxsameer@gateway/vpn/protonvpn/lxsameer)
2020-11-23 15:00:23 +0100resolve(~resolve@178.162.212.214)
2020-11-23 15:01:39 +0100 <tomsmeding> PacoV: 👋
2020-11-23 15:08:08 +0100qwfpmluy(2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de)
2020-11-23 15:08:44 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-11-23 15:10:38 +0100boxscape(86ab2c1f@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.31)
2020-11-23 15:12:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-23 15:17:42 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-23 15:18:05 +0100Achylles(~Achylles@177.45.205.205)
2020-11-23 15:18:14 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 256 seconds)
2020-11-23 15:18:55 +0100Achylles(~Achylles@177.45.205.205) (Max SendQ exceeded)
2020-11-23 15:19:25 +0100Achylles(~Achylles@177.45.205.205)
2020-11-23 15:21:57 +0100Achylles(~Achylles@177.45.205.205) (Max SendQ exceeded)
2020-11-23 15:22:19 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-23 15:22:33 +0100son0p(~son0p@181.136.122.143)
2020-11-23 15:22:36 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-23 15:23:52 +0100Achylles(~Achylles@177.45.205.205)
2020-11-23 15:24:58 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 15:26:17 +0100 <qwfpmluy> what are the best resources for learning about the different ways of doing `deriving` (deriving via, standalone deriving, ...) in haskell?
2020-11-23 15:28:09 +0100 <boxscape> I think the User Guide, starting here, is a decent resource https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#generalised-deriv…
2020-11-23 15:28:39 +0100 <boxscape> (actually standalone deriving is a bit further up)
2020-11-23 15:31:11 +0100 <Uniaika> I wonder if Kowainik didn't make a short guide on that
2020-11-23 15:31:31 +0100 <lyxia> qwfpmluy: https://kowainik.github.io/posts/deriving
2020-11-23 15:31:42 +0100 <Uniaika> glorious, thanks lyxia
2020-11-23 15:31:55 +0100 <lyxia> Uniaika: :P
2020-11-23 15:32:08 +0100 <Uniaika> :9
2020-11-23 15:32:21 +0100 <hseg> tomsmeding: fair. i use unqualified imports more frequently in ghci for this reason
2020-11-23 15:32:56 +0100 <tomsmeding> ghci is playground anyway :)
2020-11-23 15:33:56 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds)
2020-11-23 15:33:58 +0100 <qwfpmluy> boxscape lyxia thanks!
2020-11-23 15:34:36 +0100 <hseg> exactly
2020-11-23 15:34:43 +0100 <hseg> any other recs?
2020-11-23 15:34:56 +0100 <hseg> feel my recursion is a bit ad-hoc
2020-11-23 15:36:01 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-23 15:36:06 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-11-23 15:36:56 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-23 15:37:18 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-23 15:37:24 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-23 15:37:39 +0100mpereira(~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba)
2020-11-23 15:38:00 +0100hackageprolude 0.0.0.10 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.10 (saramuse)
2020-11-23 15:42:53 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-11-23 15:44:53 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 15:45:05 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-23 15:48:25 +0100sheb(~Thunderbi@77.244.36.161) (Ping timeout: 240 seconds)
2020-11-23 15:48:34 +0100geekosaur(ac3a8b3a@172.58.139.58) (Remote host closed the connection)
2020-11-23 15:49:32 +0100kish`(~oracle@unaffiliated/oracle)
2020-11-23 15:49:44 +0100sheb(~Thunderbi@77.244.36.161)
2020-11-23 15:49:53 +0100larou(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2020-11-23 15:51:32 +0100xff0x(~fox@2001:1a81:5237:b800:d8c8:bfa0:43f3:b736) (Ping timeout: 260 seconds)
2020-11-23 15:51:58 +0100xff0x(~fox@2001:1a81:5237:b800:aac7:5690:7e90:eba4)
2020-11-23 15:52:14 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) (Ping timeout: 264 seconds)
2020-11-23 15:52:14 +0100chaosmasttter(~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-23 15:53:06 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530)
2020-11-23 15:53:53 +0100 <boxscape> hmm, I'm idly wondering if there is some way to take a non-IO value and unsafeCoerce it to print a non-empty string to the terminal
2020-11-23 15:54:02 +0100 <boxscape> I suppose there has to be
2020-11-23 15:54:16 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2020-11-23 15:54:54 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-lkssxccumhdupnut)
2020-11-23 15:57:57 +0100 <tomsmeding> hseg: I haven't even tried to compile this, but theoretically this should do the same as yours? https://paste.tomsmeding.com/FbLBhrVM
2020-11-23 15:58:23 +0100 <tomsmeding> using ! instead of !? I do assume that the permutation is valid, i.e. doesn't contain out of bounds values
2020-11-23 15:58:50 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds)
2020-11-23 15:58:54 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-23 16:00:14 +0100 <dminuoso> boxscape: Do you mean Debug.Trace.trace ?
2020-11-23 16:00:22 +0100 <dminuoso> That's not quite unsafeCoerce though.
2020-11-23 16:01:20 +0100 <boxscape> dminuoso well, basically what I'm looking for (for no particular reason) is something like (unsafeCoerce (23874893274 :: Integer) :: IO ()), which, when bound to main, prints "hello" to the terminal, or whatever
2020-11-23 16:01:44 +0100 <merijn> boxscape: You are a bad person and you should feel bad >.>
2020-11-23 16:01:45 +0100 <dminuoso> How is that even remotely related to unsafeCoerce... ?
2020-11-23 16:01:52 +0100 <boxscape> merijn sorry :(
2020-11-23 16:01:53 +0100 <merijn> dminuoso: l33t ahx
2020-11-23 16:01:58 +0100 <merijn> s/ahx/hax
2020-11-23 16:02:16 +0100 <dminuoso> boxscape: Why should that print "hello" and not "goodbye"?
2020-11-23 16:02:19 +0100 <merijn> dminuoso: Like those people who write C, but main is a char* whose values happen to be sensible code
2020-11-23 16:02:30 +0100 <boxscape> dminuoso because the number is carefully chosen
2020-11-23 16:02:38 +0100 <boxscape> (though my example is random)
2020-11-23 16:02:49 +0100 <dminuoso> boxscape: Maybe you should elaborate on that "carefully chosen"
2020-11-23 16:02:55 +0100 <dminuoso> because so far you didn't mentoin this
2020-11-23 16:03:11 +0100 <dminuoso> All I got was "I want `unsafeCoerce a` to turn it into a printing thing"
2020-11-23 16:03:13 +0100alp(~alp@2a01:e0a:58b:4920:e13d:1293:cf10:eb67) (Ping timeout: 272 seconds)
2020-11-23 16:03:13 +0100 <dminuoso> :p
2020-11-23 16:03:15 +0100 <merijn> dminuoso: He wants to figure out how to pick a value, such that unsafeCoerce leads toe xecutable code
2020-11-23 16:03:29 +0100 <boxscape> dminuoso The essence of my wondering is exactly how to find such a value (and I suppose a type that supports it)
2020-11-23 16:03:48 +0100 <dolio> I think that might not even be possible.
2020-11-23 16:03:57 +0100 <dminuoso> boxscape: unsafePerformIO does it for you.
2020-11-23 16:03:57 +0100 <boxscape> hmm what makes you say that?
2020-11-23 16:04:06 +0100 <dminuoso> Or.. wait no. IO is that thing.
2020-11-23 16:04:49 +0100 <tomsmeding> boxscape: I think the problem you're going to run into is that a valid valid of type IO a is going to have lots of pointers in it
2020-11-23 16:04:51 +0100 <dminuoso> boxscape: For starters you have no knowledge of the hepa
2020-11-23 16:04:58 +0100 <dminuoso> *heap
2020-11-23 16:05:01 +0100 <dolio> Because there'd be no closure layout for an integer that actually matches an IO thing.
2020-11-23 16:05:13 +0100 <dolio> Or any other type, really.
2020-11-23 16:05:16 +0100 <boxscape> hmm okay
2020-11-23 16:05:32 +0100 <tomsmeding> a ByteArray# could perhaps accidentally match something?
2020-11-23 16:05:38 +0100 <dminuoso> ByteArray# lives on the heap too.
2020-11-23 16:05:46 +0100 <tomsmeding> sure, but an IO value does too
2020-11-23 16:05:58 +0100 <tomsmeding> and embedded pointers will go wrong though
2020-11-23 16:06:47 +0100NieDzejkob(~quassel@188.123.215.55) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2020-11-23 16:07:34 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-23 16:07:53 +0100NieDzejkob(~quassel@188.123.215.55)
2020-11-23 16:08:08 +0100 <dminuoso> My feeling tells me boxscape lied about the "for no particular reason" part.
2020-11-23 16:08:13 +0100 <hseg> tomsmeding: yeah, that looks great! my code is an object example of tunnel-visioned use of One Trick(TM)
2020-11-23 16:08:20 +0100 <dminuoso> boxscape: Are you trying to be really sneaky?
2020-11-23 16:08:21 +0100 <hseg> thanks!
2020-11-23 16:08:25 +0100 <boxscape> dminuoso your feelings are lying to you :P
2020-11-23 16:08:29 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-11-23 16:09:03 +0100 <boxscape> I was watching a stephanie werich talk about dependent haskell and somehow ended up using unsafeCoerce on a bunch of values with yahb, but I'm not sure how I got there
2020-11-23 16:09:29 +0100 <boxscape> s/werich/weirich
2020-11-23 16:09:49 +0100 <hseg> for some reason i have been avoiding let..in expressions in favor of where clauses recently
2020-11-23 16:10:01 +0100 <dminuoso> boxscape: Can you provide a link to the talk, perhaps indexed at the right time
2020-11-23 16:10:07 +0100 <merijn> hseg: I've always done that, let..in is hard to format nicely and almost never necessary
2020-11-23 16:10:29 +0100 <tomsmeding> hseg: you could even replace the otherwise-line of 'peel' with 'uncurry (:) (peel <$> orbit (IS.findMin remaining) IS.empty)', but that's not making it better :p
2020-11-23 16:10:32 +0100 <boxscape> dminuoso er, I can, but it won't help much because it has nothing to do with unsafeCoerce
2020-11-23 16:10:33 +0100 <boxscape> https://youtu.be/n-b1PYbRUOY?t=1878
2020-11-23 16:10:38 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2020-11-23 16:10:58 +0100 <Iceland_jack> qwfpmluy: you can use :instances to list possible instance to derive for -XDerivingVia
2020-11-23 16:11:14 +0100 <Iceland_jack> newtype LL a = LL [[a]] deriving (Functor, Applicative) via Compose [] []
2020-11-23 16:11:28 +0100 <Iceland_jack> :instances Compose [] [], lists (possible) instances to derive
2020-11-23 16:11:50 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 16:12:01 +0100 <Iceland_jack> newtype Age = A Int deriving newtype Num
2020-11-23 16:12:01 +0100 <Iceland_jack> ={equivalent}
2020-11-23 16:12:02 +0100 <Iceland_jack> newtype Age = A Int deriving Num via Int
2020-11-23 16:12:16 +0100 <Iceland_jack> -XDerivingVia generalizes -XGeneralizedNewtypeDeriving
2020-11-23 16:13:01 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-11-23 16:13:12 +0100 <Iceland_jack> *generalises??
2020-11-23 16:13:20 +0100 <Iceland_jack> I must obey UK
2020-11-23 16:13:25 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-11-23 16:13:31 +0100 <boxscape> then use -XGeneralisedNewtypeDeriving
2020-11-23 16:13:32 +0100 <hseg> i think this recursion pattern of :: (s -> (a,s)) -> (s -> Bool) -> s -> [a] should generalize, no?
2020-11-23 16:13:41 +0100 <Iceland_jack> I think GND somewhat recently added -XGeneralisedNewtypeDeriving, UK spelling
2020-11-23 16:13:59 +0100 <boxscape> yeah
2020-11-23 16:14:17 +0100 <tomsmeding> :t unfoldr -- hseg
2020-11-23 16:14:18 +0100 <lambdabot> (b -> Maybe (a, b)) -> b -> [a]
2020-11-23 16:14:26 +0100 <hseg> merijn: that must be it
2020-11-23 16:14:47 +0100 <hseg> ok, so peel can be written as an unfoldr
2020-11-23 16:15:24 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 16:16:28 +0100 <tomsmeding> interesting, you're right
2020-11-23 16:17:23 +0100 <hseg> also, IntSet is missing lookupMin :: IntSet -> Maybe Key
2020-11-23 16:17:32 +0100 <ski> @where strategic-deriving
2020-11-23 16:17:33 +0100 <lambdabot> I know nothing about strategic-deriving.
2020-11-23 16:18:39 +0100 <ski> @where+ strategic-deriving "Strategic Deriving" by Veronika Romashkina,Dmitrii Kovanikov in 2020-09-21 at <https://kowainik.github.io/posts/deriving>
2020-11-23 16:18:39 +0100 <lambdabot> Good to know.
2020-11-23 16:18:54 +0100 <merijn> hseg: That's just "fmap fst . minView" ? :)
2020-11-23 16:19:13 +0100zaquest(~notzaques@5.128.210.178)
2020-11-23 16:19:34 +0100 <hseg> sure... it did encourage me to reverse the iteration of my algorithm
2020-11-23 16:19:47 +0100 <hseg> (i.e. replace "seen" by "to-process")
2020-11-23 16:21:18 +0100 <hseg> also, considering the rest of containers have lookups, it's an annoying hole
2020-11-23 16:21:47 +0100andos(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-23 16:23:01 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-11-23 16:23:50 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-23 16:25:22 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 16:25:23 +0100 <hseg> tomsmeding: also, orbit's output is flipped from what peel wants
2020-11-23 16:25:36 +0100 <hseg> it returns (seen, orbit)
2020-11-23 16:25:53 +0100 <tomsmeding> oh that's too bad, I wrote it that way to make the <$> nice and compact :p
2020-11-23 16:26:56 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 240 seconds)
2020-11-23 16:27:01 +0100 <hseg> no problem -- just add a flip on the unfoldr
2020-11-23 16:28:34 +0100enoq(~textual@194-208-146-143.lampert.tv) (Read error: Connection reset by peer)
2020-11-23 16:29:01 +0100 <tomsmeding> :t flip flip
2020-11-23 16:29:02 +0100 <lambdabot> b -> (a -> b -> c) -> a -> c
2020-11-23 16:29:22 +0100 <hseg> cool!
2020-11-23 16:29:30 +0100 <dminuoso> flip flip looks cute and useful
2020-11-23 16:29:45 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2020-11-23 16:29:47 +0100 <dminuoso> Just dont know what for.
2020-11-23 16:29:55 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 16:30:02 +0100 <hseg> it reverses operators
2020-11-23 16:30:16 +0100toorevitimirp(~tooreviti@117.182.183.18) (Remote host closed the connection)
2020-11-23 16:30:16 +0100 <xerox_> :t flip flip flip
2020-11-23 16:30:17 +0100christo(~chris@81.96.113.213)
2020-11-23 16:30:18 +0100 <lambdabot> (a1 -> ((a2 -> b -> c1) -> b -> a2 -> c1) -> c2) -> a1 -> c2
2020-11-23 16:30:20 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-23 16:30:25 +0100 <hseg> > flip flip (++) ", world" "hello"
2020-11-23 16:30:27 +0100 <lambdabot> error:
2020-11-23 16:30:27 +0100 <lambdabot> • Couldn't match expected type ‘[Char]
2020-11-23 16:30:27 +0100 <lambdabot> -> ([a0] -> [a0] -> [a0]) -> c’
2020-11-23 16:30:28 +0100 <maerwald> :t flip . flip . flip
2020-11-23 16:30:30 +0100 <lambdabot> (a -> b -> c) -> b -> a -> c
2020-11-23 16:30:37 +0100 <xerox_> that's what I was after
2020-11-23 16:30:47 +0100 <tomsmeding> you know what's more fun? iterating 'flip' converges https://paste.tomsmeding.com/SefRZrAn
2020-11-23 16:30:49 +0100 <hseg> > flip flip ", world" (++) "hello"
2020-11-23 16:30:52 +0100 <lambdabot> "hello, world"
2020-11-23 16:31:09 +0100 <dminuoso> Also, random occurences of `flip const id` in your code are good to ensure the reader is paying full attention.
2020-11-23 16:31:28 +0100vollenweider_(~vollenwei@4e69b241.skybroadband.com) (Ping timeout: 260 seconds)
2020-11-23 16:31:46 +0100 <tomsmeding> nah, should replace that 'id' with an arbitrarily complex expression
2020-11-23 16:31:46 +0100 <hseg> :t flip const id
2020-11-23 16:31:48 +0100 <lambdabot> c -> c
2020-11-23 16:31:56 +0100 <hseg> neat
2020-11-23 16:32:00 +0100 <hseg> :t id id id id id
2020-11-23 16:32:01 +0100skiseconds the `where' over `let'-`in'
2020-11-23 16:32:01 +0100 <lambdabot> a -> a
2020-11-23 16:32:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-23 16:32:20 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2020-11-23 16:32:29 +0100 <dminuoso> ski: Ive started to become quite fond of `let` in pattern guards.
2020-11-23 16:32:44 +0100 <dminuoso> for small bits, this can create less noise than where
2020-11-23 16:32:46 +0100 <ski> that's not `let'-`in', though
2020-11-23 16:32:58 +0100 <dminuoso> sure, just introducing this as a third alternative option
2020-11-23 16:33:03 +0100 <ski> @type map `flip` "foo"
2020-11-23 16:33:05 +0100 <lambdabot> (Char -> b) -> [b]
2020-11-23 16:33:14 +0100 <merijn> dminuoso: What do you need let for in pattern guards?
2020-11-23 16:33:14 +0100skinods
2020-11-23 16:33:28 +0100 <dminuoso> merijn: foo x | let y = ... = ...
2020-11-23 16:33:36 +0100 <dminuoso> Same reason you'd use where
2020-11-23 16:33:43 +0100 <merijn> dminuoso: You can just do "| y <- .."
2020-11-23 16:33:50 +0100 <boxscape> "merijn: Like those people who write C, but main is a char* whose values happen to be sensible code" I can't help but look into this now :/
2020-11-23 16:34:00 +0100 <dminuoso> merijn: We had this discussion before. <- has more potential for bugs
2020-11-23 16:34:18 +0100 <merijn> boxscape: You haven't heard about IOCCC?
2020-11-23 16:34:19 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-23 16:34:20 +0100 <merijn> boxscape: https://www.ioccc.org/
2020-11-23 16:34:27 +0100 <dminuoso> i.e. `foo x | F x <- ...` vs `foo x | let Foo x = ...`
2020-11-23 16:34:29 +0100 <dminuoso> err
2020-11-23 16:34:35 +0100 <dminuoso> `foo x | F x <- ...` vs `foo x | let F x = ...`
2020-11-23 16:34:48 +0100 <boxscape> merijn I've heard of it but tbh I haven't really looked at any of their programs in detail
2020-11-23 16:34:53 +0100 <dminuoso> The former will behave differently if we suddenly introduce another contructor to F's type
2020-11-23 16:34:59 +0100vollenweider_(~vollenwei@4e69b241.skybroadband.com)
2020-11-23 16:35:01 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-11-23 16:35:39 +0100ski. o O ( `blah | let f x = ..x..,... = ...' )
2020-11-23 16:35:56 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-23 16:36:01 +0100 <dminuoso> mm, is that allowed?
2020-11-23 16:36:03 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-11-23 16:36:11 +0100 <dminuoso> % blah | let f x = x^2 = f 10
2020-11-23 16:36:11 +0100 <yahb> dminuoso:
2020-11-23 16:36:16 +0100 <dminuoso> Oh cool. TIL
2020-11-23 16:36:24 +0100mirrorbird(psutcliffe@gateway/vpn/mullvad/psutcliffe)
2020-11-23 16:37:11 +0100 <ski> @wiki Obfuscation
2020-11-23 16:37:11 +0100 <lambdabot> https://wiki.haskell.org/Obfuscation
2020-11-23 16:37:58 +0100SanchayanMaity(~Sanchayan@171.76.82.54) (Quit: SanchayanMaity)
2020-11-23 16:38:50 +0100 <ski> % let blah y | let f x = x^2,(f . f -> z) <- y = z in blah 2
2020-11-23 16:38:51 +0100 <yahb> ski: 16
2020-11-23 16:39:40 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-23 16:40:27 +0100 <ski> % let blah (f . f -> z) | let f x = x^2 = z in blah 2
2020-11-23 16:40:27 +0100 <yahb> ski: ; <interactive>:19:11: error: Variable not in scope: f :: b0 -> c1; <interactive>:19:15: error: Variable not in scope: f :: a -> b0
2020-11-23 16:40:30 +0100 <ski> too bad
2020-11-23 16:41:57 +0100 <boxscape> % let {f | let Nothing = Just 4 = True | otherwise = False} in f
2020-11-23 16:41:57 +0100 <yahb> boxscape: True
2020-11-23 16:41:58 +0100 <boxscape> % let {f | Nothing <- Just 4 = True | otherwise = False} in f
2020-11-23 16:41:58 +0100 <yahb> boxscape: False
2020-11-23 16:42:00 +0100 <boxscape> nice
2020-11-23 16:42:41 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-23 16:42:53 +0100 <boxscape> I suppose instead of let guards you could use pattern guards with a lazy pattern
2020-11-23 16:43:04 +0100 <boxscape> % let {f | ~Nothing <- Just 4 = True | otherwise = False} in f
2020-11-23 16:43:04 +0100 <yahb> boxscape: True
2020-11-23 16:43:07 +0100 <ski> yes
2020-11-23 16:43:59 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 16:44:05 +0100haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 240 seconds)
2020-11-23 16:44:18 +0100cross(~cross@spitfire.i.gajendra.net)
2020-11-23 16:45:00 +0100 <ski> dminuoso : hm, you mean it will suddenly skip to the next alternative, in such case ?
2020-11-23 16:45:58 +0100Lycurgus(~niemand@98.4.114.74)
2020-11-23 16:46:17 +0100 <ski> `let' in list comprehensions is occasionally useful, too. but sometimes i find myself using `... <- [...]' (singleton list), instead
2020-11-23 16:47:36 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-11-23 16:48:16 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 240 seconds)
2020-11-23 16:48:37 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 16:48:45 +0100 <dminuoso> ski: Yes.
2020-11-23 16:49:15 +0100 <dminuoso> It can be what you want, but if not it can cause subtle bugs. With let you get an incomplete pattern match warning, so if the "skip" behavior is what you want you can opt-in still
2020-11-23 16:49:36 +0100alp(~alp@2a01:e0a:58b:4920:d40a:f511:3b1a:9c8d)
2020-11-23 16:49:41 +0100 <ski> yes
2020-11-23 16:50:40 +0100 <dminuoso> <- just saves me a few characters with nothing to gain :)
2020-11-23 16:50:46 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 16:52:53 +0100 <ski> i see
2020-11-23 16:55:13 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-23 16:55:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-23 16:56:43 +0100 <hseg> tomsmeding: http://ix.io/2Fde is my latest version
2020-11-23 16:56:49 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2020-11-23 16:57:06 +0100 <hseg> still feels like orbit could be improved, and am not too happy about the required plumbing
2020-11-23 16:57:13 +0100 <hseg> but it's a marked improvement
2020-11-23 16:57:19 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-11-23 16:57:41 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-11-23 16:57:55 +0100 <tomsmeding> hseg: IS.notMember
2020-11-23 16:57:58 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds)
2020-11-23 16:58:12 +0100 <hseg> d'oh! missed it
2020-11-23 16:58:25 +0100haritz(~hrtz@62.3.70.206)
2020-11-23 16:58:25 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2020-11-23 16:58:25 +0100haritz(~hrtz@unaffiliated/haritz)
2020-11-23 16:59:12 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-ivgwdqliaykucuud)
2020-11-23 16:59:50 +0100 <tomsmeding> hseg: why not this? orbit x rs = if x `IS.member` rs then (x :) <$> orbit (nextMap ! x) (IS.delete x rs) else (rs, [])
2020-11-23 16:59:54 +0100 <hseg> seems like the underlying logic for orbit is some takeWhileM :: (a -> m Bool) -> f a -> m [a]. not too certain on f
2020-11-23 16:59:56 +0100 <Iceland_jack> :t (??)
2020-11-23 16:59:56 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-11-23 16:59:57 +0100 <lambdabot> Functor f => f (a -> b) -> a -> f b
2020-11-23 16:59:58 +0100 <tomsmeding> why look ahead once
2020-11-23 17:00:00 +0100 <Iceland_jack> :t (??) (??)
2020-11-23 17:00:03 +0100 <lambdabot> Functor f => a -> f (a -> b) -> f b
2020-11-23 17:00:05 +0100micahsovereign[m(micahsover@gateway/shell/matrix.org/x-frusjvfqlxbbwchl) (Quit: Idle for 30+ days)
2020-11-23 17:00:05 +0100sureyeaah(shauryab98@gateway/shell/matrix.org/x-xujaibeehyrzrqgr) (Quit: Idle for 30+ days)
2020-11-23 17:00:09 +0100PotatoHatsue|T(berbermanm@gateway/shell/matrix.org/x-ofrgdpmkybpiprzw) (Quit: Idle for 30+ days)
2020-11-23 17:00:09 +0100hnOsmium0001[m](hnosmium00@gateway/shell/matrix.org/x-cujgdqencyyvcwtx) (Quit: Idle for 30+ days)
2020-11-23 17:00:13 +0100 <Iceland_jack> where flip = (??) @((->) _)
2020-11-23 17:00:16 +0100kaychaks_riot(kaychaksma@gateway/shell/matrix.org/x-wzfqmwqobnsimpzc) (Quit: Idle for 30+ days)
2020-11-23 17:00:26 +0100Rudd0(~Rudd0@185.189.115.103)
2020-11-23 17:00:29 +0100berberman_(~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 17:00:51 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-23 17:01:46 +0100 <hseg> bc it kills the search immediately
2020-11-23 17:02:08 +0100 <hseg> since the first element has already been deleted by the unfolding
2020-11-23 17:02:13 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 17:02:23 +0100 <tomsmeding> oh right
2020-11-23 17:02:51 +0100 <tomsmeding> but then I'd say fix the unfolding :p
2020-11-23 17:03:27 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net) (Remote host closed the connection)
2020-11-23 17:03:48 +0100 <hseg> ofc
2020-11-23 17:04:16 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no) (Ping timeout: 256 seconds)
2020-11-23 17:04:31 +0100 <ski> Iceland_jack : `flip' used to have that type, in lambdabot. (and `(.)' in lambdabot used to be `fmap')
2020-11-23 17:04:33 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-23 17:04:39 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-11-23 17:05:01 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 17:05:48 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-23 17:06:28 +0100mirrorbird(psutcliffe@gateway/vpn/mullvad/psutcliffe) (Ping timeout: 256 seconds)
2020-11-23 17:06:30 +0100hackageimplicit-hie 0.1.2.4 - Auto generate hie-bios cradles & hie.yaml https://hackage.haskell.org/package/implicit-hie-0.1.2.4 (Avi_Dessauer)
2020-11-23 17:07:03 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 260 seconds)
2020-11-23 17:07:36 +0100boxscape47(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-23 17:07:47 +0100 <hseg> http://ix.io/2Fdl even more plumbing, but it works now
2020-11-23 17:08:14 +0100christo(~chris@81.96.113.213)
2020-11-23 17:09:08 +0100 <hseg> frankly, orbit feels like a unfoldWhileM :: (a -> m Bool) -> (a -> m a) -> m [a]
2020-11-23 17:10:36 +0100 <hseg> actually, should be :: (a -> Bool) -> m a -> m [a]
2020-11-23 17:10:56 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-23 17:11:07 +0100 <ski> @hoogle m (Maybe a) -> m [a]
2020-11-23 17:11:08 +0100 <lambdabot> Control.Monad.Loops unfoldM :: Monad m => m (Maybe a) -> m [a]
2020-11-23 17:11:08 +0100 <lambdabot> Data.Typeable gcast1 :: forall c t t' a . (Typeable t, Typeable t') => c (t a) -> Maybe (c (t' a))
2020-11-23 17:11:08 +0100 <lambdabot> BasePrelude gcast1 :: (Typeable t, Typeable t') => c (t a) -> Maybe (c (t' a))
2020-11-23 17:11:08 +0100boxscape(86ab2c1f@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.31) (Ping timeout: 260 seconds)
2020-11-23 17:12:22 +0100reallymemorable(~quassel@2601:180:8300:8fd0:6c3d:6186:76f:e94b)
2020-11-23 17:12:43 +0100 <hseg> hrm... no, that's not quite right
2020-11-23 17:12:56 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 17:13:20 +0100 <hseg> orbit :: State (Int, IntSet) [Int]
2020-11-23 17:14:01 +0100 <ski> not `orbit :: Int -> State IntSet [Int]', then ?
2020-11-23 17:14:25 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 17:14:30 +0100 <hseg> you're right
2020-11-23 17:14:34 +0100 <hseg> thanks
2020-11-23 17:14:46 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-23 17:15:00 +0100fxg(~fxg@unaffiliated/fxg)
2020-11-23 17:15:13 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-23 17:15:15 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-23 17:15:19 +0100 <hseg> right, basically want some kind of iterateUntilM :: (a -> a) -> (a -> m Bool) -> a -> m [a]
2020-11-23 17:17:05 +0100 <hseg> and indeed, given *more* plumbing could just use unfoldM :: (a -> m (Maybe a)) -> a -> m [a]
2020-11-23 17:17:36 +0100 <ski> @hoogle Monad m => (a -> m (Maybe a)) -> a -> m [a]
2020-11-23 17:17:37 +0100 <lambdabot> Control.Monad.Extra iterateMaybeM :: Monad m => (a -> m (Maybe a)) -> a -> m [a]
2020-11-23 17:19:16 +0100bmurt(~bmurt@c-76-99-78-62.hsd1.pa.comcast.net)
2020-11-23 17:19:20 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 272 seconds)
2020-11-23 17:19:33 +0100bmurt(~bmurt@c-76-99-78-62.hsd1.pa.comcast.net) ()
2020-11-23 17:19:33 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 17:19:44 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 17:24:15 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 256 seconds)
2020-11-23 17:24:38 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-11-23 17:25:00 +0100knupfer(~Thunderbi@200116b8240c1500d4c0d3fffeca1dc0.dip.versatel-1u1.de)
2020-11-23 17:26:02 +0100knupfer(~Thunderbi@200116b8240c1500d4c0d3fffeca1dc0.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-23 17:26:10 +0100knupfer(~Thunderbi@200116b8240c1500510f95f5a248f852.dip.versatel-1u1.de)
2020-11-23 17:26:19 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-23 17:29:01 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds)
2020-11-23 17:29:31 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 17:31:43 +0100 <ski> hseg : why the name `cycnot' ?
2020-11-23 17:32:16 +0100 <hseg> cycle notation
2020-11-23 17:32:31 +0100alp(~alp@2a01:e0a:58b:4920:d40a:f511:3b1a:9c8d) (Ping timeout: 272 seconds)
2020-11-23 17:32:47 +0100 <sm[m]> g'day haskellers
2020-11-23 17:34:28 +0100 <ski> oh, "notation"
2020-11-23 17:34:28 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-11-23 17:34:48 +0100skiwas thinking "not" as in negation, and it didn't seem to make sense
2020-11-23 17:35:04 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-23 17:35:15 +0100 <ski> heyo, sm[m]
2020-11-23 17:35:32 +0100 <hseg> h
2020-11-23 17:35:35 +0100 <hseg> ah
2020-11-23 17:36:00 +0100 <ski> ok. so each of the computed permutations are cycles
2020-11-23 17:36:12 +0100 <hseg> yup
2020-11-23 17:36:34 +0100 <hseg> basically i'm breaking up the permutation into cycle
2020-11-23 17:36:36 +0100 <hseg> cycles
2020-11-23 17:36:47 +0100 <ski> right
2020-11-23 17:37:06 +0100skiwas just checking it seems to make sense, for the empty permutation
2020-11-23 17:38:10 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 17:38:16 +0100jess(jess@freenode/staff/jess) (Remote host closed the connection)
2020-11-23 17:38:32 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-23 17:38:54 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 17:39:01 +0100jess(jess@freenode/staff/jess)
2020-11-23 17:39:04 +0100 <ski> hm .. reminds me i was investigating a sort of arithmetic on permutations. addition, multiplication, power/exponential
2020-11-23 17:39:38 +0100 <hseg> oh?
2020-11-23 17:40:31 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 17:40:53 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 17:42:00 +0100hackagegi-gobject 2.0.25 - GObject bindings https://hackage.haskell.org/package/gi-gobject-2.0.25 (inaki)
2020-11-23 17:42:35 +0100__monty__(~toonn@unaffiliated/toonn)
2020-11-23 17:43:55 +0100michalz(~user@185.246.204.61)
2020-11-23 17:45:18 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 272 seconds)
2020-11-23 17:45:35 +0100conal(~conal@64.71.133.70)
2020-11-23 17:46:53 +0100conal_(~conal@64.71.133.70)
2020-11-23 17:48:09 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-23 17:50:05 +0100conal(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2020-11-23 17:50:44 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-23 17:51:31 +0100Sarma(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-11-23 17:52:32 +0100 <ski> hseg : if ⌜π : A!⌝ and ⌜ϙ : B!⌝, then ⌜π + ϙ : (A + B)!⌝ is defined by ⌜(π + ϙ) (ι₀ x) = ι₀ (π x)⌝ and ⌜(π + ϙ) (ι₁ y) = ι₁ (ϙ y)⌝; ⌜π × ϙ : (A × B)!⌝ is defined by ⌜(π × ϙ) (x₀,x₁) = (π x₀,ϙ x₁)⌝; and ⌜ϙ ^ π : (Bᴬ)!⌝ by ⌜(ϙ ^ π) f = ϙ ∘ f ∘ π⌝
2020-11-23 17:53:24 +0100qwfpmluy(2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 245 seconds)
2020-11-23 17:53:46 +0100geekosaur(ac3a5347@172.58.83.71)
2020-11-23 17:54:24 +0100 <hseg> ok, so basically specializing (|||), (***) and promap to the case that the maps are isos?
2020-11-23 17:54:31 +0100Wamanuz2(~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Remote host closed the connection)
2020-11-23 17:54:48 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 272 seconds)
2020-11-23 17:55:22 +0100enoq(~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-23 17:55:25 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-23 17:56:06 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 17:56:48 +0100 <ski> furthermore, you can define ⌜0 : 0!⌝ as the empty permutation, and ⌜1 : 1!⌝ as the identity permutation given by ⌜1 () = ()⌝. then you can for each positive integer ⌜n⌝ define ⌜cₙ : n!⌝ as the cyclic permutation given by ⌜cₙ i = i+1 ⇐ i+1 < n⌝ and ⌜cₙ (i−1) = 0⌝
2020-11-23 17:57:51 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 17:59:07 +0100 <hseg> yeah -- the unique permutations on the initial and terminal objects. cyclics are more ad-hoc
2020-11-23 17:59:21 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-23 18:01:25 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 18:01:26 +0100 <ski> hseg : yes. now the question is how these operations behave, wrt cycle decomposition, e.g. if we work with permutations upto isomorphism on the carrier (so that e.g. ⌜c₂ × c₃ = c₆⌝ but ⌜c₂ × c₄ = c₄ + c₄ = 2 × c₄⌝ (where ⌜2 = 1 + 1⌝))
2020-11-23 18:02:11 +0100 <hseg> "perms mod carrier iso" = cycle types, no?
2020-11-23 18:02:48 +0100 <ski> i think so (if my guess of the meaning of "cycle types" is correct)
2020-11-23 18:04:25 +0100 <hseg> cycle type is basically the multiset of lengths of the cycle decomposition
2020-11-23 18:04:59 +0100 <hseg> product of cyclics will be cyclic iff lengths coprime
2020-11-23 18:05:08 +0100mirrorbird(~psutcliff@89.45.7.132)
2020-11-23 18:05:23 +0100 <hseg> and in general will decompose into gcd*c_lcm
2020-11-23 18:05:39 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 18:05:48 +0100raichoo(~raichoo@dslb-178-001-144-018.178.001.pools.vodafone-ip.de) (Quit: Lost terminal)
2020-11-23 18:05:50 +0100 <ski> multiplication distributes over addition. so, to understand multiplication, in terms of cycles, it suffices to understand how to multiply single cycles with each other. as you saw, we can't cancel even multiplication with non-zero permutation. exponentiation of cycles is even more interesting, it can yield a sum of cycles of different lengths
2020-11-23 18:06:05 +0100 <ski> hseg : right
2020-11-23 18:06:19 +0100evanm(182c6bd4@ool-182c6bd4.dyn.optonline.net) (Ping timeout: 245 seconds)
2020-11-23 18:06:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-23 18:07:55 +0100b7471(~kvirc@139.30.225.215)
2020-11-23 18:07:57 +0100 <b7471> hi
2020-11-23 18:08:01 +0100 <ski> e.g. ⌜c₂ ^ c₂ = 2 + c₂⌝
2020-11-23 18:08:05 +0100 <hseg> well, that's unsurprising -- exponentiation is just composition
2020-11-23 18:08:07 +0100 <ski> hello b7471
2020-11-23 18:08:10 +0100 <hseg> yo
2020-11-23 18:08:18 +0100 <b7471> is this the official channel for the programming language haskell
2020-11-23 18:08:21 +0100 <b7471> ?
2020-11-23 18:08:22 +0100 <ski> composition on both sides
2020-11-23 18:08:24 +0100 <hseg> yes
2020-11-23 18:08:26 +0100 <ski> yes, b7471
2020-11-23 18:08:57 +0100 <__monty__> b7471: You just joined in the middle of discrete math 101 or 201, not sure.
2020-11-23 18:09:17 +0100 <hseg> discrete math coffee talk, more like
2020-11-23 18:09:30 +0100 <b7471> its okay
2020-11-23 18:09:45 +0100 <b7471> i am having big trouble with haskell
2020-11-23 18:10:18 +0100 <ski> mhm ?
2020-11-23 18:10:18 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-11-23 18:11:05 +0100conal_(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2020-11-23 18:12:15 +0100 <hseg> ski: no, i meant you can embed m! in n! for m=<n, and in particular have π^σ=π^1∘1^σ where the composition is the usual one in (m^n)!
2020-11-23 18:12:52 +0100 <hseg> in particular, it is unsurprising that the composite of two cycles has pretty wild structure
2020-11-23 18:12:59 +0100Wamanuz(~wamanuz@78-70-34-81-no84.tbcn.telia.com)
2020-11-23 18:13:07 +0100 <b7471> is there any book on how to understand the language
2020-11-23 18:13:10 +0100 <b7471> _
2020-11-23 18:13:11 +0100 <b7471> ?
2020-11-23 18:13:27 +0100conal(~conal@66.115.157.94)
2020-11-23 18:15:43 +0100geekosaur6(ac3a5347@172.58.83.71)
2020-11-23 18:17:01 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 264 seconds)
2020-11-23 18:17:09 +0100geekosaur(ac3a5347@172.58.83.71) (Ping timeout: 245 seconds)
2020-11-23 18:17:24 +0100 <ski> hseg : yes, that embedding is basically ⌜π ↦ π + idₘ₋ₙ⌝, right ? hm, your ⌜1⌝ is identity (on any carrier). hmm
2020-11-23 18:17:33 +0100 <ski> b7471 : there's several books
2020-11-23 18:17:47 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-23 18:18:08 +0100 <b7471> more university class ,oriented
2020-11-23 18:18:12 +0100 <hseg> yup. though s/in particular/also have/
2020-11-23 18:18:34 +0100 <ski> @where PIH
2020-11-23 18:18:34 +0100 <lambdabot> "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html>
2020-11-23 18:18:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-11-23 18:18:52 +0100 <ski> @where HPFFP
2020-11-23 18:18:52 +0100 <lambdabot> "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners
2020-11-23 18:18:52 +0100 <hseg> b7471: https://www.cis.upenn.edu/~cis194/spring13/ is pretty good as well
2020-11-23 18:18:57 +0100 <ski> yes
2020-11-23 18:20:43 +0100mrus(~mrus@128.199.6.232) (Remote host closed the connection)
2020-11-23 18:20:48 +0100 <ski> hseg : oh, the embedding you used was from ⌜1⌝ to ⌜π⌝ respectively to ⌜ϙ⌝ ?
2020-11-23 18:21:49 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 18:22:22 +0100 <hseg> ski: sorry, mixed two unrelated things. firstly you have the enlarging embeddings. but more relevantly, you also can embed n!,m! into n^m! by exponentiation against the identity
2020-11-23 18:22:56 +0100 <ski> b7471 : fwiw, i learned using "Haskell: The Craft of Functional Programming" by Simon Thompson
2020-11-23 18:23:24 +0100 <hseg> and these embeddings decompose exponentiation and commute with each other (basically because of associativity)
2020-11-23 18:24:44 +0100 <ski> @where HTAC
2020-11-23 18:24:44 +0100 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2020-11-23 18:24:48 +0100 <ski> @where wikibook
2020-11-23 18:24:48 +0100 <lambdabot> http://en.wikibooks.org/wiki/Haskell
2020-11-23 18:27:37 +0100 <ski> ϙ ^ π = f ↦ ϙ ∘ f ∘ π = (ϙ ∘) ∘ (∘ π) = (ϙ ^ 1) ∘ (1 ^ π)
2020-11-23 18:27:40 +0100 <ski> = (∘ π) ∘ (ϙ ∘) = (1 ^ π) ∘ (ϙ ^ 1)
2020-11-23 18:27:42 +0100 <ski> i see
2020-11-23 18:30:15 +0100 <ski> b7471 : do you have any particular question, or maybe some code you're struggling with ?
2020-11-23 18:30:16 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 272 seconds)
2020-11-23 18:30:44 +0100 <b7471> ski yes i dont know where to begin
2020-11-23 18:30:52 +0100 <b7471> i mean i cant even declare a variable
2020-11-23 18:31:00 +0100 <b7471> and we have homework to do
2020-11-23 18:31:19 +0100 <ski> x :: Int
2020-11-23 18:31:23 +0100 <b7471> i couldnt even install a compiler or interpreter in windows 10 or something like that
2020-11-23 18:31:28 +0100 <ski> will declare `x' to be a variable of type `Int'
2020-11-23 18:31:32 +0100 <ski> x = 42
2020-11-23 18:31:39 +0100 <ski> will define it to be `42'
2020-11-23 18:31:49 +0100 <b7471> i am using a online interpreter ripl dot it
2020-11-23 18:31:51 +0100s00pcan(~chris@107.181.165.217)
2020-11-23 18:32:05 +0100 <Lycurgus> tell the instructor ur skipping the dumb hassell or haskell or whatever and doin a practical lang instead
2020-11-23 18:32:29 +0100 <b7471> we are expected to create a function , that takes 4 arguments
2020-11-23 18:32:54 +0100 <b7471> and only if the 4 arguments are the same , the funktion should output: true
2020-11-23 18:32:57 +0100 <Lycurgus> do it in one of FP php pkgs, that have currying
2020-11-23 18:33:08 +0100 <ski> b7471 : hm. tried <https://www.haskell.org/platform/#windows> ?
2020-11-23 18:33:09 +0100 <xerox_> when I try to run the haskell-language-server over ghcup I get this, anybody knows why? I'm stumped https://paste.tomsmeding.com/6zEhhfAi
2020-11-23 18:33:45 +0100 <b7471> i cant install chocoletey thing on windows
2020-11-23 18:33:50 +0100 <ski> b7471 : hm, something like
2020-11-23 18:33:51 +0100 <b7471> there is no setup or something
2020-11-23 18:34:00 +0100hackageresourcet-pool 0.1.0.0 - A small library to convert a Pool into an Acquire https://hackage.haskell.org/package/resourcet-pool-0.1.0.0 (brandonchinn178)
2020-11-23 18:34:06 +0100 <ski> allFourEqual x y z w = ..x..y..z..w..
2020-11-23 18:34:23 +0100 <b7471> ?
2020-11-23 18:34:38 +0100 <koz_> b7471: Chocolatey requires you to use PowerShell. Its site has fairly clear instructions on what you gotta do.
2020-11-23 18:34:40 +0100 <Sose> isn't there a Windows installer for Stack atleast? and you could use stack to download and run GHC?
2020-11-23 18:34:57 +0100 <Sose> never installed any haskell tools on windows myself tho..
2020-11-23 18:34:58 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-23 18:35:07 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-23 18:35:10 +0100 <Uniaika> I think there is indeed a windows installer for stack
2020-11-23 18:35:17 +0100 <b7471> Sose you will never be able to
2020-11-23 18:35:20 +0100 <maerwald> xerox_: is that an error even?
2020-11-23 18:35:20 +0100 <koz_> Perhaps - I don't really recall.
2020-11-23 18:35:21 +0100 <b7471> not in this age
2020-11-23 18:35:27 +0100 <ski> b7471 : that would be the start of a function `allFourEqual' that accepts four inputs (parameters/arguments), named `x',`y',`z',`w'. then, after the `=' sign, you'd have to fill in a `Bool'ean expression for checking whether they're all the same/equal
2020-11-23 18:35:34 +0100 <koz_> b7471: You're literally talking to a minimum of one person who has.
2020-11-23 18:35:38 +0100 <koz_> (if not more)
2020-11-23 18:36:41 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-23 18:36:52 +0100knupfer(~Thunderbi@200116b8240c1500510f95f5a248f852.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-23 18:38:31 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-11-23 18:38:47 +0100Lycurgus(~niemand@98.4.114.74) (Quit: Exeunt)
2020-11-23 18:39:28 +0100conal(~conal@66.115.157.94) (Quit: Computer has gone to sleep.)
2020-11-23 18:40:32 +0100conal(~conal@66.115.157.94)
2020-11-23 18:40:35 +0100conal(~conal@66.115.157.94) (Client Quit)
2020-11-23 18:40:44 +0100 <xerox_> maerwald: it starts back up trying ot compile, over and over, after that message
2020-11-23 18:40:49 +0100 <b7471> i will first watch the online lecture and the try again
2020-11-23 18:40:57 +0100 <b7471> to understand all of this
2020-11-23 18:41:00 +0100 <b7471> i hope
2020-11-23 18:41:10 +0100 <b7471> i will be able within one year
2020-11-23 18:41:15 +0100 <b7471> to make sense of all this
2020-11-23 18:41:24 +0100 <b7471> ist really horrible and bad
2020-11-23 18:41:39 +0100mrus(~mrus@128.199.8.231)
2020-11-23 18:41:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 18:42:29 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-11-23 18:43:07 +0100 <ski> b7471 : you're welcome to ask questions here, if anything is unclear
2020-11-23 18:45:02 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 264 seconds)
2020-11-23 18:45:25 +0100 <xerox_> maerwald: coc.nvim helpfully says "the server has crashed 5 times I won't run it again", vscode just goes head on never stopping
2020-11-23 18:45:26 +0100 <b7471> how to read the variable
2020-11-23 18:45:29 +0100 <b7471> that i declared
2020-11-23 18:45:35 +0100 <b7471> the variable x
2020-11-23 18:46:07 +0100 <b7471> :t x
2020-11-23 18:46:08 +0100 <lambdabot> Expr
2020-11-23 18:46:27 +0100 <geekosaur6> if you're in ghci or equivalent, just enter x at the prompt
2020-11-23 18:47:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-11-23 18:48:22 +0100 <maerwald> xerox_: no idea, I don't use HLS on ghcup codebase frequently
2020-11-23 18:48:31 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-23 18:48:42 +0100 <maerwald> maybe try to write a different hie.yaml
2020-11-23 18:48:52 +0100 <xerox_> I was looking for some way to figure out where imported stuff is from
2020-11-23 18:49:04 +0100 <xerox_> not married to it, just what I thought of, is there anything else I could use?
2020-11-23 18:50:14 +0100alp(~alp@2a01:e0a:58b:4920:ece0:78fb:1f80:8fc7)
2020-11-23 18:52:05 +0100lxsameer(lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 256 seconds)
2020-11-23 18:52:12 +0100boxscape47(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Connection closed)
2020-11-23 18:52:45 +0100geekosaur(ac3a5347@172.58.83.71)
2020-11-23 18:54:51 +0100 <ski> b7471 : if you have an interactor, where you can enter expressions and get feedback, you should probably be able to just write the variable name `x' in there (assuming `x' is defined globally in your source file)
2020-11-23 18:55:21 +0100 <b7471> i am using an online interpreter
2020-11-23 18:55:24 +0100 <ski> it seems <https://repl.it/> requires a login ?
2020-11-23 18:55:28 +0100 <b7471> called ripl .it
2020-11-23 18:55:28 +0100 <ski> yes
2020-11-23 18:55:29 +0100geekosaur6(ac3a5347@172.58.83.71) (Ping timeout: 245 seconds)
2020-11-23 18:55:40 +0100 <b7471> am i logged in
2020-11-23 18:56:09 +0100 <ski> if you're using <https://repl.it/>, i'd guess so ?
2020-11-23 18:56:47 +0100 <ski> (when i click on "Start coding", it asks me to sign up)
2020-11-23 18:57:06 +0100lucasb(uid333435@gateway/web/irccloud.com/x-detutdhidmcqqrwp)
2020-11-23 18:57:50 +0100 <maerwald> xerox_: let me try
2020-11-23 18:57:52 +0100 <b7471> i signed up to that
2020-11-23 18:58:01 +0100 <b7471> now i am experimenting with it a bit
2020-11-23 18:58:14 +0100 <ski> if you write
2020-11-23 18:58:15 +0100 <b7471> i declared a few variables as you told me to
2020-11-23 18:58:17 +0100 <ski> x :: Int
2020-11-23 18:58:19 +0100 <ski> x = 42
2020-11-23 18:58:31 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 260 seconds)
2020-11-23 18:58:39 +0100 <b7471> yes a was successful in adding two variables together
2020-11-23 18:58:44 +0100 <ski> in the part of the editor where you write programs, that should define `x' as a variable in global scope
2020-11-23 18:59:09 +0100 <ski> if you write e.g.
2020-11-23 18:59:22 +0100 <ski> cube :: Int -> Int
2020-11-23 18:59:28 +0100 <ski> cube x = x * x * x
2020-11-23 19:00:04 +0100 <b7471> what does this mean: cube :: Int -> Int
2020-11-23 19:00:10 +0100 <ski> then this should define a function, called `cube'. the `x' here is unrelated to the previous `x'. this `x' here is a local parameter name, local to the `cube' function definition
2020-11-23 19:00:21 +0100 <xerox_> maerwald: I am getting implicit-hie to see if it creates an entry for 3rdparty/
2020-11-23 19:00:28 +0100geekosaur96(ac3a5347@172.58.83.71)
2020-11-23 19:00:34 +0100conal(~conal@66.115.157.94)
2020-11-23 19:00:35 +0100 <b7471> ok?
2020-11-23 19:00:37 +0100 <ski> it means that `cube' is a function that consumes an `Int' as input parameter, and produces an `Int' as output result
2020-11-23 19:00:48 +0100 <b7471> aha
2020-11-23 19:00:52 +0100 <b7471> ok
2020-11-23 19:00:59 +0100 <ski> you could define e.g.
2020-11-23 19:01:04 +0100 <ski> isEven :: Int -> Bool
2020-11-23 19:01:12 +0100 <ski> isEven n = n `mod` 2 == 0
2020-11-23 19:01:50 +0100 <maerwald> xerox_: I don't seem to have this problem
2020-11-23 19:01:54 +0100 <ski> to define a function (a "predicate"), that given an `Int' as input, gives a `Bool'ean result, being `True' if the input was an even integer, and `False' otherwise (i.e. when it was odd)
2020-11-23 19:01:57 +0100 <monochrom> xerox_: If you mean "I imported 10 modules, one of them gives me f, I want to find out which", I first try ":info f", usually it's good enough. Bu its can answer can be cryptic. When I feel like a big hammer, I use GHC's -ddump-minimal-imports
2020-11-23 19:02:56 +0100 <maerwald> xerox_: but I have a cabal.project.local with this content https://paste.tomsmeding.com/Qo3YwsbF
2020-11-23 19:02:59 +0100geekosaur(ac3a5347@172.58.83.71) (Ping timeout: 245 seconds)
2020-11-23 19:03:02 +0100 <b7471> and what would this expression mean: fourEqual :: Int -> Int -> Int -> Int -> Bool
2020-11-23 19:03:03 +0100 <ski> b7471 : so the type of the input parameter comes before (to the left of) the `->', and the type of output result comes after (to the right of) it, in a type signature of a function
2020-11-23 19:03:07 +0100 <b7471> thats our homework
2020-11-23 19:03:29 +0100 <ski> yes, that means that it accepts four inputs, all of type `Int', and gives back a `Bool'ean as output
2020-11-23 19:03:32 +0100incertia_(~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 19:03:55 +0100 <maerwald> xerox_: also make sure 8.10.2 is the default ghc symlink... I believe there were issues with hls when the project ghc isn't the default one
2020-11-23 19:03:55 +0100 <b7471> ok i will try to enter that on ripl
2020-11-23 19:04:00 +0100 <ski> fourEqual :: Int -> Int -> Int -> Int -> Bool
2020-11-23 19:04:04 +0100 <ski> fourEqual x y z w = ..x..y..z..w..
2020-11-23 19:04:35 +0100 <ski> (you'll have to replace `..x..y..z..w..' by some actual code expression that checks when those four inputs are all equal)
2020-11-23 19:04:59 +0100 <ski> (of course you can choose other parameter names than `x',`y',`z',`w', if you prefer)
2020-11-23 19:05:41 +0100 <shapr> xerox_: Are the same person who wrote GoA?
2020-11-23 19:05:54 +0100 <ski> the lines with `::' in them are called "type signatures". then lines with `=' in them are "defining equations" (or simply "definitions")
2020-11-23 19:06:11 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2020-11-23 19:06:28 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-23 19:06:29 +0100 <xerox_> shapr: I am hi buddy (:
2020-11-23 19:06:40 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-23 19:06:40 +0100 <shapr> hi hi hi! I haven't seen you since AngloHaskell!
2020-11-23 19:06:45 +0100 <xerox_> I know!
2020-11-23 19:06:52 +0100 <xerox_> that was a good time
2020-11-23 19:07:09 +0100 <shapr> Yeah, lots of fun. It's been a few years though
2020-11-23 19:07:41 +0100 <shapr> xerox_: 20th anniversary of #haskell in ~20 weeks!
2020-11-23 19:07:41 +0100 <xerox_> many years at this point in fact… how time flies
2020-11-23 19:07:45 +0100shaprhops cheerfully
2020-11-23 19:07:54 +0100 <shapr> xerox_: are you writing Haskell for a living these days?
2020-11-23 19:07:55 +0100 <xerox_> hopefully on a monocycle
2020-11-23 19:08:05 +0100 <shapr> haha, yes!
2020-11-23 19:08:10 +0100 <xerox_> nope! for fun, setting it up to do advent of code :D
2020-11-23 19:08:19 +0100 <shapr> that does sound like fun!
2020-11-23 19:08:49 +0100 <shapr> xerox_: do you write code for a living?
2020-11-23 19:08:50 +0100 <xerox_> how about you?
2020-11-23 19:09:02 +0100 <shapr> I have a Haskell job, it's great fun!
2020-11-23 19:09:10 +0100 <shapr> I'm working for SimSpace
2020-11-23 19:09:37 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-11-23 19:09:37 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2020-11-23 19:09:37 +0100neiluj(~jco@unaffiliated/neiluj)
2020-11-23 19:09:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-23 19:09:57 +0100 <xerox_> looks like serious business
2020-11-23 19:10:46 +0100 <maerwald> I'm picking rust for a new project, but getting devs doesn't seem any easier than haskellers lol (unless you're a bank)
2020-11-23 19:11:00 +0100 <maerwald> so there's that
2020-11-23 19:11:15 +0100chaosmasttter(~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de)
2020-11-23 19:11:26 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-11-23 19:11:54 +0100 <xerox_> shapr: so yeah I have been programming for a living but I'm not at this very moment in time
2020-11-23 19:12:11 +0100 <shapr> you saved up enough money to coast for a few years? :-D
2020-11-23 19:12:46 +0100geekosaur(ac3a5347@172.58.83.71)
2020-11-23 19:13:09 +0100 <xerox_> thereabouts (:
2020-11-23 19:13:13 +0100alp(~alp@2a01:e0a:58b:4920:ece0:78fb:1f80:8fc7) (Ping timeout: 272 seconds)
2020-11-23 19:13:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 19:13:52 +0100 <shapr> yeah, writing code pays well
2020-11-23 19:14:13 +0100 <xerox_> maerwald: gen-hie doesn't see 3rdparty on its own, nor your .local magically saves the day, more digging required...
2020-11-23 19:14:14 +0100geekosaur96(ac3a5347@172.58.83.71) (Ping timeout: 245 seconds)
2020-11-23 19:14:29 +0100 <maerwald> xerox_: which cabal version?
2020-11-23 19:14:30 +0100 <maerwald> oooh
2020-11-23 19:14:45 +0100 <maerwald> you must be running 3.2
2020-11-23 19:14:47 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2020-11-23 19:14:52 +0100 <maerwald> upgrade to 3.4 prerelease
2020-11-23 19:15:31 +0100 <xerox_> ok!
2020-11-23 19:16:04 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43)
2020-11-23 19:23:45 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-23 19:28:04 +0100Yumasi(~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-11-23 19:28:12 +0100jcd(~user@2601:282:1300:7cb0::adb4)
2020-11-23 19:28:42 +0100 <xerox_> maerwald: that helped but the 3rdparty stuff still produces the same errors
2020-11-23 19:28:55 +0100 <maerwald> but that doesn't matter I think
2020-11-23 19:29:54 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser)
2020-11-23 19:30:01 +0100 <xerox_> it keeps going in a loop
2020-11-23 19:30:24 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-23 19:30:38 +0100 <maerwald> ignore the loop, does it actually work? :p
2020-11-23 19:30:49 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-23 19:33:54 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr)
2020-11-23 19:34:10 +0100 <xerox_> maerwald: nope, both editors hang or give no answers, while running the same neverending output as before in the debug logs
2020-11-23 19:34:37 +0100alp(~alp@2a01:e0a:58b:4920:99e8:704d:3180:71f2)
2020-11-23 19:34:46 +0100 <maerwald> :D
2020-11-23 19:36:42 +0100 <monochrom> At least it's quiescent now. >:)
2020-11-23 19:37:07 +0100 <monochrom> (The next best thing you can hope for, if you can't prove termination.)
2020-11-23 19:37:21 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net)
2020-11-23 19:38:08 +0100 <hseg> ok, a little refactoring later: http://ix.io/2Feg
2020-11-23 19:38:48 +0100 <xerox_> I will propose as next best thing having dinner instead, yeah
2020-11-23 19:40:03 +0100mpereira(~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba) (Remote host closed the connection)
2020-11-23 19:40:09 +0100lxsameer(~lxsameer@unaffiliated/lxsameer)
2020-11-23 19:40:45 +0100mpereira(~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba)
2020-11-23 19:41:19 +0100qwfpmluy(2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de)
2020-11-23 19:43:22 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 19:46:55 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds)
2020-11-23 19:47:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-23 19:47:26 +0100 <hseg> http://ix.io/2Fek
2020-11-23 19:47:55 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-23 19:48:12 +0100 <hseg> http://ix.io/2Fel
2020-11-23 19:48:39 +0100christo(~chris@81.96.113.213)
2020-11-23 19:49:14 +0100 <monochrom> dinner and wine are always good
2020-11-23 19:50:33 +0100christo(~chris@81.96.113.213) (Read error: No route to host)
2020-11-23 19:51:07 +0100christo(~chris@81.96.113.213)
2020-11-23 19:52:12 +0100Deide(~Deide@217.155.19.23)
2020-11-23 19:55:25 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 264 seconds)
2020-11-23 19:55:29 +0100geekosaur(ac3a5347@172.58.83.71) (Ping timeout: 245 seconds)
2020-11-23 19:57:36 +0100 <domenkozar[m]> I'm using async to start two concurrent threads. The first thread is doing stuff and feeding things to a channel. The second one is consuming from channel and doing things based on those message. How could I make the second thread exit once channel is emptied and the first thread is also exited?
2020-11-23 19:58:15 +0100cheater(~user@unaffiliated/cheater)
2020-11-23 19:59:00 +0100knupfer(~Thunderbi@200116b8240c1500ace8d9fffee870c4.dip.versatel-1u1.de)
2020-11-23 19:59:27 +0100borne(~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2020-11-23 19:59:32 +0100knupfer(~Thunderbi@200116b8240c1500ace8d9fffee870c4.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-23 19:59:45 +0100knupfer(~Thunderbi@200116b8240c15009967b89ece4ca4cf.dip.versatel-1u1.de)
2020-11-23 20:01:28 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 272 seconds)
2020-11-23 20:03:26 +0100jespada(~jespada@90.254.245.49)
2020-11-23 20:03:38 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-11-23 20:03:39 +0100berberman_(~berberman@unaffiliated/berberman)
2020-11-23 20:03:39 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-23 20:03:49 +0100 <__monty__> domenkozar[m]: Can you send an exit message?
2020-11-23 20:03:50 +0100 <monochrom> The message type has to include a "quit" case. The first thread has to send the "quit" message.
2020-11-23 20:03:59 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Quit: Leaving.)
2020-11-23 20:04:20 +0100 <monochrom> Lest it's the "does quiescent imply termination?" question again.
2020-11-23 20:05:12 +0100 <dminuoso> domenkozar[m]: Do you want the second thread to terminate as a "nothing more to do" case, or rather immediately if the first one dies?
2020-11-23 20:05:32 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-23 20:05:42 +0100 <dminuoso> Also, do not forget to consider the case of the first thread receiving an async exception.
2020-11-23 20:05:50 +0100geekosaur(ac3a53fb@172.58.83.251)
2020-11-23 20:06:16 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-23 20:06:31 +0100 <monochrom> Ah yeah, I forgot that too. But it's easy to fix: foo `finally` send quit message
2020-11-23 20:07:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 20:08:07 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-23 20:08:22 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds)
2020-11-23 20:08:55 +0100 <monochrom> I want to point out that humanity has not thought up any other solution. They have only thought up other packagings of this same solution.
2020-11-23 20:10:11 +0100 <monochrom> For example Unix and C. The writer process has two commands at its disposable, "write" and "close". The writer has to issue "close" at some point of time. Sometimes this is masked by "if the process dies, the OS calls close for you", but it's there.
2020-11-23 20:10:42 +0100 <domenkozar[m]> dminuoso: in "nothing to do case"
2020-11-23 20:10:46 +0100 <monochrom> Well that isn't much different from having two kinds of meessage at your disposal, is it? s/close/send quit message/
2020-11-23 20:11:22 +0100 <dminuoso> domenkozar[m]: Then the usual technique is to, indeed, decorate the "things" you feed into the channel with some outer signaling layer
2020-11-23 20:11:25 +0100 <geekosaur> "send quit message" is just "close" at a higher protocol level
2020-11-23 20:11:33 +0100 <monochrom> And on the reader side, like wise. You have a "read" command, but it has two kinds of outcomes, "normal" message and "EOF".
2020-11-23 20:11:40 +0100 <dminuoso> data Message = Done | Do Thing
2020-11-23 20:11:44 +0100 <dminuoso> And then you have a channel of Message.
2020-11-23 20:11:46 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-11-23 20:12:08 +0100 <domenkozar[m]> dminuoso: so that the last message is Done?
2020-11-23 20:12:09 +0100qwfpmluy(2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 245 seconds)
2020-11-23 20:12:11 +0100 <dminuoso> Yes.
2020-11-23 20:12:21 +0100 <domenkozar[m]> hmm that's simple and clever :)
2020-11-23 20:12:37 +0100 <domenkozar[m]> thanks dminuoso !
2020-11-23 20:12:56 +0100 <dminuoso> To be fair I just rephrased what monochrom, __monty__ and geekosaur also said above.
2020-11-23 20:13:34 +0100 <domenkozar[m]> ah indeed, thanks monochrom & __monty__ :)
2020-11-23 20:14:07 +0100 <__monty__> I definitely don't mind my nick being mentioned in the same breath as those other ones : )
2020-11-23 20:14:18 +0100michalz(~user@185.246.204.61) (Remote host closed the connection)
2020-11-23 20:14:45 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 240 seconds)
2020-11-23 20:14:46 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Ping timeout: 272 seconds)
2020-11-23 20:15:04 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection)
2020-11-23 20:15:10 +0100darjeeling_(~darjeelin@122.245.219.209) (Ping timeout: 256 seconds)
2020-11-23 20:16:07 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-23 20:17:22 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2020-11-23 20:20:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 20:23:27 +0100 <texasmynsted> If you look at the source here --> https://jaspervdj.be/hakyll/reference/src/Hakyll.Web.Redirect.html#createRedirects
2020-11-23 20:23:41 +0100 <texasmynsted> There is a function "redirectToHtml :: Redirect -> String"
2020-11-23 20:24:42 +0100 <texasmynsted> I do not like the string being used, but I think I have no way to replace it short of writing all my own Redirect logic. Right? The Writable type class already has an instance defined.
2020-11-23 20:24:43 +0100dqd(id@wikipedia/dqd) (Ping timeout: 246 seconds)
2020-11-23 20:25:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-23 20:25:10 +0100veverakJarJar
2020-11-23 20:25:15 +0100JarJarveverak
2020-11-23 20:26:23 +0100veverakJarJarEatingHawa
2020-11-23 20:26:27 +0100JarJarEatingHawaveverak
2020-11-23 20:26:33 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-11-23 20:26:51 +0100 <hseg> ok, final version http://ix.io/2FeB. pretty happy with it, but would welcome improvements
2020-11-23 20:30:41 +0100 <jcd> I'm trying to make a String into the type "HTTP String", what's the best way to do this?
2020-11-23 20:31:08 +0100conal(~conal@66.115.157.94) (Quit: Computer has gone to sleep.)
2020-11-23 20:31:08 +0100 <dminuoso> That depends on what HTTP even is..
2020-11-23 20:31:11 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 20:31:13 +0100 <dminuoso> And what you want it to mean
2020-11-23 20:31:26 +0100 <geekosaur> depending on where you're doing this, possibly "pure"
2020-11-23 20:31:31 +0100 <jcd> A user-defined data type.
2020-11-23 20:31:39 +0100 <dminuoso> jcd: How is the data type defined?
2020-11-23 20:31:49 +0100 <jcd> data Person = Person
2020-11-23 20:31:49 +0100 <jcd> { firstName :: String
2020-11-23 20:31:49 +0100 <jcd> , lastName :: String
2020-11-23 20:31:49 +0100 <jcd> , age :: Int
2020-11-23 20:31:49 +0100 <jcd> , hometown :: String
2020-11-23 20:31:49 +0100 <dminuoso> Did you define it, or does it appear in a library?
2020-11-23 20:31:51 +0100 <geekosaur> but that depends on what it is and what instances it has
2020-11-23 20:32:08 +0100 <jcd> Ignore that ^, still learning the emacs keychords
2020-11-23 20:32:19 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 20:32:21 +0100 <dminuoso> @where paste -- jcd
2020-11-23 20:32:21 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
2020-11-23 20:33:13 +0100ystael(~ystael@209.6.50.55) (Ping timeout: 264 seconds)
2020-11-23 20:34:35 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 20:35:34 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 256 seconds)
2020-11-23 20:35:55 +0100 <jcd> https://paste.tomsmeding.com/J6ffGVxv
2020-11-23 20:36:05 +0100 <jcd> Thank you in advance
2020-11-23 20:37:37 +0100christo(~chris@81.96.113.213)
2020-11-23 20:38:14 +0100 <jcd> I want to take input from an arbitrary source, mark it as an HTTP message, and then process the HTTP data structure accordingly.
2020-11-23 20:38:15 +0100 <geekosaur> that code seems somewhat off
2020-11-23 20:38:51 +0100 <jcd> tell me about it haha
2020-11-23 20:39:24 +0100 <geekosaur> readHTTPMessage already does what you want, although it has a pointless "do". I'm not sure what it's supposed to be doing, though
2020-11-23 20:40:05 +0100Varis(~Tadas@unaffiliated/varis) (Ping timeout: 240 seconds)
2020-11-23 20:40:31 +0100darjeeling_(~darjeelin@122.245.219.209)
2020-11-23 20:40:33 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-23 20:42:23 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2020-11-23 20:43:18 +0100 <kuribas> what would be a good alternative to bash? Something not heavy, but likely installed on any system?
2020-11-23 20:43:25 +0100 <kuribas> and not python
2020-11-23 20:43:45 +0100 <kuribas> wait, wrong channel...
2020-11-23 20:43:55 +0100 <chreekat[m]> Haha
2020-11-23 20:44:35 +0100 <chreekat[m]> But since you asked, I don't think there is a good alternative, not for scripting the Unix shell anyway
2020-11-23 20:45:06 +0100 <geekosaur> zsh, but I'm not sure that's an improvement.
2020-11-23 20:45:10 +0100kuribasmoving the discussion to #haskell-offtopic
2020-11-23 20:45:27 +0100 <sm[m]> aw
2020-11-23 20:45:27 +0100 <geekosaur> and, well, if there were something bettter, there wouldnt be so many bad shell scripts out there
2020-11-23 20:45:51 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-11-23 20:46:05 +0100 <sm[m]> I think it's bash or python, unless you think writing perl in 2020 is a good idea
2020-11-23 20:46:20 +0100 <geekosaur> some of us still do
2020-11-23 20:46:53 +0100 <kuribas> sm[m]: I never found it a good idea :)
2020-11-23 20:47:41 +0100 <sm[m]> bash + shellcheck
2020-11-23 20:47:57 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 20:48:02 +0100 <sm[m]> well.. would you consider make to be an option ?
2020-11-23 20:48:16 +0100b7471(~kvirc@139.30.225.215) (Ping timeout: 240 seconds)
2020-11-23 20:48:24 +0100 <maerwald> kuribas: POSIX shell
2020-11-23 20:48:26 +0100 <geekosaur> make's going to use bash underneath
2020-11-23 20:48:33 +0100 <kuribas> I was trying out gauche-scheme, which is nice, but it's sadly not installed on centos...
2020-11-23 20:49:09 +0100 <sm[m]> o well if you're going to be installing things.. stack scripts can be nice
2020-11-23 20:49:12 +0100 <kuribas> I'd use haskell, but 2GB isn't exactly lightweight...
2020-11-23 20:49:17 +0100 <maerwald> other than that, your only option is perl... there's hardly any system out there without it, because gcc toolchain needs it
2020-11-23 20:49:24 +0100 <kuribas> sm[m]: haskell stack?
2020-11-23 20:50:02 +0100 <sm[m]> yes
2020-11-23 20:50:56 +0100 <maerwald> how is that not 2GB?
2020-11-23 20:51:47 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 20:52:04 +0100 <kuribas> maerwald: it is
2020-11-23 20:52:19 +0100 <sm[m]> I didn't assert that.. but I think it could be.. use system-packaged stack & ghc & haskell deps, tell stack script to use those
2020-11-23 20:52:28 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-23 20:52:55 +0100 <maerwald> kuribas: static haskell binary?
2020-11-23 20:53:31 +0100 <dminuoso> Mmm, I have a mundane task of running some wget commands to scrape a website. What's the least effort to quickly have a thread pool of 5 things to parallelize this a bit?
2020-11-23 20:53:52 +0100 <kuribas> maerwald: could be, but then it has to be compiled on the same OS.
2020-11-23 20:54:13 +0100 <maerwald> kuribas: what do you mean?
2020-11-23 20:54:30 +0100 <kuribas> dminuoso: gnu parallel?
2020-11-23 20:54:36 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no)
2020-11-23 20:55:01 +0100 <kuribas> maerwald: I mean linux binaries aren't portable across distros.
2020-11-23 20:55:05 +0100 <maerwald> they are
2020-11-23 20:55:10 +0100 <kuribas> because of glibc differences
2020-11-23 20:55:11 +0100 <maerwald> static binaries
2020-11-23 20:55:13 +0100 <maerwald> I said
2020-11-23 20:55:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 20:55:25 +0100 <kuribas> even static binaries
2020-11-23 20:55:27 +0100 <maerwald> nope
2020-11-23 20:55:29 +0100sm[m]meant "I think it could be economical with space, using less than 2G"
2020-11-23 20:55:31 +0100 <maerwald> they use musl
2020-11-23 20:55:41 +0100 <maerwald> how do you think ghcup works across all distros? :p
2020-11-23 20:55:43 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-11-23 20:56:21 +0100 <maerwald> I even have a github workflow you can copy paste
2020-11-23 20:56:23 +0100 <sm[m]> now we must ask which platforms are to be supported
2020-11-23 20:56:25 +0100 <kuribas> maerwald: you use musl?
2020-11-23 20:56:28 +0100 <maerwald> yes
2020-11-23 20:56:35 +0100 <kuribas> hmm, nice.
2020-11-23 20:56:37 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 264 seconds)
2020-11-23 20:56:43 +0100 <dsal> jcd: it'd be good to start with type signatures, but in your case `readHTTPMessage = HTTP_Message` so you might as well just use `HTTP_Message` directly.
2020-11-23 20:56:44 +0100 <kuribas> I should try that...
2020-11-23 20:56:53 +0100Codaraxis(~Codaraxis@91.193.4.61)
2020-11-23 20:57:05 +0100 <maerwald> kuribas: https://github.com/hasufell/stack2cabal/blob/master/.github/workflows/release.yaml#L32
2020-11-23 20:57:56 +0100N1L5(3ed8ca8d@aftr-62-216-202-141.dynamic.mnet-online.de)
2020-11-23 20:58:27 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 20:59:09 +0100howdoi(uid224@gateway/web/irccloud.com/x-gbfppsdeuatjrkoa)
2020-11-23 21:01:07 +0100 <kuribas> maerwald: I don't see musl there?
2020-11-23 21:01:15 +0100 <maerwald> kuribas: alpine docker image
2020-11-23 21:01:17 +0100 <maerwald> it uses musl
2020-11-23 21:02:07 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-23 21:02:26 +0100 <maerwald> so you have two options... you try to use static-haskell.nix and configure stuff for over a week, or just spend 5 minutes with alpine installing some deps :p
2020-11-23 21:02:26 +0100dqd(id@wikipedia/dqd)
2020-11-23 21:02:34 +0100geekosaur(ac3a53fb@172.58.83.251) (Ping timeout: 245 seconds)
2020-11-23 21:03:03 +0100 <dminuoso> With what I know now, static-haskell.nix is very easy to use
2020-11-23 21:03:08 +0100 <dminuoso> Assuming you're already confident with nix.
2020-11-23 21:03:10 +0100 <maerwald> I tried, it didn't work
2020-11-23 21:03:21 +0100 <maerwald> then a month later someone from Russia found the bug
2020-11-23 21:03:35 +0100 <maerwald> that's basically how nix is every time
2020-11-23 21:04:04 +0100 <dminuoso> Do you have any link to that?
2020-11-23 21:04:34 +0100 <maerwald> https://github.com/nh2/static-haskell-nix/issues/85
2020-11-23 21:04:42 +0100 <kuribas> maerwald: that's how *any tooling* is.
2020-11-23 21:04:51 +0100 <maerwald> kuribas: nah, nix is particularly bad
2020-11-23 21:04:59 +0100Sarma(~Amras@unaffiliated/amras0000)
2020-11-23 21:05:16 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-11-23 21:07:10 +0100 <nh2> maerwald dminuoso: "Someone from Russia" is quite the odd desccription for qrilka; Kirill is my colleague and a core stack developer.
2020-11-23 21:07:27 +0100 <maerwald> that was a meme
2020-11-23 21:07:34 +0100 <maerwald> I know who he is
2020-11-23 21:07:34 +0100geekosaur(ac3a53fb@172.58.83.251)
2020-11-23 21:07:39 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving)
2020-11-23 21:07:47 +0100 <nh2> ah sorry, I didn't know that one
2020-11-23 21:08:49 +0100 <maerwald> If a tool requires me to regularly consult experts, then it's a bad tool :p
2020-11-23 21:08:52 +0100 <dminuoso> Also, if I look at this bug, it looks like a stack bug.
2020-11-23 21:08:57 +0100 <dminuoso> Not a nix or static-haskell-nix bug.
2020-11-23 21:09:07 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-23 21:09:45 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-23 21:10:07 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 21:11:48 +0100 <maerwald> I must be cursed then, because whenever I use nix I hit all sorts of bugs and ppl keep telling me those aren't nix bugs :D
2020-11-23 21:12:22 +0100rprije(~rprije@123-243-139-165.tpgi.com.au)
2020-11-23 21:12:31 +0100 <nh2> Well, I have to consult Ben and the Simons regularly for my problems but I'd never call GHC a bad tool :)
2020-11-23 21:13:00 +0100 <maerwald> here's another one https://github.com/input-output-hk/haskell.nix/issues/229
2020-11-23 21:13:29 +0100N1L5(3ed8ca8d@aftr-62-216-202-141.dynamic.mnet-online.de) (Remote host closed the connection)
2020-11-23 21:13:44 +0100 <dminuoso> maerwald: And that is a very very old GHC issue.
2020-11-23 21:13:59 +0100 <dminuoso> One that you can just as easily trip into with your favoured alpine containers...
2020-11-23 21:14:22 +0100 <maerwald> dminuoso: that's weird, because I thought nix is reproducible
2020-11-23 21:14:22 +0100knupfer(~Thunderbi@200116b8240c15009967b89ece4ca4cf.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-23 21:15:11 +0100 <dminuoso> maerwald: Nix is not a silver bullet. The software that is executed by nix has access so things like environment variables.
2020-11-23 21:15:27 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-23 21:15:30 +0100 <dminuoso> It's why things like flakes is coming
2020-11-23 21:15:31 +0100 <maerwald> then docker seems like a better abstraction, because it doesn't depend on my local environment
2020-11-23 21:15:36 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-11-23 21:15:39 +0100ni291187(~u931732@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca)
2020-11-23 21:15:47 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-23 21:15:48 +0100lucasb(uid333435@gateway/web/irccloud.com/x-detutdhidmcqqrwp) ()
2020-11-23 21:15:49 +0100 <dminuoso> Well, Id argue it's a user error because nix can give you pure environments
2020-11-23 21:16:05 +0100 <ni291187> Hello
2020-11-23 21:16:07 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-23 21:16:09 +0100 <maerwald> following the README instructions surely isn't a user error
2020-11-23 21:16:18 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43) (Max SendQ exceeded)
2020-11-23 21:16:42 +0100 <maerwald> (and I did that for static-haskell-nix as well)
2020-11-23 21:16:50 +0100 <dminuoso> Well it's still a very old GHC bug
2020-11-23 21:16:52 +0100 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/issues/8118
2020-11-23 21:17:22 +0100 <maerwald> dminuoso: can you guess what the fix is?
2020-11-23 21:17:26 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-23 21:17:32 +0100 <nh2> maerwald: In any case, here's a thing I'm currently trying to do with nixpkgs and Alpine: Build static GTK executables. I got the C part working in nixpkgs (screenshots in https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-558569895 and below) but not yet the Haskell part. I'd like to do the same with Alpine so I can use it with plain stack. Do you know if that's possible?
2020-11-23 21:17:44 +0100ni291187lightwave
2020-11-23 21:18:14 +0100 <maerwald> I haven't done static gtk yet, would have to try. I have a haskell gtk project I could try it on
2020-11-23 21:18:45 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43)
2020-11-23 21:18:49 +0100 <geekosaur> gtk likes loading stuff dynamically though
2020-11-23 21:19:00 +0100 <maerwald> dminuoso: setting the locale is not the fix btw :p
2020-11-23 21:19:03 +0100taurux(~taurux@net-188-152-78-21.cust.vodafonedsl.it)
2020-11-23 21:19:07 +0100todda7(~torstein@ppp-2-84-17-53.home.otenet.gr) (Ping timeout: 265 seconds)
2020-11-23 21:19:19 +0100 <maerwald> geekosaur: you mean it dlopens?
2020-11-23 21:19:26 +0100 <geekosaur> yes
2020-11-23 21:19:31 +0100 <maerwald> blergh
2020-11-23 21:19:34 +0100 <nh2> maerwald: I would try with plain C first as a stepping stone, if you want to give it a shot I made a mini GTK app with 1 button in C here: https://github.com/nh2/static-haskell-nix/tree/c-static-gtk3-apps/meson-tutorial-gtk
2020-11-23 21:19:37 +0100 <dminuoso> maerwald: For your particular occurence I do not know. But at its very core it's a GHC bug.
2020-11-23 21:19:41 +0100 <dminuoso> Or "issue" rather
2020-11-23 21:19:58 +0100 <maerwald> dminuoso: LOCALE_ARCHIVE=/usr/lib/locale/locale-archive nix-script
2020-11-23 21:20:25 +0100 <lightwave> Newbie here... I’ve tried to learn Haskell many times... but it trailed off everything because I often got distracted into busy projects because I could learn enough to understand even the short hello world program... Is there a good book that focus on learning by example? Most resources out there seem to be theory heavy upfront...
2020-11-23 21:20:27 +0100 <dminuoso> nix tends to make such problems more apparent because it's more radical
2020-11-23 21:20:28 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-23 21:20:54 +0100 <dminuoso> @where cis194 -- lightwave
2020-11-23 21:20:55 +0100 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
2020-11-23 21:20:56 +0100 <sm[m]> @where HTAC , lightwave
2020-11-23 21:20:56 +0100 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2020-11-23 21:20:58 +0100 <maerwald> dminuoso: apparently not, because I'm the only one hitting that bug
2020-11-23 21:21:06 +0100 <nh2> geekosaur: Do you know if it always dlopens stuff, or only for specific functionality? Because my basic button example works so far here: https://github.com/nh2/static-haskell-nix/releases/tag/c-static-gtk3-apps-button-example-2020-11-23
2020-11-23 21:21:17 +0100 <kuribas> lightwave: learn you a haskell
2020-11-23 21:21:25 +0100 <maerwald> and that's usually when ppl start saying it's a user error, although all I did wat following the instructions :o
2020-11-23 21:21:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-23 21:21:45 +0100 <kuribas> lightwave: http://learnyouahaskell.com It's focussing a lot on examples.
2020-11-23 21:21:47 +0100 <geekosaur> specific functionality. in particular there's a mode where it can load a UI from a file and then iirc it dlopen()s the components iidentified in the file
2020-11-23 21:21:48 +0100knupfer(~Thunderbi@i59F7FFC3.versanet.de)
2020-11-23 21:22:09 +0100 <dminuoso> 21:19:58 maerwald | dminuoso: LOCALE_ARCHIVE=/usr/lib/locale/locale-archive nix-script
2020-11-23 21:22:13 +0100 <geekosaur> since the components may not be linked into the executable
2020-11-23 21:22:18 +0100 <dminuoso> Id argue the more proper solution is
2020-11-23 21:22:23 +0100 <dminuoso> LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive"
2020-11-23 21:22:27 +0100 <lightwave> Thanks!
2020-11-23 21:22:32 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 272 seconds)
2020-11-23 21:22:45 +0100 <dminuoso> Presumably this happens inside travis ci?
2020-11-23 21:22:53 +0100 <nh2> geekosaur: Are you referring to e.g. when you make UIs with `glade` (which IIRC saves them to XML files)?
2020-11-23 21:23:02 +0100 <geekosaur> yes
2020-11-23 21:23:07 +0100 <maerwald> dminuoso: no, on my computer
2020-11-23 21:23:28 +0100 <geekosaur> I haven't played with gtk in some years though, something may have changed since I last did it
2020-11-23 21:23:29 +0100 <maerwald> my project is glade, seems like a perfect test then
2020-11-23 21:24:53 +0100 <monochrom> "learn by examples" fails for Haskell as soon as you need I/O because Haskell's I/O story requires accepting a tiny little bit of theory upfront.
2020-11-23 21:24:55 +0100 <nh2> geekosaur: thanks, I've written it down in https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-732405876 and will try it out; I've used glade in the past but only from Python
2020-11-23 21:25:06 +0100lightwave(~u931732@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca) (Remote host closed the connection)
2020-11-23 21:25:19 +0100ggole(~ggole@2001:8003:8119:7200:1c3c:45be:a6d:c507) (Quit: Leaving)
2020-11-23 21:26:25 +0100 <hseg> maerwald: that's why we need a diverse OS/packaging ecosystem. done properly, it serves to fuzz test programs
2020-11-23 21:26:43 +0100 <monochrom> I say that out of real observations here. There were beginners who tried "learn by examples", it quickly degenerated to cargo culting in vain because the beginners could not grasp the difference between "map putStrLn myListOfString" and "mapM_ putStrLn myListOfStrings" because they didn't learn the prerequisite theory.
2020-11-23 21:26:49 +0100 <maerwald> hseg: who's doing that properly?
2020-11-23 21:27:13 +0100 <boxscape> what's the function to see what the class of a particular unicode character is again?
2020-11-23 21:27:33 +0100 <geekosaur> generalCategory
2020-11-23 21:27:33 +0100 <hseg> can't think of anyone off the top of my head right now
2020-11-23 21:27:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-23 21:27:44 +0100 <maerwald> I know of maybe two distros where I'd call a subsections of the packaging done properly. And then there's still a huge part around it that's just outright bad
2020-11-23 21:28:33 +0100 <boxscape> % generalCategory <$> "ꓱ∃"
2020-11-23 21:28:33 +0100 <yahb> boxscape: [OtherLetter,MathSymbol]
2020-11-23 21:28:36 +0100 <boxscape> thanks geekosaur
2020-11-23 21:29:27 +0100 <dminuoso> maerwald: Do you have old packages installed through nix-env?
2020-11-23 21:29:36 +0100 <maerwald> dminuoso: no, I wiped it out several times
2020-11-23 21:30:09 +0100copypasteque_(~copypaste@2001:41d0:8:b325::1) (Quit: WeeChat 2.8)
2020-11-23 21:30:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-23 21:30:30 +0100 <hseg> fair. that's the immediate counterargument -- it's quite possible the fuzzing benefits are outweighed by the costs of disjoint projects trying to interface with each other
2020-11-23 21:30:37 +0100 <dminuoso> maerwald: Mmm, I dont quite understand the state of affairs.. but the underlying cause is a quite interesting change in glibc: https://sourceware.org/glibc/wiki/Release/2.27#Statically_compiled_applications_using_locales
2020-11-23 21:30:57 +0100 <maerwald> hseg: it gets worse when distros start breaking other distros (yes, there are ways to achieve that)
2020-11-23 21:30:58 +0100 <dminuoso> At any rate, the problem shouldn't be apparent anymore. You aren't on an old nix channel, are you?
2020-11-23 21:31:32 +0100 <maerwald> dminuoso: I have no idea. I'm just running a shell script that does nix stuff
2020-11-23 21:31:53 +0100 <hseg> wait what?
2020-11-23 21:32:07 +0100kuribas(~user@ptr-25vy0i8kkf9triykmnn.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2020-11-23 21:32:34 +0100 <hseg> are you referring to socially-leading distros making bad decisions that then get cargo-culted?
2020-11-23 21:32:44 +0100 <hseg> or distros using each other's patches blindly?
2020-11-23 21:33:23 +0100 <dminuoso> maerwald: Mmm, yeah. This particular bug is still a sad thing, in part it was ignored because a) there's a workaround (that you have to dig for) and b) it doesn't really apply to nixos users..
2020-11-23 21:33:37 +0100 <maerwald> hseg: famous instance is skype being broken on gentoo, because debian messed with SONAMEs of a library and the developers built skype on debian. The fix wasn't hard, but yeah.
2020-11-23 21:34:01 +0100 <hseg> :-o
2020-11-23 21:34:28 +0100 <maerwald> rockstar attitude of packagers
2020-11-23 21:34:43 +0100 <maerwald> (debian has a history of that...)
2020-11-23 21:34:53 +0100 <dminuoso> To be fair, it's not like you're paying for any of it. These are just volunteers..
2020-11-23 21:35:08 +0100christo(~chris@81.96.113.213)
2020-11-23 21:35:11 +0100 <maerwald> dminuoso: I know. I did packaging for 5 years.
2020-11-23 21:36:21 +0100alp(~alp@2a01:e0a:58b:4920:99e8:704d:3180:71f2) (Ping timeout: 272 seconds)
2020-11-23 21:37:01 +0100 <maerwald> And there's not much between internal hierarchy fights on the one side and yelling users on the other... such rewarding work :D
2020-11-23 21:37:13 +0100alp(~alp@88.126.45.36)
2020-11-23 21:37:15 +0100_deepfire(~user@80.92.100.69) (Read error: Connection reset by peer)
2020-11-23 21:37:38 +0100 <dminuoso> Like you just did. :-)
2020-11-23 21:37:45 +0100 <dminuoso> Well, at least it wasn't directed at them
2020-11-23 21:38:35 +0100 <maerwald> I don't have any expectations of nix devs
2020-11-23 21:38:53 +0100 <maerwald> It's when users have expectations and voice them aggressively
2020-11-23 21:39:07 +0100 <maerwald> I just move on and pick another tool
2020-11-23 21:39:34 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-23 21:39:48 +0100christo(~chris@81.96.113.213)
2020-11-23 21:40:30 +0100hackagenumhask 0.7.0.0 - A numeric class heirarchy. https://hackage.haskell.org/package/numhask-0.7.0.0 (tonyday567)
2020-11-23 21:43:08 +0100redmp(~redmp@mobile-166-137-178-102.mycingular.net)
2020-11-23 21:45:00 +0100 <maerwald> nh2: I think we're out of luck. I can't find static library files of gtk+3 in alpine
2020-11-23 21:45:16 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-11-23 21:45:17 +0100 <nh2> maerwald: can we build them?
2020-11-23 21:49:19 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-11-23 21:49:34 +0100hseg(~gesh@185.120.126.113) (Ping timeout: 265 seconds)
2020-11-23 21:50:32 +0100taurux(~taurux@net-188-152-78-21.cust.vodafonedsl.it) (Ping timeout: 265 seconds)
2020-11-23 21:50:34 +0100 <maerwald> https://mail.gnome.org/archives/gtk-list/2018-January/msg00006.html
2020-11-23 21:51:07 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-kgipcwwyhxxkjxhq) (Quit: Connection closed for inactivity)
2020-11-23 21:51:31 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-23 21:53:52 +0100jcd(~user@2601:282:1300:7cb0::adb4) (Remote host closed the connection)
2020-11-23 21:54:03 +0100 <nh2> maerwald: that's a bit outdated, see https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-554589400 -- the author of that email merged my fixes to GTK accidentally breaking its static build in https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1172
2020-11-23 21:55:01 +0100 <nh2> (it did also work before in autotools, they probably broke it by accident when moving to meson)
2020-11-23 21:55:52 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-23 21:56:09 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving)
2020-11-23 21:56:19 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-11-23 21:56:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 21:56:21 +0100 <nh2> the backport for gtk3 is https://gitlab.gnome.org/GNOME/gtk/merge_requests/1196 -- should be in gtk3 >= 3.24.13, so the alpine package should have that fix
2020-11-23 21:58:08 +0100 <hekkaidekapus> nh2, maerwald: <https://gitlab.alpinelinux.org/alpine/aports/blob/master/main/gtk+3.0/APKBUILD>
2020-11-23 21:59:44 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection)
2020-11-23 22:00:46 +0100 <nh2> maerwald hekkaidekapus: Yes (thanks!), 3.24.23, so that should have my fix in. So you'd just have to pass the "-Ddefault_library=both" flag to get `.a` files
2020-11-23 22:01:10 +0100 <Uniaika> hey everyone
2020-11-23 22:01:25 +0100 <hekkaidekapus> hello
2020-11-23 22:01:25 +0100 <Uniaika> what can I read in order to better understand fundeps errors in GHC?
2020-11-23 22:01:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-23 22:02:51 +0100 <Uniaika> s/in/with/
2020-11-23 22:03:05 +0100vicfred_(~vicfred@unaffiliated/vicfred)
2020-11-23 22:03:08 +0100taurux(~taurux@net-188-152-78-21.cust.vodafonedsl.it)
2020-11-23 22:03:49 +0100vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 264 seconds)
2020-11-23 22:04:16 +0100vicfred_(~vicfred@unaffiliated/vicfred) (Max SendQ exceeded)
2020-11-23 22:04:44 +0100vicfred_(~vicfred@unaffiliated/vicfred)
2020-11-23 22:05:43 +0100vicfred_(~vicfred@unaffiliated/vicfred) (Max SendQ exceeded)
2020-11-23 22:06:15 +0100vicfred_(~vicfred@unaffiliated/vicfred)
2020-11-23 22:07:18 +0100wayne_wayne
2020-11-23 22:07:32 +0100wayne(~wayne@consume.rocks) (Changing host)
2020-11-23 22:07:32 +0100wayne(~wayne@unaffiliated/wayne)
2020-11-23 22:07:41 +0100fxg(~fxg@unaffiliated/fxg) (Quit: Leaving)
2020-11-23 22:11:45 +0100 <nh2> Uniaika: I don't have a great resource on understanding the error messages, but do you know https://ocharles.org.uk/posts/2014-12-14-functional-dependencies.html | https://www.fpcomplete.com/haskell/tutorial/fundeps/ | https://gvolpe.com/blog/functional-dependencies-and-type-families/ ? They show _some_ fundeps errors and explain those
2020-11-23 22:12:31 +0100hackagenumhask-space 0.7.0.0 - Numerical spaces. https://hackage.haskell.org/package/numhask-space-0.7.0.0 (tonyday567)
2020-11-23 22:13:12 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2020-11-23 22:13:22 +0100 <Uniaika> nice
2020-11-23 22:13:38 +0100 <Uniaika> thanks a lot nh2
2020-11-23 22:14:11 +0100dennisb(~dennisb@89-160-106-195.cust.bredband2.com)
2020-11-23 22:14:54 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-23 22:15:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 22:17:00 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-23 22:17:24 +0100 <dminuoso> Uniaika: One thing that helped me is understand how GHC reasons in the presence of fundeps.
2020-11-23 22:18:29 +0100 <nh2> dminuoso: Would be good to know how you did learn to understand that reasoning though :)
2020-11-23 22:19:29 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-11-23 22:19:29 +0100 <Uniaika> on a related topic, I have this line of code : https://github.com/Kleidukos/Intrigue/blob/main/src/Intrigue/Eval.hs#L52
2020-11-23 22:19:36 +0100 <Uniaika> that generates this error: https://github.com/Kleidukos/Intrigue/runs/1444428807?check_suite_focus=true#step:5:18
2020-11-23 22:21:24 +0100Raman(~user@c-24-4-174-65.hsd1.ca.comcast.net)
2020-11-23 22:22:08 +0100uninitializedPtr(415e3d4d@bras-base-okvlon3013w-grc-13-65-94-61-77.dsl.bell.ca)
2020-11-23 22:22:19 +0100 <Raman> ?src reverse
2020-11-23 22:22:20 +0100 <lambdabot> Source not found. Do you think like you type?
2020-11-23 22:22:37 +0100 <uninitializedPtr> > let main :: IO ()
2020-11-23 22:22:39 +0100 <lambdabot> <no location info>: error: not an expression: ‘let main :: IO ()’
2020-11-23 22:22:47 +0100 <uninitializedPtr> > this_main :: IO ()
2020-11-23 22:22:49 +0100 <Raman> ?src
2020-11-23 22:22:49 +0100 <lambdabot> src <id>. Display the implementation of a standard function
2020-11-23 22:22:49 +0100 <lambdabot> error: Variable not in scope: this_main :: IO ()
2020-11-23 22:22:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-11-23 22:23:01 +0100 <Raman> ?src map
2020-11-23 22:23:01 +0100 <lambdabot> Source not found. Abort, Retry, Panic?
2020-11-23 22:23:01 +0100 <uninitializedPtr> > printStrLn 42
2020-11-23 22:23:03 +0100 <lambdabot> error:
2020-11-23 22:23:03 +0100 <lambdabot> • Variable not in scope: printStrLn :: t0 -> t
2020-11-23 22:23:03 +0100 <lambdabot> • Perhaps you meant one of these:
2020-11-23 22:23:14 +0100 <geekosaur> @src consults a database which contains lies and is not complete
2020-11-23 22:23:14 +0100 <lambdabot> Source not found. Have you considered trying to match wits with a rutabaga?
2020-11-23 22:23:14 +0100 <Uniaika> > print 42
2020-11-23 22:23:17 +0100 <lambdabot> <IO ()>
2020-11-23 22:23:17 +0100 <Raman> abort
2020-11-23 22:23:19 +0100 <uninitializedPtr> ?src src
2020-11-23 22:23:19 +0100 <lambdabot> Source not found. The more you drive -- the dumber you get.
2020-11-23 22:23:21 +0100 <uninitializedPtr> ?src src
2020-11-23 22:23:21 +0100 <lambdabot> Source not found. Are you on drugs?
2020-11-23 22:23:21 +0100copypasteque(~copypaste@2001:41d0:8:b325::1)
2020-11-23 22:23:23 +0100 <uninitializedPtr> > ?src src
2020-11-23 22:23:26 +0100 <lambdabot> error:
2020-11-23 22:23:26 +0100 <lambdabot> • Variable not in scope: src
2020-11-23 22:23:26 +0100 <lambdabot> • Perhaps you meant ‘scc’ (imported from Data.Graph)
2020-11-23 22:23:33 +0100 <Raman> ?src Eq
2020-11-23 22:23:33 +0100 <lambdabot> class Eq a where
2020-11-23 22:23:33 +0100 <lambdabot> (==), (/=) :: a -> a -> Bool
2020-11-23 22:23:54 +0100 <Raman> ?reverse
2020-11-23 22:23:54 +0100 <lambdabot> Unknown command, try @list
2020-11-23 22:24:00 +0100 <uninitializedPtr> @list
2020-11-23 22:24:00 +0100 <lambdabot> What module? Try @listmodules for some ideas.
2020-11-23 22:24:08 +0100 <Raman> @list
2020-11-23 22:24:08 +0100 <lambdabot> What module? Try @listmodules for some ideas.
2020-11-23 22:24:17 +0100 <uninitializedPtr> @list null
2020-11-23 22:24:17 +0100 <lambdabot> No module "null" loaded
2020-11-23 22:24:37 +0100 <uninitializedPtr> class Nothing where Nothing
2020-11-23 22:24:44 +0100 <uninitializedPtr> > class Nothing where Nothing
2020-11-23 22:24:49 +0100 <dminuoso> Use a private message if you want to experiment.
2020-11-23 22:25:23 +0100 <Raman> ?src Show
2020-11-23 22:25:23 +0100 <lambdabot> Source not found. You speak an infinite deal of nothing.
2020-11-23 22:25:42 +0100 <Uniaika> dminuoso: do you have any idea how I can investigate the error I pasted above?
2020-11-23 22:25:51 +0100Raman(~user@c-24-4-174-65.hsd1.ca.comcast.net) ()
2020-11-23 22:25:56 +0100 <nh2> geekosaur: good tip, dynamic loading occurring here: https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-732434989
2020-11-23 22:26:20 +0100 <dminuoso> Uniaika: Yes
2020-11-23 22:26:20 +0100uninitializedPtr(415e3d4d@bras-base-okvlon3013w-grc-13-65-94-61-77.dsl.bell.ca) ()
2020-11-23 22:26:38 +0100 <Uniaika> dminuoso: \o/
2020-11-23 22:27:29 +0100 <nh2> maerwald: FYI ^
2020-11-23 22:29:07 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-23 22:29:42 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-23 22:30:28 +0100geekosaur(ac3a53fb@172.58.83.251) (Remote host closed the connection)
2020-11-23 22:30:51 +0100 <dminuoso> Uniaika: Consider: class Monad m => MonadState s m | m -> s
2020-11-23 22:31:32 +0100 <Uniaika> yes
2020-11-23 22:31:36 +0100Uniaikaconsiders
2020-11-23 22:31:51 +0100taurux(~taurux@net-188-152-78-21.cust.vodafonedsl.it) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 22:31:52 +0100 <dminuoso> Given `instance ‘MonadState (HashMap Text AST) EvalM’` we have `EvalM -> (HashMap Text AST)`
2020-11-23 22:32:11 +0100 <Uniaika> yep'
2020-11-23 22:32:52 +0100 <dminuoso> The line that says:
2020-11-23 22:32:54 +0100 <dminuoso> constraint ‘MonadState (HashMap Text (EvalM AST)) EvalM’
2020-11-23 22:33:04 +0100Khisanth(~Khisanth@166.sub-174-197-147.myvzw.com) (Ping timeout: 265 seconds)
2020-11-23 22:33:06 +0100 <dminuoso> Means GHC is trying to satisfy this constraint
2020-11-23 22:33:37 +0100 <Uniaika> which is not ‘MonadState (HashMap Text AST) EvalM’
2020-11-23 22:33:42 +0100 <dminuoso> Right
2020-11-23 22:33:44 +0100 <Uniaika> but what I don't understand is how I got myself into that
2020-11-23 22:33:59 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-23 22:33:59 +0100 <dminuoso> Type inference.
2020-11-23 22:34:04 +0100 <Uniaika> damnit.
2020-11-23 22:34:05 +0100 <dminuoso> % :t ask
2020-11-23 22:34:05 +0100 <yahb> dminuoso: MonadReader r m => m r
2020-11-23 22:34:14 +0100 <Uniaika> in my case it's
2020-11-23 22:34:15 +0100 <dminuoso> See how ask is *fully* polymorphic in both m and r?
2020-11-23 22:34:17 +0100 <Uniaika> % :t get
2020-11-23 22:34:17 +0100 <yahb> Uniaika: MonadState s m => m s
2020-11-23 22:34:21 +0100 <dminuoso> Oh. same story
2020-11-23 22:34:31 +0100 <Uniaika> but yeah I see
2020-11-23 22:34:48 +0100 <Uniaika> dminuoso: would type applications solve my problem?
2020-11-23 22:35:00 +0100 <dminuoso> Uniaika: type annotations would help narrow it done
2020-11-23 22:35:08 +0100 <dminuoso> Right now type inference is way too unbounded
2020-11-23 22:35:23 +0100 <dminuoso> If you type annotate `n` that might give you a clue
2020-11-23 22:35:31 +0100 <dminuoso> err wait
2020-11-23 22:36:34 +0100 <dminuoso> My bet is its: let arguments = eval <$> arguments'
2020-11-23 22:36:48 +0100adrew(~andrew@97-115-68-44.ptld.qwest.net)
2020-11-23 22:36:50 +0100 <dminuoso> That's broken
2020-11-23 22:36:56 +0100knupfer(~Thunderbi@i59F7FFC3.versanet.de) (Ping timeout: 265 seconds)
2020-11-23 22:36:59 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-11-23 22:37:00 +0100 <Uniaika> ooh
2020-11-23 22:37:01 +0100 <Uniaika> okay
2020-11-23 22:37:10 +0100 <Uniaika> thanks for the insight!
2020-11-23 22:37:15 +0100EyalSK(~EyalSK@bzq-84-109-128-227.cablep.bezeqint.net)
2020-11-23 22:37:24 +0100adrew(~andrew@97-115-68-44.ptld.qwest.net) (Quit: adrew)
2020-11-23 22:37:36 +0100EyalSK(~EyalSK@bzq-84-109-128-227.cablep.bezeqint.net) (Client Quit)
2020-11-23 22:38:02 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-23 22:38:41 +0100 <dminuoso> Ah not quite
2020-11-23 22:38:43 +0100 <dminuoso> let env = (fromVector $ V.zip parameters arguments) <> env'
2020-11-23 22:38:45 +0100 <dminuoso> This is the offending line
2020-11-23 22:38:57 +0100 <dminuoso> Everything else stems from its inferred tpe
2020-11-23 22:39:11 +0100 <Uniaika> changing fmap for traverse seems to have fixed it
2020-11-23 22:39:20 +0100 <Uniaika> (as in: the other errors now appear in ghcid)
2020-11-23 22:43:27 +0100alx741(~alx741@186.178.110.117) (Ping timeout: 260 seconds)
2020-11-23 22:43:44 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-11-23 22:45:59 +0100Khisanth(~Khisanth@56.sub-174-244-145.myvzw.com)
2020-11-23 22:46:33 +0100cosimone_(~cosimone@5.170.241.60)
2020-11-23 22:46:45 +0100kish`(~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds)
2020-11-23 22:48:17 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 260 seconds)
2020-11-23 22:48:18 +0100cosimone_cosimone
2020-11-23 22:49:18 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 272 seconds)
2020-11-23 22:50:07 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Connection closed)
2020-11-23 22:50:29 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-11-23 22:51:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-23 22:52:44 +0100Lycurgus(~niemand@98.4.114.74)
2020-11-23 22:54:03 +0100Tops2(~Tobias@dyndsl-095-033-021-036.ewe-ip-backbone.de) (Quit: Leaving.)
2020-11-23 22:54:59 +0100stu002(77120261@119-18-2-97.771202.syd.nbn.aussiebb.net)
2020-11-23 22:55:30 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-11-23 22:56:04 +0100alx741(~alx741@181.196.69.178)
2020-11-23 22:57:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-23 22:58:59 +0100conal(~conal@66.115.157.94)
2020-11-23 22:59:58 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds)
2020-11-23 23:03:06 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-23 23:04:04 +0100 <dminuoso> Uniaika: Generally, if GHC has mismatching types and you cant make sense of it, start by adding type ascriptions or annotations.
2020-11-23 23:04:18 +0100 <Uniaika> dminuoso: got it
2020-11-23 23:04:23 +0100 <Uniaika> I will try to remember
2020-11-23 23:05:11 +0100 <dminuoso> Uniaika: In larger code, the error could have easily come from the other case-of branch as well, but only manifested in the other branch. Smaller code and type signatures are your only methods sadly
2020-11-23 23:05:19 +0100 <dminuoso> Unless we ever get type error slices
2020-11-23 23:06:58 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-23 23:07:29 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-23 23:07:49 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-23 23:08:28 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-23 23:08:28 +0100 <dminuoso> (And type error slices would only help much if they were integrated into your editor well, say via hie)
2020-11-23 23:09:32 +0100 <dminuoso> (Or it would present some really interesting challenges on visualizing them)
2020-11-23 23:11:18 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 23:12:02 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-23 23:16:34 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds)
2020-11-23 23:18:21 +0100tylerjl(~leothrix@elastic/staff/leothrix) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-23 23:20:51 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-11-23 23:20:54 +0100conal(~conal@66.115.157.94) (Quit: Computer has gone to sleep.)
2020-11-23 23:23:28 +0100leothrix(~leothrix@elastic/staff/leothrix)
2020-11-23 23:26:22 +0100superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
2020-11-23 23:26:34 +0100falafel_(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-23 23:27:29 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds)
2020-11-23 23:31:27 +0100 <superstar64> has anyone played with something like this before? `data Term f = Fix (f (Term f) | Variable String | Application (Term f) (Term f) | Abstraction String (Term f)`, basically it's `Data.Fix.Fix` but with extra constructors
2020-11-23 23:33:01 +0100stu002(77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) (Remote host closed the connection)
2020-11-23 23:33:45 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-23 23:36:09 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-23 23:41:35 +0100borne(~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de)
2020-11-23 23:43:13 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-11-23 23:43:31 +0100 <int-e> superstar64: probably not, because you can build the extra constructors into `f` instead.
2020-11-23 23:44:01 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 264 seconds)
2020-11-23 23:44:51 +0100 <int-e> data TermF f x = Variable String | Application x x | Abstraction String x | Extension (f x)
2020-11-23 23:45:13 +0100 <int-e> type Term f = Fix (TermF f)
2020-11-23 23:45:24 +0100 <int-e> superstar64: ^^ that should be isomorphic to what you have.
2020-11-23 23:45:44 +0100 <superstar64> seems much uglier to pattern match on though
2020-11-23 23:45:52 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-11-23 23:46:32 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 23:48:23 +0100 <int-e> superstar64: There are pattern synonyms. What you may gain from the reformulation is a better understanding for how this relates to Fix, what folds look like... just an overall better fit with existing theory.
2020-11-23 23:48:58 +0100alp(~alp@88.126.45.36) (Ping timeout: 260 seconds)
2020-11-23 23:49:22 +0100 <superstar64> welp, i guess i'll rewrite my beta reduction then
2020-11-23 23:50:00 +0100hackagenumhask-array 0.8.0 - Multi-dimensional array interface for numhask. https://hackage.haskell.org/package/numhask-array-0.8.0 (tonyday567)
2020-11-23 23:50:25 +0100 <maerwald> on nice, lol https://ppig.org/files/2015-PPIG-26th-Sarkar1.pdf
2020-11-23 23:50:31 +0100 <int-e> superstar64: I probably wouldn't do that. I would rename the 'Fix' though... as suggested it does feel more like an extension point for the data type to me.
2020-11-23 23:50:31 +0100 <maerwald> so syntax highlighting does help
2020-11-23 23:50:47 +0100 <int-e> superstar64: It's okay to have specific ad-hoc types.
2020-11-23 23:51:09 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-11-23 23:51:36 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-11-23 23:51:38 +0100 <int-e> superstar64: I guess what I'm really getting at is that the relation to Data.Fix.Fix feels superficial.
2020-11-23 23:51:48 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-11-23 23:52:16 +0100conal(~conal@64.71.133.70)
2020-11-23 23:53:56 +0100 <superstar64> my code might be cleaner if i use recursion schemes anyway
2020-11-23 23:54:14 +0100chaosmasttter(~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-11-23 23:54:43 +0100 <int-e> superstar64: your choice, obviously... and you should know best what the tradeoffs are
2020-11-23 23:55:22 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-11-23 23:55:38 +0100 <superstar64> it's 40 lines that i start writing a few hours ago
2020-11-23 23:55:43 +0100 <superstar64> it's not a big deal
2020-11-23 23:55:49 +0100phaul(~phaul@ruby/staff/phaul) (Remote host closed the connection)
2020-11-23 23:56:27 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-23 23:58:03 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc) (Quit: Leaving)
2020-11-23 23:58:50 +0100falafel_(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds)
2020-11-23 23:59:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)