2021/04/21

2021-04-21 00:00:11 +0200 <nut> thanks
2021-04-21 00:00:23 +0200 <monochrom> without actually knowing your context or application or problem domain
2021-04-21 00:02:30 +0200zva(~zava@141.26.31.52) (Ping timeout: 268 seconds)
2021-04-21 00:02:54 +0200 <nut> monochrom: I'm doing a tree traversal algorithm. I get a list from both left and right subtree which I need to combime
2021-04-21 00:03:38 +0200 <nut> monochrom: So I suppose instead of list, I can try a Seq a
2021-04-21 00:04:26 +0200 <monochrom> "difference list" i.e. [a]->[a]
2021-04-21 00:05:42 +0200 <nut> monochrom: wow, thanks!
2021-04-21 00:05:55 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Remote host closed the connection)
2021-04-21 00:05:56 +0200hc_(~hc@fsfe/hc)
2021-04-21 00:06:01 +0200 <monochrom> Instead of Tree->[X], have f::Tree->[X]->[X]. f (Branch left right) = f left . f right; f (Leaf x) = \s -> x : s
2021-04-21 00:06:38 +0200 <monochrom> For the whole tree, use "f my_whole_tree []".
2021-04-21 00:06:45 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee)
2021-04-21 00:06:54 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 00:07:10 +0200hc(~hc@fsfe/hc) (Read error: Connection reset by peer)
2021-04-21 00:07:10 +0200piele(~piele@tbonesteak.creativeserver.net) (Quit: No Ping reply in 180 seconds.)
2021-04-21 00:07:23 +0200tsaka_(~torstein@athedsl-4519432.home.otenet.gr)
2021-04-21 00:07:32 +0200 <nut> Is this Haskell specific data structure? monochrom
2021-04-21 00:07:51 +0200 <monochrom> No, you can do this for every FP language.
2021-04-21 00:07:53 +0200 <nut> monochrom: I can't seem to find references in other languages
2021-04-21 00:07:55 +0200jesystani(~thorn@2404:4404:17f1:4900:819e:dd03:7c1b:1df4) (Ping timeout: 260 seconds)
2021-04-21 00:08:09 +0200 <nut> non FP languages
2021-04-21 00:08:13 +0200piele(~piele@tbonesteak.creativeserver.net)
2021-04-21 00:08:15 +0200 <monochrom> But then I guess it is best used with laziness.
2021-04-21 00:08:24 +0200 <monochrom> s/non/anti/
2021-04-21 00:08:37 +0200 <monochrom> Clearly, anti FP got to be anti F.
2021-04-21 00:08:39 +0200jesystani(~thorn@2404:4404:17f1:4900:1be9:7d25:ab7d:6509)
2021-04-21 00:08:51 +0200 <nut> haha
2021-04-21 00:09:14 +0200 <monochrom> "Tree->[X]->[X]" fundamentally requires one to be serious about functions.
2021-04-21 00:09:31 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 245 seconds)
2021-04-21 00:09:40 +0200 <monochrom> Or at least the function composition in "f left . f right"
2021-04-21 00:09:43 +0200usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-04-21 00:10:28 +0200 <nut> What do you mean?
2021-04-21 00:10:45 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 00:10:55 +0200 <monochrom> An anti-FP language will not make it easy to use function composition.
2021-04-21 00:12:46 +0200 <nut> monochrom: In your previous code, you've added a [X]. Is it supposed to be an accumulator?
2021-04-21 00:13:12 +0200 <monochrom> whereas the difference list trick is built around function composition.
2021-04-21 00:13:12 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 265 seconds)
2021-04-21 00:13:13 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Ping timeout: 245 seconds)
2021-04-21 00:13:13 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 00:13:13 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-04-21 00:13:13 +0200tsaka__(~torstein@athedsl-4519432.home.otenet.gr) (Ping timeout: 260 seconds)
2021-04-21 00:13:26 +0200 <nut> i see
2021-04-21 00:13:49 +0200fendor(~fendor@178.165.131.162.wireless.dyn.drei.com) (Remote host closed the connection)
2021-04-21 00:13:52 +0200 <nut> So your code snippets demonstrates the use of function composition
2021-04-21 00:14:12 +0200 <nut> But I don't see how that composition made things fast
2021-04-21 00:14:49 +0200 <nut> monochrom: do you mean it turned concat into function application?
2021-04-21 00:14:53 +0200 <monochrom> I don't know what counts as accumulator. The [X] parameter is a suffix. f does prepending.
2021-04-21 00:14:54 +0200 <monochrom> f (Branch (Leaf x) (Leaf y)) suffix = x : y : suffix
2021-04-21 00:15:03 +0200 <monochrom> Yes
2021-04-21 00:15:27 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:795e:3018:ba62:6713) (Quit: Leaving)
2021-04-21 00:15:29 +0200 <geekosaur> I think they meant the type signature and [X] was "list of X"
2021-04-21 00:15:47 +0200 <nut> monochrom: it's a small aha moment for me
2021-04-21 00:16:05 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 00:16:09 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
2021-04-21 00:18:24 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-21 00:18:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 00:19:25 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 00:22:08 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-04-21 00:22:12 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 00:22:51 +0200dpl(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds)
2021-04-21 00:23:43 +0200 <infinisil> Could also use https://hackage.haskell.org/package/dlist-1.0/docs/Data-DList.html
2021-04-21 00:24:19 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-04-21 00:24:56 +0200barakkl1993(~barakkley@2.55.154.74) (Ping timeout: 260 seconds)
2021-04-21 00:25:41 +0200 <infinisil> Oh they're gone
2021-04-21 00:27:44 +0200Sornaensis(~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 246 seconds)
2021-04-21 00:32:01 +0200lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 245 seconds)
2021-04-21 00:33:39 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 00:35:08 +0200son0p(~ff@181.136.122.143) (Read error: Connection reset by peer)
2021-04-21 00:37:02 +0200lassulus(~lassulus@NixOS/user/lassulus)
2021-04-21 00:38:06 +0200nineonin_(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2021-04-21 00:41:41 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-21 00:41:44 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-iszyocxwqmtvebxh) (Quit: Connection closed for inactivity)
2021-04-21 00:42:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 00:42:41 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2021-04-21 00:47:20 +0200Guest46085(~textual@zrcout.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-21 00:47:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-04-21 00:55:09 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 00:56:21 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 00:58:41 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 00:59:37 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee)
2021-04-21 01:01:06 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 260 seconds)
2021-04-21 01:02:15 +0200thc202(~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds)
2021-04-21 01:02:20 +0200sm2n_(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca)
2021-04-21 01:03:10 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-21 01:05:10 +0200sm2n(~sm2n@70.54.76.62) (Ping timeout: 252 seconds)
2021-04-21 01:09:40 +0200nibot(45d11556@69-209-21-86.lightspeed.sntcca.sbcglobal.net)
2021-04-21 01:12:15 +0200sm2n(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca)
2021-04-21 01:12:50 +0200 <newhoggy> @bgamari: Any chance you could bump the upper bounds for monoidal-containers? https://github.com/bgamari/monoidal-containers/issues/78
2021-04-21 01:12:51 +0200 <lambdabot> Unknown command, try @list
2021-04-21 01:12:54 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net)
2021-04-21 01:13:08 +0200 <newhoggy> bgamari: Any chance you could bump the upper bounds for monoidal-containers? https://github.com/bgamari/monoidal-containers/issues/78
2021-04-21 01:13:42 +0200cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2021-04-21 01:13:56 +0200sm2n_(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) (Ping timeout: 246 seconds)
2021-04-21 01:14:24 +0200sleblanc(~sleblanc@unaffiliated/sebleblanc)
2021-04-21 01:15:03 +0200juri_(~juri@178.63.35.222) (Ping timeout: 252 seconds)
2021-04-21 01:16:45 +0200Alleria(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com)
2021-04-21 01:17:08 +0200AlleriaGuest66770
2021-04-21 01:18:12 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 01:18:57 +0200nineonine(~nineonine@50.216.62.2)
2021-04-21 01:20:01 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 252 seconds)
2021-04-21 01:21:07 +0200Guest66770(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-04-21 01:21:33 +0200electricityZZZZ(~electrici@135-180-3-82.static.sonic.net) (Remote host closed the connection)
2021-04-21 01:22:58 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 01:23:35 +0200ortz(~egigs@108-89-5-25.lightspeed.dybhfl.sbcglobal.net)
2021-04-21 01:23:44 +0200 <ortz> is there an irc channel for Rust?
2021-04-21 01:24:00 +0200 <ortz> I tried #rust, but it's invite-only
2021-04-21 01:24:29 +0200 <hpc> i don't think anyone here can help with that
2021-04-21 01:24:48 +0200 <ortz> i figured there'd be a bit of overlap
2021-04-21 01:25:26 +0200 <yushyin> also rust community mostly uses discord and zulip
2021-04-21 01:25:52 +0200 <ortz> discord is annoying, it wants an email just for me to pop in and ask a question
2021-04-21 01:25:57 +0200 <hpc> or mozilla's irc network, it seems
2021-04-21 01:25:59 +0200 <hpc> https://prev.rust-lang.org/en-US/community.html
2021-04-21 01:26:15 +0200 <yushyin> mozilla stopped using irc
2021-04-21 01:26:20 +0200 <hpc> oh
2021-04-21 01:26:27 +0200 <hpc> freenode's #rust might just be squatting the name
2021-04-21 01:26:46 +0200 <yushyin> they are now using matrix.org, afaik
2021-04-21 01:27:15 +0200 <yushyin> there is an unoffical rust channel on freenode ##rust
2021-04-21 01:28:41 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-21 01:29:18 +0200 <yushyin> hpc: prev.rust-lang.org seems to be an old unmaintained website :/
2021-04-21 01:34:45 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 01:36:07 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
2021-04-21 01:36:36 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-21 01:37:08 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Client Quit)
2021-04-21 01:37:36 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 01:39:23 +0200hiroaki_(~hiroaki@2a02:8108:8c40:2bb8:9a44:5c99:5f02:ae1) (Ping timeout: 260 seconds)
2021-04-21 01:39:41 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 240 seconds)
2021-04-21 01:42:02 +0200juri_(~juri@178.63.35.222)
2021-04-21 01:42:31 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-04-21 01:44:40 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
2021-04-21 01:47:26 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2021-04-21 01:51:23 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-21 01:52:28 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-04-21 01:52:34 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-uzlgvfmvgotbpzjj) (Quit: Connection closed for inactivity)
2021-04-21 01:53:35 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 01:53:57 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga) (Remote host closed the connection)
2021-04-21 01:54:51 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-21 01:54:54 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-04-21 01:55:16 +0200nibot(45d11556@69-209-21-86.lightspeed.sntcca.sbcglobal.net) (Quit: Connection closed)
2021-04-21 01:55:45 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga) (Remote host closed the connection)
2021-04-21 01:56:02 +0200xsperry(~as@unaffiliated/xsperry) (Remote host closed the connection)
2021-04-21 01:56:20 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-21 01:58:54 +0200Codaraxis__(~Codaraxis@141.98.255.149)
2021-04-21 01:59:06 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-04-21 01:59:14 +0200nineonin_(~nineonine@50.216.62.2)
2021-04-21 01:59:40 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 01:59:50 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-04-21 02:00:53 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2021-04-21 02:01:16 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 252 seconds)
2021-04-21 02:02:12 +0200Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 240 seconds)
2021-04-21 02:02:15 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
2021-04-21 02:05:04 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-04-21 02:05:12 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 02:07:08 +0200gitgood(~gitgood@80-44-9-246.dynamic.dsl.as9105.com) (Ping timeout: 246 seconds)
2021-04-21 02:07:47 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-04-21 02:07:55 +0200jesystani(~thorn@2404:4404:17f1:4900:1be9:7d25:ab7d:6509) (Ping timeout: 250 seconds)
2021-04-21 02:08:54 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-21 02:08:55 +0200GZJ0X_(~gzj@unaffiliated/gzj)
2021-04-21 02:08:55 +0200GZJ0X_(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-21 02:09:00 +0200jesystani(~thorn@2404:4404:17f1:4900:8932:e59c:bc73:f200)
2021-04-21 02:09:15 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1)
2021-04-21 02:10:24 +0200Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-04-21 02:10:37 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga)
2021-04-21 02:12:23 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2021-04-21 02:13:38 +0200Tario(~Tario@200.119.185.128)
2021-04-21 02:13:46 +0200Codaraxis__(~Codaraxis@141.98.255.149) (Ping timeout: 240 seconds)
2021-04-21 02:13:55 +0200 <Axman6> newhoggy: I was talking to jackdk yesterday about just that - he had proposed making a hackage update to relax them
2021-04-21 02:14:11 +0200 <newhoggy> Thanks!
2021-04-21 02:19:52 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net) (Ping timeout: 240 seconds)
2021-04-21 02:20:46 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 245 seconds)
2021-04-21 02:21:46 +0200ludi49(~hryhorij@156.17.231.95) (Ping timeout: 252 seconds)
2021-04-21 02:24:01 +0200xsperry(~as@unaffiliated/xsperry)
2021-04-21 02:25:34 +0200aVikingTrex(2be74510@43.231.69.16)
2021-04-21 02:26:00 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 02:26:06 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-21 02:26:25 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-21 02:30:11 +0200myShoggoth(~myShoggot@75.164.11.109) (Ping timeout: 240 seconds)
2021-04-21 02:30:13 +0200Tario(~Tario@200.119.185.128) (Read error: Connection reset by peer)
2021-04-21 02:30:21 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 245 seconds)
2021-04-21 02:30:23 +0200Tario(~Tario@201.192.165.173)
2021-04-21 02:30:28 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-21 02:30:41 +0200Tario(~Tario@201.192.165.173)
2021-04-21 02:31:58 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-04-21 02:31:58 +0200Jd007(~Jd007@162.156.11.151)
2021-04-21 02:32:37 +0200nineonin_(~nineonine@50.216.62.2) (Ping timeout: 252 seconds)
2021-04-21 02:41:35 +0200 <aVikingTrex> Hi everyone, I am a couple months into learning haskell. I have read "Get Programming With Haskell", currently reading "Real world haskell"  (updated version on github) and have started reading Bartosz's "Category Theory for Programmers". I am looking to progress in haskell with the goal of developing in haskell professionally. What other books
2021-04-21 02:41:35 +0200 <aVikingTrex> should I read or tips you all have for reaching a higher level of ability with the language?
2021-04-21 02:43:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 02:43:19 +0200 <aVikingTrex> My current professional languages are on dotnet - C# and F#
2021-04-21 02:44:18 +0200 <c_wraith> I think the best thing you can do at the intermediate level is write Haskell programs and use libraries. That latter part is important for learning the sorts of things people actually use
2021-04-21 02:46:03 +0200 <wroathe> I just keep an audio recording of SPJ playing 24/7 in my apartment as white noise in the background.
2021-04-21 02:47:04 +0200 <DigitalKiwi> c_wraith: i'm not sure how using things people actually use helps with learning haskell ;p
2021-04-21 02:47:44 +0200loller_(uid358106@gateway/web/irccloud.com/x-knsjtabxhwvomwzb)
2021-04-21 02:48:52 +0200sm2n(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) (Quit: Leaving)
2021-04-21 02:50:21 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-04-21 02:50:35 +0200sm2n(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca)
2021-04-21 02:51:33 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 265 seconds)
2021-04-21 02:52:17 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 02:52:24 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 02:53:06 +0200s00pcan(~chris@107.181.165.217)
2021-04-21 02:53:39 +0200 <Axman6> wroathe: that sounds very soothing
2021-04-21 02:58:07 +0200 <jackdk> newhoggy: file a bug in the trustees repo requesting a bound raise? If you can do a PR with the bound relaxations that would be helpful too. https://github.com/bgamari/monoidal-containers/issues/77 also
2021-04-21 02:58:17 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-04-21 02:58:23 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-21 02:58:56 +0200 <bgamari> newhoggy, done
2021-04-21 02:59:11 +0200s00pcan(~chris@107.181.165.217) (Ping timeout: 252 seconds)
2021-04-21 02:59:22 +0200 <newhoggy> Thanks! <3
2021-04-21 02:59:34 +0200 <Axman6> bgamari: <3 (ping jackdk)
2021-04-21 02:59:42 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds)
2021-04-21 03:00:03 +0200 <bgamari> yushyin, I don't think there is a Rust IRC channel at this point
2021-04-21 03:00:15 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com)
2021-04-21 03:00:23 +0200 <bgamari> yushyin, but why learn Rust when you can rather master the beauty of Haskell?
2021-04-21 03:00:48 +0200 <Axman6> Good luck to them when the apocolypse hits!
2021-04-21 03:01:03 +0200 <bgamari> whoops
2021-04-21 03:01:10 +0200 <bgamari> rather, ortz
2021-04-21 03:01:13 +0200 <bgamari> who is now gone
2021-04-21 03:01:14 +0200 <bgamari> oh well
2021-04-21 03:01:48 +0200 <wroathe> Axman6: Yeah, but I still haven't learned anything. I'm starting to question my methods.
2021-04-21 03:02:33 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-04-21 03:02:40 +0200geiger_(~geiger@90.212.77.86) (Ping timeout: 265 seconds)
2021-04-21 03:03:00 +0200 <Axman6> wroathe: have you tried changing your editor font to Comic Sans?
2021-04-21 03:03:03 +0200 <jackdk> bgamari: thanks, can you look at issue 77 also? (aeson upper bound)
2021-04-21 03:03:48 +0200 <bgamari> jackdk, I'm afraid I'm not a maintainer of aeson
2021-04-21 03:03:55 +0200 <bgamari> ahh
2021-04-21 03:03:58 +0200 <bgamari> never mind, misread
2021-04-21 03:03:59 +0200 <bgamari> sure
2021-04-21 03:04:04 +0200 <wroathe> Axman6: No, but that's a really solid idea. I'll give it a shot.
2021-04-21 03:04:46 +0200 <Axman6> And you're, of course, wearing a knitted woolen jumper which would normally only be appropriate around chrristmas, right?
2021-04-21 03:05:02 +0200 <Axman6> This is the only path to true HAskell mastery
2021-04-21 03:06:08 +0200 <bgamari> jackdk, done
2021-04-21 03:06:20 +0200 <jackdk> bgamari: <3 (ping Axman6)
2021-04-21 03:06:30 +0200 <Axman6> :tada:
2021-04-21 03:07:39 +0200 <DigitalKiwi> nobody going to suggest ATS? :(
2021-04-21 03:08:21 +0200 <wroathe> Axman6: So far so good: https://www.dropbox.com/s/glmuva79hdcf8zq/Screen%20Shot%202021-04-20%20at%208.07.53%20PM.png?dl=0
2021-04-21 03:08:30 +0200 <wroathe> Axman6: I can feel the mastery of all things starting to build
2021-04-21 03:08:44 +0200 <Axman6> This is the way
2021-04-21 03:09:08 +0200 <Axman6> apart from... that is SQL and not Haskell, that might also be your problem
2021-04-21 03:09:31 +0200 <wroathe> Oh, I was under the impression that Comic Sans would lead to mastery in all things
2021-04-21 03:13:44 +0200Nahra(~user@unaffiliated/nahra) (Remote host closed the connection)
2021-04-21 03:13:58 +0200 <DigitalKiwi> i'm sick of comic sans i want tragic sans
2021-04-21 03:14:09 +0200 <jackdk> DigitalKiwi: look up tom7's comic sands
2021-04-21 03:14:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-21 03:15:05 +0200 <DigitalKiwi> is it satire
2021-04-21 03:16:46 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 252 seconds)
2021-04-21 03:17:23 +0200aVikingTrex(2be74510@43.231.69.16) (Quit: Connection closed)
2021-04-21 03:18:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-04-21 03:19:28 +0200 <jackdk> DigitalKiwi: it's a tom7 project.
2021-04-21 03:20:37 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Remote host closed the connection)
2021-04-21 03:20:59 +0200tomboy64(~tomboy64@unaffiliated/tomboy64) (Ping timeout: 246 seconds)
2021-04-21 03:21:05 +0200 <DigitalKiwi> http://mp3.tom7.org/t7es/
2021-04-21 03:21:20 +0200 <DigitalKiwi> i'm not sure this is what you want me to find but this is what i find
2021-04-21 03:21:28 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-04-21 03:21:38 +0200nicholasbulka(~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net)
2021-04-21 03:23:58 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 03:24:23 +0200drbean_(~drbean@TC210-63-209-51.static.apol.com.tw)
2021-04-21 03:26:28 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-04-21 03:26:37 +0200nicholasbulka(~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net) (Ping timeout: 268 seconds)
2021-04-21 03:27:01 +0200jesystani(~thorn@2404:4404:17f1:4900:8932:e59c:bc73:f200) (Ping timeout: 245 seconds)
2021-04-21 03:27:20 +0200trucker(~trucklife@5.122.26.32)
2021-04-21 03:27:56 +0200 <jackdk> DigitalKiwi: http://tom7.org/lowercase/
2021-04-21 03:28:07 +0200xff0x(~xff0x@2001:1a81:5214:2600:51f9:992c:5a15:4907) (Ping timeout: 260 seconds)
2021-04-21 03:28:20 +0200jesystani(~thorn@2404:4404:17f1:4900:6cdb:4797:2af1:7f65)
2021-04-21 03:28:30 +0200 <DigitalKiwi> oh i saw that url in the searchs but didn't visit it yet
2021-04-21 03:28:55 +0200trucker(~trucklife@5.122.26.32) ("Leaving")
2021-04-21 03:29:25 +0200 <DigitalKiwi> thankz
2021-04-21 03:29:41 +0200xff0x(~xff0x@2001:1a81:5253:e800:1dc:184f:3c23:9adc)
2021-04-21 03:29:49 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-21 03:34:33 +0200 <DigitalKiwi> omg why is this calling me out like this "why do easy things by hand ...when you can spend weeks (automatic solution that doesn't work that well)"
2021-04-21 03:38:36 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 260 seconds)
2021-04-21 03:38:50 +0200nineonine(~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849)
2021-04-21 03:42:45 +0200nineonin_(~nineonine@50.216.62.2)
2021-04-21 03:43:07 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-04-21 03:43:15 +0200nineonine(~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 250 seconds)
2021-04-21 03:49:06 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-21 03:49:25 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-21 03:57:23 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 03:57:39 +0200pfurla_(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-21 04:00:00 +0200Alleria(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com)
2021-04-21 04:00:23 +0200AlleriaGuest15679
2021-04-21 04:01:35 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds)
2021-04-21 04:02:07 +0200urodna_(~urodna@unaffiliated/urodna) (Quit: urodna_)
2021-04-21 04:02:16 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-21 04:03:43 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-21 04:04:29 +0200Guest15679(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-04-21 04:05:27 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-21 04:10:11 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-04-21 04:10:24 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-21 04:11:25 +0200jesystani(~thorn@2404:4404:17f1:4900:6cdb:4797:2af1:7f65) (Ping timeout: 250 seconds)
2021-04-21 04:12:37 +0200jesystani(~thorn@2404:4404:17f1:4900:8e1:ccf6:9706:cd19)
2021-04-21 04:18:17 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Quit: Leaving)
2021-04-21 04:20:50 +0200_4n0nymou2_(4642bb68@unaffiliated/d4v1d)
2021-04-21 04:21:07 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-04-21 04:21:14 +0200 <glguy> hi _4n0nymou2_
2021-04-21 04:21:22 +0200 <_4n0nymou2_> Hello
2021-04-21 04:21:30 +0200 <_4n0nymou2_> Just came from GitHub
2021-04-21 04:21:49 +0200 <glguy> Yup. Linker errors are a normal part of the Arch Linux experience. I know people have guided others through it here
2021-04-21 04:22:42 +0200 <_4n0nymou2_> I am absolutely  sure I installed `cabal` from `ghcup` instead of arch linux repository
2021-04-21 04:22:58 +0200 <glguy> yeah, I believe you
2021-04-21 04:22:59 +0200berberman_(~berberman@unaffiliated/berberman)
2021-04-21 04:23:48 +0200 <glguy> Do you have a ~/.cabal/config ?
2021-04-21 04:24:07 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-04-21 04:24:20 +0200 <glguy> You can see how that diverges from the default with: cabal user-config diff
2021-04-21 04:24:49 +0200gzj(~gzj@unaffiliated/gzj) (Ping timeout: 252 seconds)
2021-04-21 04:25:30 +0200 <_4n0nymou2_> Oh! I think I found the culprit:
2021-04-21 04:25:31 +0200 <_4n0nymou2_> + executable-dynamic: True
2021-04-21 04:25:31 +0200 <_4n0nymou2_> + library-vanilla: True
2021-04-21 04:25:32 +0200 <_4n0nymou2_> - remote-build-reporting: none
2021-04-21 04:25:32 +0200 <_4n0nymou2_> + remote-build-reporting: anonymous
2021-04-21 04:25:33 +0200 <_4n0nymou2_> + shared: True
2021-04-21 04:25:33 +0200 <_4n0nymou2_> + verbose: 1
2021-04-21 04:25:34 +0200 <_4n0nymou2_> Arch wiki fooled me
2021-04-21 04:27:30 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee)
2021-04-21 04:27:34 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-04-21 04:28:14 +0200 <_4n0nymou2_> They tell me to enable 'dynamic linking' , which, unfortunately does more harm than good
2021-04-21 04:28:57 +0200 <glguy> I think part of making Haskell work on Arch is not only ignoring their packages but also their wiki
2021-04-21 04:29:02 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-21 04:29:08 +0200 <glguy> dunno, it's the main OS people have trouble with
2021-04-21 04:31:02 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-21 04:31:11 +0200 <_4n0nymou2_> Now I reset the config to default by deleting it and rerun `cabal update` hope this time it will work :-)
2021-04-21 04:31:36 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Ping timeout: 245 seconds)
2021-04-21 04:32:36 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-21 04:34:36 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-21 04:37:51 +0200wavemode(~wavemode@097-070-075-143.res.spectrum.com)
2021-04-21 04:39:41 +0200theDon(~td@muedsl-82-207-238-085.citykom.de) (Ping timeout: 240 seconds)
2021-04-21 04:40:46 +0200 <_4n0nymou2_> glguy: Yeah! It works now.
2021-04-21 04:41:12 +0200 <glguy> Oh, cool
2021-04-21 04:41:19 +0200drbean_(~drbean@TC210-63-209-51.static.apol.com.tw) (Ping timeout: 252 seconds)
2021-04-21 04:41:30 +0200theDon(~td@94.134.91.185)
2021-04-21 04:41:57 +0200 <_4n0nymou2_> Even Arch Wiki is wrong sometimes :(
2021-04-21 04:42:53 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-04-21 04:44:17 +0200 <_4n0nymou2_> glguy: Maybe it's time to add in the GitHub readme: **DO NOT USE ARCH PACKAGES** and **DO NOT USE DYNAMIC LINKING**
2021-04-21 04:44:38 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-21 04:44:38 +0200finn_elijaGuest74489
2021-04-21 04:44:38 +0200FinnElijafinn_elija
2021-04-21 04:44:40 +0200 <glguy> That would go in the Arch Linux wiki
2021-04-21 04:44:47 +0200 <justsomeguy> In general OS communities have a hard time following the best practices of programming languages build systems and packaging schemes. They move at different cadences.
2021-04-21 04:45:34 +0200 <glguy> glirc is find with dynamic linking if you set up your build environment correctly
2021-04-21 04:45:46 +0200 <glguy> trying to build a dynamic executable without building dynamic libraries first just isn't that
2021-04-21 04:47:05 +0200nineonin_(~nineonine@50.216.62.2) (Remote host closed the connection)
2021-04-21 04:47:35 +0200nineonine(~nineonine@50.216.62.2)
2021-04-21 04:47:36 +0200 <_4n0nymou2_> Thanks, bye
2021-04-21 04:47:52 +0200_4n0nymou2_(4642bb68@unaffiliated/d4v1d) (Quit: _4n0nymou2_)
2021-04-21 04:47:57 +0200Guest74489(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-04-21 04:48:52 +0200tekacs(~tekacs@178.79.131.8) (Quit: Disappearing... *poof*)
2021-04-21 04:49:59 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-lajcuenivninlvjc) (Ping timeout: 245 seconds)
2021-04-21 04:50:44 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-cfikpjmyftuncdpf)
2021-04-21 04:51:06 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
2021-04-21 04:52:51 +0200tekacs(tekacs@2a01:7e00::f03c:91ff:fe93:43aa)
2021-04-21 04:55:37 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds)
2021-04-21 04:58:16 +0200davros_(~davros@host86-185-126-190.range86-185.btcentralplus.com) (Remote host closed the connection)
2021-04-21 04:59:23 +0200 <gnumonic> There's no way to put a class constraint on the return type of a closed (non associated) type family, right?
2021-04-21 05:00:30 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-04-21 05:03:28 +0200 <glguy> gnumonic, not that I'm aware of
2021-04-21 05:10:19 +0200Jd007(~Jd007@162.156.11.151)
2021-04-21 05:10:45 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 05:11:15 +0200jesystani(~thorn@2404:4404:17f1:4900:8e1:ccf6:9706:cd19) (Ping timeout: 260 seconds)
2021-04-21 05:12:06 +0200jesystani(~thorn@2404:4404:17f1:4900:8c4:9d6:6bf0:ca3a)
2021-04-21 05:12:50 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 05:12:59 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-04-21 05:13:20 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-04-21 05:13:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 05:14:24 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-21 05:16:23 +0200ericsagnes(~ericsagne@2405:6580:0:5100:7cd:23d4:b32c:5140) (Ping timeout: 260 seconds)
2021-04-21 05:17:01 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 245 seconds)
2021-04-21 05:20:32 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-21 05:20:40 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Client Quit)
2021-04-21 05:20:53 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-04-21 05:23:15 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-21 05:23:56 +0200davros(~davros@host86-185-126-190.range86-185.btcentralplus.com)
2021-04-21 05:26:01 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 05:26:12 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-duhphiqafdupvlzv) (Quit: Connection closed for inactivity)
2021-04-21 05:27:06 +0200minoru_shiraeesh(~shiraeesh@109.166.59.151) (Ping timeout: 260 seconds)
2021-04-21 05:27:36 +0200ericsagnes(~ericsagne@2405:6580:0:5100:ee94:8f2c:d91b:ec)
2021-04-21 05:28:06 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-04-21 05:31:55 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-21 05:38:45 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-04-21 05:40:36 +0200myShoggoth(~myShoggot@75.164.11.109)
2021-04-21 05:40:43 +0200mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 265 seconds)
2021-04-21 05:42:49 +0200mrchampion(~mrchampio@38.18.109.23)
2021-04-21 05:47:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-04-21 05:51:52 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 252 seconds)
2021-04-21 05:56:13 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-04-21 05:57:08 +0200benkolera(uid285671@gateway/web/irccloud.com/x-wgysqrkvbdmzjzqk)
2021-04-21 06:00:25 +0200Alleria(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com)
2021-04-21 06:00:48 +0200AlleriaGuest59865
2021-04-21 06:02:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2021-04-21 06:02:54 +0200triposorbust(~ahc2149@097-094-102-232.biz.spectrum.com)
2021-04-21 06:04:57 +0200Guest59865(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-04-21 06:05:35 +0200triposorbust(~ahc2149@097-094-102-232.biz.spectrum.com) ()
2021-04-21 06:05:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 06:07:43 +0200jesystani(~thorn@2404:4404:17f1:4900:8c4:9d6:6bf0:ca3a) (Ping timeout: 260 seconds)
2021-04-21 06:08:27 +0200jesystani(~thorn@2404:4404:17f1:4900:321c:1a26:59b4:eb2d)
2021-04-21 06:11:55 +0200lazy_j(~lazy_J@193.27.12.44)
2021-04-21 06:13:53 +0200lazy_j(~lazy_J@193.27.12.44) (Client Quit)
2021-04-21 06:13:59 +0200guest421(~user@49.5.6.87)
2021-04-21 06:14:31 +0200 <guest421> what is `traverse`? what does this mean "It's kind of like fmap, except that you can run effects inside the mapper function, which also changes the result type."?
2021-04-21 06:14:46 +0200lazy_j(~lazy_J@193.27.12.44)
2021-04-21 06:14:53 +0200vdukhovni(64022765@100.2.39.101)
2021-04-21 06:14:56 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 245 seconds)
2021-04-21 06:16:43 +0200 <Axman6> :t traverse
2021-04-21 06:16:45 +0200 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2021-04-21 06:16:57 +0200 <Axman6> % :traverse @Tree @IO
2021-04-21 06:16:58 +0200 <yahb> Axman6: unknown command ':traverse'; use :? for help.
2021-04-21 06:17:03 +0200 <Axman6> % :t traverse @Tree @IO
2021-04-21 06:17:03 +0200 <yahb> Axman6: (a -> IO b) -> Tree a -> IO (Tree b)
2021-04-21 06:18:28 +0200 <guest421> > traverse print [1,2,3]
2021-04-21 06:18:30 +0200 <lambdabot> <IO [()]>
2021-04-21 06:20:17 +0200Rudd0(~Rudd0@185.189.115.108)
2021-04-21 06:23:41 +0200ania123(5e89ad7c@94.137.173.124)
2021-04-21 06:24:24 +0200j_lazy(~lazy_J@64.44.80.252)
2021-04-21 06:25:58 +0200 <guest421> like sequenceA_ (fmap print [1,2,3])?
2021-04-21 06:26:04 +0200nineonine(~nineonine@50.216.62.2)
2021-04-21 06:26:14 +0200 <guest421> :t sequenceA_
2021-04-21 06:26:16 +0200 <lambdabot> (Foldable t, Applicative f) => t (f a) -> f ()
2021-04-21 06:26:26 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-04-21 06:26:36 +0200lazy_j(~lazy_J@193.27.12.44) (Ping timeout: 245 seconds)
2021-04-21 06:26:39 +0200 <guest421> but this t is Foldable not Traversable
2021-04-21 06:28:02 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 06:28:08 +0200ortz(~egigs@108-89-5-25.lightspeed.dybhfl.sbcglobal.net) (Quit: leaving)
2021-04-21 06:28:32 +0200horatiohb(~horatiohb@104.131.33.15) (Ping timeout: 240 seconds)
2021-04-21 06:28:46 +0200j_lazy(~lazy_J@64.44.80.252) (Ping timeout: 240 seconds)
2021-04-21 06:31:35 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-04-21 06:32:49 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-21 06:33:03 +0200 <guest421> I forget how to put IO actions inside a list?
2021-04-21 06:33:07 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Client Quit)
2021-04-21 06:34:00 +0200jesystani(~thorn@2404:4404:17f1:4900:321c:1a26:59b4:eb2d) (Quit: WeeChat 3.1)
2021-04-21 06:34:49 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-21 06:36:04 +0200 <glguy> :t [ print "IO", print "actions" ]
2021-04-21 06:36:05 +0200 <lambdabot> [IO ()]
2021-04-21 06:36:16 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 252 seconds)
2021-04-21 06:39:12 +0200RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 265 seconds)
2021-04-21 06:40:41 +0200 <Axman6> g`so the mental model you should use for traverse is, if I have a function which can accept a's and produce f b's (let's say, fetchUrl :: Url -> IO ByteString), and we have some traversable structure of containing a's (let's say urlTree :: Tree Url), then you can use traverse fetchUrl urlTree to get back an IO (Tree ByteString)
2021-04-21 06:40:55 +0200u0_a203(~u0_a203@93.119.221.33)
2021-04-21 06:41:50 +0200u0_a203(~u0_a203@93.119.221.33) (Client Quit)
2021-04-21 06:42:37 +0200 <Axman6> guest421: ^ that was for you, but apparently I'm terrible at typing
2021-04-21 06:42:46 +0200MVQq(~anja@198.254.208.159) (Quit: q)
2021-04-21 06:43:24 +0200MarcelineVQ(~anja@198.254.208.159)
2021-04-21 06:43:35 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-bpfgsdmlrafbmgyu)
2021-04-21 06:43:55 +0200 <guest421> sequence $ fmap print [1,2,3]
2021-04-21 06:44:01 +0200 <guest421> mapM print [1,2,3]
2021-04-21 06:44:07 +0200 <Axman6> traverse f = sequence . fmap f
2021-04-21 06:44:18 +0200 <Axman6> mapM is also the same as traverse
2021-04-21 06:44:27 +0200 <c_wraith> Though really, you're probably better off with mapM_ or traverse_
2021-04-21 06:44:34 +0200 <guest421> traverse print [1,2,3]
2021-04-21 06:45:07 +0200 <guest421> sequenceA_ (fmap print [1,2,3])
2021-04-21 06:45:30 +0200 <Axman6> :t traverse_
2021-04-21 06:45:32 +0200 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
2021-04-21 06:46:46 +0200 <gnumonic> :t mapM
2021-04-21 06:46:47 +0200 <lambdabot> (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
2021-04-21 06:46:53 +0200 <Axman6> % sequenceA_ (fmap print [1,2,3])
2021-04-21 06:46:53 +0200 <yahb> Axman6: 1; 2; 3
2021-04-21 06:47:06 +0200 <gnumonic> huh i always thought mapM was specialized to lists
2021-04-21 06:47:07 +0200 <Axman6> % traverse_ print [1,2,3]
2021-04-21 06:47:07 +0200 <yahb> Axman6: 1; 2; 3
2021-04-21 06:47:08 +0200 <gnumonic> oops
2021-04-21 06:47:46 +0200 <Axman6> it used to be, but these days mapM etc are basically just old names for other function
2021-04-21 06:47:49 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-04-21 06:48:28 +0200 <lechner> Hi, is there a consistent link to Haddock documentation on Hackage pages, please? https://hackage.haskell.org/package/zeromq4-haskell
2021-04-21 06:48:41 +0200 <guest421> those functions related to IO?
2021-04-21 06:48:42 +0200 <Axman6> consistent how?
2021-04-21 06:49:09 +0200 <Axman6> IO is an Applicative, so you can choose for the f to be IO
2021-04-21 06:49:20 +0200 <Axman6> (or m in the case of mapM etc)
2021-04-21 06:49:45 +0200 <guest421> fmap print [1,2,3] is not wrong, right?
2021-04-21 06:50:20 +0200 <c_wraith> it's not a type error. whether it's "wrong" or not depends on what you want to do. It won't create an IO action that prints each value.
2021-04-21 06:50:29 +0200 <guest421> but sequence or mapM or traverse will get the IO effects
2021-04-21 06:50:35 +0200 <guest421> which fmap print [1,2,3] won't
2021-04-21 06:50:46 +0200 <c_wraith> It will create a list of IO actions, rather than one IO action that prints everything in the list
2021-04-21 06:50:55 +0200 <c_wraith> sometimes you want a list of IO actions!
2021-04-21 06:51:33 +0200 <Axman6> :t fmap print
2021-04-21 06:51:35 +0200 <lambdabot> (Functor f, Show a) => f a -> f (IO ())
2021-04-21 06:51:36 +0200 <guest421> fmap print [1,2,3] would create a list of IO actions
2021-04-21 06:51:44 +0200 <Axman6> % :t fmap @[] print
2021-04-21 06:51:44 +0200 <yahb> Axman6: Show a => [a] -> [IO ()]
2021-04-21 06:51:50 +0200 <Axman6> yes
2021-04-21 06:52:11 +0200 <guest421> and what traverse or sequence or mapM do?
2021-04-21 06:52:22 +0200 <lechner> Axman6: i only see links sometimes. is there any documentation for the module above?
2021-04-21 06:52:22 +0200 <guest421> why there're so many names...
2021-04-21 06:52:40 +0200 <c_wraith> there are so many names because of historical mistakes
2021-04-21 06:52:51 +0200carlomagno(~cararell@148.87.23.7) (Remote host closed the connection)
2021-04-21 06:53:08 +0200 <Axman6> lechner: probably because it failed to build when uploaded to hackage so the documentation was never generated
2021-04-21 06:53:20 +0200 <lechner> Axman6: thanks!
2021-04-21 06:53:34 +0200 <c_wraith> Haskell is a pretty old language, and people have been trying to improve it for a long time. But sometimes that means when a clear improvement is made, old names stick around to not break old code
2021-04-21 06:53:41 +0200 <Axman6> lechner: look at the "build log" link at the bottom right of the page
2021-04-21 06:54:07 +0200 <lechner> Axman6: now i see it. thanks!
2021-04-21 06:55:24 +0200 <lechner> Axman6: maybe hackage could build the docs first... https://hackage.haskell.org/package/zeromq4-haskell-0.8.0/reports/2
2021-04-21 06:55:58 +0200 <Axman6> guest421: it's definitely more common to want to apply a function to every element of a list and then execute the resultin IO actions than it is to keep around a list of IO actions
2021-04-21 06:56:14 +0200 <Axman6> lechner: the docs building depend on the code being able to compile IIRC
2021-04-21 06:56:25 +0200malumore_(~malumore@151.62.122.70)
2021-04-21 06:57:15 +0200 <lechner> Axman6: yeah it looks like a broader cabal v1 problem, too https://hackage.haskell.org/package/zeromq4-simple-0.0.0.2/reports/3
2021-04-21 06:58:11 +0200jao(~jao@pdpc/supporter/professional/jao) (Ping timeout: 240 seconds)
2021-04-21 06:58:22 +0200 <Axman6> lechner: looks to me like the server hackage is running on doesn't have libzmq installed: (conflict:
2021-04-21 06:58:25 +0200 <Axman6> pkg-config package libzmq>=4.0 && <5.0, not found in the pkg-config database)
2021-04-21 06:58:49 +0200 <Axman6> which makes sense. Libraries which depend on external C libraries often fail to build on hackage
2021-04-21 06:59:26 +0200 <lechner> i see. that would explain why i could not find any ZeroMQ packages with documentation at all there
2021-04-21 06:59:38 +0200ania123(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-04-21 06:59:50 +0200Jd007(~Jd007@162.156.11.151)
2021-04-21 07:05:44 +0200RusAlex(~Chel@unaffiliated/rusalex)
2021-04-21 07:09:02 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-04-21 07:16:19 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 07:19:56 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 245 seconds)
2021-04-21 07:22:40 +0200maroloccio(~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
2021-04-21 07:25:03 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de)
2021-04-21 07:25:09 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-fcexcnqymecxutqt)
2021-04-21 07:25:13 +0200malumore_(~malumore@151.62.122.70) (Remote host closed the connection)
2021-04-21 07:25:31 +0200malumore_(~malumore@151.62.122.70)
2021-04-21 07:26:27 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-21 07:28:06 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 07:32:51 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-04-21 07:36:29 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2021-04-21 07:37:36 +0200myShoggoth(~myShoggot@75.164.11.109) (Ping timeout: 268 seconds)
2021-04-21 07:40:37 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 252 seconds)
2021-04-21 07:41:26 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de)
2021-04-21 07:44:08 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-04-21 07:44:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 07:47:00 +0200 <wroathe> Is there a way to specify a monoid constraint for a * -> * type variable in a function type?
2021-04-21 07:47:27 +0200 <c_wraith> are you looking for QuantifiedConstraints?
2021-04-21 07:47:37 +0200 <wroathe> c_wraith: Probably.
2021-04-21 07:47:38 +0200 <c_wraith> For what it's worth, I hear it's a bit buggy
2021-04-21 07:48:54 +0200 <wroathe> Specifically I've got (IsString a, Monoid t) => t (Attribute a) -> Html t a, and it's telling me Expected kind ‘* -> *’, but ‘t’ has kind ‘*’
2021-04-21 07:49:19 +0200 <wroathe> So the Monoid constraint seemingly can only be applied to type variables of kind * by default
2021-04-21 07:50:39 +0200gaiger(~geiger@0543f40b.skybroadband.com)
2021-04-21 07:53:29 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-04-21 07:54:17 +0200edwardk_(sid47016@haskell/developer/edwardk)
2021-04-21 07:54:54 +0200 <gnumonic> f :: forall a b (m :: Type -> Type) y. (b ~ Maybe a, Monoid (m b), Monoid (m a)) => m (Maybe a) -> Identity (m a) seems to typecheck but i dunno if that's what you want?
2021-04-21 07:54:56 +0200Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-04-21 07:55:13 +0200 <gnumonic> i have basically every type voodoo compiler extension on in that file tho
2021-04-21 07:55:29 +0200 <wroathe> Ha, there HAS to be a simpler way than that :P
2021-04-21 07:55:44 +0200edwardk(sid47016@haskell/developer/edwardk) (Ping timeout: 245 seconds)
2021-04-21 07:55:44 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-llgsamgivilxjltg) (Ping timeout: 245 seconds)
2021-04-21 07:55:44 +0200Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Remote host closed the connection)
2021-04-21 07:55:44 +0200edwardk_edwardk
2021-04-21 07:55:44 +0200tapas(sid467876@gateway/web/irccloud.com/x-dpxzueexrqylgrju) (Ping timeout: 245 seconds)
2021-04-21 07:55:45 +0200parisienne(sid383587@gateway/web/irccloud.com/x-aiygzsqhowxpopox) (Ping timeout: 245 seconds)
2021-04-21 07:55:45 +0200stylewarning(stylewarni@gateway/web/irccloud.com/session)
2021-04-21 07:55:45 +0200stylewarning(stylewarni@gateway/web/irccloud.com/session) (Changing host)
2021-04-21 07:55:45 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-gsvymsjokvoizmft)
2021-04-21 07:55:52 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 245 seconds)
2021-04-21 07:55:59 +0200parisienne(sid383587@gateway/web/irccloud.com/x-vydbxjnkijiazrlk)
2021-04-21 07:55:59 +0200chele(~chele@5.53.222.202)
2021-04-21 07:56:05 +0200ephemera_(~E@122.34.1.187)
2021-04-21 07:56:21 +0200ashesham`(~user@d8D87D1B0.access.telenet.be)
2021-04-21 07:56:25 +0200tapas(sid467876@gateway/web/irccloud.com/x-bsjadohtpruxmywx)
2021-04-21 07:56:36 +0200sclv(sid39734@haskell/developer/sclv) (Ping timeout: 245 seconds)
2021-04-21 07:56:37 +0200cyberlard(~cyberlard@unaffiliated/jludwig) (Ping timeout: 245 seconds)
2021-04-21 07:56:51 +0200 <gnumonic> i've been doing dependently typed experiments for a few days so that actually does strike me as simple-ish :p
2021-04-21 07:56:57 +0200cyberlard(~cyberlard@unaffiliated/jludwig)
2021-04-21 07:57:23 +0200exarkun_(~exarkun@14.79.69.34.bc.googleusercontent.com)
2021-04-21 07:57:49 +0200exarkun(~exarkun@14.79.69.34.bc.googleusercontent.com) (Ping timeout: 245 seconds)
2021-04-21 07:57:49 +0200nh2(sid309956@gateway/web/irccloud.com/x-vqylohvjgsiigvkd) (Ping timeout: 245 seconds)
2021-04-21 07:57:49 +0200alanz(sid110616@gateway/web/irccloud.com/x-ephuaztzuzimomxa) (Ping timeout: 245 seconds)
2021-04-21 07:57:51 +0200jackhill(~jackhill@marsh.hcoop.net) (Ping timeout: 245 seconds)
2021-04-21 07:58:01 +0200sclv(sid39734@haskell/developer/sclv)
2021-04-21 07:58:07 +0200jackhill(~jackhill@marsh.hcoop.net)
2021-04-21 07:58:29 +0200loller_(uid358106@gateway/web/irccloud.com/x-knsjtabxhwvomwzb) (Ping timeout: 245 seconds)
2021-04-21 07:58:29 +0200pepeiborra(sid443799@gateway/web/irccloud.com/x-nirrncfqraegkpgk) (Ping timeout: 245 seconds)
2021-04-21 07:58:42 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-gzlgfjzfpthijryy) (Ping timeout: 245 seconds)
2021-04-21 07:58:42 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Ping timeout: 245 seconds)
2021-04-21 07:58:42 +0200davean(~davean@davean.sciesnet.net) (Ping timeout: 245 seconds)
2021-04-21 07:58:58 +0200davean(~davean@davean.sciesnet.net)
2021-04-21 07:58:59 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2021-04-21 07:59:14 +0200nh2(sid309956@gateway/web/irccloud.com/x-sfwmjcpeywrfgggs)
2021-04-21 07:59:31 +0200ptrcmd(~ptrcmd@unaffiliated/petercommand) (Ping timeout: 245 seconds)
2021-04-21 07:59:32 +0200alanz(sid110616@gateway/web/irccloud.com/x-qjhghsxjfupjbdeb)
2021-04-21 07:59:32 +0200loller_(uid358106@gateway/web/irccloud.com/x-jiaqaybiuqrwtvzc)
2021-04-21 07:59:38 +0200ptrcmd(~ptrcmd@unaffiliated/petercommand)
2021-04-21 07:59:49 +0200pepeiborra(sid443799@gateway/web/irccloud.com/x-sswqhnrrevrotjio)
2021-04-21 07:59:50 +0200 <wavemode> afaik a type which is a Monoid would necessarily have kind *. That is why instances are declared like (for example) Monoid [a], not Monoid []
2021-04-21 07:59:56 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-gsvymsjokvoizmft) (Ping timeout: 245 seconds)
2021-04-21 08:00:06 +0200Alleria(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com)
2021-04-21 08:00:29 +0200AlleriaGuest57813
2021-04-21 08:00:43 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-pjdnfdcsawunazxf)
2021-04-21 08:01:02 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-zhwbhuctetrnaybq)
2021-04-21 08:02:40 +0200 <joel135> A monoid of kind * -> * would be a monad :)
2021-04-21 08:02:56 +0200thc202(~thc202@unaffiliated/thc202)
2021-04-21 08:03:50 +0200 <wroathe> joel135: So where's my Monad equivalent of mempty ;P
2021-04-21 08:04:22 +0200 <joel135> return
2021-04-21 08:04:31 +0200Guest57813(~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 245 seconds)
2021-04-21 08:04:38 +0200 <wroathe> joel135: That would require putting at least one thing in the container, would it not?
2021-04-21 08:05:11 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-04-21 08:05:14 +0200hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-04-21 08:05:23 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-04-21 08:05:34 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
2021-04-21 08:05:40 +0200 <gnumonic> wonder if you could do something like this: class (KindOf b ~ Type, Monoid b) => ToMonoid (f :: Type -> b) where (...)
2021-04-21 08:05:42 +0200 <wroathe> % pure 3 :: [Int]
2021-04-21 08:05:42 +0200 <yahb> wroathe: [3]
2021-04-21 08:06:36 +0200 <wroathe> % mempty :: [Int]
2021-04-21 08:06:36 +0200 <yahb> wroathe: []
2021-04-21 08:07:33 +0200 <joel135> :t mempty
2021-04-21 08:07:34 +0200 <lambdabot> Monoid a => a
2021-04-21 08:07:39 +0200 <joel135> :t return
2021-04-21 08:07:40 +0200 <lambdabot> Monad m => a -> m a
2021-04-21 08:07:57 +0200dave_uy(~david@108.61.193.26) (Quit: The Lounge - https://thelounge.chat)
2021-04-21 08:08:03 +0200 <joel135> Monad m => 1 -> m
2021-04-21 08:08:11 +0200 <joel135> Monad m => m
2021-04-21 08:09:03 +0200 <wroathe> joel135: I'm not following... Is there a function for this Monad m => m?
2021-04-21 08:09:35 +0200 <joel135> I'd perhaps say that return gives you an empty container of structure, which may in turn house more than zero data.
2021-04-21 08:09:55 +0200 <joel135> No, I'm just doing pseudo-haskell math.
2021-04-21 08:10:27 +0200 <wroathe> The use case is that I've got a datatype that's a tree-like structure where I want the user to be able to choose the type of the container that contains each nodes child nodes, and I'm defining a function where I want to initialize that field to an "empty" container
2021-04-21 08:11:05 +0200dave_uy(~david@108.61.193.26)
2021-04-21 08:11:21 +0200 <joel135> So you want forall a. Monoid (t a) ?
2021-04-21 08:11:35 +0200 <wroathe> Yeah, maybe that's it...
2021-04-21 08:12:44 +0200 <wroathe> joel135: I'm still not very familiar with explicit quantification, but I think I understand what you're suggesting there
2021-04-21 08:12:52 +0200 <joel135> Or maybe forall a. Monoid (t (Attribute a)). Or just Monoid (t (Attribute a)) without quantification.
2021-04-21 08:13:06 +0200wonko7(~wonko7@62.115.229.50)
2021-04-21 08:13:06 +0200 <joel135> I don't know what haskell will accept.
2021-04-21 08:13:27 +0200 <wroathe> joel135: The a in this case doesn't really matter. It's just an empty container.
2021-04-21 08:13:42 +0200 <wroathe> But yeah, I'll see what GHC accepts
2021-04-21 08:13:45 +0200 <wroathe> joel135: Thank you for the ideas!
2021-04-21 08:13:52 +0200ReinH_(sid179972@gateway/web/irccloud.com/x-yfquzpeultndckwv)
2021-04-21 08:14:04 +0200ReinH(sid179972@gateway/web/irccloud.com/x-nocjtzmybziqzfuj) (Ping timeout: 245 seconds)
2021-04-21 08:14:04 +0200ReinH_ReinH
2021-04-21 08:14:06 +0200pent(sid313808@gateway/web/irccloud.com/x-mamwukyavontcbfs) (Ping timeout: 245 seconds)
2021-04-21 08:14:06 +0200b20n(sid115913@gateway/web/irccloud.com/x-lrxmhixuzcmcfdhe) (Ping timeout: 245 seconds)
2021-04-21 08:14:56 +0200b20n(sid115913@gateway/web/irccloud.com/x-qwfuumnekwjdmynk)
2021-04-21 08:15:16 +0200pent(sid313808@gateway/web/irccloud.com/x-oyldewujgosrhjtp)
2021-04-21 08:15:34 +0200michalz(~user@185.246.204.47)
2021-04-21 08:15:49 +0200leothrix(~leothrix@elastic/staff/leothrix) (Ping timeout: 252 seconds)
2021-04-21 08:16:14 +0200 <wroathe> ...and that requires QuantifiedConstraints
2021-04-21 08:16:20 +0200 <wroathe> So c_wraith was right all along.
2021-04-21 08:16:24 +0200 <wroathe> :)
2021-04-21 08:16:50 +0200wpcarro(sid397589@gateway/web/irccloud.com/x-xnngigwekxregdfs) (Ping timeout: 245 seconds)
2021-04-21 08:16:50 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-tcgdsfioetpoitie) (Ping timeout: 245 seconds)
2021-04-21 08:16:51 +0200wpcarro_(sid397589@gateway/web/irccloud.com/x-sldapopyxsudveqd)
2021-04-21 08:17:35 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-zhwbhuctetrnaybq) (Ping timeout: 245 seconds)
2021-04-21 08:18:08 +0200 <wroathe> joel135: c_wraith: That worked like a charm. Thanks!
2021-04-21 08:18:39 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-hfenrszoagpafasl)
2021-04-21 08:18:51 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-qrihjhvmnnmtnggm)
2021-04-21 08:18:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-04-21 08:19:07 +0200caasih(sid13241@gateway/web/irccloud.com/x-uqzvpjpcsslwgwfl) (Ping timeout: 245 seconds)
2021-04-21 08:19:07 +0200alunduil(alunduil@gateway/web/irccloud.com/x-dylmpfrvghvfrpjf) (Ping timeout: 245 seconds)
2021-04-21 08:19:07 +0200glamas(~glamas@107.182.17.237) (Ping timeout: 245 seconds)
2021-04-21 08:20:15 +0200Logio(em@kapsi.fi) (Ping timeout: 245 seconds)
2021-04-21 08:20:15 +0200b20n(sid115913@gateway/web/irccloud.com/x-qwfuumnekwjdmynk) (Ping timeout: 245 seconds)
2021-04-21 08:20:16 +0200glamas(~glamas@107.182.17.237)
2021-04-21 08:20:28 +0200Logio(em@kapsi.fi)
2021-04-21 08:20:30 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-pjdnfdcsawunazxf) (Ping timeout: 245 seconds)
2021-04-21 08:20:30 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Ping timeout: 245 seconds)
2021-04-21 08:20:37 +0200miklcct_(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2021-04-21 08:21:15 +0200pepeiborra(sid443799@gateway/web/irccloud.com/x-sswqhnrrevrotjio) (Ping timeout: 245 seconds)
2021-04-21 08:21:19 +0200b20n(sid115913@gateway/web/irccloud.com/x-fxwwqjclpbrawyzj)
2021-04-21 08:21:39 +0200thi(sid97277@gateway/web/irccloud.com/x-mwvssirlkplfqvqk) (Ping timeout: 245 seconds)
2021-04-21 08:21:39 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-cimltabwsuoipsqn)
2021-04-21 08:21:48 +0200alunduil(alunduil@gateway/web/irccloud.com/x-lfjncrqckqiqjrhx)
2021-04-21 08:21:57 +0200caasih(sid13241@gateway/web/irccloud.com/x-ywhvuyflycmojjfa)
2021-04-21 08:22:26 +0200dgpratt(sid193493@gateway/web/irccloud.com/x-vbszyjrhlyidsuhn) (Ping timeout: 245 seconds)
2021-04-21 08:22:29 +0200thi(sid97277@gateway/web/irccloud.com/x-qecopghcofyuqahp)
2021-04-21 08:23:03 +0200pepeiborra(sid443799@gateway/web/irccloud.com/x-wwhumdjiavtzqvnj)
2021-04-21 08:23:22 +0200dgpratt(sid193493@gateway/web/irccloud.com/x-yujexlmxhvpapqdm)
2021-04-21 08:23:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-21 08:25:53 +0200 <gnumonic> So I made this class: "class BuildSing (f :: k -> Type) where buildSing :: forall (a :: k). f a -> Sing a" and I'm wondering if it is something that already exists? I don't think it's identical to SingI but I'm tired and not sure
2021-04-21 08:29:47 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 08:30:13 +0200 <juri_> good: i woke up in the middle of the night, thinking about a way to simplify my program using types. bad: i WOKE UP IN THE MIDDLE OF THE NIGHT, thinking about a way to simplify my program using types.
2021-04-21 08:32:59 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 08:33:44 +0200tomboy64(~tomboy64@unaffiliated/tomboy64)
2021-04-21 08:34:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-04-21 08:35:40 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-21 08:37:29 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 245 seconds)
2021-04-21 08:38:55 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-04-21 08:39:49 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-04-21 08:44:51 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-21 08:46:52 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 08:47:46 +0200michalz(~user@185.246.204.47) (Ping timeout: 265 seconds)
2021-04-21 08:48:36 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie)
2021-04-21 08:52:53 +0200 <Axman6> juri_: you sday this like it's a bad thing. this sounds like ecstacy
2021-04-21 08:53:06 +0200Varis(~Tadas@unaffiliated/varis)
2021-04-21 08:57:11 +0200 <juri_> Axman6: I'd like to sleep. :P
2021-04-21 08:58:14 +0200 <Axman6> how will you code when you sleep?
2021-04-21 08:58:30 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de)
2021-04-21 08:58:50 +0200 <pjb> Axman6: good question. And here's a possible answer: neuralink, or other mind reading device, so you may record your nocturnal programming activity.
2021-04-21 08:59:08 +0200 <Axman6> soon...
2021-04-21 09:00:17 +0200kiweun(~kiweun@2607:fea8:2a62:9600:908a:4a01:c91b:ed2f) (Remote host closed the connection)
2021-04-21 09:02:04 +0200leothrix(~leothrix@elastic/staff/leothrix)
2021-04-21 09:05:45 +0200 <guest421> half x = if even x then Just (x `div` 2) else Nothing
2021-04-21 09:05:55 +0200 <guest421> traverse half [1..10] == Nothing
2021-04-21 09:06:05 +0200 <guest421> this time traverse /= sequence . fmap?
2021-04-21 09:06:31 +0200 <guest421> I saw "The reason is that the <*> function is used to build the result, and when one of the arguments is Nothing, we get Nothing back."
2021-04-21 09:06:40 +0200 <Axman6> what does sequence . fmap half do?
2021-04-21 09:06:45 +0200benkolera(uid285671@gateway/web/irccloud.com/x-wgysqrkvbdmzjzqk) (Quit: Connection closed for inactivity)
2021-04-21 09:07:07 +0200 <Axman6> because if they weren't _identical_ then the implementation of traverse breaks its own laws
2021-04-21 09:07:35 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-04-21 09:07:39 +0200 <guest421> fmap half [1..10] will create a list [Nothing 1, Just 1...]
2021-04-21 09:07:44 +0200 <Axman6> yes
2021-04-21 09:07:49 +0200 <guest421> sequence [Nothing, Just 1...]
2021-04-21 09:07:51 +0200 <Axman6> but then sequence will return Nothing
2021-04-21 09:08:45 +0200 <Axman6> > sequence [Nothing, Just a, Nothing, Just 2]
2021-04-21 09:08:48 +0200 <lambdabot> Nothing
2021-04-21 09:09:03 +0200 <guest421> :t sequence
2021-04-21 09:09:05 +0200 <lambdabot> (Traversable t, Monad m) => t (m a) -> m (t a)
2021-04-21 09:09:15 +0200 <guest421> Evaluate each monadic action in the structure from left to right, and collect the results.
2021-04-21 09:09:29 +0200 <Axman6> % :t sequence @[] @Maybe
2021-04-21 09:09:29 +0200 <yahb> Axman6: [Maybe a] -> Maybe [a]
2021-04-21 09:10:07 +0200 <Axman6> what do you think sequence should do when given [Nothing, Just a, Nothing, Just 2]?
2021-04-21 09:10:11 +0200 <wavemode> better question - what is your expected behavior?
2021-04-21 09:10:50 +0200leothrix(~leothrix@elastic/staff/leothrix) (Remote host closed the connection)
2021-04-21 09:11:32 +0200 <guest421> > (Just 3) <*> (Just 2)
2021-04-21 09:11:34 +0200 <lambdabot> error:
2021-04-21 09:11:34 +0200 <lambdabot> • Could not deduce (Num a0)
2021-04-21 09:11:34 +0200 <lambdabot> from the context: (Num a, Num (a -> b))
2021-04-21 09:12:00 +0200 <Axman6> > (,) <$> Just 1 <*> Just 2
2021-04-21 09:12:02 +0200 <lambdabot> Just (1,2)
2021-04-21 09:12:07 +0200 <Axman6> > (,) <$> Just 1 <*> Nothing
2021-04-21 09:12:09 +0200 <lambdabot> Nothing
2021-04-21 09:12:24 +0200 <Axman6> > (:) <$> Just 1 <*> Just []
2021-04-21 09:12:26 +0200 <lambdabot> Just [1]
2021-04-21 09:12:35 +0200 <Axman6> > (:) <$> Nothing <*> Just []
2021-04-21 09:12:37 +0200 <lambdabot> Nothing
2021-04-21 09:12:39 +0200leothrix(~leothrix@elastic/staff/leothrix)
2021-04-21 09:12:46 +0200 <Axman6> > (:) <$> Just 1 <*> Nithing
2021-04-21 09:12:48 +0200 <lambdabot> error:
2021-04-21 09:12:48 +0200 <lambdabot> • Data constructor not in scope: Nithing :: Maybe [a]
2021-04-21 09:12:48 +0200 <lambdabot> • Perhaps you meant one of these:
2021-04-21 09:12:54 +0200 <Axman6> > (:) <$> Just 1 <*> Nothing
2021-04-21 09:12:56 +0200 <lambdabot> Nothing
2021-04-21 09:13:45 +0200 <guest421> Axman6: how "collect the results" ?
2021-04-21 09:14:16 +0200 <Axman6> it collects all the successful results
2021-04-21 09:14:19 +0200 <guest421> [] is an instance of Traversable?
2021-04-21 09:14:21 +0200 <Axman6> I think you want catMaybes
2021-04-21 09:14:25 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds)
2021-04-21 09:14:27 +0200 <Axman6> :t catMaybes
2021-04-21 09:14:29 +0200 <lambdabot> [Maybe a] -> [a]
2021-04-21 09:14:33 +0200howdoi(uid224@gateway/web/irccloud.com/x-bcrpbrlexhkfsmvn) (Quit: Connection closed for inactivity)
2021-04-21 09:14:48 +0200 <Axman6> > catMaybes [Nothing, Just a, Nothing, Just 2]
2021-04-21 09:14:50 +0200 <lambdabot> [a,2]
2021-04-21 09:14:57 +0200 <Axman6> > catMaybes [Nothing, Just 1, Nothing, Just 2]
2021-04-21 09:15:00 +0200 <lambdabot> [1,2]
2021-04-21 09:15:01 +0200dyeplexer(~lol@unaffiliated/terpin)
2021-04-21 09:15:40 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-04-21 09:16:30 +0200vdukhovni(64022765@100.2.39.101) (Quit: Connection closed)
2021-04-21 09:17:41 +0200 <guest421> Axman6: fetchUrl :: Url -> MaybeT IO a, traverse (runMaybeT . fetchUrl) [Url1, Url2] -- this will return a list contain [Just a, Nothing...] or Just [a]?
2021-04-21 09:18:12 +0200 <Axman6> what does ghci tell you? what's the type of runMaybeT . fetchUrl?
2021-04-21 09:18:20 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-21 09:18:29 +0200 <Axman6> should be Url -> IO (Maybe a) right?
2021-04-21 09:18:44 +0200 <guest421> Axman6: yeah, that's simple
2021-04-21 09:18:45 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-21 09:18:49 +0200 <Axman6> so the result will be IO [Maybe a]
2021-04-21 09:19:01 +0200 <Axman6> do you want to fail if any fetch fails?
2021-04-21 09:19:08 +0200 <guest421> yes
2021-04-21 09:20:41 +0200 <Axman6> then you probably want runMaybeT $ traverse fetchUrl [Url1, Url2], which will give you back an IO (Maybe [a])
2021-04-21 09:21:14 +0200idhugo_(~idhugo@87-49-45-4-mobile.dk.customer.tdc.net)
2021-04-21 09:21:49 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie)
2021-04-21 09:22:12 +0200sleblanc(~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 240 seconds)
2021-04-21 09:23:32 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-04-21 09:24:29 +0200 <guest421> fetchUrl :: Url -> IO (Maybe a)
2021-04-21 09:24:32 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2021-04-21 09:25:03 +0200 <Axman6> well that's different to MaybeT IO a
2021-04-21 09:25:11 +0200 <guest421> fmap fetchUrl [Url] :: [IO (Maybe a)]
2021-04-21 09:25:16 +0200loller_(uid358106@gateway/web/irccloud.com/x-jiaqaybiuqrwtvzc) (Quit: Connection closed for inactivity)
2021-04-21 09:25:34 +0200 <guest421> sequence . fmap $ fetchUrl [Url] :: ?
2021-04-21 09:25:42 +0200knupfer(~Thunderbi@i59F67B5A.versanet.de)
2021-04-21 09:26:04 +0200 <Axman6> that doesn't make sense
2021-04-21 09:26:25 +0200 <guest421> Axman6: which part?
2021-04-21 09:27:22 +0200 <guest421> sequence (a :: [IO (Maybe a)]) :: ?
2021-04-21 09:27:57 +0200 <guest421> :t sequence
2021-04-21 09:27:58 +0200 <lambdabot> (Traversable t, Monad m) => t (m a) -> m (t a)
2021-04-21 09:28:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 09:28:39 +0200 <Axman6> :t sequence `asAppledTo` (undefined :: [IO (Maybe a])
2021-04-21 09:28:41 +0200 <lambdabot> error: parse error on input ‘]’
2021-04-21 09:28:47 +0200 <Axman6> :t sequence `asAppledTo` (undefined :: [IO (Maybe a)])
2021-04-21 09:28:49 +0200 <lambdabot> error:
2021-04-21 09:28:49 +0200 <lambdabot> • Variable not in scope:
2021-04-21 09:28:49 +0200 <lambdabot> asAppledTo :: (t0 (m0 a0) -> m0 (t0 a0)) -> [IO (Maybe a1)] -> t
2021-04-21 09:28:50 +0200Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 246 seconds)
2021-04-21 09:29:01 +0200 <c_wraith> try asAppliedTo :P
2021-04-21 09:29:06 +0200 <Axman6> :t sequence `asAppliedTo` (undefined :: [IO (Maybe a)])
2021-04-21 09:29:08 +0200 <lambdabot> [IO (Maybe a)] -> IO [Maybe a]
2021-04-21 09:29:44 +0200 <guest421> sequence . fmap $ fetchUrl [Url] :: IO [Maybe a] ?
2021-04-21 09:29:45 +0200 <Axman6> guest421: so you could so fmap sequence . sequence if you want an IO (Maybe [a])
2021-04-21 09:30:03 +0200 <Axman6> :t fmap sequence . sequence `asAppliedTo` (undefined :: [IO (Maybe a)])
2021-04-21 09:30:05 +0200 <lambdabot> [IO (Maybe a)] -> IO (Maybe [a])
2021-04-21 09:30:07 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 09:31:28 +0200 <guest421> why sequence . sequence...
2021-04-21 09:32:38 +0200 <Axman6> it's (fmap sequence) . sequence, it's applying sequence to the [Maybe a] returned by the IO, it's doing: fmap sequence :: IO [Maybe a] -> IO (Maybe [a])
2021-04-21 09:36:07 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-21 09:38:27 +0200nut_(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 09:40:45 +0200 <Axman6> so fmap sequence . sequence first turns a [IO (Maybe a)] into an IO [Maybe a], and then into an IO (Maybe [a])
2021-04-21 09:40:55 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-21 09:41:03 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Client Quit)
2021-04-21 09:43:28 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-21 09:43:35 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Client Quit)
2021-04-21 09:44:18 +0200Sornaensis(~Sornaensi@077213200034.dynamic.telenor.dk)
2021-04-21 09:46:52 +0200Sorna(~Sornaensi@79.142.232.102)
2021-04-21 09:48:23 +0200benkolera(uid285671@gateway/web/irccloud.com/x-uqnaygwihchxqkys)
2021-04-21 09:48:55 +0200 <maerwald> now I want an `IO (Maybe a)` ;)
2021-04-21 09:49:04 +0200 <maerwald> and then an IO a
2021-04-21 09:49:32 +0200Sornaensis(~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-04-21 09:50:11 +0200nut_(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Read error: Connection reset by peer)
2021-04-21 09:50:35 +0200 <Axman6> best I can do fer ya as a Monoid a constraint
2021-04-21 09:50:37 +0200nut_(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 09:53:37 +0200 <maralorn> (>>= \case {Just (x:_) -> pure x; _ -> throwIO "Nothing to return") :: IO (Maybe [a]) -> IO a
2021-04-21 09:53:46 +0200 <maralorn> * (>>= \case {Just (x:_) -> pure x; _ -> throwIO "Nothing to return"}) :: IO (Maybe [a]) -> IO a
2021-04-21 09:54:15 +0200 <Axman6> um could you not? :P
2021-04-21 09:54:32 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
2021-04-21 09:54:56 +0200guest421`(~user@47.245.54.240)
2021-04-21 09:55:26 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-04-21 09:56:11 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-04-21 09:56:20 +0200Lowl3v3l(~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
2021-04-21 09:59:13 +0200guest421(~user@49.5.6.87) (Ping timeout: 252 seconds)
2021-04-21 10:01:31 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
2021-04-21 10:03:10 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-21 10:03:18 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-04-21 10:03:51 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-21 10:04:23 +0200MVQq(~anja@198.254.208.159)
2021-04-21 10:07:23 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-21 10:07:37 +0200MarcelineVQ(~anja@198.254.208.159) (Ping timeout: 260 seconds)
2021-04-21 10:09:57 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-04-21 10:11:48 +0200Nahra(~user@unaffiliated/nahra)
2021-04-21 10:12:27 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-21 10:14:53 +0200Lycurgus(~niemand@98.4.118.65)
2021-04-21 10:15:09 +0200fendor(~fendor@91.141.3.112.wireless.dyn.drei.com)
2021-04-21 10:18:01 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds)
2021-04-21 10:19:31 +0200kristijonas_(~kristijon@78-56-32-39.static.zebra.lt)
2021-04-21 10:19:42 +0200kristijonas_(~kristijon@78-56-32-39.static.zebra.lt) (Max SendQ exceeded)
2021-04-21 10:19:49 +0200kristijonas(~kristijon@78-56-32-39.static.zebra.lt) (Read error: Connection reset by peer)
2021-04-21 10:31:25 +0200erred(~kvirc@84.120.196.129.dyn.user.ono.com)
2021-04-21 10:31:29 +0200 <erred> fwiptables: firewall in script bash very large
2021-04-21 10:32:16 +0200kuribas(~user@ptr-25vy0i8p1spa6dozdqg.18120a2.ip6.access.telenet.be)
2021-04-21 10:35:35 +0200aveltras(uid364989@gateway/web/irccloud.com/x-nbetplnhypazvidp)
2021-04-21 10:36:17 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-21 10:36:50 +0200 <aveltras> i have a multi package stack project, what would be the best way to watch the whole project for type checking errors using the less cpu & ram possible ?
2021-04-21 10:37:39 +0200erred(~kvirc@84.120.196.129.dyn.user.ono.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2021-04-21 10:38:17 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds)
2021-04-21 10:38:41 +0200idhugo_(~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds)
2021-04-21 10:41:39 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-04-21 10:42:31 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-mucvjdtabxcscdzz)
2021-04-21 10:48:13 +0200Lycurgus(~niemand@98.4.118.65) (Quit: Exeunt)
2021-04-21 10:52:22 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-21 10:55:14 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-04-21 10:56:25 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2021-04-21 11:01:23 +0200gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2021-04-21 11:02:22 +0200gentauro(~gentauro@unaffiliated/gentauro)
2021-04-21 11:02:37 +0200knupfer(~Thunderbi@i59F67B5A.versanet.de) (Read error: Connection reset by peer)
2021-04-21 11:03:00 +0200knupfer(~Thunderbi@200116b82b5e7400e96d6e54df5761a8.dip.versatel-1u1.de)
2021-04-21 11:06:31 +0200ClaudiusMaximus(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
2021-04-21 11:06:31 +0200ClaudiusMaximus(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host)
2021-04-21 11:06:31 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2021-04-21 11:07:52 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 11:13:19 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net)
2021-04-21 11:13:31 +0200sagax(~sagax_nb@213.138.71.146)
2021-04-21 11:17:41 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-21 11:18:08 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-21 11:18:25 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net)
2021-04-21 11:23:16 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 245 seconds)
2021-04-21 11:23:19 +0200hc_hc
2021-04-21 11:31:32 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 11:32:16 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-04-21 11:32:17 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 11:35:11 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-04-21 11:35:26 +0200PtxDK(~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Read error: Connection reset by peer)
2021-04-21 11:35:48 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-21 11:36:32 +0200PtxDK(~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
2021-04-21 11:37:01 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-04-21 11:37:23 +0200geiger_(~geiger@0543f40b.skybroadband.com)
2021-04-21 11:40:34 +0200gaiger(~geiger@0543f40b.skybroadband.com) (Ping timeout: 268 seconds)
2021-04-21 11:42:01 +0200nut_(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds)
2021-04-21 11:42:14 +0200 <gnumonic> Is there any way around the "No type families in class instance declarations" thing?
2021-04-21 11:43:16 +0200marinelli(~marinelli@gateway/tor-sasl/marinelli)
2021-04-21 11:44:14 +0200sagax(~sagax_nb@213.138.71.146) (Ping timeout: 252 seconds)
2021-04-21 11:44:39 +0200 <c_wraith> no, that's basically necessary to deal with potential non-injectivity
2021-04-21 11:46:25 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 250 seconds)
2021-04-21 11:51:55 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 11:51:57 +0200 <gnumonic> Hm. That's annoying. Was hoping there was some trick. I don't think it would cause problems in the particular case I was trying to work around. Oh well.
2021-04-21 11:53:44 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 246 seconds)
2021-04-21 11:54:41 +0200ephemera_(~E@122.34.1.187)
2021-04-21 11:55:49 +0200kmein(~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
2021-04-21 11:56:07 +0200kmein(~weechat@static.173.83.99.88.clients.your-server.de)
2021-04-21 11:56:45 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-04-21 11:56:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-04-21 11:56:59 +0200Forlorn_(~Forlorn@unaffiliated/forlorn)
2021-04-21 11:57:47 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-04-21 11:58:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 12:00:37 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-04-21 12:02:19 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-21 12:03:08 +0200CiaoSen(~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de)
2021-04-21 12:03:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-04-21 12:03:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 12:07:23 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-21 12:08:02 +0200benkolera(uid285671@gateway/web/irccloud.com/x-uqnaygwihchxqkys) (Quit: Connection closed for inactivity)
2021-04-21 12:10:47 +0200cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 268 seconds)
2021-04-21 12:12:36 +0200 <hc> btw, I mentioned haskell arcade games here the other day; I just remembered the name of the game: it's venzone
2021-04-21 12:13:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-04-21 12:14:38 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 265 seconds)
2021-04-21 12:15:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 12:16:31 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
2021-04-21 12:17:12 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de)
2021-04-21 12:19:13 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-04-21 12:20:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-04-21 12:20:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 12:21:49 +0200justan0theruser(~justanoth@unaffiliated/justanotheruser)
2021-04-21 12:24:14 +0200idhugo_(~idhugo@87-49-45-4-mobile.dk.customer.tdc.net)
2021-04-21 12:24:23 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 258 seconds)
2021-04-21 12:26:32 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-04-21 12:27:52 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 252 seconds)
2021-04-21 12:28:05 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-04-21 12:29:14 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 12:29:40 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 12:29:55 +0200ericsagnes(~ericsagne@2405:6580:0:5100:ee94:8f2c:d91b:ec) (Ping timeout: 260 seconds)
2021-04-21 12:33:41 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-04-21 12:34:20 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 246 seconds)
2021-04-21 12:37:25 +0200kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
2021-04-21 12:37:40 +0200Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-04-21 12:37:52 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-04-21 12:37:58 +0200Kaiepi(~Kaiepi@47.54.252.148)
2021-04-21 12:38:00 +0200Alleria(~textual@mskresolve-a.mskcc.org)
2021-04-21 12:38:01 +0200minoru_shiraeesh(~shiraeesh@109.166.59.151)
2021-04-21 12:38:23 +0200AlleriaGuest92203
2021-04-21 12:39:33 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 12:42:31 +0200CiaoSen(~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-04-21 12:42:38 +0200ericsagnes(~ericsagne@2405:6580:0:5100:dde9:bfa7:6f37:dd87)
2021-04-21 12:42:47 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie)
2021-04-21 12:43:04 +0200Kaeipi(~Kaiepi@47.54.252.148)
2021-04-21 12:43:41 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-04-21 12:44:19 +0200Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-04-21 12:46:44 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-04-21 12:48:40 +0200tatsumaru(~tatsumaru@85.196.189.103)
2021-04-21 12:49:21 +0200 <tatsumaru> hey guys, the book I am reading claims the keyword 'let' is necessary for defining variables, but in ghci it seems that variables work without 'let' either. is let optional at this point or maybe I am not understanding the point?
2021-04-21 12:49:35 +0200 <merijn> tatsumaru: ghci is a hack
2021-04-21 12:49:38 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-04-21 12:50:05 +0200 <merijn> tatsumaru: Also, the book might be wrong/misleading, depending on context
2021-04-21 12:50:21 +0200 <tatsumaru> merjin, what did you mean by ghci being a hack
2021-04-21 12:50:26 +0200 <merijn> tatsumaru: You only need let-in to define variables *in an expression* context
2021-04-21 12:50:53 +0200 <merijn> tatsumaru: ghci's commandline is halfway in between "acts like top level of a file" and "acts like an expression context"
2021-04-21 12:51:28 +0200 <tatsumaru> so it doesn't evaluate code the same way the compiler would?
2021-04-21 12:52:07 +0200 <merijn> tatsumaru: Lets rewind a whole bit
2021-04-21 12:52:30 +0200 <merijn> tatsumaru: In a module context, you can define bindings (variables, if you will) by simply defining "x = ..."
2021-04-21 12:53:14 +0200 <merijn> tatsumaru: But that only (I'm handwaving here) works at the module or some specific contexts where you are allowed to define bindings
2021-04-21 12:53:45 +0200 <merijn> tatsumaru: "let-in" is a way to create a context to define bindings within an expression
2021-04-21 12:53:58 +0200 <merijn> > (let x = 5 in 2 * x) + 10
2021-04-21 12:54:00 +0200 <lambdabot> 20
2021-04-21 12:54:57 +0200 <merijn> tatsumaru: So let isn't necessary for defining variables at all. Let is just a way to define variables in places where you normally can't
2021-04-21 12:55:16 +0200sagax(~sagax_nb@213.138.71.146)
2021-04-21 12:55:16 +0200 <merijn> i.e. you can't normally write "(x = 5) + 10" because what does that even mean?
2021-04-21 12:55:34 +0200 <tatsumaru> so basically it's for reassuring the compiler that you want to define a binding?
2021-04-21 12:55:52 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
2021-04-21 12:59:26 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 13:00:05 +0200 <merijn> Not really?
2021-04-21 13:00:22 +0200 <merijn> tatsumaru: Any programming languages you're already familiar with?
2021-04-21 13:00:26 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-21 13:00:51 +0200 <tatsumaru> not really, I am just starting out in programming with haskell
2021-04-21 13:01:12 +0200guest421`(~user@47.245.54.240) (Ping timeout: 240 seconds)
2021-04-21 13:01:25 +0200 <Logio> I think there used to be a time when ghci did not accept variable definitions without a preceding let (i.e. it just operated with things valid in a IO do-block)
2021-04-21 13:02:19 +0200 <merijn> Correct
2021-04-21 13:02:25 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2021-04-21 13:02:36 +0200 <merijn> But it is unclear whether the book in question was referring to "defining variables in ghci" or "in general"
2021-04-21 13:02:54 +0200 <merijn> In other words: Insufficient context to understand where the confusion is coming from
2021-04-21 13:03:44 +0200shailangsa(~shailangs@host86-185-102-48.range86-185.btcentralplus.com) (Ping timeout: 246 seconds)
2021-04-21 13:03:48 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-04-21 13:04:02 +0200 <tatsumaru> merjin this is what it says: "Note: We can use the let keyword to define a name right in GHCI. Doing let a = 1 inside GHCI is the equivalent of writing a = 1 in a script and then loading it."
2021-04-21 13:04:11 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-21 13:04:34 +0200 <tatsumaru> but then I noticed that I could do a = 1 in GHCI as well so I wondered if let was obsolete
2021-04-21 13:05:05 +0200 <merijn> Ah
2021-04-21 13:05:52 +0200 <merijn> Yeah, you used to need to use let for variables (and commands for loading modules) in gchi, because ghci behaved like a "weird interactive IO monad do-block"
2021-04-21 13:06:15 +0200 <merijn> tatsumaru: But at some point around GHC 8 it got changed to support import statements and direct bindings too
2021-04-21 13:06:24 +0200 <tatsumaru> is it fair to say that ghci is like repl?
2021-04-21 13:06:45 +0200 <merijn> tatsumaru: Which is what I meant with ghci being a hack, it behaves sorta like a weird mix between "proper module syntax" and "dynamic do block"
2021-04-21 13:06:59 +0200 <merijn> tatsumaru: ghci *is* a repl :p
2021-04-21 13:07:08 +0200 <merijn> it reads, it evaluates, it prints and loops back ;)
2021-04-21 13:07:17 +0200 <tatsumaru> got it, thanks a lot :)
2021-04-21 13:08:02 +0200 <merijn> tatsumaru: It's just weird in that it *also* accepts expressions (like "2 + 5") which is a syntax error in source files
2021-04-21 13:09:36 +0200boogsbunny(17520e19@23.82.14.25)
2021-04-21 13:13:16 +0200xff0x(~xff0x@2001:1a81:5253:e800:1dc:184f:3c23:9adc) (Ping timeout: 245 seconds)
2021-04-21 13:14:05 +0200xff0x(~xff0x@2001:1a81:5253:e800:55a6:95d0:743f:3c74)
2021-04-21 13:15:12 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
2021-04-21 13:15:34 +0200jumper149(~jumper149@80.240.31.34)
2021-04-21 13:16:18 +0200 <kuribas> it distinguishes between IO expressions, other expressions, and declarations.
2021-04-21 13:16:37 +0200 <kuribas> declarations used to be not even supported.
2021-04-21 13:16:51 +0200 <merijn> That's what we just said?
2021-04-21 13:17:09 +0200 <merijn> tbh, I still think adding support for top level bindings/imports just makes ghci *more* confusing
2021-04-21 13:17:15 +0200 <kuribas> right, it was supported using let
2021-04-21 13:17:47 +0200 <kuribas> merijn: maybe, but it's very convenient
2021-04-21 13:17:59 +0200 <kuribas> you can quickly define and test data types
2021-04-21 13:18:01 +0200 <tomsmeding> ^
2021-04-21 13:18:15 +0200 <merijn> Death by minor conveniences is a common problem in tech
2021-04-21 13:18:28 +0200 <tomsmeding> ghci exists for convenience
2021-04-21 13:18:32 +0200 <tomsmeding> hot take
2021-04-21 13:18:41 +0200 <kuribas> I remember when there was a lot of demand for it :)
2021-04-21 13:18:43 +0200 <merijn> If you just keep post hoc piling on more "minor convenience features" eventually things become unusable piles of mess
2021-04-21 13:18:48 +0200__monty__(~toonn@unaffiliated/toonn)
2021-04-21 13:19:10 +0200 <kuribas> merijn: really, the REPL IS for quick and dirty testing.
2021-04-21 13:19:27 +0200 <merijn> So?
2021-04-21 13:19:33 +0200 <tomsmeding> and for IDE-like functionality, which falls under the same category
2021-04-21 13:19:34 +0200 <merijn> Doesn't mean it can't have a consistent design
2021-04-21 13:19:37 +0200 <kuribas> so it can be quick and dirty :)
2021-04-21 13:19:41 +0200 <merijn> Disagree
2021-04-21 13:20:03 +0200 <merijn> Dirty hacks attract dirty hacks
2021-04-21 13:20:42 +0200 <tomsmeding> I guess it would be nice if ghci had a consistent interface on top of which the convenience syntax is implemented
2021-04-21 13:21:26 +0200 <tomsmeding> would that be better?
2021-04-21 13:22:46 +0200rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-04-21 13:22:53 +0200 <tatsumaru> maybe there should be different repls for different people who have different goals/intentions
2021-04-21 13:24:42 +0200stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-04-21 13:25:08 +0200 <tomsmeding> indeed if ghci had a consistent interface on top of which the "convenience" syntaxes were defined, then making such different repls wouldn't be too hard :)
2021-04-21 13:25:22 +0200 <tomsmeding> and it's also nice from a software engineering standpoint
2021-04-21 13:26:01 +0200 <[exa]> still, somehow, after many years we've only got the one ghci frontend :]
2021-04-21 13:27:23 +0200exarkun_exarkun
2021-04-21 13:28:23 +0200shailangsa(~shailangs@host217-42-54-186.range217-42.btcentralplus.com)
2021-04-21 13:28:34 +0200 <tomsmeding> it seems to work for most people
2021-04-21 13:29:07 +0200 <tatsumaru> is there a new haskell 2020 spec coming soon or is this a myth?
2021-04-21 13:29:15 +0200 <tomsmeding> myth
2021-04-21 13:29:21 +0200 <merijn> lol
2021-04-21 13:29:25 +0200 <merijn> Myth :p
2021-04-21 13:29:37 +0200 <tatsumaru> why is the official wiki claiming there's a 2020 preview release
2021-04-21 13:29:38 +0200 <tomsmeding> ghc has a "GHC2021" language that is equivalent to a number of commonly-used GHC language extensions
2021-04-21 13:29:43 +0200 <tomsmeding> is it?
2021-04-21 13:30:07 +0200 <merijn> tatsumaru: There have been repeated attempts to create a new report
2021-04-21 13:30:07 +0200 <tatsumaru> https://mail.haskell.org/pipermail/haskell-prime/2016-April/004050.html
2021-04-21 13:30:19 +0200 <merijn> That's a mailing list message from 2016 :p
2021-04-21 13:30:40 +0200 <tatsumaru> so the effort flopped?
2021-04-21 13:30:42 +0200 <merijn> That attempt, like 4 or so others, has fizzled out
2021-04-21 13:30:56 +0200 <tatsumaru> is it due to lack of interest in the language?
2021-04-21 13:30:59 +0200 <merijn> No
2021-04-21 13:31:28 +0200 <merijn> The problem is that there is a mismatch between "stuff people want in the new report" and "stuff that needs to be done"
2021-04-21 13:31:51 +0200 <merijn> tatsumaru: Like, people want to include a bunch of GHC extensions into the report and make them "not extensions"
2021-04-21 13:31:58 +0200kiweun(~kiweun@2607:fea8:2a62:9600:8080:6b3d:32d3:b207)
2021-04-21 13:32:03 +0200 <tatsumaru> i hope they don't turn it into the next pyhton-like monstrocity that's okay for everything and the best for nothing
2021-04-21 13:32:10 +0200 <merijn> The problem is that, *properly* standardising stuff is hard and boring work
2021-04-21 13:32:16 +0200 <tatsumaru> python*
2021-04-21 13:32:25 +0200 <merijn> tatsumaru: Like, just saying "whatever GHC is doing right now" isn't really a standard
2021-04-21 13:32:29 +0200urodna(~urodna@unaffiliated/urodna)
2021-04-21 13:32:57 +0200 <merijn> tatsumaru: So someone has to sit down, figure out how GHC implements the extension, write out a specification of what it means, and figure out how it interacts with everything else
2021-04-21 13:33:14 +0200 <tatsumaru> accountant's work
2021-04-21 13:33:18 +0200 <merijn> tatsumaru: But most people just want stuff to "not be an extension" without doing the hard/boring work
2021-04-21 13:33:18 +0200 <__monty__> Part of the problem is also GHC's dominance. The reason to have a report is so multiple implementations can coexist. If there's not really any serious alternative implementations there's a lot less motivation for a report.
2021-04-21 13:33:42 +0200 <merijn> tatsumaru: Combined with the fact that GHC is basically the only *real* implementation, interest in standardising is low
2021-04-21 13:34:01 +0200 <merijn> If everyone keeps working on GHC, what's the point of an independent standard that no one else implements?
2021-04-21 13:34:12 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 13:34:19 +0200 <tatsumaru> isnt GHC an implementation of haskell?
2021-04-21 13:34:23 +0200 <merijn> Yes
2021-04-21 13:34:48 +0200 <merijn> But GHC has much *much* more stuff than just Haskell2010 :p
2021-04-21 13:35:10 +0200 <kuribas> merijn: funny thing, Python doesn't have a report, but it has multiple implementations.
2021-04-21 13:35:19 +0200 <merijn> kuribas: Well, kinda, sorta
2021-04-21 13:35:20 +0200 <kuribas> which are also incompatible
2021-04-21 13:35:24 +0200rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-04-21 13:35:40 +0200 <merijn> Python's spec is just "Whatever CPython does"
2021-04-21 13:35:43 +0200 <__monty__> That's what you get when you say "Implementation X *is* the reference."
2021-04-21 13:35:46 +0200rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-04-21 13:35:50 +0200 <tatsumaru> scheme has a ton of implementations with new ones coming even recently, even though the userbase of the language is miniscule compared to haskell
2021-04-21 13:36:05 +0200 <tomsmeding> the language is far smaller
2021-04-21 13:36:15 +0200 <merijn> tatsumaru: That's because making a Scheme compiler is *much* simpler :p
2021-04-21 13:36:18 +0200 <__monty__> I think scheme's userbase is a lot bigger than you assume.
2021-04-21 13:36:29 +0200kiweun(~kiweun@2607:fea8:2a62:9600:8080:6b3d:32d3:b207) (Ping timeout: 250 seconds)
2021-04-21 13:37:18 +0200 <merijn> tatsumaru: GHC, for example, has a *ton* of optimisation stuff for Haskell code. If you have a cool new idea you *could* spend 5 years reimplementing that for your cool idea...or you could build it into a fork of GHC and save 5 years
2021-04-21 13:37:21 +0200 <yushyin> writing yet another scheme compiler is my weekend exercise
2021-04-21 13:37:37 +0200 <yushyin> :P
2021-04-21 13:38:41 +0200 <kuribas> yushyin: in haskell or GTFO :)
2021-04-21 13:38:49 +0200 <merijn> tatsumaru: So the compiler and language are alive and well. Efforts to standardise Haskell...not so much :p
2021-04-21 13:39:05 +0200 <tatsumaru> what's the benefit of standardizing haskell
2021-04-21 13:39:27 +0200 <kuribas> standardizing haskell == which extension to keep, and which to deprecate :)
2021-04-21 13:39:42 +0200 <merijn> tatsumaru: THat's unclear, which is why it isn't happening :p
2021-04-21 13:39:43 +0200 <yushyin> kuribas: various languages, it depends on my mood on that weekend ;D
2021-04-21 13:39:49 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-04-21 13:39:56 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-04-21 13:39:59 +0200 <kuribas> yushyin: so "write a scheme compiler" is your hello world?
2021-04-21 13:40:06 +0200 <merijn> tatsumaru: Standardisation is good for keeping multiple implementations compatible, but there's only one implementation in mainstream use (GHC)
2021-04-21 13:40:25 +0200 <tatsumaru> should multiple implementations be compatible
2021-04-21 13:40:41 +0200 <merijn> Well, if they're not, they're not really the same language, no?
2021-04-21 13:40:51 +0200 <yushyin> kuribas: possible!
2021-04-21 13:40:52 +0200 <juri_> yeah, this is a painful situation. i'm feeling the pain, at least.
2021-04-21 13:41:02 +0200 <tomsmeding> it's at least nice to have a reference point, to be able to consistently say "here is where we comply, here is where we differ"
2021-04-21 13:41:03 +0200 <merijn> tatsumaru: Consider the C11 spec. It exists so that I know my C11 code is gonna do the same thing on each C11 compatible compiler
2021-04-21 13:41:16 +0200 <tatsumaru> well as far as I know python 3 and 2 aren't compatible, are they considered different languages
2021-04-21 13:41:24 +0200 <merijn> tatsumaru: I'd say do
2021-04-21 13:41:26 +0200 <merijn> *so*
2021-04-21 13:42:19 +0200 <tatsumaru> is this like the equivalent of FDA in programming?
2021-04-21 13:42:25 +0200 <tomsmeding> I guess you could say that C and Python are language families, whereas C89, C11, Python 2 and Python 3 are languages, if you want to get pedantic
2021-04-21 13:42:41 +0200 <tomsmeding> food and drug administration?
2021-04-21 13:42:44 +0200 <tatsumaru> yes
2021-04-21 13:43:05 +0200 <tatsumaru> by "this" I meant standardization
2021-04-21 13:43:26 +0200 <__monty__> Even the PSF considers them different languages. There's a reason there's a PEP that says python3 should never masquerade as a "python" binary.
2021-04-21 13:43:40 +0200 <tomsmeding> without a standard of what "Python 2" means, it's hard to talk about what exactly that language supports or not
2021-04-21 13:43:54 +0200 <tomsmeding> you can talk about what CPython 2 supports -- but that's something else than Python 2
2021-04-21 13:43:55 +0200knupfer(~Thunderbi@200116b82b5e7400e96d6e54df5761a8.dip.versatel-1u1.de) (Remote host closed the connection)
2021-04-21 13:44:02 +0200knupfer(~Thunderbi@200116b82b5e7400a819040ab136d554.dip.versatel-1u1.de)
2021-04-21 13:44:41 +0200 <tatsumaru> so complicated...
2021-04-21 13:44:59 +0200 <tatsumaru> it seems futile to try to restrain all these decision trees to a singular specification
2021-04-21 13:45:39 +0200 <tomsmeding> a specification doesn't constrain, it standardises :p
2021-04-21 13:45:45 +0200 <tomsmeding> so that you can unambiguously talk about stuff
2021-04-21 13:46:12 +0200 <tomsmeding> a standard for C11 doesn't mean that your own home-brew compiler for a C-like language cannot exist
2021-04-21 13:46:23 +0200 <tomsmeding> it just means that you can say "here is how it differs from C11"
2021-04-21 13:46:49 +0200 <tomsmeding> without a standard of C11, you can only say "here is how it differs from what gcc 9.2.1 accepts"
2021-04-21 13:46:56 +0200 <tatsumaru> ah i see
2021-04-21 13:47:00 +0200 <tomsmeding> which is fine for some purposes
2021-04-21 13:47:35 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-fvdnxupudqhwtjny)
2021-04-21 13:47:40 +0200 <tomsmeding> but sometimes it's nice to have a central standard :)
2021-04-21 13:48:09 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-21 13:48:23 +0200 <tatsumaru> is specification and standardization the same thing?
2021-04-21 13:49:58 +0200 <tomsmeding> when referring to programming language specifications, I guess yes
2021-04-21 13:50:14 +0200tomsmedingwouldn't know the difference
2021-04-21 13:50:15 +0200rodriga(~quassel@134.204.25.66)
2021-04-21 13:51:06 +0200 <tomsmeding> standard, oxford def. 2.2: "A form of language that is widely accepted as the usual form."
2021-04-21 13:51:21 +0200 <tomsmeding> specification, oxford def. 2: "A detailed description of the design and materials used to make something."
2021-04-21 13:51:24 +0200 <tomsmeding> ¯\_(ツ)_/¯
2021-04-21 13:51:43 +0200 <tomsmeding> I guess it includes less CS-specific jargon in the second case
2021-04-21 13:51:48 +0200codedmart_codedmart
2021-04-21 13:52:03 +0200 <tomsmeding> ah specification 2.1 is nicer: "A standard of workmanship or materials required to be met in a piece of work"
2021-04-21 13:52:12 +0200 <tomsmeding> what's a specification? a standard, among other things
2021-04-21 13:52:19 +0200 <merijn> See: "an ISO standard cup of tea" :p
2021-04-21 13:52:47 +0200 <tatsumaru> so one implies some level of quality control while the other one is just instruction?
2021-04-21 13:54:22 +0200nopf(~frosch@static.179.17.76.144.clients.your-server.de) (Quit: Lost terminal)
2021-04-21 13:54:24 +0200 <tomsmeding> dictionary definition != usage as technical jargon
2021-04-21 13:54:30 +0200 <tomsmeding> but maybe
2021-04-21 13:54:41 +0200 <tomsmeding> there's also "report" :p
2021-04-21 13:54:52 +0200 <tatsumaru> what tends to happen in the long term with languages when there's no standardization is it detrimental?
2021-04-21 13:55:37 +0200 <tomsmeding> depends on the people
2021-04-21 13:55:56 +0200 <tomsmeding> I'm not pretending to know anything about history or sociology :p
2021-04-21 13:56:40 +0200 <tomsmeding> python has no real standardisation; is it detrimental? doesn't seem so
2021-04-21 13:56:58 +0200 <tomsmeding> BASIC also has no real standardisation; is it detrimental? not sure, but it doesn't really flourish anyway :p
2021-04-21 13:58:49 +0200nut_(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 13:58:54 +0200frozenErebus(~frozenEre@37.231.244.249) (Remote host closed the connection)
2021-04-21 13:58:57 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
2021-04-21 14:05:18 +0200tatsumaru(~tatsumaru@85.196.189.103) ()
2021-04-21 14:07:44 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-21 14:08:23 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 3.1)
2021-04-21 14:09:04 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-04-21 14:13:16 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-04-21 14:15:05 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-21 14:15:31 +0200curiousgay(~gay@178.217.208.8) (Read error: Connection reset by peer)
2021-04-21 14:15:58 +0200codedmart(~codedmart@149.28.9.205) (Ping timeout: 268 seconds)
2021-04-21 14:16:27 +0200mmfood_1(~mmfood@45.91.21.58)
2021-04-21 14:17:55 +0200sayola1(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de)
2021-04-21 14:18:58 +0200sayola(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-04-21 14:19:03 +0200mmfood(~mmfood@185.176.246.69) (Ping timeout: 268 seconds)
2021-04-21 14:22:52 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 14:23:11 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-04-21 14:27:58 +0200loller_(uid358106@gateway/web/irccloud.com/x-gvifcnmgsfzryozd)
2021-04-21 14:30:51 +0200jonathanx_(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-04-21 14:31:29 +0200seven_th`(~user@pool-96-233-64-53.bstnma.fios.verizon.net)
2021-04-21 14:32:37 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
2021-04-21 14:32:38 +0200jonathanx_(~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-04-21 14:33:41 +0200knupfer(~Thunderbi@200116b82b5e7400a819040ab136d554.dip.versatel-1u1.de) (Ping timeout: 245 seconds)
2021-04-21 14:34:03 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-04-21 14:35:23 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-21 14:35:26 +0200seven_three(~user@pool-96-233-64-53.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-21 14:39:44 +0200CiaoSen(~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de)
2021-04-21 14:40:08 +0200v01d4lph4(~v01d4lph4@27.57.103.213)
2021-04-21 14:41:12 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 14:48:54 +0200sleblanc(~sleblanc@unaffiliated/sebleblanc)
2021-04-21 14:51:18 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 14:51:37 +0200 <nut_> test
2021-04-21 14:51:47 +0200nut_(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8)
2021-04-21 14:52:02 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 14:55:26 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-04-21 14:55:41 +0200mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 240 seconds)
2021-04-21 14:56:11 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 14:58:33 +0200mrchampion(~mrchampio@38.18.109.23)
2021-04-21 15:01:04 +0200Tario(~Tario@201.192.165.173)
2021-04-21 15:01:06 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 15:01:37 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9)
2021-04-21 15:01:39 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 15:01:53 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Quit: dpl_)
2021-04-21 15:04:17 +0200 <pjb> tomsmeding: is it still true? It's documented, https://docs.python.org/3/reference/ and they have the PEPs process to standardize things. https://www.python.org/dev/peps/ But granted, they don't seem to have an "official" standard such as ANSI or ISO.
2021-04-21 15:04:54 +0200 <tomsmeding> I honestly don't really know, perhaps I spoke too soon :p
2021-04-21 15:05:20 +0200 <tomsmeding> that's true, the reference tries to be implementation-agnostic
2021-04-21 15:05:46 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-04-21 15:07:41 +0200 <whataday> what's the difference of MaybeT IO a and IO (Maybe a) to use? MaybeT IO is monad so we can use fmap apply f on a directly, but IO (Maybe a) we need to use fmap . fmap $ f?
2021-04-21 15:08:03 +0200 <Taneb> whataday: that's pretty much it
2021-04-21 15:08:07 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds)
2021-04-21 15:10:07 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-04-21 15:10:07 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9)
2021-04-21 15:11:35 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 15:12:39 +0200 <whataday> fetchUrl :: Url -> MaybeT IO a; traverse fetchUrl [Url1, Url2] :: ?
2021-04-21 15:13:32 +0200 <tomsmeding> :t traverse
2021-04-21 15:13:34 +0200 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2021-04-21 15:14:04 +0200 <tomsmeding> f = MaybeT IO; t = []; so MaybeT IO [a]
2021-04-21 15:14:46 +0200 <tomsmeding> and a = Url and b = your a
2021-04-21 15:14:50 +0200 <whataday> does it need runMaybeT to extract IO actions from list?
2021-04-21 15:15:00 +0200 <tomsmeding> which "it"?
2021-04-21 15:15:03 +0200dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-04-21 15:15:42 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 15:15:48 +0200 <whataday> traverse (runMaybeT . fetchUrl) [Url]
2021-04-21 15:15:55 +0200knupfer(~Thunderbi@200116b82b5e7400d544a78922962f4e.dip.versatel-1u1.de)
2021-04-21 15:15:55 +0200 <tomsmeding> if you're talking about "traverse": no traverse is implemented using just the methods from Traversable and Applicative
2021-04-21 15:16:22 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-04-21 15:16:26 +0200 <tomsmeding> runMaybeT :: MaybeT IO a -> IO (Maybe a); runMaybeT . fetchUrl :: Url -> IO (Maybe a)
2021-04-21 15:16:40 +0200 <whataday> yes, I mean Data.Traversable
2021-04-21 15:16:41 +0200 <tomsmeding> IO (Maybe a) is not of the form 'f b' for some f
2021-04-21 15:16:46 +0200 <tomsmeding> so you can't use traverse like that
2021-04-21 15:17:03 +0200 <tomsmeding> @src traverse
2021-04-21 15:17:03 +0200 <lambdabot> Source not found.
2021-04-21 15:17:05 +0200 <tomsmeding> aw
2021-04-21 15:17:20 +0200 <whataday> and MaybeT IO is an instance of Traverable?
2021-04-21 15:17:41 +0200 <tomsmeding> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.Maybe.html#l…
2021-04-21 15:18:03 +0200 <tomsmeding> I guess pattern-matching on the MaybeT like that is equivalent to using runMaybeT
2021-04-21 15:18:31 +0200 <tomsmeding> given the definition of MaybeT, which is: https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.Maybe.html#M…
2021-04-21 15:18:37 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-04-21 15:19:57 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 15:19:58 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-21 15:21:18 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-04-21 15:26:07 +0200v01d4lph_(~v01d4lph4@27.57.103.213)
2021-04-21 15:26:07 +0200v01d4lph4(~v01d4lph4@27.57.103.213) (Read error: Connection reset by peer)
2021-04-21 15:27:08 +0200seven_th`(~user@pool-96-233-64-53.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.2)")
2021-04-21 15:27:10 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-21 15:28:21 +0200safinaskar(6dfc5a88@109.252.90.136)
2021-04-21 15:29:47 +0200carlomagno(~cararell@148.87.23.7)
2021-04-21 15:31:23 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-04-21 15:32:44 +0200kiweun(~kiweun@2607:fea8:2a62:9600:30fd:c878:bb31:174a)
2021-04-21 15:35:31 +0200 <safinaskar> hi. i continue to write my lexer. i got this problem: to write function "f" with type [(a, Maybe b)] -> [(a, b)]. This function should return pairs which have "Just" at their second element. how to do this? i can write such solution: "f list = map (\(x, Just y) -> (x, y)) $ filter (isJust . snd) list". Unfortunately, this solution contains lambda
2021-04-21 15:35:32 +0200 <safinaskar> "\(x, Just y) -> (x, y)" with potentially failing pattern. Of course, in this particular case this pattern will never fail, but in general such patterns can fail, so i think this code is ugly. Is there better way?
2021-04-21 15:37:01 +0200kiweun(~kiweun@2607:fea8:2a62:9600:30fd:c878:bb31:174a) (Ping timeout: 245 seconds)
2021-04-21 15:37:11 +0200 <merijn> You can (ab)use list comprehension syntax
2021-04-21 15:37:55 +0200 <merijn> > [(x, y) | (x, Just y) <- [(True, Nothing), (False, Just 1), (True, Just 2), (True, Nothing), (False, Nothing)]
2021-04-21 15:37:56 +0200 <lambdabot> <hint>:1:111: error:
2021-04-21 15:37:57 +0200 <lambdabot> <hint>:1:111: error:
2021-04-21 15:37:57 +0200 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2021-04-21 15:38:02 +0200 <merijn> eh, whoops
2021-04-21 15:38:05 +0200 <merijn> > [(x, y) | (x, Just y) <- [(True, Nothing), (False, Just 1), (True, Just 2), (True, Nothing), (False, Nothing)]]
2021-04-21 15:38:07 +0200 <lambdabot> [(False,1),(True,2)]
2021-04-21 15:38:09 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee)
2021-04-21 15:38:13 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de)
2021-04-21 15:38:42 +0200 <safinaskar> merijn: thanks a lot
2021-04-21 15:40:23 +0200 <kuribas> safinaskar: "Unfortunately, this solution contains lambda", what's unfortunate about that?
2021-04-21 15:40:44 +0200 <merijn> kuribas: "a lambda with a potential failing pattern"
2021-04-21 15:40:54 +0200 <safinaskar> kuribas: function (\(x, Just y) -> (x, y)) is partial
2021-04-21 15:41:00 +0200 <kuribas> ah right
2021-04-21 15:41:14 +0200 <merijn> tbh, I think this is one of the few cases where I actually prefer list comprehensions over anything else
2021-04-21 15:41:33 +0200 <merijn> The "pattern match failure is filtered out" semantics is very nice
2021-04-21 15:41:35 +0200 <timCF> Hello! Is there any good way to represent side-effect rich computation in a compact way with some sort of Alternative applications? If I simplify, my case might look like multiple `IO Bool` expressions, whcih I want to sequentially evaluate until one of them will return `IO True`. Basically I'm looking for something like `a <|> b <|> c` where parameters are these expressions (pseudo-code)
2021-04-21 15:42:05 +0200 <kuribas> safinaskar: you could use mapMaybe in that case.
2021-04-21 15:42:22 +0200 <kuribas> safinaskar: a comprehension is nicer, but more magical.
2021-04-21 15:42:23 +0200 <merijn> kuribas: Sure...or you can use the trivial list comprehension :p
2021-04-21 15:42:38 +0200jao(~jao@pdpc/supporter/professional/jao)
2021-04-21 15:42:58 +0200 <hyperisco> timCF, at the least you can just define your own operator, if that is a syntax you like
2021-04-21 15:43:29 +0200 <kuribas> timCF: what is IO True?
2021-04-21 15:43:57 +0200 <hyperisco> timCF, you may also want to look at definitions like allM
2021-04-21 15:44:00 +0200 <timCF> hyperisco: maybe there is some standard thing for that? I just don't want nested bind + if then else
2021-04-21 15:44:06 +0200 <kuribas> timCF: I think what you ask is, an expression that performance side-effects until one returns True?
2021-04-21 15:44:18 +0200 <timCF> kuribas: yes
2021-04-21 15:45:53 +0200 <timCF> kuribas: in my example `a <|> b <|> c` I want all expression to return True and don't evaluate `c` in case where `b` is True
2021-04-21 15:46:32 +0200 <kuribas> timCF: there isn't something standard like that AFAIK.
2021-04-21 15:46:37 +0200 <timCF> kuribas: But expressions are not just Bool, they are `m Bool`
2021-04-21 15:48:15 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 260 seconds)
2021-04-21 15:48:25 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-21 15:48:53 +0200 <wz1000> timCF: extra has orM and variations
2021-04-21 15:49:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
2021-04-21 15:49:39 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds)
2021-04-21 15:49:40 +0200 <kuribas> :t liftA2 (&&) . unsafeInterleaveIO
2021-04-21 15:49:42 +0200 <lambdabot> error:
2021-04-21 15:49:42 +0200 <lambdabot> Variable not in scope: unsafeInterleaveIO :: a -> f Bool
2021-04-21 15:50:12 +0200sleblanc(~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 240 seconds)
2021-04-21 15:50:45 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9)
2021-04-21 15:51:17 +0200 <timCF> kuribas: thanks, I think I did found what I want
2021-04-21 15:51:36 +0200 <timCF> :t (||^)
2021-04-21 15:51:38 +0200 <lambdabot> error:
2021-04-21 15:51:38 +0200 <lambdabot> • Variable not in scope: ||^
2021-04-21 15:51:38 +0200 <lambdabot> • Perhaps you meant one of these:
2021-04-21 15:53:01 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2021-04-21 15:53:27 +0200Tario(~Tario@200.119.185.49)
2021-04-21 15:53:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-21 15:55:46 +0200mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 245 seconds)
2021-04-21 15:57:27 +0200 <wz1000> asymmetric operators for "commutative" operations are so frustruating
2021-04-21 15:57:28 +0200Tario(~Tario@200.119.185.49) (Read error: Connection reset by peer)
2021-04-21 15:57:59 +0200 <wz1000> (yes, I know this is not exactly commutative, but it is morally)
2021-04-21 15:58:28 +0200 <wz1000> even then that is so ugly. ||> might have been better (|| + >>)
2021-04-21 15:58:33 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-21 15:59:00 +0200Tario(~Tario@201.192.165.173)
2021-04-21 16:00:27 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-04-21 16:01:19 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds)
2021-04-21 16:01:40 +0200tatsumaru(~tatsumaru@85.196.189.103)
2021-04-21 16:02:59 +0200vs^(vs@ip98-184-89-2.mc.at.cox.net)
2021-04-21 16:04:13 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Quit: WeeChat 3.1)
2021-04-21 16:04:42 +0200CiaoSen(~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de) (Quit: CiaoSen)
2021-04-21 16:04:58 +0200 <tatsumaru> what does x xs xxs etc. mean in haskell notation?
2021-04-21 16:05:13 +0200 <tatsumaru> actually I know what x is, I just don't understand xs xxs
2021-04-21 16:05:39 +0200 <hpc> xs is the plural of x
2021-04-21 16:05:41 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-04-21 16:05:44 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-21 16:06:01 +0200 <hpc> like how you might write "for item in items" in other languages
2021-04-21 16:06:04 +0200 <kuribas> doesn't that come from prolog?
2021-04-21 16:06:14 +0200 <merijn> tatsumaru: one pig, multiple pigS, one bike, multiple bikeS, one x, multiple xS :)
2021-04-21 16:06:22 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-21 16:06:25 +0200berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 250 seconds)
2021-04-21 16:06:38 +0200 <tatsumaru> so s is just plural?
2021-04-21 16:06:41 +0200 <merijn> yeah
2021-04-21 16:06:52 +0200 <tatsumaru> ah that was simpler that I thought, thanks
2021-04-21 16:06:56 +0200 <tatsumaru> than*
2021-04-21 16:07:16 +0200berberman(~berberman@unaffiliated/berberman)
2021-04-21 16:07:52 +0200 <merijn> tatsumaru: You could write "(item:items)" instead of "(x:xs)", but that's more typing and not really any clearer/more meaningful :)
2021-04-21 16:08:03 +0200 <timCF> tatsumaru: but what do you mean by `xxs` then?
2021-04-21 16:08:24 +0200 <merijn> timCF: That's sometimes a name for lists of lists
2021-04-21 16:08:50 +0200 <timCF> merijn: hmm, I'll write `xss` in this case :)
2021-04-21 16:10:43 +0200mrchampion(~mrchampio@38.18.109.23)
2021-04-21 16:10:46 +0200 <tatsumaru> this is where I saw xxs: ghci> [ [ x | x <- xs, even x ] | xs <- xxs]
2021-04-21 16:11:16 +0200 <tatsumaru> where in that particular case xxs was [[1,3,5,2,3,1,2,4,5], [1,2,3,4,5,6,7,8,9],
2021-04-21 16:11:16 +0200 <tatsumaru> [1,2,4,2,1,6,3,1,3,2,3,6]]
2021-04-21 16:11:27 +0200 <tatsumaru> sorry for the new line it was unintentional
2021-04-21 16:11:57 +0200 <tatsumaru> but indeed xss seems more logical
2021-04-21 16:13:05 +0200 <tatsumaru> although one could argue that xxs means x of xs and makes sense that way
2021-04-21 16:13:19 +0200blankhart(~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net)
2021-04-21 16:13:51 +0200 <blankhart> when template haskell is run at compile-time, is the metaprogram compiled and run the same as any other program, maybe skipping certain optimizations for speed?
2021-04-21 16:14:38 +0200 <merijn> blankhart: After TH is run, the resulting AST is spliced into the code and then the whole thing is compiled as normal, yes
2021-04-21 16:15:00 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-21 16:19:01 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection)
2021-04-21 16:19:03 +0200 <blankhart> sorry to clarify i am asking about how TH is run
2021-04-21 16:21:30 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie)
2021-04-21 16:21:30 +0200 <blankhart> for example, if i tell the compiler to use -O3 optimizations, i wouldn't think that means it compiles template haskell with -O3 and executes the optimized version at compile-time
2021-04-21 16:21:44 +0200 <geekosaur> TH code lives in the Q monad and is compiled and run in a ghci-like environment / interpreted
2021-04-21 16:22:58 +0200 <geekosaur> it can call imported compiled code but won't compile any code itself aside from to ghci bytecode (unless the splice itself does so)
2021-04-21 16:23:07 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 16:24:45 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-fcexcnqymecxutqt) (Quit: Connection closed for inactivity)
2021-04-21 16:27:17 +0200vdukhovni(64022765@100.2.39.101)
2021-04-21 16:27:22 +0200barakkl1993(~barakkley@2.55.180.173)
2021-04-21 16:29:02 +0200zaquest(~notzaques@5.128.210.178)
2021-04-21 16:30:32 +0200Jd007(~Jd007@162.156.11.151)
2021-04-21 16:30:53 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 16:31:50 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-dwdeqarjvkrgtrrf)
2021-04-21 16:31:54 +0200miklcct_(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-04-21 16:32:08 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2021-04-21 16:32:29 +0200tatsumaru(~tatsumaru@85.196.189.103) ()
2021-04-21 16:32:58 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net)
2021-04-21 16:35:08 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 246 seconds)
2021-04-21 16:35:46 +0200 <merijn> How can I increase the granularity of stack traces in profiling code?
2021-04-21 16:35:46 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-04-21 16:35:54 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-21 16:36:05 +0200 <merijn> I'm getting an arithmetic overflow exception, but no clue from where
2021-04-21 16:36:09 +0200 <blankhart> got it, thanks geekosaur
2021-04-21 16:36:18 +0200 <merijn> And the -xc stack trace turns up nothing useful
2021-04-21 16:36:52 +0200barakkl1993(~barakkley@2.55.180.173) (Ping timeout: 252 seconds)
2021-04-21 16:38:37 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 16:39:25 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection)
2021-04-21 16:40:27 +0200nineonine(~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849)
2021-04-21 16:42:08 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-21 16:42:11 +0200 <merijn> Anyone?
2021-04-21 16:42:41 +0200Spanktar(~Spanktar@195.140.213.38)
2021-04-21 16:43:24 +0200 <glguy> % minBound `quot` (-1) :: Int
2021-04-21 16:43:24 +0200 <yahb> glguy: *** Exception: arithmetic overflow
2021-04-21 16:43:40 +0200 <glguy> Is that the main way to get that exception?
2021-04-21 16:44:21 +0200wavemode(~wavemode@097-070-075-143.res.spectrum.com) (Read error: Connection reset by peer)
2021-04-21 16:44:52 +0200 <hc> merijn: unusual that you're asking questions in here ;-)
2021-04-21 16:44:59 +0200nineonine(~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 250 seconds)
2021-04-21 16:45:45 +0200plakband(~plakband@softbank126227040096.bbtec.net)
2021-04-21 16:45:45 +0200wavemode(~wavemode@097-070-075-143.res.spectrum.com)
2021-04-21 16:46:37 +0200 <merijn> glguy: No clue?
2021-04-21 16:47:21 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-04-21 16:47:39 +0200 <glguy> merijn: is something catching the exception and printing it without much info? Or is it making it up to the top level?
2021-04-21 16:48:30 +0200Deide(~Deide@217.155.19.23)
2021-04-21 16:49:24 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-21 16:49:55 +0200 <merijn> glguy: I'm running with -xc on profiled code, which gives a stack trace, but the stack trace is rather useless
2021-04-21 16:50:02 +0200 <merijn> It seems to only have two levels
2021-04-21 16:50:11 +0200 <merijn> So I still dunno where the exception is originating
2021-04-21 16:50:21 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 16:52:37 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 16:54:52 +0200rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2021-04-21 16:55:05 +0200 <cjay> What is currently the best way to make internals of a lib I'm writing accessible by tests and by `cabal repl`? I found a old reddit post that suggests moving everything to .Internal modules that expose everything, is this still the way to go?
2021-04-21 16:55:41 +0200rodriga(~quassel@134.204.25.66) (Ping timeout: 240 seconds)
2021-04-21 16:55:52 +0200rj(~x@gateway/tor-sasl/rj) (Remote host closed the connection)
2021-04-21 16:56:05 +0200 <merijn> cjay: Cabal now supports multiple (internal) libraries
2021-04-21 16:56:13 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 16:56:31 +0200 <merijn> cjay: One thing you can do is have an internal implementation library that exports everything, then have your tests and the public library depend on that
2021-04-21 16:56:39 +0200 <carbolymer> merijn: stack support when
2021-04-21 16:56:48 +0200 <cjay> ah, that sounds a bit more elegant. thx.
2021-04-21 16:56:52 +0200 <merijn> cjay: And then the public library re-exports a subset of the internal lib
2021-04-21 16:57:00 +0200 <merijn> carbolymer: Ask the stack people?
2021-04-21 16:57:08 +0200 <carbolymer> merijn: yeah I should ;-]
2021-04-21 16:57:19 +0200 <merijn> Probably somewhere around "heat death of the universe"?
2021-04-21 16:57:26 +0200 <cjay> omg
2021-04-21 16:57:51 +0200 <cjay> I recently checked if stack supports backpack now. Of course it does not..
2021-04-21 16:58:09 +0200 <carbolymer> merijn: that was funny one year ago ;-] I have rewritten internal libraries into separate packages since then
2021-04-21 16:58:09 +0200idhugo_(~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2021-04-21 16:58:41 +0200 <wz1000> merijn: -fprof-auto?
2021-04-21 16:58:49 +0200 <merijn> cjay: Almost no one is using/pushing backpack atm, so I don't think the stack people are enthusiastic about implementing
2021-04-21 16:58:59 +0200 <merijn> wz1000: Cabal is supposed to add that, though
2021-04-21 16:59:19 +0200vdukhovni(64022765@100.2.39.101) (Quit: Connection closed)
2021-04-21 16:59:21 +0200 <cjay> and nobody wants to use backpack, because they don't want to be incompatible with stack, right?
2021-04-21 16:59:24 +0200 <merijn> wz1000: When you write -fprof-auto in your cabal file it complains that --enable-profiling adds that
2021-04-21 16:59:34 +0200rodriga(~quassel@134.204.25.66)
2021-04-21 16:59:38 +0200 <merijn> cjay: I dunno, personally I don't spend anytime worrying about supporting stack
2021-04-21 16:59:43 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds)
2021-04-21 17:01:23 +0200 <merijn> cjay: I can highly recommend not giving a shit about people who don't pay you :)
2021-04-21 17:01:37 +0200 <cjay> :)
2021-04-21 17:01:47 +0200 <merijn> That applies to any open source project, language, and ecosystem, tbh
2021-04-21 17:02:59 +0200plakband(~plakband@softbank126227040096.bbtec.net) (Quit: WeeChat 2.9)
2021-04-21 17:03:28 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de)
2021-04-21 17:07:04 +0200kiweun(~kiweun@2607:fea8:2a62:9600:68a0:cf01:7577:43eb)
2021-04-21 17:08:15 +0200 <carbolymer> merijn: what you're using instead of stack?
2021-04-21 17:11:22 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 17:12:24 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection)
2021-04-21 17:12:58 +0200 <tomsmeding> cabal
2021-04-21 17:13:14 +0200Wuzzy(~Wuzzy@p5790e74f.dip0.t-ipconnect.de)
2021-04-21 17:13:27 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 17:13:48 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-21 17:14:10 +0200 <merijn> ^^
2021-04-21 17:15:32 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection)
2021-04-21 17:15:47 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 17:17:20 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection)
2021-04-21 17:17:33 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2021-04-21 17:17:58 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-21 17:18:23 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 17:21:32 +0200 <carbolymer> ok, when I've started using haskell I've read about 'cabal hell' and jumped right ahead to using stack
2021-04-21 17:21:42 +0200 <carbolymer> is that still an issue?
2021-04-21 17:22:11 +0200 <geekosaur> not since cabal v1, which didn't do a goo9d enough job of forcing ghc to see only what it should see for a given project]
2021-04-21 17:22:17 +0200myShoggoth(~myShoggot@75.164.11.109)
2021-04-21 17:22:20 +0200Sorna(~Sornaensi@79.142.232.102) (Read error: Connection reset by peer)
2021-04-21 17:22:41 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Ping timeout: 250 seconds)
2021-04-21 17:22:48 +0200Sorny(~Sornaensi@077213200034.dynamic.telenor.dk)
2021-04-21 17:23:08 +0200 <carbolymer> so basically, is there any advantage of stack over pure cabal, except that stack installs GHC for me
2021-04-21 17:23:17 +0200 <carbolymer> ?
2021-04-21 17:23:46 +0200 <hpc> stack has a currated package set
2021-04-21 17:23:51 +0200 <hpc> although the value of that is dubious
2021-04-21 17:24:20 +0200 <sclv> right -- if you stick to it that set, its nice, but if you end up using stuff outside that set its possible, but much more of a pain than letting cabal solve things for you
2021-04-21 17:24:36 +0200v01d4lph_(~v01d4lph4@27.57.103.213) (Remote host closed the connection)
2021-04-21 17:24:40 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Remote host closed the connection)
2021-04-21 17:25:01 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-21 17:25:10 +0200v01d4lph4(~v01d4lph4@27.57.103.213)
2021-04-21 17:25:35 +0200 <hpc> it's like a less extreme version of using distro packages
2021-04-21 17:26:15 +0200bitmagie(~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie)
2021-04-21 17:27:04 +0200 <cjay> I recently learned that you can just download a cabal.project from stackage that freezes all package versions to the stackage snapshot
2021-04-21 17:27:13 +0200 <cjay> so you can use stackage without using stack
2021-04-21 17:27:25 +0200 <carbolymer> ^ yeah I was just wondering about that
2021-04-21 17:27:31 +0200 <timCF> cjay: wow, that's cool!
2021-04-21 17:27:37 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
2021-04-21 17:27:39 +0200 <carbolymer> if it would be possible to pin the versions without causing breakage
2021-04-21 17:27:43 +0200 <carbolymer> in cabal
2021-04-21 17:27:57 +0200 <timCF> cjay: do you have any example/links how to do so?
2021-04-21 17:28:30 +0200 <cjay> you go to the stackage snapshot, and add cabal.config to the url, like with https://www.stackage.org/lts-17.9/cabal.config
2021-04-21 17:28:40 +0200 <geekosaur> cabal has freeze files that can pin versions, stackage would just be providing one that covered a particular stackage release
2021-04-21 17:29:19 +0200Sornaensis(~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
2021-04-21 17:29:26 +0200 <timCF> cjay: that's simple! Thanks!
2021-04-21 17:29:48 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 17:29:51 +0200v01d4lph4(~v01d4lph4@27.57.103.213) (Ping timeout: 260 seconds)
2021-04-21 17:30:09 +0200 <cjay> :)
2021-04-21 17:31:09 +0200 <timCF> also I was thinking that nix-shell with some pinned version of nixpkgs might be nice replacement for stackage. I'm using nix for builds, and stackage for local development. But maybe stack just become irrelevant if I'll switch completely to nixpkgs
2021-04-21 17:32:11 +0200Sorny(~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 265 seconds)
2021-04-21 17:32:23 +0200horatiohb(~horatiohb@138.197.103.32)
2021-04-21 17:32:24 +0200timCF_(~i.tkachuk@254-149-20-81.sta.estpak.ee)
2021-04-21 17:34:19 +0200ubert(~Thunderbi@62-47-7-125.adsl.highway.telekom.at)
2021-04-21 17:34:21 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 17:36:03 +0200ericsagnes(~ericsagne@2405:6580:0:5100:dde9:bfa7:6f37:dd87) (Ping timeout: 260 seconds)
2021-04-21 17:36:11 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 17:37:38 +0200 <whataday> since IO isn't a data constructor, how to express IO in value level?
2021-04-21 17:37:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 17:38:06 +0200Lycurgus(~niemand@98.4.118.65)
2021-04-21 17:38:28 +0200 <whataday> except 'return 3' , which value would have type MaybeT IO Int?
2021-04-21 17:38:32 +0200Deide1(~Deide@217.155.19.23)
2021-04-21 17:39:29 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 17:39:38 +0200malumore(~malumore@151.62.122.70)
2021-04-21 17:39:56 +0200 <Taneb> :t liftIO readLn :: MaybeT IO Int
2021-04-21 17:39:58 +0200 <lambdabot> MaybeT IO Int
2021-04-21 17:40:36 +0200 <timCF_> whataday: what's wrong with `return`? It's valid constructor for IO
2021-04-21 17:41:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-21 17:41:32 +0200Deide(~Deide@217.155.19.23) (Ping timeout: 240 seconds)
2021-04-21 17:41:53 +0200 <whataday> how I can return Nothing?
2021-04-21 17:42:15 +0200 <Taneb> :t mzero :: MaybeT IO Int
2021-04-21 17:42:17 +0200 <lambdabot> MaybeT IO Int
2021-04-21 17:42:21 +0200 <Taneb> :t MaybeT Nothing :: MaybeT IO Int
2021-04-21 17:42:23 +0200 <lambdabot> error:
2021-04-21 17:42:23 +0200 <lambdabot> • Couldn't match type ‘Maybe’ with ‘IO’
2021-04-21 17:42:23 +0200 <lambdabot> Expected type: MaybeT IO Int
2021-04-21 17:42:29 +0200 <Taneb> :t MaybeT (return Nothing) :: MaybeT IO Int
2021-04-21 17:42:31 +0200 <lambdabot> MaybeT IO Int
2021-04-21 17:42:32 +0200malumore_(~malumore@151.62.122.70) (Ping timeout: 240 seconds)
2021-04-21 17:42:39 +0200 <Taneb> :t empty :: MaybeT IO Int
2021-04-21 17:42:41 +0200 <lambdabot> MaybeT IO Int
2021-04-21 17:42:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-04-21 17:42:45 +0200 <Taneb> whataday: pick your favourite
2021-04-21 17:44:20 +0200 <whataday> I see
2021-04-21 17:47:34 +0200Sorna(~Sornaensi@077213200034.dynamic.telenor.dk)
2021-04-21 17:48:34 +0200ericsagnes(~ericsagne@2405:6580:0:5100:d0df:45b4:dde8:f059)
2021-04-21 17:48:46 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 240 seconds)
2021-04-21 17:50:54 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2021-04-21 17:52:01 +0200Sornaensis(~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 260 seconds)
2021-04-21 17:53:43 +0200timCF_(~i.tkachuk@254-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-04-21 17:54:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 17:57:21 +0200chele(~chele@5.53.222.202) (Remote host closed the connection)
2021-04-21 17:58:42 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 18:04:56 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Ping timeout: 245 seconds)
2021-04-21 18:06:19 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-04-21 18:07:20 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-21 18:07:33 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 18:09:05 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 18:12:15 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-04-21 18:13:53 +0200myShoggoth(~myShoggot@75.164.11.109) (Remote host closed the connection)
2021-04-21 18:14:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 18:14:17 +0200myShoggoth(~myShoggot@75.164.11.109)
2021-04-21 18:15:35 +0200xsperry(~as@unaffiliated/xsperry) ()
2021-04-21 18:18:11 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-04-21 18:19:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-21 18:19:40 +0200Ccasesvilla(4a4fd19e@cpe-74-79-209-158.twcny.res.rr.com)
2021-04-21 18:21:18 +0200 <safinaskar> merijn: cjay: carbolymer: tomsmeding: geekosaur:  shortly after haskell foundation (hf) announcement someone wrote to hf mailing list asking to "Do something about Cabal". i. e. the poster asked hf to spend money for fixing long standing cabal problems. https://mail.haskell.org/pipermail/hf-discuss/2020-December/thread.html
2021-04-21 18:21:28 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
2021-04-21 18:22:26 +0200 <carbolymer> I think I saw that, I don't remember the outcome from this discussion though
2021-04-21 18:22:29 +0200 <sclv> well development stalled a bit as some active maintainers became inactive, but lately there's been a lot more activity again
2021-04-21 18:22:41 +0200 <sclv> with a whole new wave of people becoming involved
2021-04-21 18:22:53 +0200 <sclv> that's just the lifecycle of long running software projects
2021-04-21 18:22:54 +0200ram19890(~ram@183.83.155.58) (Read error: No route to host)
2021-04-21 18:23:11 +0200ram19890(~ram@183.83.155.58)
2021-04-21 18:23:27 +0200 <geekosaur> I'm finding modern cabal fairly congenial, aside from lots of extra files (cabal.project cabal.project.local cabal.freeze etc.)
2021-04-21 18:23:43 +0200pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-04-21 18:24:06 +0200 <sclv> yeah i mean the work that's stalled is like experience improvements 90% (better docs, easier command discoverability, convenience flags)
2021-04-21 18:24:23 +0200 <sclv> the other 10% is "power features" where there are rough edges, like hpc support being dodgy, etc
2021-04-21 18:24:37 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-04-21 18:24:43 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
2021-04-21 18:25:08 +0200safinaskar(6dfc5a88@109.252.90.136) ()
2021-04-21 18:25:16 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 18:26:12 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-04-21 18:26:31 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-21 18:26:51 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-21 18:27:38 +0200 <tomsmeding> they left :p
2021-04-21 18:27:43 +0200michalz(~user@185.246.204.47)
2021-04-21 18:28:05 +0200 <dolio> That original mail doesn't seem like it's based on a realistic picture of why there are two build systems in teh first place.
2021-04-21 18:28:42 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:4cdc:6166:590b:6cfe)
2021-04-21 18:31:33 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 18:32:14 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944)
2021-04-21 18:32:51 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 245 seconds)
2021-04-21 18:33:45 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-04-21 18:35:16 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 18:35:55 +0200howdoi(uid224@gateway/web/irccloud.com/x-bfpmhrutqdycibjm)
2021-04-21 18:36:00 +0200slack1256(~slack1256@200-112-79-98.baf.movistar.cl)
2021-04-21 18:36:45 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-04-21 18:39:22 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2021-04-21 18:39:43 +0200 <slack1256> I have been enjoying the `extensible` package for records/variants. Apart from the ordering constrains imposed by the HList, what am I missing from a true structural type system as in purescript?
2021-04-21 18:40:37 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2021-04-21 18:42:37 +0200son0p(~ff@181.136.122.143)
2021-04-21 18:43:07 +0200xsperry(~as@unaffiliated/xsperry)
2021-04-21 18:46:30 +0200kuribas(~user@ptr-25vy0i8p1spa6dozdqg.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-04-21 18:47:41 +0200ram19890(~ram@183.83.155.58) (Ping timeout: 240 seconds)
2021-04-21 18:49:05 +0200Sorny(~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
2021-04-21 18:51:36 +0200Sorna(~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 245 seconds)
2021-04-21 18:52:26 +0200ashesham`(~user@d8D87D1B0.access.telenet.be) (Ping timeout: 240 seconds)
2021-04-21 18:56:38 +0200Lycurgus(~niemand@98.4.118.65) (Quit: Exeunt)
2021-04-21 19:01:57 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection)
2021-04-21 19:05:15 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-21 19:06:22 +0200Ccasesvilla(4a4fd19e@cpe-74-79-209-158.twcny.res.rr.com) (Ping timeout: 240 seconds)
2021-04-21 19:10:46 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds)
2021-04-21 19:11:28 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-21 19:11:37 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-21 19:14:15 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2021-04-21 19:14:57 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-04-21 19:15:09 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 19:15:45 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net)
2021-04-21 19:20:07 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 19:21:00 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Remote host closed the connection)
2021-04-21 19:21:19 +0200 <hyperisco> slack1256, I'd like to know too. I use PS but I don't use extensible
2021-04-21 19:21:32 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-04-21 19:21:36 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 19:22:16 +0200 <hyperisco> if HList does not recognise records with the same fields are equivalent then I'd consider that a major difference
2021-04-21 19:26:11 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 250 seconds)
2021-04-21 19:29:18 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 19:31:12 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-21 19:32:19 +0200nyd(~nyd@unaffiliated/elysian)
2021-04-21 19:32:21 +0200malumore(~malumore@151.62.122.70) (Ping timeout: 260 seconds)
2021-04-21 19:35:57 +0200 <justsomeguy> Is there any way to suppress the "-- Defined at ${some_insanely_long_path}" messages in the output of GHCi's ":info" command?
2021-04-21 19:36:01 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-21 19:36:19 +0200 <monochrom> I think no.
2021-04-21 19:36:55 +0200 <monochrom> But I have found the message very valuable.
2021-04-21 19:38:06 +0200ashesham`(~user@d8D87D1B0.access.telenet.be)
2021-04-21 19:38:09 +0200Guest78317(~laudiacay@67.176.215.84)
2021-04-21 19:38:32 +0200 <monochrom> "Do an :info X.ByteString and an :info Y.ByteString to see that they are the same re-exports" is my favourite way of telling off the wrong presumption "X.ByteString and Y.ByteString are different types". No, both say "Define at $(same long path)" therefore they are the same.
2021-04-21 19:39:21 +0200ubert(~Thunderbi@62-47-7-125.adsl.highway.telekom.at) (Ping timeout: 260 seconds)
2021-04-21 19:40:30 +0200vdukhovni(64022765@100.2.39.101)
2021-04-21 19:42:12 +0200Guest78317(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-04-21 19:42:35 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 19:44:08 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
2021-04-21 19:44:26 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-21 19:48:12 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 19:48:57 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2021-04-21 19:49:55 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-21 19:49:59 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 19:50:32 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-04-21 19:50:57 +0200 <justsomeguy> It's definitely useful, just verbose. When exploring new type classes interactively sometimes I get overwhelemed by the amount of output. For now, I guess I'll use a shell function to filter the output: gi() { echo ":info $1" | stack ghci | sed 's/--.*$//g'; }
2021-04-21 19:51:03 +0200 <monochrom> Nice life hack.
2021-04-21 19:51:19 +0200 <justsomeguy> It somehow worked out ^_^
2021-04-21 19:53:29 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
2021-04-21 19:54:58 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-04-21 19:55:20 +0200kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 246 seconds)
2021-04-21 19:55:46 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 245 seconds)
2021-04-21 19:55:49 +0200Sornaensis(~Sornaensi@077213200034.dynamic.telenor.dk)
2021-04-21 19:57:04 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
2021-04-21 19:58:18 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-04-21 19:58:32 +0200malumore(~malumore@151.62.122.70)
2021-04-21 19:59:01 +0200rajivr(uid269651@gateway/web/irccloud.com/x-xhstqsvcchluvrrc) (Quit: Connection closed for inactivity)
2021-04-21 19:59:11 +0200Sorny(~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds)
2021-04-21 19:59:57 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 20:00:51 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-04-21 20:03:06 +0200malumore(~malumore@151.62.122.70) (Ping timeout: 240 seconds)
2021-04-21 20:03:16 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 20:06:19 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
2021-04-21 20:07:36 +0200 <zzz> hi. can someone walk me through why (join (.) f) === (f . f) when f :: (a -> a) ?
2021-04-21 20:08:43 +0200 <ski> @src join
2021-04-21 20:08:43 +0200 <lambdabot> join x = x >>= id
2021-04-21 20:08:48 +0200 <ski> @src (->) (>>=)
2021-04-21 20:08:48 +0200 <lambdabot> f >>= k = \ r -> k (f r) r
2021-04-21 20:09:22 +0200 <ski> join f
2021-04-21 20:09:35 +0200 <ski> = f >>= id
2021-04-21 20:09:46 +0200Ccasesvilla(4a4fd19e@cpe-74-79-209-158.twcny.res.rr.com)
2021-04-21 20:09:51 +0200 <ski> = \r -> id (f r) r
2021-04-21 20:09:57 +0200 <ski> = \r -> f r r
2021-04-21 20:10:03 +0200 <ski> so
2021-04-21 20:10:12 +0200 <ski> join (.) f
2021-04-21 20:10:21 +0200 <ski> = (.) f f
2021-04-21 20:10:26 +0200 <ski> = f . f
2021-04-21 20:10:59 +0200 <tomsmeding> neat
2021-04-21 20:14:12 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net) (Ping timeout: 240 seconds)
2021-04-21 20:15:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 20:15:15 +0200aveltras(uid364989@gateway/web/irccloud.com/x-nbetplnhypazvidp) (Quit: Connection closed for inactivity)
2021-04-21 20:16:48 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-04-21 20:19:49 +0200Ferdirand2(~Ferdirand@2001:4c78:2012:5000::2)
2021-04-21 20:20:01 +0200Ferdirand2(~Ferdirand@2001:4c78:2012:5000::2) (Client Quit)
2021-04-21 20:21:40 +0200 <zzz> when you ask lambdabot for @src (->) (>>=) you're asking it for the definition of (>>=) for the ((->) r) Monad, right?
2021-04-21 20:22:26 +0200 <monochrom> yeah
2021-04-21 20:22:30 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 20:22:48 +0200 <zzz> great. didn't know you could do that
2021-04-21 20:22:56 +0200 <zzz> @src Maybe (>>=)
2021-04-21 20:22:56 +0200 <lambdabot> (Just x) >>= k = k x
2021-04-21 20:22:56 +0200 <lambdabot> Nothing >>= _ = Nothing
2021-04-21 20:23:22 +0200 <wroathe> When using QuantifiedConstraints like (Show a, forall a. Show (t a)) => (Foo t a) I'm getting a warning saying that "a" shadows an existing binding. Are the a's distinct between the first constraint and the second constraint? It still seems to compile, even with the warning, and results in the behavior that I want.
2021-04-21 20:24:21 +0200 <ski> yes, they are
2021-04-21 20:24:55 +0200dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-04-21 20:25:23 +0200 <ski> saying `(Show a,forall b. Show (t b)) => Foo t a' might be less confusing for a reader
2021-04-21 20:25:54 +0200 <wroathe> ski: That's actually what I've already gone with, but I was just verifying my understanding
2021-04-21 20:26:01 +0200ashesham`(~user@d8D87D1B0.access.telenet.be) (Ping timeout: 252 seconds)
2021-04-21 20:26:50 +0200skinods
2021-04-21 20:27:33 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-04-21 20:27:45 +0200 <ski> (i suppose you've confirmed you don't actually want `(Show a,forall b. Show b => Show (t b)) => Foo t a')
2021-04-21 20:28:54 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-21 20:29:07 +0200mmfood_2(~mmfood@45.91.21.59)
2021-04-21 20:29:19 +0200mmfood_1(~mmfood@45.91.21.58) (Ping timeout: 252 seconds)
2021-04-21 20:30:46 +0200justan0theruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 245 seconds)
2021-04-21 20:31:43 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds)
2021-04-21 20:31:53 +0200horatiohb(~horatiohb@138.197.103.32) (Ping timeout: 252 seconds)
2021-04-21 20:32:45 +0200vchlup(~vchlup@nat.brnet.cz) (Ping timeout: 268 seconds)
2021-04-21 20:36:47 +0200vdukhovni(64022765@100.2.39.101) (Quit: Connection closed)
2021-04-21 20:36:54 +0200pthariensflame(~pthariens@2600:6c52:727f:4200:edf5:29b5:ee6b:7a0f)
2021-04-21 20:37:04 +0200 <wroathe> ski: Nope, and I was just about to ask about that.
2021-04-21 20:37:16 +0200pthariensflame(~pthariens@2600:6c52:727f:4200:edf5:29b5:ee6b:7a0f) (Client Quit)
2021-04-21 20:38:38 +0200 <wroathe> Nice. That works like a charm.
2021-04-21 20:38:58 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-04-21 20:38:59 +0200 <wroathe> I always forget that you can apply constraints to variables in constraints
2021-04-21 20:44:21 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 20:45:12 +0200 <wroathe> ski: Thanks btw
2021-04-21 20:46:35 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
2021-04-21 20:47:18 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-04-21 20:48:59 +0200Guest_68(4b1ac0c4@75-26-192-196.lightspeed.bcvloh.sbcglobal.net)
2021-04-21 20:49:02 +0200Guest_68(4b1ac0c4@75-26-192-196.lightspeed.bcvloh.sbcglobal.net) (Client Quit)
2021-04-21 20:49:36 +0200invaser(~Thunderbi@31.148.23.125)
2021-04-21 20:49:36 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 20:49:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-21 20:49:56 +0200safinaskar(~user@109.252.90.136)
2021-04-21 20:51:18 +0200wavemode(~wavemode@097-070-075-143.res.spectrum.com) (Remote host closed the connection)
2021-04-21 20:52:34 +0200usr25(~usr25@unaffiliated/usr25)
2021-04-21 20:53:27 +0200wavemode(~wavemode@097-070-075-143.res.spectrum.com)
2021-04-21 20:56:01 +0200malumore(~malumore@151.62.122.70)
2021-04-21 20:58:37 +0200vdukhovni(64022765@100.2.39.101)
2021-04-21 20:59:09 +0200ludi49(~hryhorij@ip595.t15.ds.pwr.wroc.pl)
2021-04-21 21:00:08 +0200ludi49(~hryhorij@ip595.t15.ds.pwr.wroc.pl) ()
2021-04-21 21:00:41 +0200psygate(~psygate@unaffiliated/psygate)
2021-04-21 21:03:56 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 3.1)
2021-04-21 21:04:02 +0200boogsbunny(17520e19@23.82.14.25) (Ping timeout: 240 seconds)
2021-04-21 21:04:47 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-04-21 21:09:53 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 246 seconds)
2021-04-21 21:13:10 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-04-21 21:13:17 +0200mmfood_2mmfood
2021-04-21 21:13:21 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 21:14:53 +0200 <ski> np
2021-04-21 21:17:07 +0200vdukhovni(64022765@100.2.39.101) (Quit: Connection closed)
2021-04-21 21:17:36 +0200vs^(vs@ip98-184-89-2.mc.at.cox.net) ()
2021-04-21 21:18:58 +0200pavonia(~user@unaffiliated/siracusa)
2021-04-21 21:19:17 +0200 <infinisil> Can cabal show a graph of how the modules depend on each other?
2021-04-21 21:19:21 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-chan)
2021-04-21 21:19:33 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-04-21 21:19:47 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection)
2021-04-21 21:20:08 +0200 <davean> infinisil: not cabal, thats not what cabal does - it doesn't know hwat modules depend on what even - but there are tools
2021-04-21 21:20:22 +0200 <davean> infinisil: I think you've missunderstood what cabal does though if you think it understands Haskell source code at all.
2021-04-21 21:20:37 +0200 <davean> It does not.
2021-04-21 21:20:45 +0200 <davean> Thats GHC's job
2021-04-21 21:21:19 +0200 <infinisil> Oh, does cabal not call GHC multiple times then for each module?
2021-04-21 21:21:52 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 21:22:27 +0200 <monochrom> No.
2021-04-21 21:22:44 +0200 <monochrom> Ever did a "cabal build -v" to see how it calls GHC?
2021-04-21 21:23:10 +0200 <monochrom> It throws the complete module list at GHC in one go.
2021-04-21 21:23:17 +0200LKoen(~LKoen@92.163.9.109.rev.sfr.net)
2021-04-21 21:23:36 +0200 <monochrom> Admire the thousands-of-characters-long command line.
2021-04-21 21:24:19 +0200 <monochrom> I wouldn't want to be GHC.
2021-04-21 21:24:42 +0200 <monochrom> cabal : ghc :: me : my TAs
2021-04-21 21:24:46 +0200 <monochrom> my poor TAs
2021-04-21 21:24:52 +0200minoru_shiraeesh(~shiraeesh@109.166.59.151) (Ping timeout: 240 seconds)
2021-04-21 21:25:39 +0200minoru_shiraeesh(~shiraeesh@46.34.207.53)
2021-04-21 21:25:43 +0200 <monochrom> But it's alright, someone already wrote the heroic topological sort code in GHC decades ago, may as well actually use it.
2021-04-21 21:26:29 +0200 <monochrom> Too late to say "separation of concerns, this belongs to a makefile" now. :)
2021-04-21 21:26:58 +0200 <davean> Well, makefiles are more limited, and also not automatic. Makefiles get it wrong all the time
2021-04-21 21:27:09 +0200 <sclv> infinisil: there's a ghc command to generate a makefile, which in turn will encode the graph of dependencies
2021-04-21 21:27:09 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 21:27:10 +0200mmfood(~mmfood@45.91.21.59) (Quit: Leaving)
2021-04-21 21:27:16 +0200 <davean> I've seen a pile of makefiles that have to be run 3 or 4 times because they get it wrong
2021-04-21 21:27:34 +0200invaser(~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds)
2021-04-21 21:27:47 +0200 <infinisil> monochrom: I see, thanks for the info
2021-04-21 21:27:48 +0200 <monochrom> Use "ghc -M" to output a correct makefile :)
2021-04-21 21:27:48 +0200notzmv(~zmv@unaffiliated/zmv)
2021-04-21 21:28:10 +0200 <davean> I mean theres things like SOurceGraph
2021-04-21 21:28:14 +0200 <infinisil> So, how can I get the graph of modules though? Any tool recommendations?
2021-04-21 21:28:34 +0200 <monochrom> Does "ghc -M"'s makefile count? :)
2021-04-21 21:28:44 +0200 <monochrom> It's an adjacency list...
2021-04-21 21:28:46 +0200 <sclv> you can run makefile2graph or a similar tool on it
2021-04-21 21:28:49 +0200 <davean> infinisil: and graphmod
2021-04-21 21:28:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-21 21:28:53 +0200d34df00d(~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net) (Read error: Connection reset by peer)
2021-04-21 21:29:11 +0200 <infinisil> Hm I see
2021-04-21 21:29:14 +0200 <davean> I haven't used any of the source representation tools in a few years
2021-04-21 21:29:15 +0200 <infinisil> Lemme try..
2021-04-21 21:29:19 +0200 <davean> SourceGraph use to work great
2021-04-21 21:29:33 +0200 <davean> I don't actually find the graph useful though I found
2021-04-21 21:29:40 +0200 <sclv> its extremely bitrotted but shouldn't be hard to fix up: https://matrix.hackage.haskell.org/#/package/SourceGraph
2021-04-21 21:29:51 +0200 <davean> graphmod is probably less bitrotted
2021-04-21 21:29:53 +0200 <monochrom> Yeah a graph of packages is the useful one.
2021-04-21 21:30:06 +0200 <infinisil> In my case I want to see why a file is being recompiled so often
2021-04-21 21:30:07 +0200 <davean> monochrom: yah, that I've used once or twice recently
2021-04-21 21:30:16 +0200 <davean> infinisil: you might be looking in the wrong place?
2021-04-21 21:30:25 +0200 <sclv> oh graphmod looks like its in good shape: https://matrix.hackage.haskell.org/#/package/graphmod
2021-04-21 21:30:33 +0200 <infinisil> I mean I kinda know why, but it would be nice to have something visual
2021-04-21 21:30:46 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 21:30:57 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Remote host closed the connection)
2021-04-21 21:31:04 +0200 <infinisil> davean: No I already know the problem, the file transitively depends on other frequently updated files
2021-04-21 21:32:12 +0200vchlup(~vchlup@nat.brnet.cz)
2021-04-21 21:32:19 +0200sdrodge_(~sdrodge@unaffiliated/sdrodge)
2021-04-21 21:32:27 +0200 <monochrom> Yeah maybe try graphmod. (But I haven't.)
2021-04-21 21:32:41 +0200sdrodge(~sdrodge@unaffiliated/sdrodge) (Ping timeout: 240 seconds)
2021-04-21 21:32:50 +0200 <infinisil> Oh nice
2021-04-21 21:33:20 +0200 <monochrom> Does it just output the text file that graphviz wants to read?
2021-04-21 21:33:31 +0200 <infinisil> I'd expect so
2021-04-21 21:33:48 +0200infinisilis installing graphmod
2021-04-21 21:34:35 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net)
2021-04-21 21:34:47 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 21:35:18 +0200infinisilinstalls graphviz
2021-04-21 21:35:57 +0200 <infinisil> (or rather, adding it to the shell.nix)
2021-04-21 21:36:54 +0200infinisilinstalls xdotool
2021-04-21 21:37:21 +0200wonko7(~wonko7@62.115.229.50) (Ping timeout: 260 seconds)
2021-04-21 21:38:48 +0200 <davean> infinisil: why do you want xdotool for *this* task?
2021-04-21 21:39:10 +0200 <infinisil> Reading through https://github.com/yav/graphmod/wiki
2021-04-21 21:39:20 +0200 <infinisil> First example command is `find Data -name '*.hs' | xargs graphmod -q | xdot -`
2021-04-21 21:39:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-04-21 21:39:32 +0200 <infinisil> And I checked where the `xdot` binary comes from, apparently xdotool
2021-04-21 21:39:47 +0200 <davean> Uh
2021-04-21 21:39:49 +0200 <infinisil> But, as I just discovered, maybe not so after all, because I don't have xdot after installing xdotool
2021-04-21 21:39:56 +0200daveanlooks at infinisil askew
2021-04-21 21:40:04 +0200 <davean> Yah I think you're off your rocker
2021-04-21 21:40:05 +0200 <pjb> Yes, me too…
2021-04-21 21:40:11 +0200 <geekosaur> that looks like a failed grep to me :)
2021-04-21 21:40:21 +0200 <infinisil> Huh?
2021-04-21 21:40:23 +0200 <davean> xdotool is a tool for simulating X events
2021-04-21 21:40:23 +0200infinisilis confused
2021-04-21 21:40:29 +0200 <geekosaur> same prefix
2021-04-21 21:40:30 +0200 <davean> not a graph display tool like xdot is
2021-04-21 21:40:32 +0200 <pjb> infinisil: xdot has nothing in common with xdotool!
2021-04-21 21:40:33 +0200 <infinisil> Oh!
2021-04-21 21:41:05 +0200 <davean> Your addition does not pass a sanity check
2021-04-21 21:41:13 +0200 <infinisil> Ugh yeah, I see my mistake. I searched for the xdot binary, but not for `xdot$`, meaning I also got the result for xdotool
2021-04-21 21:41:15 +0200 <geekosaur> and apt-cache search shows them right next to each other
2021-04-21 21:41:51 +0200sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) ("ERC Version 5.3 (IRC client for Emacs)")
2021-04-21 21:42:00 +0200 <davean> infinisil: now, if you want to fake a mouse click in X11, you want xdotool
2021-04-21 21:42:21 +0200infinisilinstalls xdot, this time
2021-04-21 21:43:55 +0200 <monochrom> I always search for, e.g., ^graphviz$
2021-04-21 21:44:46 +0200 <infinisil> There are nix setups to get command-not-found to work, but I don't have that configured. When a command cannot be found that would tell you where the binary can be found
2021-04-21 21:45:07 +0200 <monochrom> and there is enough reason to do so because otherwise you would be spammed by the horde of eg "golang-python-graphviz-dev-lib-profiling" already.
2021-04-21 21:45:42 +0200 <infinisil> I am confused by that sentence
2021-04-21 21:46:34 +0200unyu(~pyon@unaffiliated/pyon) (Quit: brb)
2021-04-21 21:46:56 +0200unyu(~pyon@unaffiliated/pyon)
2021-04-21 21:47:23 +0200 <monochrom> If you ask aptitude or apt-cache search etc to look for "graphviz", you don't get graphviz itself. Never. You get all those things like python-graphviz-binding, golang-graphviz-lib, everything peripheral except the centre you actually need.
2021-04-21 21:47:42 +0200 <infinisil> Ohh I see
2021-04-21 21:47:50 +0200 <monochrom> And there a a million of those peripheral tag-along free loaders.
2021-04-21 21:47:56 +0200 <infinisil> Yeah the binary reverse search is nice
2021-04-21 21:48:39 +0200 <infinisil> It works!
2021-04-21 21:48:40 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-21 21:48:44 +0200 <monochrom> :)
2021-04-21 21:49:25 +0200 <infinisil> So, in conclusion, install graphmod, graphvis and xdot, then run find src -name '*.hs' | xargs graphmod -q | xdot -
2021-04-21 21:50:10 +0200 <monochrom> Hrm, graphmod parses source code directly?
2021-04-21 21:50:35 +0200 <monochrom> err nevermind, nothing says it can't call ghc with the same filename arguments.
2021-04-21 21:50:47 +0200 <monochrom> Nice either way.
2021-04-21 21:50:49 +0200 <infinisil> https://hackage.haskell.org/package/graphmod
2021-04-21 21:50:56 +0200 <infinisil> Seems to use the haskell-lexer package
2021-04-21 21:51:14 +0200 <infinisil> So, seemingly not even though ghc!
2021-04-21 21:51:24 +0200geekosaurwonders if it groks addDependentFile
2021-04-21 21:51:27 +0200 <monochrom> Haha the module graph of lens.
2021-04-21 21:51:40 +0200Cale(~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-04-21 21:52:24 +0200Cale(~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com)
2021-04-21 21:52:25 +0200 <infinisil> Oh no, some new black magic I don't know about
2021-04-21 21:53:07 +0200nyd(~nyd@unaffiliated/elysian) (Ping timeout: 252 seconds)
2021-04-21 21:53:21 +0200dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net)
2021-04-21 21:53:33 +0200 <infinisil> Interesting
2021-04-21 21:57:06 +0200 <tomsmeding> templatehaskell breaks everything that's not normal compilation
2021-04-21 21:57:07 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-04-21 21:58:41 +0200Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-04-21 21:59:39 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-04-21 22:00:06 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-04-21 22:00:14 +0200Lord_of_Life_Lord_of_Life
2021-04-21 22:00:38 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net) (Ping timeout: 246 seconds)
2021-04-21 22:05:15 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 268 seconds)
2021-04-21 22:07:41 +0200conal(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2021-04-21 22:08:14 +0200petersen(~petersen@redhat/juhp)
2021-04-21 22:08:14 +0200vgtw_(~vgtw@gateway/tor-sasl/vgtw)
2021-04-21 22:08:21 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 240 seconds)
2021-04-21 22:08:33 +0200vgtw_vgtw
2021-04-21 22:10:07 +0200Rudd0(~Rudd0@185.189.115.108) (Read error: Connection reset by peer)
2021-04-21 22:10:11 +0200malumore(~malumore@151.62.122.70) (Ping timeout: 240 seconds)
2021-04-21 22:11:33 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 22:12:27 +0200kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-04-21 22:13:50 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-21 22:14:32 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-tuzcokklkvrgravg) (Quit: Connection closed for inactivity)
2021-04-21 22:15:33 +0200PragCypher(~cypher@li1507-98.members.linode.com) (Read error: Connection reset by peer)
2021-04-21 22:16:45 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 22:22:01 +0200Nahra(~user@unaffiliated/nahra) (Ping timeout: 245 seconds)
2021-04-21 22:22:10 +0200myShoggoth(~myShoggot@75.164.11.109) (Ping timeout: 260 seconds)
2021-04-21 22:23:08 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
2021-04-21 22:29:13 +0200nineonin_(~nineonine@50.216.62.2)
2021-04-21 22:29:43 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 22:30:21 +0200psygate(~psygate@unaffiliated/psygate) (Quit: Leaving)
2021-04-21 22:30:32 +0200hexfive(~hexfive@50.35.83.177)
2021-04-21 22:31:57 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2021-04-21 22:32:05 +0200nineonine(~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Ping timeout: 250 seconds)
2021-04-21 22:32:38 +0200myShoggoth(~myShoggot@75.164.11.109)
2021-04-21 22:36:20 +0200alx741(~alx741@181.196.68.199) (Ping timeout: 246 seconds)
2021-04-21 22:39:38 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-fvdnxupudqhwtjny) (Quit: Connection closed for inactivity)
2021-04-21 22:43:03 +0200fendor(~fendor@91.141.3.112.wireless.dyn.drei.com) (Remote host closed the connection)
2021-04-21 22:43:22 +0200sammyh(~sammyh@vps-15813cea.vps.ovh.net)
2021-04-21 22:44:49 +0200rodriga(~quassel@134.204.25.66) (Ping timeout: 252 seconds)
2021-04-21 22:45:29 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 22:45:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 22:45:54 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-zaklydynoasermoj)
2021-04-21 22:47:38 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-04-21 22:49:14 +0200alx741(~alx741@186.178.109.231)
2021-04-21 22:49:46 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Quit: WeeChat 3.1)
2021-04-21 22:51:05 +0200LKoen(~LKoen@92.163.9.109.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-21 22:51:11 +0200stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
2021-04-21 22:51:19 +0200safinaskar(~user@109.252.90.136) ()
2021-04-21 22:51:21 +0200safinaskar(~user@109.252.90.136)
2021-04-21 22:52:03 +0200dmytrish(~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9)
2021-04-21 22:52:19 +0200stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-04-21 22:52:25 +0200 <safinaskar> is there a way to dynamically evaluate some haskell code, ideally in the form of ast? i know about "hint" package, but its description says "requires ghc installed", i don't want such requirement
2021-04-21 22:53:40 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-04-21 22:54:26 +0200 <infinisil> safinaskar: Are you sure it needs to be Haskell?
2021-04-21 22:54:31 +0200jao(~jao@pdpc/supporter/professional/jao) (Ping timeout: 245 seconds)
2021-04-21 22:55:28 +0200 <infinisil> Because to evaluate haskell you need to compile it, which requires a GHC compiler, therefore the requirement
2021-04-21 22:57:49 +0200 <safinaskar> infinisil: i mean i don't want requirement to have ghc binary on system. but i am ok with dependency on some kind of library
2021-04-21 22:58:08 +0200 <geekosaur> ghc exists as a library but that more or less means ghc installed
2021-04-21 22:58:15 +0200 <infinisil> Yeah that won't really work
2021-04-21 22:58:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-04-21 22:58:21 +0200 <Uniaika> yep'
2021-04-21 22:58:21 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 22:58:30 +0200 <infinisil> safinaskar: What's your use case?
2021-04-21 22:59:37 +0200 <geekosaur> conceivably it would be possible to make hugs work, provided you stick to its subset of ghc's functionality; it's a smaller footprint than ghc but I think doesn't come as a library as it is
2021-04-21 23:00:55 +0200 <safinaskar> infinisil: i. e. i want to be able to copy my program to another machine with all its shared libraries and i want it to work. it is okey if one of this libraries will be ghc library. but this is not okey if ghc executable is required, too. is this possible?
2021-04-21 23:01:51 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-21 23:02:00 +0200 <infinisil> Oh yeah that's not the right approach for this
2021-04-21 23:02:10 +0200 <c_wraith> the big issue with using ghc as a library is really that you depend on the package databases still
2021-04-21 23:02:33 +0200 <safinaskar> so is this possible?
2021-04-21 23:02:58 +0200 <infinisil> Well, I know how to do it with Nix. No idea how GHC programs usually get distributed
2021-04-21 23:02:59 +0200slack1256(~slack1256@200-112-79-98.baf.movistar.cl) (Remote host closed the connection)
2021-04-21 23:03:02 +0200 <c_wraith> It's basically impossible to have installed libraries with having GHC
2021-04-21 23:04:40 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-21 23:04:51 +0200 <c_wraith> If you want to run haskell code and allow it to have access to definitions in base, you need base to be installed. That's not the same as compiled into your program
2021-04-21 23:05:30 +0200 <infinisil> I think they just want a distribution mechanism for a compiled binary
2021-04-21 23:05:48 +0200 <geekosaur> which brings up another good point: with or without ghc, the things you compile can't access your program's internals
2021-04-21 23:05:56 +0200 <geekosaur> it would be a separate program
2021-04-21 23:06:08 +0200DavidEichmann(~david@147.136.46.217.dyn.plus.net)
2021-04-21 23:06:32 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
2021-04-21 23:08:16 +0200 <safinaskar> c_wraith: ok, thanks
2021-04-21 23:08:31 +0200 <safinaskar> well, okey, thanks everybody, so, this is impossible
2021-04-21 23:08:33 +0200 <c_wraith> GHC is just not well suited for embedding except in cases where it's running on the machine that compiled it.
2021-04-21 23:11:06 +0200 <c_wraith> This is mostly the result of how it handles libraries with separate compilation and using the system linker
2021-04-21 23:11:22 +0200 <infinisil> safinaskar: https://www.reddit.com/r/haskell/comments/a0stgf/how_to_package_and_distribute_software/eals7zn/
2021-04-21 23:11:25 +0200 <infinisil> How about this ^
2021-04-21 23:11:39 +0200 <infinisil> Compiling the program with `-static -optc-static -optl-static`
2021-04-21 23:14:25 +0200safinaskar(~user@109.252.90.136) ()
2021-04-21 23:15:15 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-21 23:15:57 +0200mastarija(~mastarija@31.217.16.219)
2021-04-21 23:16:32 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
2021-04-21 23:17:12 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-21 23:17:24 +0200conal(~conal@64.71.133.70)
2021-04-21 23:18:01 +0200knupfer(~Thunderbi@200116b82b5e7400d544a78922962f4e.dip.versatel-1u1.de) (Ping timeout: 250 seconds)
2021-04-21 23:19:43 +0200 <c_wraith> this sort of sounds like something that could be integrated into cabal. Though it'd be a lot of work. Still, you could tell cabal to package up all the interface and library files and store them as data in a distributable package, and while it's at it add stubs for using the ghc api configured with exactly the same flags it uses for your project.
2021-04-21 23:19:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-21 23:21:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-21 23:22:14 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-21 23:25:24 +0200horatiohb(~horatiohb@104.236.234.13)
2021-04-21 23:28:45 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-04-21 23:30:14 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2021-04-21 23:30:38 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 23:30:49 +0200 <monochrom> Static linking will not help you with deploying GHC-API-using exes to a no-GHC machine at all.
2021-04-21 23:30:57 +0200Tario(~Tario@200.119.185.36)
2021-04-21 23:31:01 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-04-21 23:31:18 +0200 <monochrom> This is because the statically-linked GHC-API will still dynamically open GHC's *.so files during run time.
2021-04-21 23:31:30 +0200 <monochrom> That's right, no typo there.
2021-04-21 23:31:52 +0200 <monochrom> In fact it gets worse^W better.
2021-04-21 23:32:23 +0200 <monochrom> The dlopen uses an absolute path, the very same absolute path as where GHC's *.so files are during build time.
2021-04-21 23:32:27 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-21 23:34:42 +0200Tario(~Tario@200.119.185.36) (Read error: Connection reset by peer)
2021-04-21 23:34:55 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 250 seconds)
2021-04-21 23:35:32 +0200Tario(~Tario@201.192.165.173)
2021-04-21 23:35:45 +0200 <monochrom> You will probably find that a docker approach is more viable. And use pretty much the same docker image for both building your exe and deploying. OK the deploy image can skip gcc and make, sure.
2021-04-21 23:36:37 +0200elliott_(~elliott@pool-108-18-30-46.washdc.fios.verizon.net)
2021-04-21 23:36:54 +0200rj_(~x@gateway/tor-sasl/rj)
2021-04-21 23:37:59 +0200michalz(~user@185.246.204.47) (Remote host closed the connection)
2021-04-21 23:39:13 +0200boogsbunny(2d23821c@45.35.130.28)
2021-04-21 23:39:33 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 23:40:47 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-04-21 23:41:15 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-04-21 23:41:38 +0200cagrioz64(4ea70324@78.167.3.36)
2021-04-21 23:43:08 +0200cagrioz64(4ea70324@78.167.3.36) (Client Quit)
2021-04-21 23:43:09 +0200rj_(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-21 23:43:35 +0200 <monochrom> It is becoming more and more naïve to believe that you can solve all deployment problems by shouting "static linking!" at the build tool a huge number of times.
2021-04-21 23:43:46 +0200sleblanc(~sleblanc@unaffiliated/sebleblanc)
2021-04-21 23:44:11 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
2021-04-21 23:44:14 +0200cagrioz83(4ea70324@78.167.3.36)
2021-04-21 23:44:22 +0200 <monochrom> It was true of most C ecosystems a long time ago, in a much simpler time, in a previous life.
2021-04-21 23:44:45 +0200 <monochrom> Today even glibc makes that false.
2021-04-21 23:45:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-21 23:45:17 +0200 <monochrom> So never mind a whole new generation of high-level language implementations. Haskell is not alone here.
2021-04-21 23:46:29 +0200stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
2021-04-21 23:46:51 +0200 <hpc> nowadays you shout "docker!" at the build tool a huge number of times
2021-04-21 23:47:10 +0200 <hpc> oh, already mentioned
2021-04-21 23:47:12 +0200 <monochrom> Yeah. Let's hope this lasts for the next 10 years.
2021-04-21 23:47:25 +0200 <infinisil> monochrom: I don't think they're using the ghc api?
2021-04-21 23:47:39 +0200geekosaurwill be surprised if docker's still the hotness in 10 years
2021-04-21 23:47:42 +0200 <monochrom> If you use hint you're using the ghc api.
2021-04-21 23:47:45 +0200 <geekosaur> things move far too fast
2021-04-21 23:47:51 +0200 <monochrom> If you use ghc-mod you're using the ghc api.
2021-04-21 23:48:14 +0200 <geekosaur> ghc as a library is the ghc api
2021-04-21 23:48:36 +0200 <monochrom> If you use anything remotely close to "honour dynamically received Haskell code" you're using the ghc api.
2021-04-21 23:48:38 +0200 <geekosaur> other options for dynamically compiling haskell code basically don't exist
2021-04-21 23:49:08 +0200 <infinisil> monochrom: I don't think they're doing that though
2021-04-21 23:49:34 +0200 <infinisil> Oh
2021-04-21 23:49:39 +0200 <infinisil> Wait maybe I misunderstood
2021-04-21 23:49:45 +0200 <infinisil> Yeah I probably did, never mind
2021-04-21 23:49:50 +0200 <geekosaur> >> is there a way to dynamically evaluate some haskell code, ideally in the form of ast? i know about "hint" package, but its description says "requires ghc installed", i don't want such requirement
2021-04-21 23:50:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-04-21 23:50:41 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-21 23:50:49 +0200 <monochrom> Actually, may I recommend system("hugs")? >:)
2021-04-21 23:51:04 +0200 <monochrom> At least hugs is much much smaller.
2021-04-21 23:51:28 +0200 <geekosaur> I did suggest that early on
2021-04-21 23:51:42 +0200 <monochrom> Darn.
2021-04-21 23:54:22 +0200usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-04-21 23:55:19 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-21 23:56:47 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e)
2021-04-21 23:59:20 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)