2021/04/07

2021-04-07 00:00:07 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Remote host closed the connection)
2021-04-07 00:00:32 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga)
2021-04-07 00:00:39 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-04-07 00:01:01 +0200myShoggoth(~myShoggot@75.164.73.93)
2021-04-07 00:01:02 +0200zebrag(~inkbottle@aaubervilliers-651-1-244-162.w83-200.abo.wanadoo.fr)
2021-04-07 00:01:05 +0200NGravity(csp@gateway/shell/xshellz/x-yvbxxozqugoitghs)
2021-04-07 00:02:54 +0200ericsagn1(~ericsagne@2405:6580:0:5100:a729:cf9f:aaab:a664) (Ping timeout: 245 seconds)
2021-04-07 00:03:52 +0200lambda(~xiretza@mail.xiretza.xyz) (Ping timeout: 276 seconds)
2021-04-07 00:06:46 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-04-07 00:07:04 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-07 00:07:58 +0200pavonia(~user@unaffiliated/siracusa)
2021-04-07 00:10:05 +0200ArsenArsen(~Arsen@fsf/member/ArsenArsen) (Changing host)
2021-04-07 00:10:05 +0200ArsenArsen(~Arsen@managarm/dev/ArsenArsen)
2021-04-07 00:14:05 +0200royal_screwup219(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 00:15:24 +0200ericsagn1(~ericsagne@2405:6580:0:5100:b937:4ffa:f3c4:aca7)
2021-04-07 00:15:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 00:15:41 +0200kristijonas(~kristijon@78-56-32-39.static.zebra.lt) (Ping timeout: 240 seconds)
2021-04-07 00:19:06 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
2021-04-07 00:20:47 +0200javran(~javran@108-201-186-97.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-04-07 00:21:26 +0200kristijonas(~kristijon@78-56-32-39.static.zebra.lt)
2021-04-07 00:25:45 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-04-07 00:27:27 +0200michalz(~user@185.246.204.46) (Remote host closed the connection)
2021-04-07 00:30:11 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-07 00:30:47 +0200ddellacosta(~ddellacos@86.106.143.174)
2021-04-07 00:30:49 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-07 00:30:50 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-07 00:31:49 +0200ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-07 00:32:20 +0200Desmond373(b49673ba@180.150.115.186)
2021-04-07 00:33:18 +0200sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f)
2021-04-07 00:33:50 +0200simplegauss(~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f)
2021-04-07 00:34:10 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:e0c3:c7c:460b:c7eb) (Remote host closed the connection)
2021-04-07 00:34:25 +0200royal_screwup219(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 00:34:25 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 00:34:44 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 00:35:46 +0200ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-07 00:36:07 +0200lotuseater(~user@p200300e78705e200e5bac9463b911ab3.dip0.t-ipconnect.de) (Quit: ERC (IRC client for Emacs 27.1))
2021-04-07 00:38:56 +0200sdrodge(~sdrodge@unaffiliated/sdrodge) (Ping timeout: 246 seconds)
2021-04-07 00:38:58 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-07 00:39:06 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 00:39:40 +0200Tario(~Tario@201.192.165.173)
2021-04-07 00:43:15 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-04-07 00:44:45 +0200cyjia15(6779d067@103.121.208.103)
2021-04-07 00:45:32 +0200cyjia15(6779d067@103.121.208.103) (Client Quit)
2021-04-07 00:45:36 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:9469:29ae:2372:7bd6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 00:49:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-04-07 00:51:19 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2021-04-07 00:54:22 +0200sdrodge(~sdrodge@unaffiliated/sdrodge)
2021-04-07 00:55:22 +0200rprije(~rprije@59-102-63-15.tpgi.com.au)
2021-04-07 00:58:02 +0200cheater(~user@unaffiliated/cheater) (Read error: Connection reset by peer)
2021-04-07 00:58:31 +0200cheater(~user@unaffiliated/cheater)
2021-04-07 00:59:41 +0200Desmond373(b49673ba@180.150.115.186) (Quit: Connection closed)
2021-04-07 01:01:33 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-07 01:02:16 +0200mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-04-07 01:04:11 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-07 01:05:19 +0200hiroaki(~hiroaki@2a02:908:4b18:8c40:cdf8:a3f:92b1:70de) (Ping timeout: 260 seconds)
2021-04-07 01:05:25 +0200vv8(~egp_@128-71-69-136.broadband.corbina.ru)
2021-04-07 01:09:46 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 01:13:43 +0200haskellstudent(~quassel@213-225-9-45.nat.highway.a1.net) (Ping timeout: 260 seconds)
2021-04-07 01:13:58 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 01:14:05 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 265 seconds)
2021-04-07 01:17:35 +0200stree(~stree@68.36.8.116)
2021-04-07 01:18:18 +0200CMCDragonkai2(~Thunderbi@120.17.224.123)
2021-04-07 01:19:30 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 01:19:32 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-04-07 01:23:03 +0200crestfallen(~john@128.32.176.159) (Ping timeout: 260 seconds)
2021-04-07 01:25:39 +0200zebrag(~inkbottle@aaubervilliers-651-1-244-162.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 01:26:01 +0200zebrag(~inkbottle@aaubervilliers-651-1-244-162.w83-200.abo.wanadoo.fr)
2021-04-07 01:27:45 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-04-07 01:30:50 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-04-07 01:35:50 +0200emmanuel_erc(~user@cpe-74-71-106-64.nyc.res.rr.com) (Ping timeout: 265 seconds)
2021-04-07 01:44:13 +0200mach1speed(~textual@S0106f0b4d2c39cee.va.shawcable.net)
2021-04-07 01:45:26 +0200p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds)
2021-04-07 01:46:23 +0200hypercube(~hypercube@75.186.121.128) (Ping timeout: 260 seconds)
2021-04-07 01:48:09 +0200p8m(p8m@gateway/vpn/protonvpn/p8m)
2021-04-07 01:48:10 +0200BonesJoh2son65(~wheetseek@pool-173-75-8-46.pitbpa.fios.verizon.net)
2021-04-07 01:48:33 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 01:48:52 +0200 <BonesJoh2son65> part
2021-04-07 01:48:53 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 01:48:55 +0200BonesJoh2son65(~wheetseek@pool-173-75-8-46.pitbpa.fios.verizon.net) ()
2021-04-07 01:49:49 +0200 <Axman6> ADG1089: Did you want to give us more context? Mayve your app should be spending 15% of its time in looking up in hashmaps, maybe it's the wrong data type entirely
2021-04-07 01:54:03 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds)
2021-04-07 01:56:11 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-04-07 01:59:07 +0200Tario(~Tario@199.58.83.9)
2021-04-07 02:01:06 +0200 <ADG1089> on another note, i am writing a do notation, how can i return if the output of a monadic computation is 0?
2021-04-07 02:01:28 +0200 <Axman6> we're going to need more information than that
2021-04-07 02:01:39 +0200 <ADG1089> something like `{do; x<-getVal :: IO Int; if x == 0 then return else continue}
2021-04-07 02:01:47 +0200 <monochrom> "return 0"? I don't understand the question.
2021-04-07 02:01:57 +0200 <ADG1089> :t guard
2021-04-07 02:01:58 +0200 <lambdabot> Alternative f => Bool -> f ()
2021-04-07 02:02:00 +0200 <Axman6> what value do you want to rerturn?
2021-04-07 02:02:07 +0200 <Axman6> return*
2021-04-07 02:02:16 +0200 <monochrom> OK, high probability that "return ()" is what you want.
2021-04-07 02:02:53 +0200 <ADG1089> If x is 0 I want to return () otherwise >>= the next steps
2021-04-07 02:03:13 +0200 <Axman6> you can literally do x <- foo; if x == 0 then return () else do ...
2021-04-07 02:03:14 +0200 <dibblego> unless (x == 0) nextSteps
2021-04-07 02:03:24 +0200 <monochrom> If I know the type of "continue", I can give a 100%-certainty answer.
2021-04-07 02:03:31 +0200Tario(~Tario@199.58.83.9) (Read error: Connection reset by peer)
2021-04-07 02:04:06 +0200Tario(~Tario@201.192.165.173)
2021-04-07 02:04:53 +0200 <monochrom> "unless" is in Control.Monad if you like it.
2021-04-07 02:05:22 +0200 <monochrom> But it's just a canned version of "if ... then return () else ..."
2021-04-07 02:08:16 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-04-07 02:09:28 +0200CMCDragonkai2(~Thunderbi@120.17.224.123) (Ping timeout: 268 seconds)
2021-04-07 02:09:31 +0200ADG1089(~aditya@122.163.139.43) (Remote host closed the connection)
2021-04-07 02:11:36 +0200usr25(~usr25@unaffiliated/usr25) (Read error: Connection reset by peer)
2021-04-07 02:14:55 +0200cads(~cads@ip-64-72-99-232.lasvegas.net)
2021-04-07 02:17:36 +0200renzhi(~renzhi@2607:fa49:653f:a800::4223)
2021-04-07 02:20:02 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 02:20:04 +0200mrchampion(~mrchampio@38.18.109.23) (Read error: Connection reset by peer)
2021-04-07 02:21:37 +0200 <pie_> whats the current way to interface haskell and python?
2021-04-07 02:22:35 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-bmhbjzvaxfjgfshr) (Quit: Connection closed for inactivity)
2021-04-07 02:23:37 +0200mrchampion(~mrchampio@38.18.109.23)
2021-04-07 02:23:43 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 260 seconds)
2021-04-07 02:23:45 +0200Guest96189(~textual@mskresolve-a.mskcc.org) (Ping timeout: 260 seconds)
2021-04-07 02:24:30 +0200aerona(~aerona@2600:6c54:4600:f300:17d9:d4ff:325b:67dc) (Quit: Leaving)
2021-04-07 02:25:08 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-04-07 02:25:39 +0200zebrag(~inkbottle@aaubervilliers-651-1-244-162.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 02:26:01 +0200zebrag(~inkbottle@aaubervilliers-651-1-244-162.w83-200.abo.wanadoo.fr)
2021-04-07 02:26:06 +0200 <pie_> ok this looks recent enough https://libredd.it/r/haskell/comments/ec81iq/best_way_to_call_python_36_code_from_from_haskell/
2021-04-07 02:26:14 +0200 <pie_> though thatts in the other direction
2021-04-07 02:26:42 +0200 <Axman6> not sure there is a particularly well known solution for doing that
2021-04-07 02:27:36 +0200Codaraxis_(~Codaraxis@141.98.255.144)
2021-04-07 02:29:15 +0200 <pie_> *nod*
2021-04-07 02:29:21 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-04-07 02:29:49 +0200Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 268 seconds)
2021-04-07 02:32:32 +0200zaquest(~notzaques@5.128.210.178)
2021-04-07 02:33:06 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-04-07 02:40:07 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds)
2021-04-07 02:40:45 +0200mmmattyx(uid17782@gateway/web/irccloud.com/x-kuttqhjrmgrkynne) (Quit: Connection closed for inactivity)
2021-04-07 02:40:59 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-04-07 02:44:49 +0200Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
2021-04-07 02:46:03 +0200acidjnk_new(~acidjnk@p200300d0c72b9510b1ed14260384c0cf.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-04-07 02:46:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 02:48:08 +0200rajivr(uid269651@gateway/web/irccloud.com/x-bfdpumpohvpxzdht)
2021-04-07 02:51:05 +0200Techcable(~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in)
2021-04-07 02:51:26 +0200viluon(uid453725@gateway/web/irccloud.com/x-vxyigueamtfqricd) (Quit: Connection closed for inactivity)
2021-04-07 02:55:49 +0200Techcable(~Techcable@168.235.93.147)
2021-04-07 03:00:55 +0200solvr(57e3c46d@87.227.196.109)
2021-04-07 03:06:34 +0200drbean_(~drbean@TC210-63-209-95.static.apol.com.tw)
2021-04-07 03:07:38 +0200 <solvr> "Almost all classical data structures require mutability, and for a good reason - it gives us far cheaper resource use than destroy-and-create does. [...] Purely functional data structures are really cool, but they're cool like a dancing bear is cool. I.e. it's not impressive that the bear dances well, but the fact the bear dances at all."
2021-04-07 03:08:52 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 03:09:19 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-04-07 03:10:57 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-04-07 03:12:03 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-04-07 03:12:53 +0200 <wrunt> nonsense
2021-04-07 03:13:17 +0200 <wrunt> purely functional data structures don't require destroy-and-create
2021-04-07 03:13:41 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 03:13:43 +0200 <Axman6> yeah that's complete nonsense, particularly in the concurrent world we live in. mutation makes concurrency extremely difficult
2021-04-07 03:14:00 +0200 <dibblego> More importantly, why is that nonsense here in this channel?
2021-04-07 03:15:56 +0200 <Axman6> need to share a hashmap between any number of threads which may all read and write arbitrarily? IORef (HashMap Key Value) is infinitely easier to reason about than HashTable Key Value which uses mutation, with the former being able to produce arbitrarily complex, consistent mutations whith the latter making that almost impossible without resorting to locks
2021-04-07 03:16:00 +0200 <pjb> wrunt: the destroy is in the garbage collector.
2021-04-07 03:16:19 +0200 <solvr> Don't functional data structures require destroy and create.
2021-04-07 03:16:35 +0200 <Axman6> no
2021-04-07 03:17:08 +0200 <dibblego> mutable data structures do though
2021-04-07 03:17:17 +0200 <pjb> Immutability renders array virtually useless. Most sophisticated algorithms are designed arround array and array mutation. Basically you can take all Knuth and throw it to the trash can with purely functional programming languages…
2021-04-07 03:17:27 +0200 <Axman6> and the fact they do not makes them infinitely more usable, you can efficiently retain the entire history of a structure with the only extra allocations being the minimal difference between each version. this comes for free
2021-04-07 03:18:45 +0200 <solvr> Yes it's for free. Except the part where it's not "free" in terms of memory or CPU resources /s
2021-04-07 03:18:50 +0200 <Axman6> to get that sort of behaviour with mutable structures, you have to work very hard to store all the modifications and have a way to run them in reverse. for us, an undo tree of changes to some state is just [SomeState]
2021-04-07 03:18:56 +0200 <pjb> minimal differences doesn't improve things: you still have to either copy all the rest, or shadow the data structure behind a O(n) chain of differences.
2021-04-07 03:19:38 +0200 <Axman6> pjb: not sure what you mean, consequtive versions of the structure will share the majority of their structure
2021-04-07 03:19:43 +0200 <pjb> And even if O(log32(n)) is good enough for must uses, it still is not O(1)…
2021-04-07 03:20:10 +0200 <solvr> Axman6, regarding the "concurrent world we live in". Having lots of shared state between concurrent structures is actually a poor factoring.
2021-04-07 03:20:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-07 03:20:25 +0200 <Axman6> but also some necessary
2021-04-07 03:20:47 +0200 <Axman6> usually the solution it so push that sharing into an even more complex system, like a database
2021-04-07 03:21:02 +0200 <dibblego> I swear this discussion was had 20 years ago, everyone learned, and we all moved on.
2021-04-07 03:21:11 +0200pie_is learning
2021-04-07 03:21:35 +0200xff0x(~xff0x@2001:1a81:5274:b300:73fd:d48e:9253:e66b) (Ping timeout: 260 seconds)
2021-04-07 03:22:12 +0200 <solvr> dibblego, we didn't learn a thing.
2021-04-07 03:22:40 +0200 <solvr> dibblego, if we had, we'd probably be using Erlang offshoots now, which combine OOP and FP into a single system, more or less
2021-04-07 03:23:11 +0200xff0x(~xff0x@2001:1a81:52ae:6200:6f5d:6ce6:85f6:1960)
2021-04-07 03:24:14 +0200 <Axman6> there was a paper ages ago, I thing written by SPJ et al. which looked at the implementation of lock free structures and compared their performance. The highest performance implementation ended up being an immutable structure wrapped by an IORef, because all updates ended up being an atomic compare and swap, and the evaluation of the changes could be shared between all threads trivially
2021-04-07 03:25:14 +0200 <dibblego> yeah that bit disappoints me, the not learning thing
2021-04-07 03:25:16 +0200 <solvr> Axman6, performance can only be judged in context. So I'm not sure "highest performance" tells us a lot without context.
2021-04-07 03:25:23 +0200 <dibblego> Axman6: there were also papers before that
2021-04-07 03:25:39 +0200 <Axman6> solvr: read the paper then
2021-04-07 03:25:52 +0200 <solvr> Axman6, you didn't even link a paper :)
2021-04-07 03:25:56 +0200stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-04-07 03:26:27 +0200Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
2021-04-07 03:27:10 +0200 <dibblego> better than read a paper: write a JIT hotspot compiler, then come tell me about the performance improvements from all those mutable data structures
2021-04-07 03:27:12 +0200 <Axman6> I think it was https://simonmar.github.io/bib/papers/concurrent-data.pdf
2021-04-07 03:27:14 +0200 <solvr> Axman6, highest performing algorithms are often about choosing boundaries between shared and non-shared state, including across threads.
2021-04-07 03:27:46 +0200 <solvr> Axman6, so imagining a world where everything is shared between threads is just an artificial restriction that's already way worse than what's possible
2021-04-07 03:28:04 +0200 <Axman6> I never claimed that is a world we should imagine
2021-04-07 03:28:32 +0200 <solvr> Axman6, sure but we do keep coming back to things like sharing state, lock-free structures and so on
2021-04-07 03:28:36 +0200 <solvr> All of this is about shared state
2021-04-07 03:28:37 +0200 <Axman6> but sharing between threads is often a very natural way to build concurrent apps which can reduce resource usage
2021-04-07 03:29:37 +0200 <solvr> Axman6, it's not very natural. Encapsulation and message-passing is even more natural, I'd argue. Like you and me now, in this chat. We're not sharing a lock-free brain. We're exchanging messages and keeping our state local.
2021-04-07 03:30:11 +0200 <Axman6> so you trhing that a web server which supports caching should have every thread maintain its own cache?
2021-04-07 03:30:59 +0200 <solvr> I think that's a very specific statement, without context. So I can't tell what this hypothetical server should do. But some of its cache would be local yes.
2021-04-07 03:31:20 +0200 <solvr> You CPU also has lots of cache that's device local, CPU local, core local, and so on
2021-04-07 03:31:28 +0200 <solvr> It's like a tree.
2021-04-07 03:31:33 +0200 <Axman6> to each thread? why not share the cache between all threads? the
2021-04-07 03:31:41 +0200 <Axman6> I am very aware of that
2021-04-07 03:31:48 +0200renzhi(~renzhi@2607:fa49:653f:a800::4223) (Ping timeout: 246 seconds)
2021-04-07 03:31:57 +0200 <solvr> Well ask yourself why.
2021-04-07 03:33:17 +0200 <Axman6> much of my major at university was in high performance computing... I understand the affects of caches and memory hierarchies
2021-04-07 03:33:48 +0200 <Axman6> anyway, do you have some argument you're trying to make or just troll? You've come in here making controvercial, demonstratably false claims, did you have a point to make?
2021-04-07 03:34:37 +0200 <solvr> Axman6 it wasn't my statement, it was Brian Goetz in this talk:
2021-04-07 03:34:38 +0200 <solvr> https://www.youtube.com/watch?v=HSk5fdKbd3o
2021-04-07 03:34:51 +0200 <solvr> Where he actually points out OOP+FP are quite complementary
2021-04-07 03:34:51 +0200 <Axman6> controversial*
2021-04-07 03:35:53 +0200 <solvr> I think it's a good talk, and he mentions Erlang as a mental model a few times.
2021-04-07 03:35:58 +0200 <solvr> It's a great mental model IMHO.
2021-04-07 03:36:24 +0200 <solvr> FP excels in closed systems. OOP is better as the metaphor between those closed systems
2021-04-07 03:36:53 +0200 <solvr> Do we need threads in a closed system... sure. Not always, but sure.
2021-04-07 03:36:59 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-04-07 03:37:02 +0200 <solvr> But OOP is also naturally concurrent.
2021-04-07 03:37:07 +0200 <solvr> Especially the actor model.
2021-04-07 03:37:57 +0200 <dibblego> oh gawd
2021-04-07 03:38:33 +0200 <Axman6> I wouldn't conflate OOP and the actor model, at least as far as most people understand OOP today. they are certainly related, and in many the actor model much better adhears to the original ideas of OOP, but when you start talking about Java we're way off from where I would like to be
2021-04-07 03:38:41 +0200stree(~stree@68.36.8.116)
2021-04-07 03:40:38 +0200 <solvr> Java is not strictly OOP, hasn't been for a long time. It's mixed paradigm. Can do FP, can do procedural, can do actors, can do "OOP as abstract data structures" which is probably what you don't like.
2021-04-07 03:41:30 +0200 <solvr> The thing about immutability is that it's great when you want it.
2021-04-07 03:41:42 +0200 <solvr> But not as something forced upon you.
2021-04-07 03:43:29 +0200 <Axman6> who says it's being forced on anyone?
2021-04-07 03:43:34 +0200 <c_wraith> Which is why Haskell has mutable stuff
2021-04-07 03:43:41 +0200 <monochrom> What is the purpose of this discussion?
2021-04-07 03:44:00 +0200 <c_wraith> To attack a straw man unrelated to any real language, probably
2021-04-07 03:44:33 +0200 <monochrom> Am I right in that dibblego's question was never answered?
2021-04-07 03:45:54 +0200 <dibblego> It appears: To hold and express an opinion on a subject, without having to come to understand the subject, and with peer support of the position. This is disappointing :(
2021-04-07 03:46:28 +0200 <monochrom> Yeah. That's what's wrong with social media.
2021-04-07 03:46:47 +0200 <monochrom> https://www.smbc-comics.com/comic/app-3 applies.
2021-04-07 03:46:49 +0200 <dibblego> right, remember when #haskell was not social media? *jumps in joy*
2021-04-07 03:47:17 +0200 <monochrom> New mission for #haskell: Avoid social media success at all costs. >:)
2021-04-07 03:47:31 +0200 <dibblego> I support this mission
2021-04-07 03:48:33 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:ccca:5598:c03f:71de)
2021-04-07 03:49:49 +0200 <solvr> I just want a happy middleground where fp/oop/imperative/relational co-exist in one shared paradigm.
2021-04-07 03:50:45 +0200 <monochrom> Have you even studied the expression problem? which puts a bound on how well two things can coexist.
2021-04-07 03:52:11 +0200zebrag(~inkbottle@aaubervilliers-651-1-244-162.w83-200.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2021-04-07 03:52:29 +0200 <monochrom> I am unsympathetic to hiding behind the façade of "discussions and debates" when one hasn't done their share of due diligence, and instead merely exhibit the shallow news reporter behaviour of "I heard this from somewhere, what do you think?", which is a sorry excuse for "discussions and debates".
2021-04-07 03:53:06 +0200 <solvr> monochrom, one of the biggest problems to resolve in programming is scaling the complexity of a system while keeping performance and defects in check
2021-04-07 03:53:33 +0200 <solvr> monochrom, to think about complex systems as a single "expression" would be to miss their nature entirely
2021-04-07 03:53:57 +0200 <monochrom> Are you done?
2021-04-07 03:54:06 +0200Axman6is trying to find where monochrom claimed that
2021-04-07 03:54:35 +0200 <solvr> Well if monochrom doesn't claim that, then the expression problem doesn't apply
2021-04-07 03:54:45 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-07 03:55:03 +0200 <Axman6> it clearly applies, what on earth are you talking about
2021-04-07 03:55:39 +0200 <monochrom> I want to tell you about a formalism that I call the Markov-Mealy chain.
2021-04-07 03:56:00 +0200glguypulls up a chair
2021-04-07 03:56:03 +0200 <monochrom> It simply means a cross of a Markov chain and a Mealy machine. >:)
2021-04-07 03:56:51 +0200 <solvr> The expression problem is about extensibility in fixed boundaries. A system is a hierarchy of collections of boundaries.
2021-04-07 03:57:19 +0200 <solvr> Case in point, every FP is implemented on imperative procedural machines.
2021-04-07 03:57:26 +0200 <solvr> No expression problem somehow
2021-04-07 03:57:27 +0200 <monochrom> But I can't be the first one to think up this hybrid. Do you know of a more standard name?
2021-04-07 03:57:48 +0200 <dibblego> FWIW, I once read something from Brian Goetz — it was a friend of mine spending hundreds of comments trying to teach him the Maybe data type. That was the last time.
2021-04-07 03:58:28 +0200 <solvr> dibblego, oh yeah, he doesn't understand the Maybe type. Sure.
2021-04-07 03:58:40 +0200 <Axman6> starting off with the meme that people don't want to use monads... when they literally use monads every single day of their lives didn't help his argument
2021-04-07 03:58:52 +0200 <dibblego> haha you read the same thread :)
2021-04-07 03:59:59 +0200Alleria(~textual@2603-7000-3040-0000-c5e8-81b5-bd49-f2bd.res6.spectrum.com)
2021-04-07 04:00:22 +0200AlleriaGuest59918
2021-04-07 04:00:28 +0200 <solvr> Axman6, just because IO for ex. is a monad in Haskell, doesn't make IO a monad in Java.
2021-04-07 04:00:46 +0200 <Axman6> doesn't it?
2021-04-07 04:00:54 +0200 <monochrom> Nothing makes a monad in Java. There is no monad there.
2021-04-07 04:01:01 +0200 <solvr> No it absolutely doesn't. you confuse your mental map with the actual thing.
2021-04-07 04:01:10 +0200 <dibblego> Yes it is.
2021-04-07 04:01:15 +0200 <Axman6> they couldn't even make Optional a law abiding monad in Java -_-
2021-04-07 04:01:29 +0200 <monochrom> But don't read this as a criticism on Java. Java has other strengths, but not shoehorning monads.
2021-04-07 04:01:45 +0200 <dibblego> http://www.functionaljava.org/javadoc/4.8.1/functionaljava/fj/data/IOW.html
2021-04-07 04:02:01 +0200 <dibblego> witness for the monad is carried; see if for yourself, or don't
2021-04-07 04:03:16 +0200 <solvr> Axman6, behold as Optional works while not being a "law abiding monad"
2021-04-07 04:03:29 +0200 <solvr> Axman6, likewise for Promises in JS and so on
2021-04-07 04:03:33 +0200 <Axman6> "works" for some poor definition of works
2021-04-07 04:03:50 +0200 <solvr> Axman6 "poor" for some subjective definition of poor
2021-04-07 04:03:57 +0200 <glguy> How does all this tie back to #haskell?
2021-04-07 04:03:57 +0200 <Axman6> who would want to represent Just null anyway
2021-04-07 04:04:31 +0200Guest59918(~textual@2603-7000-3040-0000-c5e8-81b5-bd49-f2bd.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-04-07 04:06:33 +0200Tario(~Tario@201.192.165.173)
2021-04-07 04:06:42 +0200 <dibblego> it doesn't work — that is why I just deleted it today, out of a java project
2021-04-07 04:06:43 +0200 <Axman6> I _think_ the original argument was something along the lines of "immutable by default is wrong", which is clearly nonsense. but if it were true, we're all wrong, and we should feel wrong
2021-04-07 04:07:19 +0200juri__(~juri@212.86.35.156)
2021-04-07 04:08:06 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-04-07 04:09:09 +0200 <solvr> It was not the original argument.
2021-04-07 04:09:39 +0200 <solvr> But let's say that immutable by default would be less of a nonsense if we poured and burned RAM in our computers like you pour and burn gas in your car.
2021-04-07 04:09:58 +0200 <dibblego> no, let's not say that please — this is #haskell
2021-04-07 04:10:24 +0200 <Axman6> the opening sentense of your quote is trivially wrong, so it's hard to see how you're operating from a solid foundation of the facts of whatever point it is you're trying to make
2021-04-07 04:10:30 +0200juri_(~juri@79.140.114.222) (Ping timeout: 265 seconds)
2021-04-07 04:10:45 +0200 <monochrom> Could we all just stop this please.
2021-04-07 04:11:45 +0200 <olligobber> so I looked at how the Q monad works, and so I wrote my N type: `newtype N = N {runN :: forall n. Num n => n}', and even gave it a Num instance
2021-04-07 04:12:13 +0200 <Axman6> Where's the Q monad come from?
2021-04-07 04:12:13 +0200 <olligobber> this feels like some sort of dark magic
2021-04-07 04:12:20 +0200 <olligobber> Templat Haksell
2021-04-07 04:12:38 +0200 <olligobber> https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH.html
2021-04-07 04:12:50 +0200 <olligobber> it's defined as `newtype Q a = Q { unQ :: forall m. Quasi m => m a }'
2021-04-07 04:12:55 +0200 <Axman6> Thought you were talking about that quantum computation monad
2021-04-07 04:13:18 +0200 <olligobber> nah
2021-04-07 04:13:34 +0200 <monochrom> What does Num have to do with Q?
2021-04-07 04:13:54 +0200 <glguy> olligobber, made his 'N' in the style of 'Q'
2021-04-07 04:13:55 +0200 <olligobber> Q is defined as the Quasi type, so I made N the Num type
2021-04-07 04:14:24 +0200 <olligobber> N can do anything any Num can, and then later you runN to get a particular value out
2021-04-07 04:14:43 +0200 <olligobber> correction, N can do anything all Nums can
2021-04-07 04:14:45 +0200 <glguy> olligobber, It's a bit the other way around though, N can *only* do things Num can
2021-04-07 04:14:49 +0200 <olligobber> yeah
2021-04-07 04:15:14 +0200 <olligobber> it feels wrong somehow
2021-04-07 04:15:20 +0200 <glguy> % newtype N = N {runN :: forall n. Num n => n}
2021-04-07 04:15:20 +0200shachaf(~shachaf@unaffiliated/shachaf) (Remote host closed the connection)
2021-04-07 04:15:20 +0200 <yahb> glguy:
2021-04-07 04:15:55 +0200 <olligobber> especially when you look at the instances of Quasi and it only gives IO (which is incomplete) and Q (which is ...)
2021-04-07 04:16:03 +0200 <Axman6> I wish yahb would say something when defining things, like "It is defined"
2021-04-07 04:16:15 +0200 <olligobber> % runN (1 + 2 :: N)
2021-04-07 04:16:15 +0200 <yahb> olligobber: ; <interactive>:60:9: error:; * Could not deduce (Num N) arising from a use of `+'; from the context: Num n bound by the inferred type of it :: Num n => n at <interactive>:60:1-17; * In the first argument of `runN', namely `(1 + 2 :: N)'; In the expression: runN (1 + 2 :: N); In an equation for `it': it = runN (1 + 2 :: N)
2021-04-07 04:16:20 +0200 <olligobber> oh right
2021-04-07 04:16:21 +0200 <olligobber> um
2021-04-07 04:16:28 +0200 <olligobber> % instance Num N where { N x + N y = N $ x + y; N x * N y = N $ x * y; abs (N x) = N (abs x); signum (N x) = N (signum x); fromInteger = N . fromInteger; negate (N x) = N (negate x)}
2021-04-07 04:16:28 +0200 <yahb> olligobber: ; <interactive>:61:136: error:; * Couldn't match type `Integer' with `forall n. Num n => n'; Expected: Integer -> N; Actual: (forall n. Num n => n) -> N; * In the first argument of `(.)', namely `N'; In the expression: N . fromInteger; In an equation for `fromInteger': fromInteger = N . fromInteger
2021-04-07 04:16:38 +0200 <olligobber> wrong one
2021-04-07 04:16:41 +0200 <olligobber> % instance Num N where { N x + N y = N $ x + y; N x * N y = N $ x * y; abs (N x) = N (abs x); signum (N x) = N (signum x); fromInteger n = N (fromInteger n); negate (N x) = N (negate x)}
2021-04-07 04:16:41 +0200 <yahb> olligobber:
2021-04-07 04:16:50 +0200 <olligobber> % runN (1 + 2 * 3 :: N)
2021-04-07 04:16:50 +0200 <yahb> olligobber: 7
2021-04-07 04:17:35 +0200 <glguy> % let x = N 10 * N 20 in (runN x :: Int, runN x :: Integer)
2021-04-07 04:17:35 +0200 <yahb> glguy: (200,200)
2021-04-07 04:17:36 +0200 <Axman6> % :t it
2021-04-07 04:17:36 +0200 <yahb> Axman6: (Int, Integer)
2021-04-07 04:17:50 +0200 <glguy> c-c-c-combo-breaker
2021-04-07 04:18:00 +0200 <Axman6> ... surprised that worked (even it if wasn't the expression I wanted the type for)
2021-04-07 04:18:01 +0200 <Axman6> ... surprised that worked (even it if wasn't the expression I wanted the type for)
2021-04-07 04:18:03 +0200 <Axman6> uh
2021-04-07 04:18:40 +0200 <olligobber> % let x = 2^65 in (runN x :: Int, runN x :: Integer)
2021-04-07 04:18:40 +0200 <yahb> olligobber: (0,36893488147419103232)
2021-04-07 04:19:09 +0200 <glguy> olligobber, maybe it would be less confusing if you made a struct for Num operations
2021-04-07 04:19:13 +0200 <glguy> and then reimplemented your type as
2021-04-07 04:19:28 +0200 <glguy> newtype N = N (forall a. NumOps a -> a)
2021-04-07 04:19:43 +0200 <olligobber> maybe
2021-04-07 04:20:03 +0200 <glguy> pull the type classes out of the mix; less magic
2021-04-07 04:20:17 +0200shachaf(~shachaf@unaffiliated/shachaf)
2021-04-07 04:20:18 +0200 <olligobber> yeah, but I like magic
2021-04-07 04:20:29 +0200 <glguy> Is the goal to understand or be amazed? :)
2021-04-07 04:20:30 +0200 <monochrom> olligobber: If you think of the suite of the methods of Num as a signature of an algebra, then "forall n. Num n => n" are expressions buildable from using only that signature. Similarly for Q.
2021-04-07 04:21:04 +0200 <olligobber> are there actually other Quasi instances? or does haskell just use Q and magic happens?
2021-04-07 04:21:07 +0200 <monochrom> perhaps s/from using only that signature/from only that algebra/
2021-04-07 04:21:53 +0200 <glguy> % :info Language.Haskell.TH.Syntax.Quasi
2021-04-07 04:21:53 +0200 <yahb> glguy: type Quasi :: (* -> *) -> Constraint; class (MonadIO m, MonadFail m) => Quasi m where; qNewName :: String -> m Name; qReport :: Bool -> String -> m (); qRecover :: m a -> m a -> m a; qLookupName :: Bool -> String -> m (Maybe Name); qReify :: Name -> m Info; qReifyFixity :: Name -> m (Maybe Language.Haskell.TH.Fixity); qReifyType :: Name -> m Language.Haskell.TH.Type; qReifyInstances :: Name
2021-04-07 04:22:06 +0200 <glguy> instance Quasi Q -- Defined in ‘Language.Haskell.TH.Syntax’
2021-04-07 04:22:06 +0200 <glguy> instance Quasi IO -- Defined in ‘Language.Haskell.TH.Syntax’
2021-04-07 04:22:35 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
2021-04-07 04:23:23 +0200 <monochrom> Another one: "forall r. r -> (Int -> r) -> r" is equivalent to Maybe Int
2021-04-07 04:23:31 +0200 <olligobber> oh, I know that one
2021-04-07 04:23:52 +0200 <monochrom> And I can convert that to a need-type-class form too.
2021-04-07 04:24:23 +0200 <monochrom> class M r where nothing :: r; just :: Int -> r
2021-04-07 04:24:28 +0200hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-04-07 04:24:35 +0200 <monochrom> Then I have "forall r. M r => r"
2021-04-07 04:24:58 +0200 <olligobber> huh
2021-04-07 04:24:58 +0200todda7(~torstein@athedsl-09242.home.otenet.gr) (Ping timeout: 240 seconds)
2021-04-07 04:25:38 +0200 <monochrom> This is what glguy was saying.
2021-04-07 04:25:54 +0200 <olligobber> oh...
2021-04-07 04:26:02 +0200 <olligobber> the magic is fading away
2021-04-07 04:26:17 +0200 <olligobber> but still, what Quasi monad does haskell use at compile time?
2021-04-07 04:26:34 +0200 <monochrom> As Feymann said, I don't think there is a conflict between understanding and amazement.
2021-04-07 04:26:52 +0200carlomagno(~cararell@148.87.23.11) (Quit: Leaving.)
2021-04-07 04:27:04 +0200 <monochrom> The equivalence between the class version and the parameter version is beautiful
2021-04-07 04:27:22 +0200 <glguy> olligobber, probably this one
2021-04-07 04:27:29 +0200 <glguy> compiler/typecheck/TcSplice.hs
2021-04-07 04:27:29 +0200 <glguy> 846:instance TH.Quasi TcM where
2021-04-07 04:27:36 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds)
2021-04-07 04:27:56 +0200 <olligobber> wait, so Num can be a type? like `forall a. ((a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> (a,a)) -> (Integer -> a) -> (a -> a)) -> a
2021-04-07 04:28:00 +0200 <glguy> or:libraries/ghci/GHCi/TH.hs
2021-04-07 04:28:01 +0200 <glguy> 163:instance TH.Quasi GHCiQ where
2021-04-07 04:28:29 +0200 <olligobber> aww, I was hoping it just used Q and somehow extracted what it needed from the universal type
2021-04-07 04:28:58 +0200 <monochrom> For Q and Quasi, what you're seeing is dependency inversion, i.e., both user and implementer code to the common interface Quasi, don't assume anything more concrete on either side (would be too much coupling)
2021-04-07 04:28:59 +0200 <olligobber> I don't get why it uses Q Exp instead of Quasi m => m Exp though
2021-04-07 04:29:21 +0200 <glguy> olligobber, actually they like the type synonym ExpQ
2021-04-07 04:29:41 +0200 <glguy> probably just because doing it the way you said would be needlessly noisy
2021-04-07 04:30:10 +0200 <monochrom> The newtype wrapper is more convenient when passing around as parameter.
2021-04-07 04:30:17 +0200 <olligobber> hmm
2021-04-07 04:30:57 +0200 <olligobber> I guess you rarely have a concrete type satisfying Quasi on the user's end, so using Q is more convenient
2021-04-07 04:31:02 +0200 <monochrom> Relieves user from needing RankNTypes when you have "Q a -> Q a -> ..." instead of "(forall m. ...) -> (forall m. ...) -> ..."
2021-04-07 04:31:27 +0200 <olligobber> but with a class like Num you have plenty of types satisfying Num, so N would be inconvenient
2021-04-07 04:31:50 +0200 <glguy> The issue with Num is that there are a bunch of non-Num operations you've likely to want to use
2021-04-07 04:32:01 +0200 <olligobber> I was imagining Q a -> Q a -> Q a would be replaced by Quasi m => m a -> m a -> m a, but I guess those types aren't identical
2021-04-07 04:32:09 +0200 <glguy> also it's more efficient to know what type things are being done at
2021-04-07 04:32:38 +0200 <glguy> they aren't identical, but practially the later would be what you'd need
2021-04-07 04:33:21 +0200 <olligobber> oh, and I made a useless type
2021-04-07 04:33:33 +0200 <olligobber> newtype S = S {runS :: forall s. Show s => s}
2021-04-07 04:33:40 +0200 <monochrom> :)
2021-04-07 04:33:41 +0200 <olligobber> I don't think it has any values
2021-04-07 04:33:59 +0200 <olligobber> except undefined
2021-04-07 04:34:04 +0200 <olligobber> and error stuff
2021-04-07 04:35:41 +0200RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 240 seconds)
2021-04-07 04:36:39 +0200 <olligobber> the thing is, something of type N -> N cannot be turned into Num n => n -> n
2021-04-07 04:36:50 +0200 <olligobber> so it's somehow stronger
2021-04-07 04:37:06 +0200 <monochrom> For "forall r. C r => r" to have values, you want the class C to have some methods being smart constructors.
2021-04-07 04:37:07 +0200 <olligobber> it guarantees that whatever you give it has to be a number and nothing but
2021-04-07 04:37:34 +0200 <monochrom> For example my M class has two smart constructors, nothing and just.
2021-04-07 04:37:41 +0200 <monochrom> For example Num has fromInteger.
2021-04-07 04:37:48 +0200 <olligobber> yeah
2021-04-07 04:38:17 +0200 <monochrom> You know what, since that's the only constructor, "forall n. Num n => n" is equivalent to Integer.
2021-04-07 04:38:33 +0200 <olligobber> try
2021-04-07 04:38:35 +0200 <olligobber> true
2021-04-07 04:38:49 +0200 <olligobber> so it's like the initial object in a way
2021-04-07 04:38:51 +0200 <glguy> monochrom, doesn't olligobber's 2^65 example show that that's not quite true?
2021-04-07 04:39:13 +0200 <glguy> it's the journey, not the destination
2021-04-07 04:39:33 +0200 <olligobber> nah, if you replace runN with fromInteger you get the same result
2021-04-07 04:39:47 +0200RusAlex(~Chel@unaffiliated/rusalex)
2021-04-07 04:40:03 +0200 <glguy> % let x = 2^65 in (runN x :: Int, runN x :: Integer)
2021-04-07 04:40:03 +0200 <yahb> glguy: (0,36893488147419103232)
2021-04-07 04:40:18 +0200 <glguy> so clearly x couldn't be represented with a mere Integer
2021-04-07 04:40:20 +0200 <olligobber> % let x = 2^65 in (fromInteger x :: Int, fromInteger x :: Integer)
2021-04-07 04:40:20 +0200 <yahb> olligobber: (0,36893488147419103232)
2021-04-07 04:40:26 +0200 <olligobber> looks the same to me
2021-04-07 04:41:28 +0200 <glguy> % let x = signum (2^65) in (runN x :: Int, runN x :: Integer)
2021-04-07 04:41:28 +0200 <yahb> glguy: (0,1)
2021-04-07 04:41:33 +0200 <glguy> ok, now do yours
2021-04-07 04:41:48 +0200 <olligobber> % let x = signum (2^65) in (fromInteger x :: Int, fromInteger x :: Integer)
2021-04-07 04:41:49 +0200 <yahb> olligobber: (1,1)
2021-04-07 04:41:52 +0200 <olligobber> ooh
2021-04-07 04:42:02 +0200 <olligobber> they are different
2021-04-07 04:42:18 +0200 <olligobber> that makes sense actually
2021-04-07 04:42:23 +0200 <olligobber> huh
2021-04-07 04:42:58 +0200 <olligobber> it feels kinda weird now that Integer isn't N...
2021-04-07 04:44:43 +0200 <olligobber> but yeah, now if I ask for a monoid, I could either mean `Monoid m => m -> ()` or `(forall m. Monoid m => m) -> ()`, and they are different things...
2021-04-07 04:44:55 +0200 <monochrom> Darn. I see.
2021-04-07 04:47:42 +0200 <monochrom> I should have applied what I learned formally, not intuitively.
2021-04-07 04:48:07 +0200 <glguy> data N = Plus N N | Minus N N | Times N N | Negate N | Abs N | Signum N | FromInteger Integer
2021-04-07 04:48:17 +0200 <monochrom> Yeah, that.
2021-04-07 04:48:20 +0200 <glguy> olligobber's N is a complicated way to write that
2021-04-07 04:48:47 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-04-07 04:49:04 +0200 <glguy> and since "The Haskell Report defines no laws for Num. [...]"
2021-04-07 04:49:11 +0200 <monochrom> Just mechanically translate the forall-type to ADT. Do not think. Do not pass Go. Do not collect $200.
2021-04-07 04:49:17 +0200 <glguy> we don't have to worry about any limitations in how to evaluate one of those :)
2021-04-07 04:53:30 +0200theDon(~td@94.134.91.185) (Ping timeout: 268 seconds)
2021-04-07 04:54:49 +0200theDon(~td@muedsl-82-207-238-149.citykom.de)
2021-04-07 04:55:18 +0200drbean_(~drbean@TC210-63-209-95.static.apol.com.tw) (Ping timeout: 240 seconds)
2021-04-07 04:56:38 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-07 04:56:38 +0200finn_elijaGuest29980
2021-04-07 04:56:38 +0200FinnElijafinn_elija
2021-04-07 04:57:40 +0200trcm(~trcm@103.153.243.79)
2021-04-07 04:57:58 +0200kiweun(~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-04-07 04:59:33 +0200Guest29980(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-04-07 05:00:28 +0200berberman_(~berberman@unaffiliated/berberman)
2021-04-07 05:01:22 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds)
2021-04-07 05:01:47 +0200myShoggoth(~myShoggot@75.164.73.93) (Remote host closed the connection)
2021-04-07 05:02:10 +0200myShoggoth(~myShoggot@75.164.73.93)
2021-04-07 05:03:18 +0200ddellacosta(~ddellacos@86.106.143.174) (Remote host closed the connection)
2021-04-07 05:03:29 +0200ddellacosta(~ddellacos@86.106.143.174)
2021-04-07 05:04:05 +0200ddellacosta(~ddellacos@86.106.143.174) (Remote host closed the connection)
2021-04-07 05:07:41 +0200myShoggoth(~myShoggot@75.164.73.93) (Ping timeout: 268 seconds)
2021-04-07 05:09:56 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 05:13:59 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-04-07 05:14:25 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 252 seconds)
2021-04-07 05:16:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 05:18:10 +0200 <olligobber> % newtype The c = The { some :: forall x. c x => x }
2021-04-07 05:18:10 +0200 <yahb> olligobber:
2021-04-07 05:18:26 +0200 <olligobber> % some (The $ 1 + 2 :: The Num)
2021-04-07 05:18:26 +0200 <yahb> olligobber: 3
2021-04-07 05:18:46 +0200 <olligobber> % some (The mempty :: The Monoid)
2021-04-07 05:18:46 +0200 <yahb> olligobber: ()
2021-04-07 05:18:51 +0200 <olligobber> awesome
2021-04-07 05:19:43 +0200 <Axman6> % % some (The mempty :: The Monoid) :: [Int]
2021-04-07 05:19:43 +0200 <yahb> Axman6: ; <interactive>:75:1: error: parse error on input `%'
2021-04-07 05:19:48 +0200 <Axman6> % some (The mempty :: The Monoid) :: [Int]
2021-04-07 05:19:48 +0200 <yahb> Axman6: []
2021-04-07 05:20:55 +0200 <monochrom> "free algebras for all" >:)
2021-04-07 05:21:01 +0200 <olligobber> yeah
2021-04-07 05:21:17 +0200 <monochrom> pun intended in "for all"
2021-04-07 05:21:18 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-04-07 05:24:54 +0200 <nshepperd> the monoid, the myth, the legend
2021-04-07 05:25:49 +0200 <olligobber> oh god
2021-04-07 05:25:58 +0200 <olligobber> % class (a x, b x) => (/\) a b x
2021-04-07 05:25:58 +0200 <yahb> olligobber: ; <interactive>:77:1: error:; * Potential superclass cycle for `/\'; one of whose superclass constraints is headed by a type variable: `a x'; Use UndecidableSuperClasses to accept this; * In the class declaration for `/\'
2021-04-07 05:26:16 +0200 <olligobber> % :set -XUndecidableSuperClasses
2021-04-07 05:26:16 +0200 <yahb> olligobber:
2021-04-07 05:26:20 +0200 <olligobber> % class (a x, b x) => (/\) a b x
2021-04-07 05:26:20 +0200 <yahb> olligobber:
2021-04-07 05:26:29 +0200 <olligobber> % instance (a x, b x) => (/\) a b x
2021-04-07 05:26:29 +0200 <yahb> olligobber:
2021-04-07 05:26:42 +0200 <olligobber> % some (The 1 :: The (Num /\ Show)) :: Int
2021-04-07 05:26:42 +0200 <yahb> olligobber: 1
2021-04-07 05:26:44 +0200cgfuh(~cgfuh@181.167.191.58) (Quit: WeeChat 3.0)
2021-04-07 05:27:15 +0200 <olligobber> % some (The $ 1 + read "1" :: The (Num /\ Read)) :: Int
2021-04-07 05:27:15 +0200 <yahb> olligobber: 2
2021-04-07 05:27:17 +0200 <Axman6> Using Fira Code in my terminal means that /\ shows up as a single ligature, and that makes me happy
2021-04-07 05:27:22 +0200 <olligobber> same
2021-04-07 05:27:37 +0200 <olligobber> actually my terminal doesn't do ligatures, but my text editor does
2021-04-07 05:29:11 +0200 <Axman6> get a better terminal
2021-04-07 05:29:20 +0200 <olligobber> but im lazy
2021-04-07 05:29:29 +0200 <Axman6> I understand
2021-04-07 05:30:21 +0200slycelote[m](slycelotem@gateway/shell/matrix.org/x-gzalokaoqcjbolje)
2021-04-07 05:30:51 +0200 <olligobber> % let x = (The $ 1 + read "1.5" :: The (Num /\ Read)) in (some x :: Float, some x :: Int)
2021-04-07 05:30:51 +0200 <yahb> olligobber: (2.5,*** Exception: Prelude.read: no parse
2021-04-07 05:30:58 +0200slycelote[m](slycelotem@gateway/shell/matrix.org/x-gzalokaoqcjbolje) ()
2021-04-07 05:31:05 +0200slycelote[m](slycelotem@gateway/shell/matrix.org/x-gzalokaoqcjbolje)
2021-04-07 05:31:19 +0200 <olligobber> cursed
2021-04-07 05:32:03 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-07 05:32:19 +0200kiweun(~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-04-07 05:34:08 +0200 <nshepperd> % instance (forall a. c a => Semigroup a) => Semigroup (The c) where { (<>) a b = The (a <> b) }
2021-04-07 05:34:08 +0200 <yahb> nshepperd: ; <interactive>:84:10: error:; * Variable `c' occurs more often in the constraint `c a' than in the instance head `Semigroup a'; (Use UndecidableInstances to permit this); * In the quantified constraint `forall a. c a => Semigroup a'; In the instance declaration for `Semigroup (The c)'
2021-04-07 05:34:51 +0200 <olligobber> wtf is that oh god
2021-04-07 05:35:04 +0200 <olligobber> % :set -XUndecidableInstances
2021-04-07 05:35:04 +0200 <yahb> olligobber:
2021-04-07 05:35:09 +0200 <olligobber> % instance (forall a. c a => Semigroup a) => Semigroup (The c) where { (<>) a b = The (a <> b) }
2021-04-07 05:35:10 +0200 <yahb> olligobber: ; <interactive>:86:10: error:; * Could not deduce: c (The c) arising from a use of `GHC.Base.$dmsconcat'; from the context: forall a. c a => Semigroup a bound by the instance declaration at <interactive>:86:10-60; * In the expression: GHC.Base.$dmsconcat @(The c); In an equation for `GHC.Base.sconcat': GHC.Base.sconcat = GHC.Base.$dmsconcat @(The c); In the instance declaration
2021-04-07 05:35:22 +0200 <nshepperd> wat
2021-04-07 05:35:27 +0200 <olligobber> infinite loop?
2021-04-07 05:35:46 +0200 <nshepperd> oh, typo
2021-04-07 05:36:00 +0200 <nshepperd> % instance (forall a. c a => Semigroup a) => Semigroup (The c) where { (<>) a b = The (some a <> some b) }
2021-04-07 05:36:00 +0200 <yahb> nshepperd: ; <interactive>:87:10: error:; * Could not deduce: c (The c) arising from a use of `GHC.Base.$dmsconcat'; from the context: forall a. c a => Semigroup a bound by the instance declaration at <interactive>:87:10-60; * In the expression: GHC.Base.$dmsconcat @(The c); In an equation for `GHC.Base.sconcat': GHC.Base.sconcat = GHC.Base.$dmsconcat @(The c); In the instance declaration
2021-04-07 05:36:43 +0200 <nshepperd> i dunno
2021-04-07 05:36:57 +0200 <olligobber> that typo should have caused a runtime (when we call <>) error rather than a compile time (when we define the instance) error
2021-04-07 05:37:13 +0200 <olligobber> I think because Semigroup a => Semigroup a it's infinite looping?
2021-04-07 05:37:47 +0200 <olligobber> % instance Semigroup (The Semigroup) where { a <> b = The (some a <> some b) }
2021-04-07 05:37:47 +0200 <yahb> olligobber:
2021-04-07 05:38:43 +0200 <olligobber> % :t (<>) @(The Semigroup)
2021-04-07 05:38:43 +0200 <yahb> olligobber: The Semigroup -> The Semigroup -> The Semigroup
2021-04-07 05:38:44 +0200 <nshepperd> seems like that quantified constraint is trickier than expected
2021-04-07 05:40:30 +0200myShoggoth(~myShoggot@75.164.73.93)
2021-04-07 05:40:44 +0200 <nshepperd> might need a separate class to extract the Semigroup constraint from a tree of /\ so that you can make semigroup instances for any such The
2021-04-07 05:41:15 +0200 <hololeap> % :t fmap @(The Functor)
2021-04-07 05:41:15 +0200 <yahb> hololeap: ; <interactive>:1:8: error:; * Expected kind `* -> *', but `The Functor' has kind `*'; * In the type `(The Functor)'; In the expression: fmap @(The Functor); <interactive>:1:12: error:; * Couldn't match kind `* -> *' with `*'; Expected kind `* -> Constraint', but `Functor' has kind `(* -> *) -> Constraint'; * In the first argument of `The', namely `Functor'; In the type `
2021-04-07 05:46:26 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-07 05:48:57 +0200 <olligobber> % newtype The1 c a = The1 { some1 :: forall f. c f => f x }
2021-04-07 05:48:57 +0200 <yahb> olligobber: ; <interactive>:91:55: error: Not in scope: type variable `x'
2021-04-07 05:49:03 +0200 <olligobber> % newtype The1 c a = The1 { some1 :: forall f. c f => f a }
2021-04-07 05:49:03 +0200 <yahb> olligobber:
2021-04-07 05:49:47 +0200 <olligobber> % :k The1 Functor
2021-04-07 05:49:48 +0200 <yahb> olligobber: * -> *
2021-04-07 05:49:50 +0200 <olligobber> hmm
2021-04-07 05:50:30 +0200 <olligobber> % instance Functor (The1 Functor) where fmap f x = The1 (fmap f (some x))
2021-04-07 05:50:30 +0200 <yahb> olligobber: ; <interactive>:94:69: error:; * Couldn't match expected type: The c0; with actual type: The1 Functor a; * In the first argument of `some', namely `x'; In the second argument of `fmap', namely `(some x)'; In the first argument of `The1', namely `(fmap f (some x))'; * Relevant bindings include; x :: The1 Functor a (bound at <interactive>:94:46); f ::
2021-04-07 05:50:48 +0200 <olligobber> % instance Functor (The1 Functor) where fmap f x = The1 (fmap f (some1 x))
2021-04-07 05:50:48 +0200 <yahb> olligobber:
2021-04-07 05:50:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-04-07 05:51:02 +0200 <olligobber> % :t fmap @(The1 Functor)
2021-04-07 05:51:02 +0200 <yahb> olligobber: (a -> b) -> The1 Functor a -> The1 Functor b
2021-04-07 05:51:07 +0200 <olligobber> lol
2021-04-07 05:51:23 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 260 seconds)
2021-04-07 05:53:05 +0200s00pcan(~chris@107.181.165.217)
2021-04-07 05:53:49 +0200 <olligobber> well, if anyone asks for a functor that isn't applicative, I now have the worst answer
2021-04-07 05:57:40 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-04-07 05:57:59 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-04-07 05:58:18 +0200alx741(~alx741@181.196.68.238) (Quit: alx741)
2021-04-07 05:58:34 +0200Wuzzy(~Wuzzy@p5790e46d.dip0.t-ipconnect.de) (Quit: Wuzzy)
2021-04-07 05:58:58 +0200jj2021(~JJ@072-181-126-124.res.spectrum.com)
2021-04-07 05:59:03 +0200stree(~stree@68.36.8.116)
2021-04-07 06:03:11 +0200 <olligobber> % fmap @(The1 Functor) show $ The1 $ pure 1 :: [String]
2021-04-07 06:03:11 +0200 <yahb> olligobber: ; <interactive>:97:1: error:; * Couldn't match expected type: [String]; with actual type: The1 Functor String; * In the expression: fmap @(The1 Functor) show $ The1 $ pure 1 :: [String]; In an equation for `it': it = fmap @(The1 Functor) show $ The1 $ pure 1 :: [String]
2021-04-07 06:03:23 +0200 <olligobber> % some1 $ fmap @(The1 Functor) show $ The1 $ pure 1 :: [String]
2021-04-07 06:03:23 +0200 <yahb> olligobber: ; <interactive>:98:44: error:; * Could not deduce (Applicative f) arising from a use of `pure'; from the context: Functor f; bound by a type expected by the context:; forall (f :: * -> *). Functor f => f Integer; at <interactive>:98:44-49; Possible fix:; add (Applicative f) to the context of; a type expected by the context:; fo
2021-04-07 06:03:49 +0200 <olligobber> % some1 $ fmap @(The1 Functor) show (The1 $ pure 1 :: The1 Applicative) :: [String]
2021-04-07 06:03:49 +0200 <yahb> olligobber: ; <interactive>:99:53: error:; * Expecting one more argument to `The1 Applicative'; Expected a type, but `The1 Applicative' has kind `* -> *'; * In an expression type signature: The1 Applicative; In the third argument of `fmap', namely `(The1 $ pure 1 :: The1 Applicative)'; In the second argument of `($)', namely `fmap @(The1 Functor) show (The1 $ pure 1 :: The1 Applicative)'
2021-04-07 06:03:57 +0200 <olligobber> % some1 $ fmap @(The1 Functor) show (The1 $ pure 1 :: The1 Applicative Int) :: [String]
2021-04-07 06:03:57 +0200 <yahb> olligobber: ; <interactive>:100:36: error:; * Couldn't match type `Applicative' with `Functor'; Expected: The1 Functor Int; Actual: The1 Applicative Int; * In the third argument of `fmap', namely `(The1 $ pure 1 :: The1 Applicative Int)'; In the second argument of `($)', namely `fmap @(The1 Functor) show (The1 $ pure 1 :: The1 Applicative Int)'; In the expression: some1 $ fmap @(The
2021-04-07 06:04:28 +0200 <olligobber> % some1 $ some1 $ fmap @(The1 Functor) show (The1 (The1 $ pure 1 :: The1 Applicative Int)) :: [String]
2021-04-07 06:04:28 +0200 <yahb> olligobber: ; <interactive>:101:1: error:; * Could not deduce: c0 [] arising from a use of `some1'; * In the expression: some1 $ some1 $ fmap @(The1 Functor) show (The1 (The1 $ pure 1 :: The1 Applicative Int)) :: [String]; In an equation for `it': it = some1 $ some1 $ fmap @(The1 Functor) show (The1 (The1 $ pure 1 :: The1 Applicative Int)) :: [String]; <interactive>:101:9: error:; * Ambiguous typ
2021-04-07 06:04:44 +0200 <olligobber> lol
2021-04-07 06:05:22 +0200 <olligobber> seems The1 Functor is kinda useless?
2021-04-07 06:06:28 +0200 <olligobber> yeah, you can only give fmap @(The1 Functor) values if they exist for all functors, but no values exist for all functors, since Const Void is a functor
2021-04-07 06:06:32 +0200 <olligobber> great
2021-04-07 06:08:00 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-07 06:09:23 +0200average(uid473595@gateway/web/irccloud.com/x-nfxnbiiogmdlamqs) (Quit: Connection closed for inactivity)
2021-04-07 06:09:53 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-07 06:10:41 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-04-07 06:11:06 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-04-07 06:14:12 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 246 seconds)
2021-04-07 06:14:26 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 06:15:16 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-04-07 06:18:07 +0200 <gnumonic> Are there any libraries that allow for (for lack of a better description) "type-level records?" I'm working with singletons and kind-indexed GADTs and the number of type(kind) parameters is getting kinda ugly
2021-04-07 06:19:23 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-04-07 06:19:54 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-07 06:22:31 +0200 <gnumonic> I guess I could just use nested promoted tuples but that's like... also kind of ugly.
2021-04-07 06:23:03 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-nfsshumoaduyxswb) (Quit: Connection closed for inactivity)
2021-04-07 06:24:31 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-fmeoowlskniejelz) (Quit: Connection closed for inactivity)
2021-04-07 06:24:33 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-04-07 06:24:43 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-07 06:24:43 +0200justanotheruser(justanothe@gateway/vpn/protonvpn/justanotheruser)
2021-04-07 06:27:05 +0200Eprom(~Eprom@185.169.233.10) (Remote host closed the connection)
2021-04-07 06:27:35 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-07 06:31:44 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-04-07 06:34:24 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-04-07 06:41:59 +0200molehillish(~molehilli@2600:8800:8d06:1800:6d47:e2d7:e78c:8f4)
2021-04-07 06:53:55 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2021-04-07 06:54:53 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 06:57:29 +0200 <hololeap> gnumonic: have you looked at the vinyl package?
2021-04-07 06:57:47 +0200 <hololeap> i haven't really used it but that sounds like its synopsis
2021-04-07 06:58:16 +0200 <Axman6> vinyl is good for records
2021-04-07 06:59:02 +0200tanuki(~quassel@173.168.178.1) (Ping timeout: 246 seconds)
2021-04-07 06:59:16 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-04-07 07:00:05 +0200 <hololeap> i got lost looking at the docs, tbh, ARec vs Rec... i got lost in they type shenanigans
2021-04-07 07:00:13 +0200Alleria(~textual@2603-7000-3040-0000-c5e8-81b5-bd49-f2bd.res6.spectrum.com)
2021-04-07 07:00:36 +0200AlleriaGuest36071
2021-04-07 07:03:50 +0200 <hololeap> and i still don't know what a "universe" is
2021-04-07 07:04:39 +0200Guest36071(~textual@2603-7000-3040-0000-c5e8-81b5-bd49-f2bd.res6.spectrum.com) (Ping timeout: 260 seconds)
2021-04-07 07:05:10 +0200 <hololeap> is that anything before the final (->) at the type level?
2021-04-07 07:06:54 +0200 <hololeap> like everything inside the first level of parens: (*) -> * or (* -> *) -> * or ((* -> *) -> *) -> *
2021-04-07 07:07:52 +0200 <gnumonic> Hm. That might work. I'll have to play with it and see. I don't want kind-indexed records of values though (which is what vinyl looks like from the examples but it still might work). I need, uh, like kind-indexed records of kinds? My use case is sorta weird I think
2021-04-07 07:10:25 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 07:10:34 +0200 <gnumonic> Right now i have things like: data SomeThing :: Property1 -> Property2 -> Property3 -> Property 4 (etc) -> Type and it's suuuppeerr annoying if I find I need to add a property. And the number of SingI constraints I have to type is also cumbersome
2021-04-07 07:11:30 +0200 <gnumonic> It'd be nice to just have one composite property that contains all the other ones that I can type-level-lens into. It's not essential but I'd like my type signatures to not be twice as long as my functions :P
2021-04-07 07:12:10 +0200tanuki(~quassel@173.168.178.1)
2021-04-07 07:12:26 +0200Kaiepi(~Kaiepi@47.54.252.148) (Ping timeout: 240 seconds)
2021-04-07 07:13:07 +0200lawt(~lawt@c-73-151-3-92.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2021-04-07 07:15:06 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 07:15:12 +0200 <hololeap> gnumonic: what is a "Property"? what kind does it have?
2021-04-07 07:17:51 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-04-07 07:18:58 +0200 <gnumonic> Well, each of the properties has a different kind. I might as well explain the use case: I'm making an engine for a trading-card game, and the "properties" are attributes of the cards (spell/creature/etc). The point of all this is to write type-level predicates so the compiler yells at me if I try to make a card that "doesn't make sense"
2021-04-07 07:20:33 +0200aVikingTrex(789a2138@120.154.33.56)
2021-04-07 07:20:55 +0200 <hololeap> can you give an example of this? this sounds like something you could do safely at a lower level
2021-04-07 07:22:24 +0200 <hololeap> i'm not sure GHC supports a list of kinds, which is what i think you would need to implement this
2021-04-07 07:22:45 +0200tanuki(~quassel@173.168.178.1) (Ping timeout: 252 seconds)
2021-04-07 07:23:02 +0200jj2021(~JJ@072-181-126-124.res.spectrum.com) (Remote host closed the connection)
2021-04-07 07:23:20 +0200 <hololeap> so going down a level might be what you need
2021-04-07 07:26:28 +0200 <hololeap> if you're looking to tag a card with a type-level string, this is easy. data Card (n :: Symbol) where ...
2021-04-07 07:26:39 +0200 <hololeap> i'm not sure what more you would need at the type level
2021-04-07 07:27:39 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 07:31:15 +0200myShoggoth(~myShoggot@75.164.73.93) (Ping timeout: 260 seconds)
2021-04-07 07:32:08 +0200aishstha(1b2212e8@27.34.18.232)
2021-04-07 07:32:28 +0200 <aishstha> hi
2021-04-07 07:32:34 +0200 <hololeap> but even this gets weird if you need a collection of cards with different names
2021-04-07 07:32:39 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-04-07 07:33:05 +0200 <aishstha> which is the best resource to get started with haskell learning? any recommendation
2021-04-07 07:33:21 +0200 <hololeap> @where lyah
2021-04-07 07:33:21 +0200 <lambdabot> http://www.learnyouahaskell.com/
2021-04-07 07:33:22 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-07 07:33:33 +0200 <hololeap> that's a good starting place for most people
2021-04-07 07:34:03 +0200 <hololeap> if you have a specialized background, feel free to let us know
2021-04-07 07:34:59 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:ccca:5598:c03f:71de) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 07:36:46 +0200dpl(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 240 seconds)
2021-04-07 07:37:30 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-04-07 07:39:36 +0200zaquest(~notzaques@5.128.210.178)
2021-04-07 07:40:48 +0200b0o(~b0o@178.239.168.171)
2021-04-07 07:42:52 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-07 07:47:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 07:48:32 +0200 <aishstha> Thanks @hololeap ! I have 4 years of experience in javascript programming language
2021-04-07 07:49:00 +0200Varis(~Tadas@unaffiliated/varis)
2021-04-07 07:49:46 +0200 <aishstha> what could be haskell porject for beginner like me ? in haskell
2021-04-07 07:49:55 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 260 seconds)
2021-04-07 07:50:07 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-04-07 07:50:35 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-04-07 07:50:58 +0200 <aishstha> 1. from which I can learn from and
2021-04-07 07:50:59 +0200 <aishstha> 2. create on my own. for example in JS, ppl start with todo application
2021-04-07 07:51:10 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-04-07 07:51:33 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-07 07:53:07 +0200 <wrunt> aishstha: since you know js, a good starting point may be to write a backend for a simple web application (such as a todo application) in haskell, with the frontend in html/js.
2021-04-07 07:55:01 +0200 <wrunt> later you can rewrite the frontend in haskell too, compiling to js with ghcjs :)
2021-04-07 07:56:12 +0200lawt(~lawt@c-73-151-3-92.hsd1.ca.comcast.net)
2021-04-07 07:56:45 +0200 <aishstha> wow, didn't knew that we would be able to build API from Haskell and write frontend in haskell. I'll surely work on API for now. thankyou so much for heads up!:D
2021-04-07 07:58:09 +0200 <hololeap> aishstha: this is probably a controversial opinion, but you might want to try Elm as a bridge between Javascript and Haskell
2021-04-07 07:58:15 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-07 07:58:33 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-04-07 07:58:41 +0200 <wrunt> aishstha: No problem. Yes, I'm playing around with exactly that now, using Obelisk (https://github.com/obsidiansystems/obelisk). It's nice to be able to share the same data structures on the front and back ends. I wouldn't recommend starting out with Obelisk though, as it's the deep end of the pool.
2021-04-07 08:00:23 +0200 <aishstha> thankyou both:)
2021-04-07 08:01:48 +0200 <aVikingTrex> I am tossing up between Haskell or FSharp for making a mobile app, is there any libraries that allow for this in haskell?
2021-04-07 08:04:54 +0200 <wrunt> well the abovementioned obelisk does compile to Android and iOS apps using webkit (as well as having an AWS deployment option), but that's not a native mobile app.
2021-04-07 08:05:26 +0200mariatsji(~mariatsji@155.84-234-177.customer.lyse.net)
2021-04-07 08:06:15 +0200 <aVikingTrex> Oh interesting! Ill take a look
2021-04-07 08:06:41 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-07 08:06:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-07 08:06:50 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-07 08:08:10 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 08:08:44 +0200 <Axman6> native enough though, imo
2021-04-07 08:09:15 +0200 <mariatsji> anyone know how to tell stack that an extra-dep (tar.gz) has some haddock in it?
2021-04-07 08:11:25 +0200 <aVikingTrex> What is the difference between native and 'native enough'? I was thinking that not being a native app just means it was a web app?
2021-04-07 08:11:36 +0200 <Axman6> aishstha: I would not recommend trying to jump into making some sort of app right away when learning Haskell, there's a lot you need to learn (and unlearn) which are important before getting frustrated that Haskell isn't Language X that yyou've used. Haskell is _extremely_ different to JS
2021-04-07 08:12:34 +0200shad0w_(a0ca25b1@160.202.37.177)
2021-04-07 08:12:36 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-04-07 08:12:40 +0200 <shad0w_> Hi
2021-04-07 08:12:48 +0200 <aishstha> okay Axman6
2021-04-07 08:12:52 +0200 <Axman6> Hello shad0w_
2021-04-07 08:13:03 +0200 <wrunt> aVikingTrex: it's a native app that runs an embedded browser that runs your web app
2021-04-07 08:13:05 +0200 <shad0w_> where can i go to find which GHC version uses what version of Base ?
2021-04-07 08:13:43 +0200 <wrunt> aVikingTrex: I'm unclear at this early stage whether obelisk's backend is on the phone or on your web app server though (or whether both are possible).
2021-04-07 08:14:09 +0200 <Axman6> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history looks like it has what you want shad0w_
2021-04-07 08:14:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-07 08:14:34 +0200xff0x(~xff0x@2001:1a81:52ae:6200:6f5d:6ce6:85f6:1960) (Ping timeout: 258 seconds)
2021-04-07 08:14:39 +0200 <aVikingTrex> wrunt Sounds electron-y
2021-04-07 08:15:14 +0200 <aVikingTrex> Just having a read through the read.me now anyway. Looks like a cool project.
2021-04-07 08:15:34 +0200 <shad0w_> Axman6: perfect.
2021-04-07 08:15:39 +0200 <shad0w_> Thanks alot.
2021-04-07 08:16:02 +0200 <wrunt> aVikingTrex: yeah, but see my caveat about it being the deep end. It uses some fancy type-level stuff, is pretty new, and has very little documentation.
2021-04-07 08:16:07 +0200 <Axman6> all good
2021-04-07 08:16:22 +0200xff0x(~xff0x@2001:1a81:52c6:f900:b4b3:1e00:bd22:9f8d)
2021-04-07 08:18:00 +0200 <aVikingTrex> wrunt Thanks for the heads up. I may go down the fsharp route for now as its more familiar territory. On a side note, ive finished the book "Get Programming with Haskell" and I have worked through the "fp-course" on github. Any recommendations on where to learn from next?
2021-04-07 08:18:02 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-04-07 08:18:30 +0200 <Axman6> time to make some apps!
2021-04-07 08:19:11 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-07 08:19:25 +0200 <Axman6> sounds like you've reached the point where you'll run into problems specific to whatever type of app you decide to make, and something like this channel would be a better resource to guide your learning than any particular resource
2021-04-07 08:20:19 +0200stree(~stree@68.36.8.116)
2021-04-07 08:20:34 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-07 08:20:34 +0200finn_elijaGuest46027
2021-04-07 08:20:34 +0200FinnElijafinn_elija
2021-04-07 08:20:47 +0200 <aVikingTrex> Axman6: Time to make some apps, indeed =D
2021-04-07 08:21:14 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-04-07 08:21:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-04-07 08:22:27 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-04-07 08:22:45 +0200Guest46027(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-04-07 08:25:04 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-04-07 08:29:57 +0200mariatsji(~mariatsji@155.84-234-177.customer.lyse.net) ()
2021-04-07 08:30:02 +0200shad0w_(a0ca25b1@160.202.37.177) (Ping timeout: 240 seconds)
2021-04-07 08:30:37 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-04-07 08:31:31 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2021-04-07 08:31:46 +0200LKoen(~LKoen@65.250.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.”)
2021-04-07 08:34:06 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-07 08:34:52 +0200v01d4lph4(~v01d4lph4@223.177.183.124)
2021-04-07 08:34:59 +0200v01d4lph4(~v01d4lph4@223.177.183.124) (Remote host closed the connection)
2021-04-07 08:35:33 +0200v01d4lph4(~v01d4lph4@223.177.183.124)
2021-04-07 08:36:39 +0200ericsagn1(~ericsagne@2405:6580:0:5100:b937:4ffa:f3c4:aca7) (Ping timeout: 246 seconds)
2021-04-07 08:42:39 +0200ddellacosta(~ddellacos@86.106.143.109)
2021-04-07 08:44:02 +0200aishstha(1b2212e8@27.34.18.232) (Ping timeout: 240 seconds)
2021-04-07 08:44:20 +0200molehillish(~molehilli@2600:8800:8d06:1800:6d47:e2d7:e78c:8f4) (Remote host closed the connection)
2021-04-07 08:45:31 +0200mkDoku(~TheMule@aftr-37-201-195-134.unity-media.net)
2021-04-07 08:47:08 +0200molehillish(~molehilli@2600:8800:8d06:1800:6d47:e2d7:e78c:8f4)
2021-04-07 08:47:19 +0200ddellacosta(~ddellacos@86.106.143.109) (Ping timeout: 260 seconds)
2021-04-07 08:49:13 +0200ericsagn1(~ericsagne@2405:6580:0:5100:ef73:96e:9562:7f87)
2021-04-07 08:53:30 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-hmqewdshtgoiujbp)
2021-04-07 08:55:09 +0200Kaiepi(~Kaiepi@47.54.252.148)
2021-04-07 09:00:07 +0200 <solvr> .
2021-04-07 09:00:11 +0200ajc(~ajc@69.231.232.79) (Ping timeout: 240 seconds)
2021-04-07 09:03:37 +0200michalz(~user@185.246.204.39)
2021-04-07 09:05:20 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 265 seconds)
2021-04-07 09:05:46 +0200dpl(~dpl@77-121-78-163.chn.volia.net)
2021-04-07 09:07:10 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-07 09:07:22 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-04-07 09:07:46 +0200kiltzman(~k1ltzman@195.189.99.96) (Ping timeout: 240 seconds)
2021-04-07 09:07:46 +0200RoguePointer(~jigen@unaffiliated/roguepointer) (Ping timeout: 240 seconds)
2021-04-07 09:08:03 +0200kiltzman(~k1ltzman@195.189.99.96)
2021-04-07 09:08:43 +0200dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-04-07 09:08:45 +0200RoguePointer(~jigen@94.177.235.178)
2021-04-07 09:08:45 +0200RoguePointer(~jigen@94.177.235.178) (Changing host)
2021-04-07 09:08:45 +0200RoguePointer(~jigen@unaffiliated/roguepointer)
2021-04-07 09:09:31 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-04-07 09:11:17 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 09:11:17 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-gutayqhfktjbgela)
2021-04-07 09:11:22 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-07 09:11:55 +0200MichaelFreeman(2d136c0c@45-19-108-12.lightspeed.tukrga.sbcglobal.net)
2021-04-07 09:12:51 +0200 <MichaelFreeman> Hi. I tried to save a file in VS Code as Haskell, and it became .hsig file. How do I make it save as .hs file?
2021-04-07 09:13:24 +0200 <Axman6> Save As and rename it, or in the file list (cmd-B) right click on it and rename it
2021-04-07 09:14:05 +0200 <Uniaika> yeah it's a Backpack stuff
2021-04-07 09:14:50 +0200 <MichaelFreeman> So it is normal it saves as hsig and I should just manually rename it to hs?
2021-04-07 09:15:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 09:15:22 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-04-07 09:15:29 +0200 <Axman6> I wouldn't say normal, I would say annoying - was the language set to Haskell?
2021-04-07 09:15:46 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-04-07 09:15:49 +0200 <MichaelFreeman> Yes, when I save I chose "Haskell". It's np, I was just wondering if I set things up wrong
2021-04-07 09:16:06 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 09:17:10 +0200 <Uniaika> well that's weird, because .hsig files serve a very specific purpose
2021-04-07 09:17:15 +0200 <Uniaika> they're not "normal code"
2021-04-07 09:17:35 +0200vs^(vs@ip98-184-89-2.mc.at.cox.net)
2021-04-07 09:18:03 +0200Sornaensis(~Sornaensi@79.142.232.102)
2021-04-07 09:18:04 +0200Varis(~Tadas@unaffiliated/varis)
2021-04-07 09:18:15 +0200 <MichaelFreeman> I see. Maybe I messed up on my installation then. I go to File>Save As>Save as type: Haskell. Then result is .hsig file. I see the option for Literate Haskell and that gets me .lhs file. None of the options I found result in .hs file
2021-04-07 09:18:23 +0200thc202(~thc202@unaffiliated/thc202)
2021-04-07 09:19:01 +0200 <Axman6> nah that just seems to be what VS code does, must be a problem with the Haskell extension
2021-04-07 09:19:37 +0200 <MichaelFreeman> Ah okay ty for the explanation:)  it was driving me nuts so I had to join IRC lol
2021-04-07 09:20:55 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 260 seconds)
2021-04-07 09:21:23 +0200ddellacosta(~ddellacos@86.106.143.57)
2021-04-07 09:21:35 +0200 <Uniaika> MichaelFreeman: open a ticker at the extension's issue tracker :)
2021-04-07 09:21:39 +0200 <Uniaika> it's not you
2021-04-07 09:24:45 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-04-07 09:26:42 +0200ddellacosta(~ddellacos@86.106.143.57) (Ping timeout: 268 seconds)
2021-04-07 09:27:31 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-04-07 09:27:38 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Client Quit)
2021-04-07 09:27:50 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-04-07 09:28:08 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 09:29:38 +0200raym(~ray@45.64.220.78)
2021-04-07 09:29:42 +0200aVikingTrex(789a2138@120.154.33.56) (Ping timeout: 240 seconds)
2021-04-07 09:31:30 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 09:32:06 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 09:32:43 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 09:32:47 +0200typetetris(uid275937@gateway/web/irccloud.com/x-remmslgdlkipcjiq)
2021-04-07 09:32:56 +0200kiweun(~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-04-07 09:34:10 +0200kmein(~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
2021-04-07 09:34:28 +0200kmein(~weechat@static.173.83.99.88.clients.your-server.de)
2021-04-07 09:34:34 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 09:35:02 +0200motersen_motersen
2021-04-07 09:37:19 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 09:37:43 +0200kiweun(~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds)
2021-04-07 09:37:52 +0200molehillish(~molehilli@2600:8800:8d06:1800:6d47:e2d7:e78c:8f4) (Remote host closed the connection)
2021-04-07 09:38:06 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 09:39:24 +0200srk(~sorki@unaffiliated/srk)
2021-04-07 09:40:54 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-07 09:41:21 +0200 <solvr> In Haskell can I model a change to a big array by putting a small array of "changes" in front of it, which shadows entries in the big array
2021-04-07 09:41:28 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 09:42:47 +0200 <Uniaika> solvr: if your "array" allows for duplicates, it's not a good idea :P
2021-04-07 09:42:48 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 09:43:38 +0200 <solvr> Uniaika, let's say I have a list of 1 million items.
2021-04-07 09:43:48 +0200 <solvr> Uniaika, I also have a map where I map index > value
2021-04-07 09:44:10 +0200 <solvr> Uniaika when I need to read a value I first check the map. If it's there I read from there, if not, I go back to the array
2021-04-07 09:44:13 +0200 <solvr> the list
2021-04-07 09:44:19 +0200haskellstudent(~quassel@213-225-9-45.nat.highway.a1.net)
2021-04-07 09:44:32 +0200 <solvr> Uniaika, this allows me to keep changes cheap without redoing the whole list
2021-04-07 09:44:52 +0200 <Uniaika> are you describing a cache?
2021-04-07 09:45:23 +0200 <solvr> Uniaika it has similar topology as a cache, but accessing the main array is not slower. Rather, it just has "old" state
2021-04-07 09:45:26 +0200 <solvr> That's not valid
2021-04-07 09:45:38 +0200 <solvr> The updates are encoded in the map
2021-04-07 09:46:05 +0200 <Uniaika> btw, you're using "array" and "list" interchangeably, but I assume you realise the differences between those two data-structures ?
2021-04-07 09:46:12 +0200 <solvr> Sorry, habit
2021-04-07 09:46:36 +0200 <Uniaika> no need to be sorry, I just wanted more precisions :P
2021-04-07 09:46:50 +0200 <Uniaika> 1 million items in an array can be expensive ;)
2021-04-07 09:47:00 +0200 <solvr> :)
2021-04-07 09:48:11 +0200MrRedstoner(c29af484@194.154.244.132)
2021-04-07 09:49:10 +0200 <MichaelFreeman> Uniaika Sorry I am a complete noob. Where do I type do this in VS Code? Execute in the root of your project the command `haskell-language-server --debug .`
2021-04-07 09:49:42 +0200yoneda(~mike@193.206.102.122) (Quit: leaving)
2021-04-07 09:49:45 +0200 <Uniaika> solvr: do you wish to keep an initial state and only encode / store changes then? or just periodically update the array and keep the map as a fresher source of data?
2021-04-07 09:50:05 +0200 <Uniaika> MichaelFreeman: https://github.com/haskell/vscode-haskell/issues
2021-04-07 09:50:29 +0200 <solvr> Uniaika, essentially I'm trying to avoid modify/rebuild the array frequently.
2021-04-07 09:51:02 +0200 <MrRedstoner> So I just installed haskell per https://www.haskell.org/platform/windows.html and running "cabal v2-repl" in a fresh cmd.exe I get "cabal.exe: The program 'ghc' version >=7.0.1 is required but it could not be found." Thing is, in C:\ProgramData\chocolatey\bin\ where the cabal executable is there are also ghc-9.0.1.exe and ghci-9.0.1.exe and the
2021-04-07 09:51:03 +0200neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-04-07 09:51:03 +0200 <MrRedstoner> directory is in PATH. So I have no idea why it doesn't work for me
2021-04-07 09:51:06 +0200 <solvr> Uniaika, also probably keep it around for other parallel code reading its state as-is without the new "transactional" changes
2021-04-07 09:51:31 +0200 <MichaelFreeman> Ty I was in the wrong place ^^
2021-04-07 09:55:54 +0200 <Uniaika> solvr: ever thought of doing some hash consing and having a pointer table?
2021-04-07 09:56:00 +0200kritzefitz(~kritzefit@p548c9398.dip0.t-ipconnect.de)
2021-04-07 09:56:14 +0200ddellacosta(~ddellacos@86.106.143.148)
2021-04-07 09:58:41 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 09:59:38 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 10:00:50 +0200v01d4lph4(~v01d4lph4@223.177.183.124) (Remote host closed the connection)
2021-04-07 10:00:52 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 10:01:16 +0200ddellacosta(~ddellacos@86.106.143.148) (Ping timeout: 260 seconds)
2021-04-07 10:01:49 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 10:01:49 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
2021-04-07 10:03:09 +0200mkDoku(~TheMule@aftr-37-201-195-134.unity-media.net) (Quit: Lost terminal)
2021-04-07 10:03:58 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-04-07 10:04:00 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 10:04:08 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 10:04:10 +0200gitgood(~gitgood@80-44-12-39.dynamic.dsl.as9105.com) (Remote host closed the connection)
2021-04-07 10:05:59 +0200Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-04-07 10:07:08 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-07 10:08:39 +0200Codaraxis_(~Codaraxis@141.98.255.144) (Ping timeout: 265 seconds)
2021-04-07 10:09:33 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-04-07 10:10:22 +0200MrRedstoner(c29af484@194.154.244.132) (Quit: Connection closed)
2021-04-07 10:13:14 +0200 <solvr> Uniaika, probably
2021-04-07 10:14:46 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-04-07 10:15:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-04-07 10:16:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 10:17:09 +0200v01d4lph4(~v01d4lph4@223.177.183.124)
2021-04-07 10:17:59 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 10:18:16 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 10:21:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-07 10:21:38 +0200malumore(~malumore@151.62.125.43)
2021-04-07 10:21:59 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 10:22:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 10:22:06 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 10:22:11 +0200v01d4lph4(~v01d4lph4@223.177.183.124) (Ping timeout: 268 seconds)
2021-04-07 10:23:41 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds)
2021-04-07 10:24:36 +0200 <solvr> Can I have multiple independent logical Haskell "processes" that communicate with each other using monads etc.?
2021-04-07 10:24:52 +0200 <solvr> I mean I can literally have multiple processes, but I mean something more like Erlang
2021-04-07 10:26:43 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-04-07 10:27:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-04-07 10:27:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 10:28:17 +0200stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-04-07 10:29:15 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-04-07 10:30:09 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 10:30:11 +0200 <dibblego> Uniaika: advise, ignore
2021-04-07 10:31:08 +0200v01d4lph4(~v01d4lph4@223.177.183.124)
2021-04-07 10:31:42 +0200fendor(~fendor@178.165.131.170.wireless.dyn.drei.com)
2021-04-07 10:32:11 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 10:33:20 +0200 <Uniaika> hahaha
2021-04-07 10:33:34 +0200 <Uniaika> solvr: no you can't have something like Erlang, you'll have to do things more manually
2021-04-07 10:33:48 +0200 <Uniaika> I personally found UnagiChan very nice (all things considered)
2021-04-07 10:33:50 +0200 <Uniaika> dibblego: :P
2021-04-07 10:33:58 +0200jluttine(~jluttine@85-23-66-6.bb.dnainternet.fi) (Ping timeout: 240 seconds)
2021-04-07 10:34:09 +0200 <dibblego> we had a round of this inanity earlier today — I'll ban if it continues
2021-04-07 10:35:07 +0200 <Uniaika> ah
2021-04-07 10:35:08 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-04-07 10:35:10 +0200 <Uniaika> very well then
2021-04-07 10:35:16 +0200 <dmwit> Yes, you can store an array and its changes. The cost is that indexing becomes O(changelog length). Yes, you can have multiple independent logical "processes", it is called threading and it's a newish technology, only been around about 30 years or so.
2021-04-07 10:35:53 +0200lawt(~lawt@c-73-151-3-92.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-04-07 10:35:58 +0200kuribas(~user@ptr-25vy0i7wi7nt82wi9fp.18120a2.ip6.access.telenet.be)
2021-04-07 10:36:30 +0200b0o(~b0o@178.239.168.171) (Remote host closed the connection)
2021-04-07 10:37:29 +0200vv8(~egp_@128-71-69-136.broadband.corbina.ru) (Remote host closed the connection)
2021-04-07 10:38:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-04-07 10:38:24 +0200supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-04-07 10:38:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 10:41:01 +0200stree(~stree@68.36.8.116)
2021-04-07 10:41:52 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 10:43:34 +0200guilhermeblanco(~guilherme@185.204.1.185)
2021-04-07 10:48:30 +0200 <solvr> dminuoso, threading isn't what I had in mind.
2021-04-07 10:48:39 +0200 <solvr> dmwit *
2021-04-07 10:49:39 +0200__minoru__shirae(~shiraeesh@5.101.59.224)
2021-04-07 10:50:28 +0200CrabMan(phi-matrix@gateway/shell/matrix.org/x-lhuyyowodqgbbhrc) (Ping timeout: 248 seconds)
2021-04-07 10:50:28 +0200toasty_avocado[m(toastyavoc@gateway/shell/matrix.org/x-fodvrwdskrlczeao) (Ping timeout: 248 seconds)
2021-04-07 10:50:28 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-uqhhgyipieuslvmq) (Ping timeout: 248 seconds)
2021-04-07 10:50:28 +0200cbarrett(sid192934@adium/cbarrett) (Ping timeout: 248 seconds)
2021-04-07 10:50:28 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-cghskpdzyxvcqslm) (Ping timeout: 248 seconds)
2021-04-07 10:50:38 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-juvammsyvplemvln)
2021-04-07 10:50:59 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-rjgjrlilmkubkxmw) (Ping timeout: 248 seconds)
2021-04-07 10:51:00 +0200blackriversoftwa(sid364914@gateway/web/irccloud.com/x-elfvrucbyuzljosj) (Ping timeout: 248 seconds)
2021-04-07 10:51:00 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-xklkobbintwtttud) (Ping timeout: 248 seconds)
2021-04-07 10:51:00 +0200^[(sid43445@ircpuzzles/2015/april-fools/sixth/zgrep) (Ping timeout: 248 seconds)
2021-04-07 10:51:00 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-yjqtuqlvecuserrl) (Ping timeout: 248 seconds)
2021-04-07 10:51:00 +0200melkor(~melkor@2a02:2b88:2:1::5b34:1) (Ping timeout: 248 seconds)
2021-04-07 10:51:08 +0200 <merijn> Uniaika: To be fair, you *can* have something like erlang. You just have to build all the things first :p
2021-04-07 10:51:18 +0200melkor(~melkor@2a02:2b88:2:1::5b34:1)
2021-04-07 10:51:32 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-rwrxnmwjnxipkdxm) (Ping timeout: 248 seconds)
2021-04-07 10:51:32 +0200lisq(~quassel@lis.moe) (Ping timeout: 248 seconds)
2021-04-07 10:51:32 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-waxurshkiqdvpdgd) (Ping timeout: 248 seconds)
2021-04-07 10:51:32 +0200ProofTechnique(sid79547@gateway/web/irccloud.com/x-yarfypultqitkxyl) (Ping timeout: 248 seconds)
2021-04-07 10:51:32 +0200dsal(sid13060@gateway/web/irccloud.com/x-xpwuybgiyaqhwhal) (Ping timeout: 248 seconds)
2021-04-07 10:51:32 +0200nikola1(~nikola@2a03:b0c0:2:d0::dc2:c001) (Ping timeout: 248 seconds)
2021-04-07 10:51:32 +0200mikeplus64(~mike@unaffiliated/mikeplus64) (Ping timeout: 248 seconds)
2021-04-07 10:51:38 +0200 <Uniaika> merijn: hahaha
2021-04-07 10:51:41 +0200 <merijn> The foundation to build most of the Erlang patterns exist in GHC. We just don't have something like the OTP actually implementing the nice high level stuff
2021-04-07 10:51:48 +0200 <Uniaika> merijn: goodbye, I don't have twenty years to pour into that :P
2021-04-07 10:52:04 +0200kadobanana(kadoban9he@gateway/shell/matrix.org/x-mbsahwnxhqdezbol) (Ping timeout: 248 seconds)
2021-04-07 10:52:04 +0200PtxDK(~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Ping timeout: 248 seconds)
2021-04-07 10:52:08 +0200 <merijn> I do, I just don't have the money ;)
2021-04-07 10:52:27 +0200PtxDK(~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
2021-04-07 10:52:33 +0200 <solvr> "The biggest functional programs tend to be much smaller than the biggest OOP programs"
2021-04-07 10:52:33 +0200lisq(~quassel@lis.moe)
2021-04-07 10:52:46 +0200cbarrett(sid192934@adium/cbarrett)
2021-04-07 10:52:52 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-icxdwokgcwqtfedf)
2021-04-07 10:52:53 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-dzlvgtubsxazdshr)
2021-04-07 10:52:57 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-bspashiqwxfauqlr)
2021-04-07 10:53:11 +0200^[(sid43445@ircpuzzles/2015/april-fools/sixth/zgrep)
2021-04-07 10:53:15 +0200 <solvr> This is why every FP needs "something like Erlang"
2021-04-07 10:53:18 +0200nikola1(~nikola@2a03:b0c0:2:d0::dc2:c001)
2021-04-07 10:53:20 +0200ProofTechnique(sid79547@gateway/web/irccloud.com/x-icnhdahhvfdpvqrx)
2021-04-07 10:53:21 +0200blackriversoftwa(sid364914@gateway/web/irccloud.com/x-nqkjcymscowwdvxo)
2021-04-07 10:54:03 +0200 <kuribas> cloudhaskell?
2021-04-07 10:54:08 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2021-04-07 10:54:23 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-ndqjmblwfxhbhjaa)
2021-04-07 10:54:23 +0200dsal(sid13060@gateway/web/irccloud.com/x-geyuvypaleievkbk)
2021-04-07 10:55:02 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-07 10:55:51 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-07 10:56:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-07 10:57:15 +0200 <merijn> Cloudhaskell is very different, imo
2021-04-07 10:57:21 +0200Franciman(~francesco@host-87-20-23-243.retail.telecomitalia.it)
2021-04-07 10:58:08 +0200__monty__(~toonn@unaffiliated/toonn)
2021-04-07 10:59:29 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-hmqewdshtgoiujbp) (Quit: Connection closed for inactivity)
2021-04-07 11:00:07 +0200Alleria(~textual@2603-7000-3040-0000-c5e8-81b5-bd49-f2bd.res6.spectrum.com)
2021-04-07 11:00:13 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee)
2021-04-07 11:00:31 +0200AlleriaGuest65126
2021-04-07 11:00:32 +0200sedeki(~textual@unaffiliated/sedeki)
2021-04-07 11:01:07 +0200jluttine(~jluttine@85-23-66-6.bb.dnainternet.fi)
2021-04-07 11:02:45 +0200mikeplus64(~mike@2406:d500:6:1:216:3cff:fe36:651)
2021-04-07 11:02:45 +0200mikeplus64(~mike@2406:d500:6:1:216:3cff:fe36:651) (Changing host)
2021-04-07 11:02:45 +0200mikeplus64(~mike@unaffiliated/mikeplus64)
2021-04-07 11:03:03 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-04-07 11:03:30 +0200CrabMan(phi-matrix@gateway/shell/matrix.org/x-ywlomtmrmvdmngay)
2021-04-07 11:03:50 +0200 <timCF> Hello! Any users of gold linker instead of standard ld in Haskell projects? I'm getting very strange situation - I have a packages A and B. Package B depends on A. I'm using gold linker in both (through ghc flags in package.yaml and cabal files). Package A is a library, no problems with builds and tests. But when I'm trying to compile package B which depends on A - I'm getting linker error
2021-04-07 11:03:52 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-qzcgtsnaanuchemn)
2021-04-07 11:03:56 +0200 <timCF> "binutils-2.31.1/bin/ld.gold: --hash-size=31: unknown options". In cases where I'm using gold linker only in package B - it works fine. Any suggestions what is going on? I'm using GHC 8.6.5
2021-04-07 11:04:29 +0200shalokshalom(~quassel@2a02:1748:dd5e:7f60:cf49:8384:7c93:3106) (Quit: https://quassel-irc.org - Komfortabler Chat. Überall.)
2021-04-07 11:04:46 +0200Guest65126(~textual@2603-7000-3040-0000-c5e8-81b5-bd49-f2bd.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-04-07 11:05:31 +0200arahael1(~arahael@203.221.197.144)
2021-04-07 11:05:58 +0200 <merijn> timCF: Presumably because GHC isn't aware you are using gold and thus passing options it doesn't know/understand?
2021-04-07 11:06:17 +0200 <merijn> How are you making it use gold?
2021-04-07 11:07:08 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 11:07:22 +0200arahael(~arahael@121-44-10-207.tpgi.com.au) (Ping timeout: 260 seconds)
2021-04-07 11:08:11 +0200kritzefitz(~kritzefit@p548c9398.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-04-07 11:09:09 +0200kiweun(~kiweun@2607:fea8:2a62:9600:e8b5:adb7:6f5d:778c)
2021-04-07 11:10:22 +0200kozowu(uid44796@gateway/web/irccloud.com/x-roldfjkcrdyqvqea)
2021-04-07 11:12:08 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-04-07 11:15:21 +0200 <timCF> merijn: I'm using `ghc-options: -optl-fuse-ld=gold` and `ld-options: -fuse-ld=gold`. It works in package A when I'm guilding it standalone, and I see how faster it is if compare with just ld. I have the same flags in package B, but linker fails with error I mentioned
2021-04-07 11:16:00 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-mcznkywpxwnunewb)
2021-04-07 11:17:34 +0200Mik01010101(511495c8@200-149-20-81.sta.estpak.ee)
2021-04-07 11:19:27 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 260 seconds)
2021-04-07 11:20:45 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-04-07 11:21:20 +0200acidjnk_new(~acidjnk@p200300d0c72b9510b1ed14260384c0cf.dip0.t-ipconnect.de)
2021-04-07 11:22:07 +0200RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 265 seconds)
2021-04-07 11:24:08 +0200Feuermagier(~Feuermagi@213.178.26.41)
2021-04-07 11:24:35 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2021-04-07 11:26:17 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-04-07 11:26:26 +0200 <[exa]> Is there some GHC option that disables printing out the erroring code samples, and just prints out the error?
2021-04-07 11:26:46 +0200 <[exa]> s/samples/parts
2021-04-07 11:30:00 +0200 <maerwald> optl-fuse-gold has never worked for me, I always had to either change the binary symlink or the ghc config file
2021-04-07 11:30:44 +0200 <maerwald> e.g. .ghcup/ghc/8.6.5/lib/ghc-8.6.5/settings
2021-04-07 11:30:56 +0200kadobanana(kadoban9he@gateway/shell/matrix.org/x-wrfgidxkulkzvtcl)
2021-04-07 11:32:03 +0200cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds)
2021-04-07 11:34:37 +0200toasty_avocado[m(toastyavoc@gateway/shell/matrix.org/x-hpiftxyehqckftdi)
2021-04-07 11:35:46 +0200sedeki(~textual@unaffiliated/sedeki) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-07 11:35:47 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 11:35:55 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 11:39:16 +0200ddellacosta(~ddellacos@86.106.143.200)
2021-04-07 11:42:25 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 11:44:12 +0200ddellacosta(~ddellacos@86.106.143.200) (Ping timeout: 268 seconds)
2021-04-07 11:44:47 +0200RusAlex(~Chel@unaffiliated/rusalex)
2021-04-07 11:46:18 +0200Mik01010101(511495c8@200-149-20-81.sta.estpak.ee) (Quit: Connection closed)
2021-04-07 11:47:07 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-07 11:48:05 +0200Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-04-07 11:50:08 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Remote host closed the connection)
2021-04-07 11:55:19 +0200supercoven_(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-04-07 11:56:37 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-07 11:56:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-04-07 11:57:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 11:57:41 +0200howdoi(uid224@gateway/web/irccloud.com/x-unpvrllwptrnqqhb) (Quit: Connection closed for inactivity)
2021-04-07 11:58:26 +0200supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Ping timeout: 240 seconds)
2021-04-07 12:01:42 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-04-07 12:02:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-07 12:02:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 12:03:41 +0200aVikingTrex(789a2138@120.154.33.56)
2021-04-07 12:03:57 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-04-07 12:04:42 +0200average(uid473595@gateway/web/irccloud.com/x-emhfocwfjlhcyvsq)
2021-04-07 12:05:09 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-07 12:07:28 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-holtfbrhdrkajcob)
2021-04-07 12:09:44 +0200Rudd0(~Rudd0@185.189.115.103)
2021-04-07 12:14:39 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-yqepddmznaiakcld)
2021-04-07 12:18:38 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Remote host closed the connection)
2021-04-07 12:19:18 +0200ddellacosta(~ddellacos@86.106.143.10)
2021-04-07 12:19:59 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-04-07 12:20:20 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-04-07 12:24:28 +0200ddellacosta(~ddellacos@86.106.143.10) (Ping timeout: 265 seconds)
2021-04-07 12:26:19 +0200 <fendor> [exa], you mean these caret diagnostics that highlight the code?
2021-04-07 12:27:18 +0200 <[exa]> yes
2021-04-07 12:27:29 +0200 <[exa]> no idea what it's even called
2021-04-07 12:28:36 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 12:29:52 +0200 <merijn> [exa]: there's a ton of flags to twiddle GHC's error output
2021-04-07 12:30:08 +0200 <merijn> [exa]: I recommend browsing the GHC flag reference
2021-04-07 12:30:10 +0200 <[exa]> I found just -ferror-spans
2021-04-07 12:30:30 +0200 <[exa]> which does something different
2021-04-07 12:30:46 +0200 <[exa]> like, I already went through the flags but failed, that's why I'm asking :]
2021-04-07 12:32:31 +0200 <merijn> hmmm
2021-04-07 12:32:36 +0200 <merijn> Maybe -dppr-user-length ?
2021-04-07 12:32:53 +0200 <merijn> [exa]: If not, then you know what your first GHC contribution can be ;)
2021-04-07 12:33:11 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-04-07 12:34:56 +0200 <tomsmeding> [exa]: | grep -v '^ *|' | grep -v '\^\^\^'
2021-04-07 12:35:19 +0200 <merijn> tbh, more control over error output would be nice anyway
2021-04-07 12:35:56 +0200 <tomsmeding> perhaps that will come with the internal diagnostics refactors that are currently going on
2021-04-07 12:38:01 +0200 <Gurkenglas> I want to minimize a function with multiple inputs. Should I use Haskell? Does one use the same libraries for this that one uses to train a neural network?
2021-04-07 12:39:24 +0200 <merijn> And the error reporting logic is (well, was a few years ago, at least) fairly hackable
2021-04-07 12:39:48 +0200 <merijn> So I don't think "inhibit code sample from errors" would be a hard or controversial feature
2021-04-07 12:40:18 +0200 <merijn> Gurkenglas: Well, depends a bit on "do you know *anything* about the function?"
2021-04-07 12:41:01 +0200 <tomsmeding> Gurkenglas: does your function have a computable derivative (and do you have it written out or do you need automatic differentiation)? If so, would gradient descent be sufficient? Or would you want a genetic algorithm, or some other specific algorithm? Or do you want a batteries-included optimisation toolkit that figures it all out by itself?
2021-04-07 12:41:12 +0200 <merijn> There's a whole numerical theory field of maths on analysing things and things like linear solver, derivatives, etc.
2021-04-07 12:41:33 +0200 <Gurkenglas> tomsmeding, the latter
2021-04-07 12:41:54 +0200 <tomsmeding> Gurkenglas: then find the toolkit, and choose the language that the toolkit supports :p
2021-04-07 12:41:56 +0200 <tomsmeding> not the other way round
2021-04-07 12:42:16 +0200 <merijn> Yeah, that
2021-04-07 12:42:59 +0200 <Gurkenglas> merijn, each function is specified by a short definition, not necessarily constructive (because "min" is an allowed term in the hypothetical DSL). If the toolkit tries solving it analytically first thats fine
2021-04-07 12:43:03 +0200 <tomsmeding> and note that which toolkit is best depends on the properties of your function
2021-04-07 12:43:04 +0200 <fendor> [exa], maybe you want -fno-caret-diagnostics?
2021-04-07 12:43:16 +0200lotuseater(~user@p200300e787030b0000a24874ceb5ca88.dip0.t-ipconnect.de)
2021-04-07 12:43:28 +0200 <tomsmeding> Gurkenglas: have you tried mathematica or wolfram-alpha?
2021-04-07 12:43:41 +0200 <Gurkenglas> tomsmeding, surely there's a toolkit thats worse only by a constant than the others because it calls them?
2021-04-07 12:43:42 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 12:43:45 +0200 <tomsmeding> or matlab or maple or
2021-04-07 12:44:01 +0200johs(sid246410@gateway/web/irccloud.com/x-vwtcqxowszipwyyc) ()
2021-04-07 12:44:19 +0200 <tomsmeding> Gurkenglas: no algorithm can minimise all functions optimally, which approach is best depends on what you know about your function
2021-04-07 12:44:29 +0200 <tomsmeding> and note that a combination of algorithms is still an algorithm
2021-04-07 12:44:50 +0200 <merijn> Something, something, No Free Lunch theorem
2021-04-07 12:45:01 +0200 <Gurkenglas> Ideally, the approach would leave me able to help when the toolkit doesn't find an answer alone, and the language wouldn't drive me insane when I build a job on that.
2021-04-07 12:45:34 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 12:46:00 +0200 <Gurkenglas> oh i suppose there is actually no better way to combine two toolkits than running them both if one makes absolutely no assumptions about the function (or set of functions)
2021-04-07 12:46:37 +0200 <tomsmeding> Gurkenglas: the function that is 1 on Q and 0 on R\Q is also a function
2021-04-07 12:46:45 +0200 <tomsmeding> "no assumptions" is strong :p
2021-04-07 12:47:18 +0200 <tomsmeding> but, the point is, find the framework, and I know very little about actual real-world libraries :p
2021-04-07 12:47:19 +0200 <Gurkenglas> tomsmeding, yea and some of the libraries would assume such functions forbidden and some wouldn't and the metatoolkit would presumably converge to using the one t hat doesn't
2021-04-07 12:47:31 +0200 <tomsmeding> true
2021-04-07 12:48:11 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-04-07 12:48:13 +0200 <tomsmeding> try mathematica, and if that doesn't work: determine what exactly is the component of your language that mathematica can't handle, and focus your search on that
2021-04-07 12:48:56 +0200 <tomsmeding> all the "usual" stuff in analytical math is covered by mathematica
2021-04-07 12:49:03 +0200stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-04-07 12:50:02 +0200 <fendor> is `Eq b => b` less polymorphic than just `a`?
2021-04-07 12:50:36 +0200 <tomsmeding> there are less types that fit
2021-04-07 12:51:15 +0200 <fendor> yeah
2021-04-07 12:52:27 +0200 <merijn> You don't know that :p
2021-04-07 12:52:29 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-04-07 12:52:46 +0200 <Taneb> If I have a function with type "forall a. a -> Bool", I know that it's constant
2021-04-07 12:53:28 +0200 <Taneb> If I have a function with type "forall a. Eq a => a -> Bool", it could be constant, or it could be something like \x -> x == x, which might not be constant for some Eq instances
2021-04-07 12:55:24 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 12:56:12 +0200carp(5c17283b@host-92-23-40-59.as13285.net)
2021-04-07 12:59:55 +0200 <mniip> well it is certainly of the form \x -> f (x == x), for some f :: Bool -> Bool
2021-04-07 13:00:03 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 248 seconds)
2021-04-07 13:00:11 +0200pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-04-07 13:00:31 +0200jacks2(~bc8134e3@199.204.85.195)
2021-04-07 13:00:53 +0200 <Taneb> Yes
2021-04-07 13:02:24 +0200Alleria(~textual@mskresolve-a.mskcc.org)
2021-04-07 13:02:34 +0200stree(~stree@68.36.8.116)
2021-04-07 13:02:47 +0200AlleriaGuest48425
2021-04-07 13:04:07 +0200 <jacks2> Taneb, what do you mean? \x -> x == x should always return True, assuming non-broken Eq instance
2021-04-07 13:04:27 +0200 <mniip> that's an assumption
2021-04-07 13:04:35 +0200 <Taneb> jacks2: I'm not assuming a non-broken Eq instance
2021-04-07 13:04:40 +0200 <Taneb> > (\x -> x == x) (0/0)
2021-04-07 13:04:41 +0200 <lambdabot> False
2021-04-07 13:05:33 +0200 <jacks2> Taneb, I'm not sure I see the point in not assuming that. particularly when answering questions from someone new to haskell
2021-04-07 13:05:56 +0200 <Taneb> jacks2: I don't think fendor's new to Haskell? I'm sure I've seen their username a lot before
2021-04-07 13:08:30 +0200 <fendor> I am not new T_T just wanted to confirm it before going down a rabbit hole of wrong assumptions
2021-04-07 13:10:12 +0200 <jacks2> broken Eq instances have nothing to do with Eq a being less polymorphic than a
2021-04-07 13:10:14 +0200 <merijn> fendor: I mean, you're gonna need a definition of "more/less polymorphic" first
2021-04-07 13:10:44 +0200 <merijn> People are all reacting from their gut idea of what "less polymorphic" means
2021-04-07 13:10:49 +0200 <merijn> But that seems counterproductive
2021-04-07 13:11:31 +0200 <Taneb> jacks2: I was justifying that forall a. a has different properties to forall a. Eq a
2021-04-07 13:11:40 +0200 <merijn> Is "polymorphism" measured by the cardinality of the types that can "fit" (whatever that means) into a type variable?
2021-04-07 13:11:43 +0200 <Taneb> *+ => a
2021-04-07 13:12:13 +0200 <merijn> If yes, then you can't say anything about "Foo a => a" vs "a", because there's no reason Foo's cardinality *can't* include all possible types
2021-04-07 13:12:21 +0200 <merijn> Consider "instance Foo a where ..."
2021-04-07 13:12:29 +0200 <fendor> merijn, ghc manual didnt define it more detailed
2021-04-07 13:12:33 +0200 <merijn> So clearly cardinality doesn't make sense
2021-04-07 13:12:48 +0200 <fendor> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/pragmas.html?highlight=specia…
2021-04-07 13:12:51 +0200 <merijn> But I wouldn't know what else to use
2021-04-07 13:13:34 +0200vs^(vs@ip98-184-89-2.mc.at.cox.net) ()
2021-04-07 13:14:19 +0200 <merijn> fendor: I'm not sure there's a hard definition of that terminology
2021-04-07 13:14:33 +0200 <merijn> Ask in #ghc (and update the docs when you find out ;))
2021-04-07 13:15:01 +0200 <fendor> ok, will do!
2021-04-07 13:17:47 +0200vv8(~egp_@128-71-69-136.broadband.corbina.ru)
2021-04-07 13:18:24 +0200kiweun(~kiweun@2607:fea8:2a62:9600:e8b5:adb7:6f5d:778c) (Remote host closed the connection)
2021-04-07 13:21:14 +0200__minoru__shirae(~shiraeesh@5.101.59.224) (Ping timeout: 246 seconds)
2021-04-07 13:22:47 +0200kiweun(~kiweun@2607:fea8:2a62:9600:c64:2029:5aee:a1f3)
2021-04-07 13:28:09 +0200 <joel135> There's also the word "parametric".
2021-04-07 13:29:12 +0200Iryon(~Iryon@185-12-21-77.sigma.jaslo.pl)
2021-04-07 13:32:24 +0200xff0x(~xff0x@2001:1a81:52c6:f900:b4b3:1e00:bd22:9f8d) (Ping timeout: 246 seconds)
2021-04-07 13:33:11 +0200kiweun(~kiweun@2607:fea8:2a62:9600:c64:2029:5aee:a1f3) (Remote host closed the connection)
2021-04-07 13:33:24 +0200 <tomsmeding> merijn: well the set of types that can unify with 'forall a. Eq a => a' is certainly a subset of those that unify with 'forall a. a'; whether that subset is a _proper_ subset is irrelevant I'd say
2021-04-07 13:33:30 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 13:33:36 +0200xff0x(~xff0x@2001:1a81:52c6:f900:8bb9:4c7a:ec7:b51f)
2021-04-07 13:34:09 +0200 <tomsmeding> whereas the inverse subset relation only holds if you further assume that there is an 'instance Eq a where'
2021-04-07 13:34:51 +0200 <tomsmeding> but if you start assuming things about which instances exist, your "more polymorphic than" relation suddenly got a lot murkier
2021-04-07 13:34:55 +0200__minoru__shirae(~shiraeesh@5.101.59.224)
2021-04-07 13:36:15 +0200 <tomsmeding> I'd say type scheme A is less polymorphic than type scheme B if for all sets possible of instance declarations in scope, any type that can fit in a hole of type A can also fit in a hole of type B
2021-04-07 13:36:16 +0200 <merijn> tomsmeding: It's irrelevant if you treat define "more/less" as a subset relationship, yes. But not if you use cardinality
2021-04-07 13:36:27 +0200 <merijn> tomsmeding: Hence my "you need to define more/less polymorphic first"
2021-04-07 13:36:34 +0200 <tomsmeding> very true
2021-04-07 13:37:43 +0200 <tomsmeding> though the cardinality definition makes no sense to me anyway
2021-04-07 13:37:46 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-07 13:38:07 +0200 <tomsmeding> what is the cardinality of the set of types that match 'a'? Is that bigger or smaller than the cardinality of the set of types matching '[a]'?
2021-04-07 13:40:50 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 13:42:43 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.1)
2021-04-07 13:45:16 +0200 <AWizzArd> Which is "better" (i.e. faster) for compiling with GHC?
2021-04-07 13:45:18 +0200 <AWizzArd> a) AMD Ryzen 9 5950X, Cores: 16 Threads: 32, Single Thread: 3,494 MOps/Sec or
2021-04-07 13:45:21 +0200 <AWizzArd> b) AMD EPYC 7502P, Cores: 32 Threads: 64, Single Thread: 1,777 MOps/Sec
2021-04-07 13:45:57 +0200Wuzzy(~Wuzzy@p5790e46d.dip0.t-ipconnect.de)
2021-04-07 13:46:47 +0200edwtjo(~edwtjo@fsf/member/edwtjo) (Ping timeout: 246 seconds)
2021-04-07 13:48:56 +0200MichaelFreeman(2d136c0c@45-19-108-12.lightspeed.tukrga.sbcglobal.net) (Quit: Connection closed)
2021-04-07 13:50:50 +0200 <tdammers> my guess would be a)
2021-04-07 13:51:02 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-04-07 13:51:37 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-04-07 13:51:55 +0200 <tdammers> twice as many threads at half the speed should theoretically be on par, but only if you can fully exhaust them all. for anything that doesn't max out on parallelism, the higher single-core speed is going to win.
2021-04-07 13:52:34 +0200 <tdammers> though I have no idea how either machine would fare in terms of RAM, cache, disk I/O, and all that
2021-04-07 13:53:01 +0200edwtjo(~edwtjo@h-7-145.A213.priv.bahnhof.se)
2021-04-07 13:53:01 +0200edwtjo(~edwtjo@h-7-145.A213.priv.bahnhof.se) (Changing host)
2021-04-07 13:53:01 +0200edwtjo(~edwtjo@fsf/member/edwtjo)
2021-04-07 13:53:49 +0200 <AWizzArd> I would also guess that fewer threads but with more performance each should be more useful.
2021-04-07 13:53:58 +0200nrh^(nrh@ip98-184-89-2.mc.at.cox.net)
2021-04-07 13:54:06 +0200rodriga(~quassel@134.204.25.66)
2021-04-07 13:55:25 +0200 <fendor> In my experience, building ghc rarely utilises all my 16 cores. So, a) sounds better to me, too
2021-04-07 13:55:43 +0200 <fendor> *16 threads
2021-04-07 13:57:51 +0200 <rodriga> Hmm is there a macro or something in Haskell that automatically finds callers, changes callers to thread arguments to their children, or to convert to Monads?
2021-04-07 14:00:55 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 14:01:15 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 14:01:27 +0200urodna(~urodna@unaffiliated/urodna)
2021-04-07 14:04:04 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-04-07 14:05:37 +0200geekosaur(82650c7a@130.101.12.122)
2021-04-07 14:06:06 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-04-07 14:09:25 +0200m1dnight_(~m1dnight@188.ip-51-91-158.eu) (Quit: WeeChat 2.4)
2021-04-07 14:09:41 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-04-07 14:10:22 +0200m1dnight_(~m1dnight@188.ip-51-91-158.eu)
2021-04-07 14:11:11 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-04-07 14:11:42 +0200 <merijn> fendor: there's some work on parallelising GHC, I think?
2021-04-07 14:12:28 +0200 <merijn> Biggest problem right now is that Cabal uses "ghc --make" so package builds aren't parallel as long as GHC isn't really parallel
2021-04-07 14:12:44 +0200 <fendor> but ghc is parallel in compiling modules, right?
2021-04-07 14:13:06 +0200 <fendor> *compiling modules that have no interdependency
2021-04-07 14:13:23 +0200 <fendor> *compiling the module graph
2021-04-07 14:13:50 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-07 14:13:59 +0200ericsagn1(~ericsagne@2405:6580:0:5100:ef73:96e:9562:7f87) (Ping timeout: 260 seconds)
2021-04-07 14:15:32 +0200aVikingTrex(789a2138@120.154.33.56) (Quit: Connection closed)
2021-04-07 14:16:53 +0200todda7(~torstein@athedsl-09242.home.otenet.gr)
2021-04-07 14:19:00 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-04-07 14:20:06 +0200rnat2(uid73555@gateway/web/irccloud.com/x-fvqffrxzjqvhxxzw)
2021-04-07 14:21:41 +0200rprije(~rprije@59-102-63-15.tpgi.com.au) (Ping timeout: 240 seconds)
2021-04-07 14:22:01 +0200Deide(~Deide@217.155.19.23)
2021-04-07 14:25:19 +0200 <merijn> fendor: I'm not sure it is, tbh
2021-04-07 14:25:33 +0200 <merijn> Not nearly as much as it could be, anyway
2021-04-07 14:26:09 +0200ericsagn1(~ericsagne@2405:6580:0:5100:3653:fd0e:1076:1c7b)
2021-04-07 14:26:58 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-04-07 14:29:51 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-07 14:30:40 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
2021-04-07 14:31:21 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-07 14:33:13 +0200__minoru__shirae(~shiraeesh@5.101.59.224) (Ping timeout: 252 seconds)
2021-04-07 14:34:03 +0200aishstha(1b221163@27.34.17.99)
2021-04-07 14:36:41 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 14:39:03 +0200bitmagie(~Thunderbi@200116b806def70019cb251edf03c083.dip.versatel-1u1.de)
2021-04-07 14:39:04 +0200ddellacosta(~ddellacos@86.106.143.213)
2021-04-07 14:39:30 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-yqepddmznaiakcld) (Quit: Connection closed for inactivity)
2021-04-07 14:40:26 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-04-07 14:41:23 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 248 seconds)
2021-04-07 14:42:46 +0200 <fendor> well, it builds a module graph, and prallelising compilation on this graph is not too complicated. But I also think that there might be bigger gains in parallel compilation of a module
2021-04-07 14:43:13 +0200 <fendor> Or rather, I can imagine, as I have not really an idea whether it actually would benefit anything
2021-04-07 14:43:23 +0200ddellacosta(~ddellacos@86.106.143.213) (Ping timeout: 260 seconds)
2021-04-07 14:45:01 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 14:46:03 +0200geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-04-07 14:46:45 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:5c9f:f9c:c668:a47e)
2021-04-07 14:46:56 +0200carlomagno(~cararell@148.87.23.13)
2021-04-07 14:47:27 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-07 14:48:00 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-07 14:48:15 +0200 <merijn> fendor: You are right *in theory*
2021-04-07 14:48:38 +0200 <merijn> But I don't think GHC is architected to really make use of that effectively yet
2021-04-07 14:48:41 +0200bitmagie(~Thunderbi@200116b806def70019cb251edf03c083.dip.versatel-1u1.de) (Quit: bitmagie)
2021-04-07 14:49:11 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-04-07 14:49:24 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-07 14:52:14 +0200geekosaur(82650c7a@130.101.12.122)
2021-04-07 14:52:23 +0200ADG1089(~aditya@223.226.239.183)
2021-04-07 14:52:49 +0200 <ADG1089> @pl readArray arr r >>= \v -> writeArray arr r $ max v v'
2021-04-07 14:52:49 +0200 <lambdabot> writeArray arr r . max v' =<< readArray arr r
2021-04-07 14:53:02 +0200 <ADG1089> hmm, not worth it
2021-04-07 14:55:08 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-07 14:56:43 +0200aishstha(1b221163@27.34.17.99) (Ping timeout: 240 seconds)
2021-04-07 14:57:14 +0200LKoen(~LKoen@65.250.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.”)
2021-04-07 15:00:44 +0200 <geekosaur> @pl \arr r -> readArray arr r >>= \v -> writeArray arr r $ max v v'
2021-04-07 15:00:44 +0200 <lambdabot> ap (ap . ((>>=) .) . readArray) (flip flip (max v') . ((.) .) . writeArray)
2021-04-07 15:00:48 +0200 <geekosaur> oy
2021-04-07 15:01:29 +0200solvr(57e3c46d@87.227.196.109)
2021-04-07 15:02:36 +0200 <ADG1089> holy fucking shit wtf that pl resulted in
2021-04-07 15:03:31 +0200andreabedini(~andreabed@8s8kj6nq8lb1xsln9frf.ip6.superloop.com)
2021-04-07 15:04:39 +0200 <merijn> :p
2021-04-07 15:04:44 +0200 <merijn> Don't trust @pl :p
2021-04-07 15:04:59 +0200 <mniip> pl stands for perl
2021-04-07 15:05:17 +0200 <merijn> pl stands for pointless, which is much funnier :p
2021-04-07 15:06:51 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:5c9f:f9c:c668:a47e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 15:07:32 +0200 <ADG1089> what does Foo.\.\.\ mean in prof? I am seeing this for chained monadic computations in do notation
2021-04-07 15:07:54 +0200 <geekosaur> each \ is an unnamed lambda somewhere under Foo
2021-04-07 15:08:16 +0200 <geekosaur> (unnamed lambda is redundant…)
2021-04-07 15:08:38 +0200 <ADG1089> oh, that would be my lambda as last argument for forM_
2021-04-07 15:09:17 +0200cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-04-07 15:09:42 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:5c9f:f9c:c668:a47e)
2021-04-07 15:09:51 +0200 <ADG1089> is prof binaries slower if i don't pass RTS args?
2021-04-07 15:10:08 +0200v01d4lph4(~v01d4lph4@223.177.183.124) (Remote host closed the connection)
2021-04-07 15:10:15 +0200 <ADG1089> I think this is the case, just wanted to confirm
2021-04-07 15:10:38 +0200 <geekosaur> perf disables most optimizations because they'd interfere with profiling, yes
2021-04-07 15:10:58 +0200stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-04-07 15:12:25 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 15:15:27 +0200feb6(67cb4855@103.203.72.85)
2021-04-07 15:15:51 +0200 <feb6> Hey
2021-04-07 15:17:58 +0200 <geekosaur> hello
2021-04-07 15:19:29 +0200feb6(67cb4855@103.203.72.85) (Client Quit)
2021-04-07 15:22:37 +0200dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-04-07 15:23:35 +0200stree(~stree@68.36.8.116)
2021-04-07 15:24:37 +0200barthandelous(~cbrzezins@2600:1007:b01a:85d2:6685:eca8:992:2c72)
2021-04-07 15:25:23 +0200 <merijn> ADG1089: They don't have to be, but it is not unlikely that they are
2021-04-07 15:26:10 +0200 <merijn> ADG1089: (i.e. profiling binaries aren't *always* slower, but "my binaries are slower" is a common and known side-effect of profiling builds)
2021-04-07 15:27:25 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-04-07 15:27:43 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) ()
2021-04-07 15:28:05 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-07 15:28:38 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-lyzlpexksowrzqil)
2021-04-07 15:30:45 +0200averell(~averell@unaffiliated/averell) (Quit: .)
2021-04-07 15:32:51 +0200Tario(~Tario@201.192.165.173)
2021-04-07 15:33:00 +0200Franciman(~francesco@host-87-20-23-243.retail.telecomitalia.it) (Quit: Leaving)
2021-04-07 15:34:07 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-04-07 15:41:42 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-07 15:42:05 +0200geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-04-07 15:44:10 +0200averell(~averell@unaffiliated/averell)
2021-04-07 15:45:05 +0200slack1256(~slack1256@201-223-70-219.baf.movistar.cl)
2021-04-07 15:49:03 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 15:49:23 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 15:51:03 +0200 <fendor> why is `class (Foo a, Foo a) => Bar a where` not a warning?
2021-04-07 15:51:31 +0200 <sshine> they unify? :-D
2021-04-07 15:52:05 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 15:52:14 +0200 <sshine> I guess there's room for improvement.
2021-04-07 15:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 15:54:14 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-04-07 15:56:46 +0200sz0(uid110435@gateway/web/irccloud.com/x-pwzpuvhtwmrmedza)
2021-04-07 15:57:32 +0200mmmattyx(uid17782@gateway/web/irccloud.com/x-zogxbflcfypzetqv)
2021-04-07 15:59:00 +0200raym(~ray@45.64.220.78) (Quit: leaving)
2021-04-07 15:59:37 +0200juri__(~juri@212.86.35.156) (Read error: Connection reset by peer)
2021-04-07 16:00:26 +0200malumore(~malumore@151.62.125.43) (Ping timeout: 240 seconds)
2021-04-07 16:00:54 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-07 16:01:11 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-07 16:01:19 +0200juri_(~juri@212.86.35.156)
2021-04-07 16:01:44 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving)
2021-04-07 16:01:52 +0200frozenErebus(~frozenEre@37.231.244.249) (Quit: leaving)
2021-04-07 16:03:21 +0200LiaoTao_(~LiaoTao@gateway/tor-sasl/liaotao)
2021-04-07 16:03:25 +0200hexfive(~hexfive@50.35.83.177)
2021-04-07 16:03:46 +0200LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
2021-04-07 16:04:53 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee)
2021-04-07 16:05:19 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:5c9f:f9c:c668:a47e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 16:10:51 +0200 <timCF> Hello! Seems like I do need some help with unlifting. I have a custom monad where I do fun all application code and functions. And I do need to compose them with some IO functions (in my case WAI wants handlers to run in IO). I came up with something like this `grpcServer = withRunInIO $ \run -> runServer $ handlers run` where handlers is list of WAI-like handlers which have to be run in IO. It looks like
2021-04-07 16:10:57 +0200 <timCF> `handlers run = [run handler0, run handler1, ...]`. It compiles with zero or one handler. But in cases where there is more that one handler (handlers are accepting different types of requests and returning different types of responses) - it refuses to be compiled. How to fix that?
2021-04-07 16:13:56 +0200 <timCF> It's not exactly like that, handlers are technically have the same high-level type, but some parts of them are specific and I do need to unlift these parts into IO
2021-04-07 16:14:09 +0200stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-04-07 16:14:10 +0200malumore(~malumore@151.62.125.43)
2021-04-07 16:15:13 +0200 <andreabedini> timCF: I am very unfamiliar with unlifitng but to me it looks like the main problem you are having is putting things of different type into a list
2021-04-07 16:15:19 +0200carp(5c17283b@host-92-23-40-59.as13285.net) ()
2021-04-07 16:15:41 +0200 <andreabedini> timCF: what's the type of runServer?
2021-04-07 16:16:07 +0200astroanax(~astroanax@cosmic.voyage) (Read error: Connection reset by peer)
2021-04-07 16:17:17 +0200rodriga(~quassel@134.204.25.66) (Read error: Connection reset by peer)
2021-04-07 16:17:30 +0200 <timCF> andreabedini: it's complicated -_- if simplified it's something like `runServer :: [ServerHandler] -> IO ()`
2021-04-07 16:18:43 +0200Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-04-07 16:19:08 +0200 <timCF> andreabedini: items in list have to be the same type `ServerHandler`. And I though this function `run` for unlifting could be generic `m a -> IO a`. But seems like GHC does not agree
2021-04-07 16:19:36 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-07 16:20:05 +0200 <merijn> timCF: You need a more polymorphic version
2021-04-07 16:20:33 +0200 <merijn> timCF: You need: https://hackage.haskell.org/package/unliftio-core-0.2.0.1/docs/Control-Monad-IO-Unlift.html#v:with…
2021-04-07 16:20:49 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-07 16:21:05 +0200 <merijn> oh, wait, maybe not that one
2021-04-07 16:21:18 +0200Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 265 seconds)
2021-04-07 16:21:31 +0200 <merijn> I think you can't use a lambda
2021-04-07 16:22:00 +0200 <merijn> You need a Rank2 "runInIO", but rank2 types can't be inferred, so you can't have an unannotated lambda like that
2021-04-07 16:22:17 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-07 16:22:26 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-04-07 16:23:15 +0200 <timCF> merijn: so I can't pass around `run` function and home that GHC will agree with polymorphic nature of it?
2021-04-07 16:23:27 +0200 <timCF> merijn: * and hope
2021-04-07 16:23:29 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-04-07 16:23:40 +0200 <merijn> timCF: No, you need to explicitly annotate that it's that polymorphic
2021-04-07 16:23:54 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-04-07 16:24:25 +0200 <merijn> timCF: Rank2 is *theoretically* inferrible, but the implementation is so complicated that GHC does not do it. So any use of Rank2 polymorphism requires explicit type signatures
2021-04-07 16:24:44 +0200 <merijn> timCF: Else GHC will infer a Rank1 type, which indeed doesn't type check
2021-04-07 16:25:10 +0200 <merijn> (if I understand the example correctly, anyway)
2021-04-07 16:25:47 +0200 <merijn> oh, wait, maybe withUnliftIO *does* solve it
2021-04-07 16:26:03 +0200 <merijn> timCF: Your handlers all have the same 'm', but different 'a's?
2021-04-07 16:26:05 +0200cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 252 seconds)
2021-04-07 16:26:16 +0200 <timCF> merijn: yes!
2021-04-07 16:26:31 +0200 <merijn> timCF: Ok, then withUnliftIO probably will work
2021-04-07 16:26:51 +0200 <merijn> You'd have to do "\(UnliftIO run) -> ..." then
2021-04-07 16:27:17 +0200 <merijn> There you piggyback the polymorphic type off of the pattern match on UnliftIO
2021-04-07 16:27:21 +0200 <timCF> merijn: thanks, I'll try it! Usually `withRunInIO` was enough. Time to learn some new unlifting
2021-04-07 16:28:31 +0200 <merijn> timCF: withUnliftIO is basically the same, but it stuff the unlifting function in a datatype
2021-04-07 16:34:44 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2021-04-07 16:35:10 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2021-04-07 16:36:45 +0200neysofu(~neysofu@net-47-53-239-127.cust.vodafonedsl.it)
2021-04-07 16:39:01 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-04-07 16:42:33 +0200barthandelous(~cbrzezins@2600:1007:b01a:85d2:6685:eca8:992:2c72) ("WeeChat 3.1")
2021-04-07 16:42:58 +0200andreabedini(~andreabed@8s8kj6nq8lb1xsln9frf.ip6.superloop.com) (Quit: WeeChat 3.1)
2021-04-07 16:44:18 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-07 16:46:22 +0200 <timCF> merijn: do I need to enable any GHC extensions or write some magic forall to make this kind plymorphism happen?
2021-04-07 16:46:29 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 16:48:02 +0200rodriga(~quassel@134.204.25.66)
2021-04-07 16:48:21 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-04-07 16:48:45 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2021-04-07 16:50:06 +0200alx741(~alx741@181.196.68.238)
2021-04-07 16:50:27 +0200leafiest(~leafiest@165.227.53.12)
2021-04-07 16:52:05 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 16:52:19 +0200 <shapr> Is there a Haskell command line argument parser that also generates bash/zsh completion?
2021-04-07 16:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 16:52:28 +0200 <Uniaika> shapr: not that I know of
2021-04-07 16:52:35 +0200 <timCF> merijn: nvm, `withUnliftIO` + pattern matching on `run` inside every handler works magically. So cool :)
2021-04-07 16:52:39 +0200 <Uniaika> would love to see one appear though :-P
2021-04-07 16:52:45 +0200 <shapr> yea, it would be so nice!
2021-04-07 16:52:50 +0200 <merijn> shapr: optparse-applicative generates bash completion...
2021-04-07 16:52:53 +0200shapradds it to list o fprojects
2021-04-07 16:52:56 +0200 <maerwald> and zsh
2021-04-07 16:52:56 +0200 <shapr> merijn: oh neat!
2021-04-07 16:52:58 +0200 <maerwald> and fish
2021-04-07 16:53:19 +0200 <merijn> shapr: https://github.com/pcapriotti/optparse-applicative/wiki/Bash-Completion
2021-04-07 16:53:35 +0200Sorna(~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
2021-04-07 16:54:44 +0200astroanax(~astroanax@cosmic.voyage)
2021-04-07 16:54:47 +0200astroanax(~astroanax@cosmic.voyage) (Remote host closed the connection)
2021-04-07 16:55:05 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-04-07 16:55:37 +0200danso(~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Quit: WeeChat 3.0)
2021-04-07 16:55:44 +0200astroanax(~astroanax@cosmic.voyage)
2021-04-07 16:56:25 +0200astroanax(~astroanax@cosmic.voyage) (Client Quit)
2021-04-07 16:56:25 +0200ADG1089(~aditya@223.226.239.183) (Remote host closed the connection)
2021-04-07 16:56:51 +0200Sornaensis(~Sornaensi@79.142.232.102) (Ping timeout: 268 seconds)
2021-04-07 16:56:54 +0200astroanax(~astroanax@cosmic.voyage)
2021-04-07 16:57:09 +0200slack1256(~slack1256@201-223-70-219.baf.movistar.cl) (Remote host closed the connection)
2021-04-07 16:58:02 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-04-07 16:58:12 +0200xintron(~xintron@unaffiliated/xintron)
2021-04-07 16:59:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-07 17:02:09 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:c0f9:65c3:e496:bb55)
2021-04-07 17:03:26 +0200myShoggoth(~myShoggot@75.164.73.93)
2021-04-07 17:08:09 +0200renzhi(~renzhi@2607:fa49:653f:a800::4223)
2021-04-07 17:08:47 +0200frozenErebus(~frozenEre@37.231.244.249) (Remote host closed the connection)
2021-04-07 17:11:11 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-04-07 17:12:56 +0200 <mikoto-chan> http://haskell.moe
2021-04-07 17:13:10 +0200 <mikoto-chan> can we make this the new homepage? (seriously, who did this ...)
2021-04-07 17:13:20 +0200 <mikoto-chan> sorry for off-topic
2021-04-07 17:13:41 +0200 <joel135> LOL
2021-04-07 17:14:06 +0200 <maerwald> what the...
2021-04-07 17:14:13 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-07 17:15:01 +0200Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2021-04-07 17:15:28 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-07 17:15:30 +0200 <shapr> wow
2021-04-07 17:16:06 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-07 17:16:22 +0200 <SrPx> the world really needs a great compile target for lazy functional languages
2021-04-07 17:18:53 +0200 <Uniaika> the website is written in Elm
2021-04-07 17:19:13 +0200 <Uniaika> this is a psyop from Evan Czaplicki
2021-04-07 17:19:32 +0200 <mikoto-chan> SrPx: wdym? isn't Haskell converted to C--?
2021-04-07 17:19:35 +0200rnat2(uid73555@gateway/web/irccloud.com/x-fvqffrxzjqvhxxzw) (Quit: Connection closed for inactivity)
2021-04-07 17:19:43 +0200renzhi(~renzhi@2607:fa49:653f:a800::4223) (Ping timeout: 260 seconds)
2021-04-07 17:20:12 +0200mkDoku(~TheMule@aftr-37-201-195-134.unity-media.net)
2021-04-07 17:20:31 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-04-07 17:20:56 +0200 <Uniaika> C-- is just an IR
2021-04-07 17:20:57 +0200jared-w(uid405292@gateway/web/irccloud.com/x-rnbmhydgaqdkakar) (Ping timeout: 246 seconds)
2021-04-07 17:21:09 +0200 <mikoto-chan> IR?
2021-04-07 17:21:23 +0200lally(sid388228@gateway/web/irccloud.com/x-gbqjirenobjcbvnf) (Read error: Connection reset by peer)
2021-04-07 17:21:25 +0200 <Uniaika> intermediate representation
2021-04-07 17:21:34 +0200 <Uniaika> it's neither written nor executed
2021-04-07 17:21:35 +0200AndreasK(sid320732@gateway/web/irccloud.com/x-eidzpdpfbfwjvsap) (Ping timeout: 258 seconds)
2021-04-07 17:21:39 +0200Kronic(sid480486@gateway/web/irccloud.com/x-sogthtpigifensav) (Ping timeout: 246 seconds)
2021-04-07 17:21:52 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 17:21:58 +0200sz0(uid110435@gateway/web/irccloud.com/x-pwzpuvhtwmrmedza) (Ping timeout: 258 seconds)
2021-04-07 17:22:00 +0200bradparker(sid262931@gateway/web/irccloud.com/x-alrapzbsgpgzezql) (Ping timeout: 246 seconds)
2021-04-07 17:22:02 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
2021-04-07 17:22:31 +0200ryjm(sid383513@gateway/web/irccloud.com/x-rytbgkxcijotxbrx) (Ping timeout: 260 seconds)
2021-04-07 17:22:42 +0200b20n(sid115913@gateway/web/irccloud.com/x-cpvmpaurqzesjgkd) (Ping timeout: 246 seconds)
2021-04-07 17:22:59 +0200eruditass(uid248673@gateway/web/irccloud.com/x-klumzwpapdvaujzz) (Read error: Connection reset by peer)
2021-04-07 17:23:03 +0200luite(sid387799@gateway/web/irccloud.com/x-qxspjhytgxkdqwya) (Ping timeout: 246 seconds)
2021-04-07 17:23:04 +0200AndreasK(sid320732@gateway/web/irccloud.com/x-gcnznttjjbhixeuo)
2021-04-07 17:23:07 +0200SrPx(sid108780@gateway/web/irccloud.com/x-osyhmktkohqkykco) (Ping timeout: 258 seconds)
2021-04-07 17:23:08 +0200cads(~cads@ip-64-72-99-232.lasvegas.net)
2021-04-07 17:23:18 +0200davetapley(sid666@gateway/web/irccloud.com/x-eshsepxkfgbkcmsh) (Ping timeout: 240 seconds)
2021-04-07 17:23:21 +0200benwr____(sid372383@gateway/web/irccloud.com/x-uenzuwtlldjmmcdm) (Read error: Connection reset by peer)
2021-04-07 17:23:24 +0200aristid(sid1599@gateway/web/irccloud.com/x-ysqngkztcmdqkqid) (Ping timeout: 246 seconds)
2021-04-07 17:23:25 +0200cemerick(sid54985@gateway/web/irccloud.com/x-txjnffnulowyownu) (Read error: Connection reset by peer)
2021-04-07 17:23:30 +0200wpcarro(sid397589@gateway/web/irccloud.com/x-bfzhxrazngrwpnxy) (Ping timeout: 258 seconds)
2021-04-07 17:23:35 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-holtfbrhdrkajcob) (Ping timeout: 250 seconds)
2021-04-07 17:23:53 +0200acidjnk_new(~acidjnk@p200300d0c72b9510b1ed14260384c0cf.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-04-07 17:23:55 +0200ReinH(sid179972@gateway/web/irccloud.com/x-mdfvdtnchulmcuzi) (Ping timeout: 260 seconds)
2021-04-07 17:24:00 +0200etrepum(sid763@gateway/web/irccloud.com/x-vbtdfooevtgiicbj) (Read error: Connection reset by peer)
2021-04-07 17:24:15 +0200eruditass(uid248673@gateway/web/irccloud.com/x-evyqqistlgviwlwv)
2021-04-07 17:24:27 +0200natim87(sid286962@gateway/web/irccloud.com/x-cwjpyjilrthqpfcl) (Ping timeout: 246 seconds)
2021-04-07 17:24:27 +0200systemfault(sid267009@gateway/web/irccloud.com/x-acclxkcklodfwdsx) (Ping timeout: 246 seconds)
2021-04-07 17:24:34 +0200eruditass(uid248673@gateway/web/irccloud.com/x-evyqqistlgviwlwv) (Excess Flood)
2021-04-07 17:24:40 +0200etrepum(sid763@gateway/web/irccloud.com/x-uvgwvvfyhdnxohap)
2021-04-07 17:24:43 +0200jared-w(uid405292@gateway/web/irccloud.com/x-keywjzriwtlueymw)
2021-04-07 17:24:43 +0200ryjm(sid383513@gateway/web/irccloud.com/x-iyuwdoaqqyplkeyd)
2021-04-07 17:24:45 +0200b20n(sid115913@gateway/web/irccloud.com/x-pctinassjooigaew)
2021-04-07 17:24:48 +0200benwr____(sid372383@gateway/web/irccloud.com/x-ynyqxqvppapkphki)
2021-04-07 17:24:51 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-jeivykcxhjpbnbqo) (Ping timeout: 260 seconds)
2021-04-07 17:24:51 +0200ReinH(sid179972@gateway/web/irccloud.com/x-tsenbknuiamuoknp)
2021-04-07 17:24:51 +0200cemerick(sid54985@gateway/web/irccloud.com/x-vkgdxbrllbqgyihu)
2021-04-07 17:24:52 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-igiuipnjkspialln)
2021-04-07 17:24:55 +0200lally(sid388228@gateway/web/irccloud.com/x-ohojcmfwatqrsdem)
2021-04-07 17:24:59 +0200Kronic(sid480486@gateway/web/irccloud.com/x-sohccpvegokjgbzc)
2021-04-07 17:25:11 +0200bradparker(sid262931@gateway/web/irccloud.com/x-vwcnradingzssljd)
2021-04-07 17:25:22 +0200aristid(sid1599@gateway/web/irccloud.com/x-xoxalrdohmfrqftu)
2021-04-07 17:25:25 +0200d0liver(sid363046@gateway/web/irccloud.com/x-mbcyzmiqngfpomhu) (Ping timeout: 258 seconds)
2021-04-07 17:25:26 +0200luite(sid387799@gateway/web/irccloud.com/x-xdgiulydxgunnqir)
2021-04-07 17:25:34 +0200sz0(uid110435@gateway/web/irccloud.com/x-uimgiattmedzcfdn)
2021-04-07 17:25:36 +0200eruditass(uid248673@gateway/web/irccloud.com/x-mnvqqybakyalqldr)
2021-04-07 17:25:45 +0200systemfault(sid267009@gateway/web/irccloud.com/x-qisnszkdfwtomtbi)
2021-04-07 17:25:52 +0200davetapley(sid666@gateway/web/irccloud.com/x-yavshbynwfekjiwv)
2021-04-07 17:25:54 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-deyyeanvffjutikl)
2021-04-07 17:26:19 +0200d0liver(sid363046@gateway/web/irccloud.com/x-vlrurtoubbzrlqmk)
2021-04-07 17:26:34 +0200wpcarro(sid397589@gateway/web/irccloud.com/x-ecuoponltgnpdqvt)
2021-04-07 17:26:40 +0200SrPx(sid108780@gateway/web/irccloud.com/x-gxthtwnxdzlzvjtj)
2021-04-07 17:26:55 +0200natim87(sid286962@gateway/web/irccloud.com/x-kcrciituhyzojhiq)
2021-04-07 17:27:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 17:28:13 +0200ulidtko(~ulidtko@194.54.80.38) (Remote host closed the connection)
2021-04-07 17:28:19 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:3d3b:5fca:52a6:2df1)
2021-04-07 17:28:32 +0200fendor(~fendor@178.165.131.170.wireless.dyn.drei.com) (Remote host closed the connection)
2021-04-07 17:28:34 +0200ulidtko(~ulidtko@194.54.80.38)
2021-04-07 17:28:34 +0200Axman5892(~Axman6@pdpc/supporter/student/Axman6)
2021-04-07 17:28:42 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:3d3b:5fca:52a6:2df1) (Remote host closed the connection)
2021-04-07 17:28:44 +0200Axman6(~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection)
2021-04-07 17:28:51 +0200fendor(~fendor@178.165.131.170.wireless.dyn.drei.com)
2021-04-07 17:29:23 +0200berberman_(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-04-07 17:29:50 +0200berberman(~berberman@unaffiliated/berberman)
2021-04-07 17:30:27 +0200malumore(~malumore@151.62.125.43) (Ping timeout: 248 seconds)
2021-04-07 17:31:56 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 17:32:00 +0200stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-04-07 17:32:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-07 17:33:49 +0200kiweun(~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-04-07 17:34:50 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:c0f9:65c3:e496:bb55) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 17:34:55 +0200malumore(~malumore@151.62.125.43)
2021-04-07 17:36:54 +0200mananamenos(~mananamen@62.red-88-11-67.dynamicip.rima-tde.net)
2021-04-07 17:37:44 +0200noexcept(~noexcept@noexcept.org) (Read error: Connection reset by peer)
2021-04-07 17:38:15 +0200noexcept(~noexcept@noexcept.org)
2021-04-07 17:38:27 +0200kiweun(~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Ping timeout: 248 seconds)
2021-04-07 17:40:35 +0200cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 248 seconds)
2021-04-07 17:44:42 +0200stree(~stree@68.36.8.116)
2021-04-07 17:45:05 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 17:46:01 +0200 <mananamenos> Hi, I'm in a IO's block and I some functions which return `IO (Maybe a)` and some which return `IO a`. Inside this do block block I have to extract those maybes, use case on then and in case the value is Nothing, I shorcut the whole do block returning. I end up with a very indented to the right code block which is hard to read and is annoying in general. One approach I tried is to wrap every operation in this do block
2021-04-07 17:46:01 +0200 <mananamenos> ExceptT. With this approach I manually put every IO (Maybe a) giving associating also the Nothings with some message (Left part in ExceptT). This way I only have one case expression on the whole do block, extract the Left message, log it and return error or successfully return Right part. Is this approach somehow weird/wrong? Another way, which I'm considering in changing the body of all the functions returning `IO (Maybe
2021-04-07 17:46:02 +0200 <mananamenos> a)` to `IO a` (is there is nothing I throw an error). I'm a bit confused of how to structure this the best way.
2021-04-07 17:47:31 +0200neysofu(~neysofu@net-47-53-239-127.cust.vodafonedsl.it) (Quit: leaving)
2021-04-07 17:49:06 +0200esph(~weechat@unaffiliated/esph) (Ping timeout: 260 seconds)
2021-04-07 17:50:06 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-04-07 17:50:08 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-07 17:52:05 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 17:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 17:55:53 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-07 17:56:43 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-07 17:59:04 +0200cads(~cads@ip-64-72-99-232.lasvegas.net)
2021-04-07 18:00:04 +0200M53K5HUN_8[m](m53k5hun8m@gateway/shell/matrix.org/x-vnkcdqtkiyhfknsf) (Quit: Idle for 30+ days)
2021-04-07 18:01:25 +0200v01d4lph4(~v01d4lph4@223.177.183.124)
2021-04-07 18:02:26 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 18:02:47 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de)
2021-04-07 18:03:01 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:3d3b:5fca:52a6:2df1)
2021-04-07 18:04:37 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-07 18:05:55 +0200v01d4lph4(~v01d4lph4@223.177.183.124) (Ping timeout: 260 seconds)
2021-04-07 18:09:15 +0200cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 246 seconds)
2021-04-07 18:11:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-07 18:13:33 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2021-04-07 18:15:34 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-04-07 18:15:38 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2021-04-07 18:15:55 +0200geekosaur(82650c7a@130.101.12.122)
2021-04-07 18:17:39 +0200 <tomsmeding> mananamenos: the ExceptT approach sounds like the right one
2021-04-07 18:17:41 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-07 18:23:11 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-04-07 18:23:11 +0200berberman_(~berberman@unaffiliated/berberman)
2021-04-07 18:24:00 +0200berberman_(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-04-07 18:24:38 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
2021-04-07 18:24:54 +0200berberman(~berberman@unaffiliated/berberman)
2021-04-07 18:25:34 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-07 18:25:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 18:29:04 +0200stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
2021-04-07 18:33:02 +0200justanotheruser(justanothe@gateway/vpn/protonvpn/justanotheruser) (Ping timeout: 260 seconds)
2021-04-07 18:40:29 +0200jacks2(~bc8134e3@199.204.85.195) (Quit: CGI:IRC (Session timeout))
2021-04-07 18:46:30 +0200kiweun(~kiweun@2607:fea8:2a62:9600:c57c:ce7d:dcca:9af1)
2021-04-07 18:46:49 +0200kiweun(~kiweun@2607:fea8:2a62:9600:c57c:ce7d:dcca:9af1) (Read error: Connection reset by peer)
2021-04-07 18:48:14 +0200__minoru__shirae(~shiraeesh@5.101.59.224)
2021-04-07 18:51:48 +0200nrh^(nrh@ip98-184-89-2.mc.at.cox.net) ()
2021-04-07 18:52:05 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 18:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 18:53:04 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8)
2021-04-07 18:54:48 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-04-07 18:55:36 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 18:56:01 +0200darkon(~darkon@90.214.167.201)
2021-04-07 18:57:54 +0200Sorna(~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 265 seconds)
2021-04-07 18:59:36 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-07 18:59:41 +0200Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 260 seconds)
2021-04-07 19:00:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-04-07 19:00:32 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-04-07 19:00:34 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-04-07 19:04:36 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-04-07 19:04:47 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-04-07 19:05:52 +0200justanotheruser(justanothe@gateway/vpn/protonvpn/justanotheruser)
2021-04-07 19:07:35 +0200kuribas(~user@ptr-25vy0i7wi7nt82wi9fp.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-04-07 19:09:09 +0200hiroaki(~hiroaki@2a02:908:4b18:8c40:1137:7482:fd5a:b039)
2021-04-07 19:19:02 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-04-07 19:20:50 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-nyysfddoxuidbcdr)
2021-04-07 19:21:25 +0200 <fresheyeball> is there a way to to see the history of this IRC?
2021-04-07 19:22:13 +0200 <monochrom> see topic
2021-04-07 19:22:22 +0200sz0(uid110435@gateway/web/irccloud.com/x-uimgiattmedzcfdn) (Quit: Connection closed for inactivity)
2021-04-07 19:23:26 +0200 <fresheyeball> monochrom: I don't understand
2021-04-07 19:23:56 +0200 <monochrom> Use the /topic command, then look for the substring "Logs:", then look for the URL after.
2021-04-07 19:24:04 +0200 <fresheyeball> oh cool
2021-04-07 19:24:25 +0200 <monochrom> Recommended reading the whole thing entirely.
2021-04-07 19:24:57 +0200 <glguy> yes, please read the whole log ;-)
2021-04-07 19:25:07 +0200 <monochrom> haha
2021-04-07 19:25:20 +0200 <fresheyeball> I think that would take some time
2021-04-07 19:25:37 +0200 <monochrom> But please don't revive a conversation that ended more than an hour ago.
2021-04-07 19:25:45 +0200 <maerwald> don't trust ppl on the internet
2021-04-07 19:26:02 +0200 <fresheyeball> Well I got some really good help last night on #ghc, and now I can't remeber a thing
2021-04-07 19:26:17 +0200 <maerwald> what did you do afterwards?
2021-04-07 19:26:28 +0200 <geekosaur> #ghc is its own channel, and afaict has no logs
2021-04-07 19:26:41 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-04-07 19:26:50 +0200 <maerwald> I have #ghc logs
2021-04-07 19:26:56 +0200 <monochrom> This is why I instruct my irc client to keep logs for a week, or maybe 10 days, I forgot.
2021-04-07 19:27:24 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 19:27:33 +0200 <maerwald> You delete logs?
2021-04-07 19:27:45 +0200 <monochrom> Yes
2021-04-07 19:29:49 +0200 <maerwald> fresheyeball: https://paste.tomsmeding.com/sVgPvang
2021-04-07 19:30:18 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:7409:794c:2926:5b5e)
2021-04-07 19:31:29 +0200 <maerwald> fresheyeball: second part (from today, not yesterday) https://paste.tomsmeding.com/Co1LXasu
2021-04-07 19:32:15 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2021-04-07 19:32:18 +0200unlink_(~unlink2@p57b853bf.dip0.t-ipconnect.de)
2021-04-07 19:32:41 +0200 <fresheyeball> maerwald: amazing!
2021-04-07 19:32:50 +0200geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-04-07 19:33:06 +0200geekosaur(82650c7a@130.101.12.122)
2021-04-07 19:33:14 +0200 <fresheyeball> wait I need the rest of the conversation
2021-04-07 19:33:28 +0200 <fresheyeball> oh you already sent it
2021-04-07 19:33:35 +0200unlink2(~unlink2@p200300ebcf254d00a495fbc96206c979.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-04-07 19:33:58 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
2021-04-07 19:34:39 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-yckkwdautnlneayq)
2021-04-07 19:36:59 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-07 19:40:03 +0200mkDoku(~TheMule@aftr-37-201-195-134.unity-media.net) (Ping timeout: 248 seconds)
2021-04-07 19:40:09 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-07 19:40:42 +0200geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-04-07 19:43:10 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 19:43:43 +0200gitgood(~gitgood@80-44-12-39.dynamic.dsl.as9105.com)
2021-04-07 19:46:43 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-04-07 19:47:09 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-07 19:51:23 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
2021-04-07 19:52:41 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-07 19:53:29 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 265 seconds)
2021-04-07 19:53:48 +0200rajivr(uid269651@gateway/web/irccloud.com/x-bfdpumpohvpxzdht) (Quit: Connection closed for inactivity)
2021-04-07 19:56:29 +0200geekosaur(82650c7a@130.101.12.122)
2021-04-07 19:57:37 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-07 19:58:38 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-07 19:59:29 +0200howdoi(uid224@gateway/web/irccloud.com/x-ucsrbnmysyuxrtpn)
2021-04-07 20:05:09 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-07 20:06:02 +0200stree(~stree@68.36.8.116)
2021-04-07 20:10:12 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
2021-04-07 20:10:58 +0200concept2(~concept2@unaffiliated/tubo) (Quit: See ya later!)
2021-04-07 20:11:00 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2021-04-07 20:11:27 +0200avn(~avn@78-56-108-78.static.zebra.lt)
2021-04-07 20:12:58 +0200typetetris(uid275937@gateway/web/irccloud.com/x-remmslgdlkipcjiq) (Quit: Connection closed for inactivity)
2021-04-07 20:13:39 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-04-07 20:13:43 +0200Iryon(~Iryon@185-12-21-77.sigma.jaslo.pl) (Remote host closed the connection)
2021-04-07 20:14:05 +0200ericsagn1(~ericsagne@2405:6580:0:5100:3653:fd0e:1076:1c7b) (Ping timeout: 258 seconds)
2021-04-07 20:15:12 +0200thriqon(~thriqon@HSI-KBW-46-223-163-79.hsi.kabel-badenwuerttemberg.de)
2021-04-07 20:17:30 +0200concept2(~concept2@unaffiliated/tubo)
2021-04-07 20:19:09 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-07 20:19:58 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-04-07 20:21:50 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-07 20:23:30 +0200deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.1)
2021-04-07 20:23:49 +0200deviantfero(~deviantfe@190.150.27.58)
2021-04-07 20:24:59 +0200xff0x(~xff0x@2001:1a81:52c6:f900:8bb9:4c7a:ec7:b51f) (Ping timeout: 260 seconds)
2021-04-07 20:25:49 +0200chiki(5819fc6f@111.red-88-25-252.staticip.rima-tde.net)
2021-04-07 20:25:56 +0200ericsagn1(~ericsagne@2405:6580:0:5100:d2e3:b034:3303:1a96)
2021-04-07 20:25:58 +0200Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-04-07 20:26:10 +0200xff0x(~xff0x@141.98.255.145)
2021-04-07 20:26:25 +0200nrh^(wear_a_mas@ip98-184-89-2.mc.at.cox.net)
2021-04-07 20:26:44 +0200 <chiki> Hi. Is there a predefined function in Haskell to convert a Word8 into its hexadecimal representation?
2021-04-07 20:27:08 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-07 20:27:41 +0200justanotheruser(justanothe@gateway/vpn/protonvpn/justanotheruser) (Ping timeout: 240 seconds)
2021-04-07 20:28:18 +0200Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds)
2021-04-07 20:28:24 +0200 <geekosaur> :t showHex
2021-04-07 20:28:25 +0200 <lambdabot> (Integral a, Show a) => a -> ShowS
2021-04-07 20:28:29 +0200 <geekosaur> @index showHex
2021-04-07 20:28:29 +0200 <lambdabot> Numeric
2021-04-07 20:28:36 +0200 <chiki> oh, thanks!
2021-04-07 20:28:56 +0200 <xsperry> there's also printf :)
2021-04-07 20:29:01 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:3d3b:5fca:52a6:2df1) (Remote host closed the connection)
2021-04-07 20:29:01 +0200 <srk> or printf from Text.Printf ^^
2021-04-07 20:29:11 +0200deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
2021-04-07 20:30:53 +0200hexagenic(~mattias@81-224-107-147-no71.tbcn.telia.com)
2021-04-07 20:31:04 +0200 <chiki> printf seems overkill ^^ showHex will sufice
2021-04-07 20:31:08 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 20:31:08 +0200deviantfero(~deviantfe@190.150.27.58)
2021-04-07 20:31:28 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 20:31:37 +0200 <geekosaur> just watch out for the ShowS
2021-04-07 20:32:29 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-04-07 20:32:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-04-07 20:32:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-07 20:34:09 +0200chiki(5819fc6f@111.red-88-25-252.staticip.rima-tde.net) ()
2021-04-07 20:34:56 +0200fendor_(~fendor@91.141.2.173.wireless.dyn.drei.com)
2021-04-07 20:35:31 +0200xff0x(~xff0x@141.98.255.145) (Ping timeout: 248 seconds)
2021-04-07 20:36:41 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 20:36:58 +0200fendor(~fendor@178.165.131.170.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-04-07 20:37:22 +0200xff0x(~xff0x@2001:1a81:52c6:f900:8bb9:4c7a:ec7:b51f)
2021-04-07 20:37:31 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 20:40:06 +0200mursu(~ngWalrus@46.101.150.54) (Ping timeout: 240 seconds)
2021-04-07 20:41:37 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
2021-04-07 20:41:53 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-04-07 20:42:10 +0200pjb(~t@2a01cb04063ec500d0cbc77584c6a81b.ipv6.abo.wanadoo.fr) (Quit: upgrading to Bug Sure :-/)
2021-04-07 20:43:17 +0200noCheese(~nocheese@unaffiliated/nocheese) (Ping timeout: 246 seconds)
2021-04-07 20:45:31 +0200hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-04-07 20:46:44 +0200Guest_29(a2ec0862@162-236-8-98.lightspeed.sntcca.sbcglobal.net)
2021-04-07 20:46:57 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-04-07 20:47:47 +0200Guest_29(a2ec0862@162-236-8-98.lightspeed.sntcca.sbcglobal.net) (Client Quit)
2021-04-07 20:48:16 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-07 20:48:36 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 20:51:19 +0200mkDoku(~TheMule@aftr-37-201-195-134.unity-media.net)
2021-04-07 20:52:05 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 20:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 20:52:53 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:7409:794c:2926:5b5e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 20:53:16 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-04-07 20:53:30 +0200solvr(57e3c46d@87.227.196.109)
2021-04-07 20:53:40 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds)
2021-04-07 20:54:11 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 248 seconds)
2021-04-07 20:56:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 20:57:14 +0200fendor_fendor
2021-04-07 20:57:56 +0200 <fendor> can I define haddock documentation for a field in a data type? Assuming, no record syntax.
2021-04-07 20:58:09 +0200 <monochrom> I think yes
2021-04-07 20:58:23 +0200 <monochrom> Do you have access to haddock's manual?
2021-04-07 20:59:04 +0200xhlr(~xhlr@static.144.156.216.95.clients.your-server.de) ()
2021-04-07 20:59:23 +0200 <fendor> it is probably on the internet, so I assume so
2021-04-07 20:59:26 +0200 <monochrom> https://haskell-haddock.readthedocs.io/en/latest/markup.html#constructors-and-record-fields
2021-04-07 20:59:45 +0200 <monochrom> It also comes with GHC, on your hard disk
2021-04-07 21:00:20 +0200 <fendor> that's hard to find though!
2021-04-07 21:00:28 +0200 <fendor> on the harddisk, I mean
2021-04-07 21:00:34 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-07 21:00:41 +0200 <fendor> ok great, I think I can find a bug report for HLS then
2021-04-07 21:00:42 +0200 <monochrom> Look under <prefix>/share/doc for much goodies
2021-04-07 21:00:45 +0200 <fendor> *file
2021-04-07 21:01:01 +0200mkDoku(~TheMule@aftr-37-201-195-134.unity-media.net) (Ping timeout: 260 seconds)
2021-04-07 21:01:07 +0200minoru_shiraeesh(~shiraeesh@109.166.57.223)
2021-04-07 21:01:25 +0200 <monochrom> <prefix>/share/doc/ghc-<version>/html
2021-04-07 21:01:31 +0200xhlr(~xhlr@static.144.156.216.95.clients.your-server.de)
2021-04-07 21:01:38 +0200__minoru__shirae(~shiraeesh@5.101.59.224) (Ping timeout: 240 seconds)
2021-04-07 21:02:01 +0200 <monochrom> GHC user's guide, library doc for libraries that come with GHC, haddock
2021-04-07 21:03:11 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:7409:794c:2926:5b5e)
2021-04-07 21:03:31 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2021-04-07 21:04:05 +0200 <fendor> good to remember, thank you!
2021-04-07 21:05:00 +0200 <tomsmeding> oooooh
2021-04-07 21:05:05 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:7409:794c:2926:5b5e) (Client Quit)
2021-04-07 21:05:07 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2021-04-07 21:05:29 +0200 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/
2021-04-07 21:05:36 +0200 <tomsmeding> yay 'base' haddocks on my local disk
2021-04-07 21:06:13 +0200 <tomsmeding> that will save hackage some bandwidth
2021-04-07 21:06:47 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:7409:794c:2926:5b5e)
2021-04-07 21:07:10 +0200 <monochrom> My reason for preferring local, comes-with-the-installation docs is that online docs are always the wrong version.
2021-04-07 21:07:18 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-07 21:08:17 +0200 <geekosaur> oh good, ghcup does install them
2021-04-07 21:08:52 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-04-07 21:08:54 +0200 <fendor> I agree, the first ghc manual link is almost always the wrong version
2021-04-07 21:09:04 +0200 <monochrom> Only linux distros butcher the docs into separate "packages".
2021-04-07 21:09:37 +0200 <geekosaur> you can replace "latest" with a specific version
2021-04-07 21:09:46 +0200 <monochrom> ghcup and stack pick from official builds, but all official builds have docs built.
2021-04-07 21:11:19 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-07 21:12:50 +0200 <mananamenos> tomsmeding, thank you
2021-04-07 21:14:47 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-04-07 21:17:36 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Read error: Connection reset by peer)
2021-04-07 21:17:48 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:7409:794c:2926:5b5e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-07 21:19:47 +0200 <fiedlr> Hi, did anyone try to build llvm-hs on macOS? My project always fails with > fatal error: too many errors emitted, stopping now [-ferror-limit=], > `gcc' failed in phase `C Compiler'. (Exit code: 1). I've tried --with-gcc pointing to the brew gcc, various cxx flags, but nothing helped.
2021-04-07 21:20:04 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 21:20:54 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
2021-04-07 21:21:01 +0200connrs(~connrs@connolley.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2021-04-07 21:21:17 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net)
2021-04-07 21:21:19 +0200 <fiedlr> It seems like it uses some old version of C++ but I have no idea why (most errors are caused that the compiler fails to recognize things like auto, constexpr and so on)
2021-04-07 21:22:41 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:23:29 +0200connrs(~connrs@connolley.uk) (Client Quit)
2021-04-07 21:24:08 +0200 <tomsmeding> fiedlr: can you manage to pinpoint which gcc is actually used during the build?
2021-04-07 21:24:53 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:24:54 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-07 21:25:05 +0200 <tomsmeding> e.g. by writing a script that spams 'ps aux | grep "gcc\|g++" | cut -d" " -f1' to get the current process ID of the compiler process, if any
2021-04-07 21:25:28 +0200 <tomsmeding> and then getting the executable path of that thing in some macOS-specific way (on linux you'd use /proc/)
2021-04-07 21:26:25 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 21:26:31 +0200 <geekosaur> you missed clang, which is kinda the point of llvm-hs
2021-04-07 21:26:53 +0200 <geekosaur> in your grep
2021-04-07 21:27:03 +0200 <tomsmeding> hah
2021-04-07 21:27:49 +0200connrs(~connrs@connolley.uk) (Client Quit)
2021-04-07 21:28:02 +0200Sornaensis(~Sornaensi@85.203.36.21)
2021-04-07 21:28:12 +0200 <tomsmeding> on linux I'd say 'strace' the hell out of it, but in my experience mac's alternative, dtruss, more often doesn't work than does
2021-04-07 21:28:29 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
2021-04-07 21:28:49 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net)
2021-04-07 21:28:53 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:29:37 +0200 <geekosaur> it works but you have to up a bunch of table sizes or it crashes
2021-04-07 21:30:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-04-07 21:31:07 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 265 seconds)
2021-04-07 21:31:07 +0200kiltzman(~k1ltzman@195.189.99.96) (Ping timeout: 265 seconds)
2021-04-07 21:31:11 +0200 <maerwald> monochrom: mostly official builds :p
2021-04-07 21:31:14 +0200 <geekosaur> on second thought why am I defending apple when I got torqued off at what they were doing to their ecosystem several years ago
2021-04-07 21:31:43 +0200 <monochrom> :)
2021-04-07 21:32:05 +0200 <maerwald> monochrom: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/ here are some semi-official builds (things that didn't make it through the GHC release process)
2021-04-07 21:32:20 +0200 <maerwald> mostly alpine/freebsd
2021-04-07 21:32:24 +0200 <tomsmeding> geekosaur: I don't see saying "it works if you do some random adjustments otherwise it crashes" as defending apple :p
2021-04-07 21:32:25 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
2021-04-07 21:32:50 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net)
2021-04-07 21:33:10 +0200 <geekosaur> well, I like dtrace. it's unfortunate that the defaults are a bit small regardless of platform
2021-04-07 21:33:19 +0200juliuco(~juliuco@213.177.196.21)
2021-04-07 21:34:01 +0200 <tomsmeding> maybe I was bitten by not disabling SIP when I was on mac, then dtruss fails in the majority of cases where you'd like it to work
2021-04-07 21:34:29 +0200 <tomsmeding> but I thought I remembered that it fails in far more cases than attributable to SIP; but I probably misremember
2021-04-07 21:35:07 +0200connrs(~connrs@connolley.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2021-04-07 21:35:39 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-07 21:36:02 +0200kiltzman(~k1ltzman@5.206.224.243)
2021-04-07 21:36:09 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:36:16 +0200connrs(~connrs@connolley.uk) (Client Quit)
2021-04-07 21:36:50 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-07 21:36:52 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-04-07 21:37:01 +0200 <tomsmeding> geekosaur: llvm-hs's cabal file looks like it uses vanilla hsc2hs, not something clang-specific; perhaps it doesn't particularly care about your C/C++ compiler, but just links to libllvm?
2021-04-07 21:37:19 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:37:49 +0200connrs(~connrs@connolley.uk) (Client Quit)
2021-04-07 21:37:51 +0200 <geekosaur> dunno
2021-04-07 21:37:57 +0200thriqon(~thriqon@HSI-KBW-46-223-163-79.hsi.kabel-badenwuerttemberg.de) ()
2021-04-07 21:38:10 +0200 <geekosaur> I'm just suspicious of a --with-gcc involved with an llvm-related package
2021-04-07 21:38:46 +0200 <fiedlr> tomsmeding Thanks for the hint! Well I was lazy and just fired it myself at the right moment :-D It seems that --with-gcc is ignored and /Library/Developer/CommandLineTools/usr/bin/clang is used anyway.
2021-04-07 21:38:50 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:38:55 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-04-07 21:39:40 +0200 <tomsmeding> env PATH="/path/to/your/chosen/gcc:$PATH" cabal build
2021-04-07 21:39:40 +0200 <tomsmeding> ?
2021-04-07 21:40:04 +0200 <geekosaur> if this is hsc2hs failing then maybe it'd work (of course "gcc" from apple dev tools is a wrapper for clang) but complaining about constexpr sounds like it is compiling c++ code and wants a recentish clang++
2021-04-07 21:40:25 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 21:40:33 +0200connrs(~connrs@connolley.uk) (Client Quit)
2021-04-07 21:40:51 +0200dcoutts__(~duncan@94.186.125.91.dyn.plus.net)
2021-04-07 21:41:14 +0200dcoutts(~duncan@94.186.125.91.dyn.plus.net) (Read error: Connection reset by peer)
2021-04-07 21:41:36 +0200connrs(~connrs@connolley.uk)
2021-04-07 21:43:36 +0200supercoven_(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Ping timeout: 260 seconds)
2021-04-07 21:44:00 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-04-07 21:44:20 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 21:44:39 +0200Ranhir(~Ranhir@157.97.53.139) (Ping timeout: 265 seconds)
2021-04-07 21:44:58 +0200juliuco(~juliuco@213.177.196.21) (Quit: juliuco)
2021-04-07 21:45:07 +0200 <fiedlr> This apple dev tools clang is a pain in the neck. Every time.
2021-04-07 21:46:56 +0200 <tomsmeding> you can put a brew clang before it in your PATH
2021-04-07 21:48:34 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-04-07 21:48:35 +0200 <fiedlr> True, but I think brew doesn't shadow it by default for some reason... Even gcc is installed as gcc-10
2021-04-07 21:48:51 +0200 <fiedlr> That's why I haven't done it so far
2021-04-07 21:48:58 +0200 <fiedlr> But idk, no idea
2021-04-07 21:49:07 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 248 seconds)
2021-04-07 21:50:21 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Read error: Connection reset by peer)
2021-04-07 21:50:23 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds)
2021-04-07 21:50:56 +0200 <tomsmeding> brew does not change your path
2021-04-07 21:51:38 +0200Lord_of_Life_Lord_of_Life
2021-04-07 21:51:41 +0200Fabe(~Faberyayo@ptr-g9pig2kcm602krccqi3.18120a2.ip6.access.telenet.be)
2021-04-07 21:52:07 +0200 <tomsmeding> it's perhaps a bad idea to put /usr/local/bin in the front of your path to let everything from brew take precedence (though I believe I did that at some point), but you can create a different folder ($HOME/bin for example) in which you add symlinks to the brew things you want to have precedence, and then add _that_ folder to your pATH
2021-04-07 21:52:48 +0200 <tomsmeding> fiedlr: did the temporary PATH override that I suggested work?
2021-04-07 21:53:58 +0200 <joel135> If I have a monad for which the bind operation which takes a -> m b and outputs m a -> m b is an isomorphism, is this related to m being an idempotent monad?
2021-04-07 21:54:24 +0200Fabe(~Faberyayo@ptr-g9pig2kcm602krccqi3.18120a2.ip6.access.telenet.be) ("Leaving")
2021-04-07 21:55:18 +0200molehillish(~molehilli@2600:8800:8d06:1800:e032:860d:11aa:7812)
2021-04-07 21:55:21 +0200 <fiedlr> tomsmeding: It didn't (I used stack though).
2021-04-07 21:55:43 +0200Ranhir(~Ranhir@157.97.53.139)
2021-04-07 21:56:25 +0200 <tomsmeding> fiedlr: yeah the 'cabal build' was just a standin for whatever you're using
2021-04-07 21:56:29 +0200hexagenic(~mattias@81-224-107-147-no71.tbcn.telia.com) (Quit: WeeChat 1.9.1)
2021-04-07 21:56:38 +0200 <sm[m]> I always put brew, nix etc. first in PATH on mac and haven't noticed any issues
2021-04-07 21:56:40 +0200 <tomsmeding> fiedlr: can you post the entire build log to a pastebin?
2021-04-07 21:58:05 +0200 <fiedlr> tomsmeding: I guess I really need that clang++? I know that brew doesn't change paths, I just meant the suffixes (gcc-10...).
2021-04-07 21:58:32 +0200 <fiedlr> sm[m]: Ok I'll try :-D
2021-04-07 21:58:34 +0200 <tomsmeding> ooo that might be a thing
2021-04-07 21:58:48 +0200malumore(~malumore@151.62.125.43) (Remote host closed the connection)
2021-04-07 21:59:05 +0200malumore(~malumore@151.62.125.43)
2021-04-07 21:59:33 +0200 <tomsmeding> fiedlr: mkdir $HOME/bin; ln -vis $(which gcc-10) $HOME/bin/gcc; ln -vis $(WHICH g++-10) $HOME/bin/g++; env PATH="$HOME/bin:$PATH" stack build
2021-04-07 21:59:47 +0200 <tomsmeding> perhaps do a similar thing with clang/clang++ if necessary, not sure if necessary
2021-04-07 22:00:06 +0200 <tomsmeding> lol s/WHICH/which/ though that might not even matter on mac
2021-04-07 22:01:31 +0200 <maerwald> sm[m]: interestingly I got an angry bug report saying ghcup should put itself LAST in PATH (like all tools should)... although this is false logic
2021-04-07 22:01:43 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 22:01:46 +0200 <maerwald> order matters, no matter if you prepend or append
2021-04-07 22:01:52 +0200 <maerwald> there will always be problems
2021-04-07 22:02:40 +0200 <maerwald> but apparently there are conflicts with nix
2021-04-07 22:03:01 +0200 <maerwald> so you probably want to put nix first
2021-04-07 22:03:10 +0200connrs(~connrs@connolley.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2021-04-07 22:03:10 +0200 <maerwald> unless you don't
2021-04-07 22:03:42 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-04-07 22:04:11 +0200connrs(~connrs@connolley.uk)
2021-04-07 22:04:58 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 240 seconds)
2021-04-07 22:05:00 +0200 <geekosaur> fiedlr, given that it's LLVM, I'd check the LLVM version I wanted to link against and use its clang and clang++
2021-04-07 22:05:34 +0200 <fiedlr> This is the log https://pastebin.com/EnLNGmr6
2021-04-07 22:05:51 +0200geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-04-07 22:06:21 +0200dpl(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 260 seconds)
2021-04-07 22:06:35 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-04-07 22:07:48 +0200petersen(~petersen@redhat/juhp)
2021-04-07 22:08:08 +0200 <tomsmeding> fiedlr: is that the full log? no configure output about llvm-hs beforehand?
2021-04-07 22:08:14 +0200 <fiedlr> It's funny that I forgot I actually don't have brew clang and I'm running on some Apple's prehistoric version given that I can't update from Catalina
2021-04-07 22:08:36 +0200 <fiedlr> Sorry, just the error log, wait a sec
2021-04-07 22:08:41 +0200Benzi-Junior(~BenziJuni@dsl-149-67-143.hive.is) (Ping timeout: 246 seconds)
2021-04-07 22:08:47 +0200B-J(~BenziJuni@88-149-64-251.du.xdsl.is)
2021-04-07 22:09:13 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-04-07 22:09:54 +0200 <tomsmeding> "warning: alias declarations are a C++11 extension [-Wc++11-extensions]"
2021-04-07 22:10:26 +0200 <tomsmeding> oh perhaps it's old enough that it doesn't know -std=c++11 and needs c++0x, but the cabal file has c++11
2021-04-07 22:10:51 +0200 <tomsmeding> fiedlr: you're not using nix by any chance?
2021-04-07 22:11:09 +0200dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
2021-04-07 22:12:06 +0200 <fiedlr> Not that I'm aware of
2021-04-07 22:12:26 +0200 <tomsmeding> then I hope you're not :p
2021-04-07 22:12:37 +0200 <fiedlr> :-D
2021-04-07 22:13:01 +0200 <tomsmeding> nix tends to be a complete pain in the behind for remote debugging, because it makes everything behave in different, unexpected ways
2021-04-07 22:13:15 +0200 <tomsmeding> in my opinion :)
2021-04-07 22:13:58 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-07 22:15:25 +0200lawt(~lawt@c-73-151-3-92.hsd1.ca.comcast.net)
2021-04-07 22:15:28 +0200geekosaur(82650c7a@130.101.12.122)
2021-04-07 22:15:36 +0200 <fiedlr> Completed 2 action(s).
2021-04-07 22:15:47 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-04-07 22:15:58 +0200 <fiedlr> Hooray :-D :-D It was really the suffixes :-D :-D
2021-04-07 22:16:12 +0200 <tomsmeding> :')
2021-04-07 22:16:13 +0200 <fiedlr> Thanks tomsmeding and geekosaur for help!
2021-04-07 22:16:21 +0200 <fiedlr> And sorry to waste your time
2021-04-07 22:16:30 +0200 <fiedlr> I guess I should've dedicated it more time myself
2021-04-07 22:16:35 +0200 <tomsmeding> cheers, that's why we hang around in this channel anyway :p
2021-04-07 22:16:54 +0200 <tomsmeding> 'brew link' exists btw
2021-04-07 22:17:06 +0200 <tomsmeding> not sure if that removes the suffixes, can't rememberr
2021-04-07 22:20:41 +0200alx741(~alx741@181.196.68.238) (Ping timeout: 240 seconds)
2021-04-07 22:20:51 +0200 <fiedlr> I'll def. check it out
2021-04-07 22:21:13 +0200 <L29Ah> how am i supposed to send patches to something like https://hackage.haskell.org/package/bytestring-mmap
2021-04-07 22:21:14 +0200 <L29Ah> ?
2021-04-07 22:22:55 +0200 <geekosaur> fork it, dons isn't really maintaining anything any more and it hasn't been updated since 2011
2021-04-07 22:23:47 +0200L29Ahis sad that hackage is polluted with mmap libraries, and neither of them does what i want
2021-04-07 22:24:06 +0200 <geekosaur> and code.haskell.org is gone/archived
2021-04-07 22:26:12 +0200 <sclv> L29Ah: if you want to take it over as maintainer dons has basically given carte blanche to people to do so
2021-04-07 22:26:57 +0200 <sclv> i.e. hackage admins have been instructed to automatically grant any sane takeover request on any dons package
2021-04-07 22:27:19 +0200stree(~stree@68.36.8.116)
2021-04-07 22:28:05 +0200 <L29Ah> thanks
2021-04-07 22:28:38 +0200MrMobius(~MrMobius@208.58.206.154) (Ping timeout: 268 seconds)
2021-04-07 22:28:43 +0200recon_-(~quassel@2602:febc:0:b6::6ca2) (Ping timeout: 276 seconds)
2021-04-07 22:28:54 +0200recon_-(~quassel@2602:febc:0:b6::6ca2)
2021-04-07 22:32:46 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
2021-04-07 22:33:32 +0200geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-04-07 22:34:34 +0200molehillish(~molehilli@2600:8800:8d06:1800:e032:860d:11aa:7812) (Remote host closed the connection)
2021-04-07 22:35:29 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 22:36:24 +0200recon_-(~quassel@2602:febc:0:b6::6ca2) (Quit: No Ping reply in 180 seconds.)
2021-04-07 22:37:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-07 22:37:45 +0200recon_-(~quassel@2602:febc:0:b6::6ca2)
2021-04-07 22:38:26 +0200 <fiedlr> tomsmeding: It's possible that I'm just dumb but I'm not sure if brew link helps in this regard. I would just need to check for every one of these problematic packages and create my own symlinks that I would have shadow the apple ones in my PATH. But this is already way too OT for this channel.
2021-04-07 22:39:01 +0200alx741(~alx741@181.196.68.139)
2021-04-07 22:41:14 +0200 <fiedlr> At least it worked here :-)
2021-04-07 22:41:46 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 260 seconds)
2021-04-07 22:41:55 +0200rodriga(~quassel@134.204.25.66) (Ping timeout: 248 seconds)
2021-04-07 22:45:13 +0200kadoban_(~mud@unaffiliated/kadoban)
2021-04-07 22:47:54 +0200kiweun(~kiweun@2607:fea8:2a62:9600:b987:3c7c:2ab7:7849)
2021-04-07 22:48:00 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 22:48:26 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 22:49:08 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 22:49:49 +0200 <fiedlr> Haskell related: I'm still wondering why stack ignored --with-gcc?
2021-04-07 22:49:58 +0200mananamenos(~mananamen@62.red-88-11-67.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2021-04-07 22:50:07 +0200srk(~sorki@unaffiliated/srk) (Ping timeout: 260 seconds)
2021-04-07 22:50:22 +0200 <fiedlr> Ok never mind :-D
2021-04-07 22:50:39 +0200guilhermeblanco(~guilherme@185.204.1.185) (Remote host closed the connection)
2021-04-07 22:52:05 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 22:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 22:52:24 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 246 seconds)
2021-04-07 22:52:29 +0200kiweun(~kiweun@2607:fea8:2a62:9600:b987:3c7c:2ab7:7849) (Ping timeout: 250 seconds)
2021-04-07 22:52:32 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-04-07 22:53:22 +0200hiroaki(~hiroaki@2a02:908:4b18:8c40:1137:7482:fd5a:b039) (Remote host closed the connection)
2021-04-07 22:53:47 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-04-07 22:54:07 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-07 22:54:09 +0200crestfallen(~john@128.32.176.159)
2021-04-07 22:56:29 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-07 22:57:11 +0200mananamenos(~mananamen@62.red-88-11-67.dynamicip.rima-tde.net)
2021-04-07 22:57:13 +0200hiroaki(~hiroaki@2a02:908:4b18:8c40:bdf7:105d:7ce:39c2)
2021-04-07 22:58:59 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 248 seconds)
2021-04-07 22:59:12 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-07 22:59:31 +0200lawt(~lawt@c-73-151-3-92.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2021-04-07 23:00:50 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 246 seconds)
2021-04-07 23:01:09 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-04-07 23:03:07 +0200 <siers> is there a lens setter that takes an effectful value? Setter s t a b -> f b -> s -> f t
2021-04-07 23:06:38 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
2021-04-07 23:06:39 +0200dinciorip(~dincio@5.170.5.195)
2021-04-07 23:06:58 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-04-07 23:07:20 +0200acidjnk_new(~acidjnk@p200300d0c72b9506d42010f0580cba17.dip0.t-ipconnect.de)
2021-04-07 23:07:56 +0200neiluj(~jco@91-167-203-101.subs.proxad.net) (Quit: leaving)
2021-04-07 23:07:57 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-04-07 23:08:27 +0200 <glguy> \l x -> traverseOf l (\_ -> x) :: LensLike f s t a b -> f b -> s -> f t
2021-04-07 23:08:46 +0200 <siers> yeah, I did write that for now, but I was wondering whether that operator is defined already
2021-04-07 23:09:04 +0200 <siers> I guess it wouldn't be so surprising, if it wasn't
2021-04-07 23:09:07 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-07 23:11:37 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-04-07 23:13:09 +0200RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 252 seconds)
2021-04-07 23:14:12 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2021-04-07 23:15:38 +0200mananamenos(~mananamen@62.red-88-11-67.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2021-04-07 23:21:04 +0200Sorna(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-04-07 23:22:10 +0200molehillish(~molehilli@2600:8800:8d06:1800:e032:860d:11aa:7812)
2021-04-07 23:24:13 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-04-07 23:24:17 +0200Sornaensis(~Sornaensi@85.203.36.21) (Ping timeout: 246 seconds)
2021-04-07 23:26:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-07 23:27:47 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
2021-04-07 23:30:00 +0200 <fresheyeball> I am trying to write a pre-processor
2021-04-07 23:30:08 +0200 <fresheyeball> and just stumbling at hello world
2021-04-07 23:30:25 +0200 <fresheyeball> I added `executable generate-html-dsl` to my cabal file
2021-04-07 23:30:34 +0200 <fresheyeball> and wrote a reasonable hello world main function for it
2021-04-07 23:30:55 +0200 <fresheyeball> then I have a file with `{-# OPTIONS_GHC -F -pgmF generate-html-dsl #-}`
2021-04-07 23:31:02 +0200 <fresheyeball> the exe builds and runs fine
2021-04-07 23:31:16 +0200 <fresheyeball> but the library now fails with `ghc: could not execute: generate-html-dsl`
2021-04-07 23:31:29 +0200 <fresheyeball> and no hints as to why
2021-04-07 23:31:31 +0200malumore(~malumore@151.62.125.43) (Ping timeout: 260 seconds)
2021-04-07 23:31:40 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-07 23:32:16 +0200dwt(~dwt@2601:2c6:8080:618:e121:3ef9:65e4:167e)
2021-04-07 23:34:41 +0200pmuir(~pmuir@185.204.1.185)
2021-04-07 23:35:23 +0200molehillish(~molehilli@2600:8800:8d06:1800:e032:860d:11aa:7812) (Remote host closed the connection)
2021-04-07 23:35:37 +0200molehillish(~molehilli@2600:8800:8d06:1800:e032:860d:11aa:7812)
2021-04-07 23:35:39 +0200RusAlex(~Chel@unaffiliated/rusalex)
2021-04-07 23:37:11 +0200Sorna(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-04-07 23:37:15 +0200lawt(~lawt@c-73-151-3-92.hsd1.ca.comcast.net)
2021-04-07 23:37:52 +0200LKoen(~LKoen@65.250.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.”)
2021-04-07 23:40:16 +0200pjb(~t@2a01cb04063ec50068b13f06583044a1.ipv6.abo.wanadoo.fr)
2021-04-07 23:40:35 +0200Guest48425(~textual@mskresolve-a.mskcc.org) (Ping timeout: 248 seconds)
2021-04-07 23:41:50 +0200lemmih(~lemmih@2406:3003:2072:44:8211:8912:237:8e05) (Remote host closed the connection)
2021-04-07 23:42:07 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-04-07 23:42:10 +0200lemmih(~lemmih@2406:3003:2072:44:194c:74d8:3073:4082)
2021-04-07 23:44:00 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-yckkwdautnlneayq) (Quit: Connection closed for inactivity)
2021-04-07 23:46:34 +0200hiroaki_(~hiroaki@2a02:908:4b18:8c40:bdf7:105d:7ce:39c2)
2021-04-07 23:47:08 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-07 23:49:18 +0200noCheese(~nocheese@2a01:4f8:211:39b::30:1)
2021-04-07 23:49:18 +0200noCheese(~nocheese@2a01:4f8:211:39b::30:1) (Changing host)
2021-04-07 23:49:18 +0200noCheese(~nocheese@unaffiliated/nocheese)
2021-04-07 23:50:03 +0200kozowu(uid44796@gateway/web/irccloud.com/x-roldfjkcrdyqvqea) (Quit: Connection closed for inactivity)
2021-04-07 23:50:18 +0200dwt(~dwt@2601:2c6:8080:618:e121:3ef9:65e4:167e) (Quit: Leaving)
2021-04-07 23:50:29 +0200noCheese(~nocheese@unaffiliated/nocheese) (Client Quit)
2021-04-07 23:51:49 +0200Althar(5e039f1a@94.3.159.26)
2021-04-07 23:52:04 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-07 23:52:24 +0200 <Althar> Hello all, I was hoping someone could help me understand what is probably a trivial issue
2021-04-07 23:52:24 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-07 23:52:49 +0200kiweun(~kiweun@2607:fea8:2a62:9600:4d74:8eef:fc60:8feb)
2021-04-07 23:52:57 +0200 <Althar> I have a type, such that : 'type ResourceOpT r m a = StateT (ResourceCache r) m a'
2021-04-07 23:53:04 +0200noCheese(~nocheese@static.52.177.251.148.clients.your-server.de)
2021-04-07 23:53:04 +0200noCheese(~nocheese@static.52.177.251.148.clients.your-server.de) (Changing host)
2021-04-07 23:53:04 +0200noCheese(~nocheese@unaffiliated/nocheese)
2021-04-07 23:53:07 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 260 seconds)
2021-04-07 23:53:18 +0200 <Althar> Why is it that 'instance (MonadIO m) => Logger ( StateT s m )' works
2021-04-07 23:53:30 +0200 <Althar> but not 'instance (MonadIO m) => Logger ( ResourceOpT r m )'
2021-04-07 23:53:33 +0200 <Althar> aren't they equivalent?
2021-04-07 23:53:50 +0200dwt(~dwt@2601:2c6:8080:618:e121:3ef9:65e4:167e)
2021-04-07 23:54:09 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-07 23:55:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-07 23:56:32 +0200 <Althar> In my case, having the instance be defined for StateT is an even better abstraction but I am curious why the more specific instance (so to speak) complains that 'should have 3 arguments, but has been given 2'
2021-04-07 23:56:55 +0200 <Althar> In case it wasn't obvious, I am still learning
2021-04-07 23:58:40 +0200dwt(~dwt@2601:2c6:8080:618:e121:3ef9:65e4:167e) (Quit: Leaving)