2021/03/29

2021-03-29 00:00:23 +0200Rudd0(~Rudd0@185.189.115.108)
2021-03-29 00:02:56 +0200fendor_(~fendor@77.119.130.24.wireless.dyn.drei.com) (Remote host closed the connection)
2021-03-29 00:03:08 +0200ambiso9921(~ambiso@209.182.239.205)
2021-03-29 00:06:07 +0200ambiso992(~ambiso@209.182.239.205) (Ping timeout: 276 seconds)
2021-03-29 00:13:31 +0200xiinotulp(~q@ppp-27-55-67-28.revip3.asianet.co.th)
2021-03-29 00:13:45 +0200mollberg(~mollberg@78-69-80-125-no85.tbcn.telia.com) (Remote host closed the connection)
2021-03-29 00:14:00 +0200mollberg(~mollberg@78-69-80-125-no85.tbcn.telia.com)
2021-03-29 00:16:28 +0200mollberg(~mollberg@78-69-80-125-no85.tbcn.telia.com) (Client Quit)
2021-03-29 00:16:39 +0200knonk(b9d94544@185.217.69.68)
2021-03-29 00:17:26 +0200plutoniix(~q@ppp-49-237-18-51.revip6.asianet.co.th) (Ping timeout: 260 seconds)
2021-03-29 00:17:48 +0200knonk(b9d94544@185.217.69.68) (Client Quit)
2021-03-29 00:19:41 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 00:21:54 +0200LKoen(~LKoen@191.254.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-03-29 00:22:39 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 246 seconds)
2021-03-29 00:24:09 +0200average(uid473595@gateway/web/irccloud.com/x-ouzrkvprxkvmvpoy) (Quit: Connection closed for inactivity)
2021-03-29 00:24:47 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-03-29 00:25:18 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-03-29 00:26:50 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-03-29 00:29:15 +0200nf(~n@monade.li) (Quit: Fairfarren.)
2021-03-29 00:30:59 +0200nf(~n@monade.li)
2021-03-29 00:33:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 00:34:35 +0200__minoru__shirae(~shiraeesh@109.166.57.99) (Ping timeout: 246 seconds)
2021-03-29 00:34:45 +0200CrazyPython(~crazypyth@98.122.164.118)
2021-03-29 00:35:26 +0200CrazyPythonJamesLu
2021-03-29 00:36:35 +0200ddere(uid110888@gateway/web/irccloud.com/x-ydfajrwtbkzcpvbs)
2021-03-29 00:41:13 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8)
2021-03-29 00:42:01 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 250 seconds)
2021-03-29 00:42:06 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78)
2021-03-29 00:43:09 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 00:45:07 +0200borne(~fritjof@200116b8644f3500f7ed9fd86a2491f0.dip.versatel-1u1.de) (Ping timeout: 276 seconds)
2021-03-29 00:45:48 +0200borne(~fritjof@2a06:8782:ffbb:1337:ce73:3416:bcd:fc35)
2021-03-29 00:47:59 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-03-29 00:48:22 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 276 seconds)
2021-03-29 00:53:50 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 00:55:12 +0200solvr(57e3c46d@87.227.196.109)
2021-03-29 00:55:25 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 00:57:03 +0200notzmv(~zmv@unaffiliated/zmv)
2021-03-29 00:57:05 +0200recon_-(~quassel@2602:febc:0:b6::6ca2) (Quit: No Ping reply in 180 seconds.)
2021-03-29 00:58:01 +0200ddellacosta(~ddellacos@86.106.143.53)
2021-03-29 00:58:56 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-03-29 01:00:23 +0200ixlun(~matthew@109.249.184.133)
2021-03-29 01:03:00 +0200ddellacosta(~ddellacos@86.106.143.53) (Ping timeout: 268 seconds)
2021-03-29 01:04:39 +0200recon_-(~quassel@2602:febc:0:b6::6ca2)
2021-03-29 01:04:41 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
2021-03-29 01:05:12 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-03-29 01:07:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-29 01:25:37 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-29 01:25:58 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
2021-03-29 01:27:41 +0200stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-03-29 01:27:43 +0200solvr(57e3c46d@87.227.196.109)
2021-03-29 01:28:47 +0200MarcelineVQ(~anja@198.254.208.159)
2021-03-29 01:29:08 +0200 <solvr> Do you know what bothers me in FP. It's all about composing functions and type systems in complex trees and pipelines, but in the end, precisely 0 of that survives the process boundary, let alone the machine boundary. And we're a more interconnected and distributed world than ever. So the sunk cost in modeling elaborately in FP doesn't provide good
2021-03-29 01:29:09 +0200 <solvr> ROI.
2021-03-29 01:29:26 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-29 01:31:35 +0200Tesseraction(~Tesseract@unaffiliated/tesseraction) (Remote host closed the connection)
2021-03-29 01:33:26 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 01:37:52 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-03-29 01:38:33 +0200xsperry(~as@unaffiliated/xsperry) ()
2021-03-29 01:38:58 +0200xsperry(~as@unaffiliated/xsperry)
2021-03-29 01:40:22 +0200stree(~stree@68.36.8.116)
2021-03-29 01:42:01 +0200 <Axman6> I'm not sure I agree, what about when you use Haskell and Purescript in the browser? Yes there's serialisation to (usually) JSON, but it's cheacked on each end. if you use Servant you can generate your client code so its types align with your server. at some point, everythign has to be bytes on a wire
2021-03-29 01:42:46 +0200 <solvr> Axman6, you can serialize aspects of the type system, but a function pipeline, less so
2021-03-29 01:44:09 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78)
2021-03-29 01:44:16 +0200Jacob`(~user@97-113-25-104.tukw.qwest.net)
2021-03-29 01:44:21 +0200irc_user(uid423822@gateway/web/irccloud.com/x-qhkvurpryivhyrpb)
2021-03-29 01:44:37 +0200Jacob`(~user@97-113-25-104.tukw.qwest.net) ()
2021-03-29 01:45:25 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 01:46:37 +0200 <wrunt> solvr: Your argument is analogous to "The world is such a dangerous place, there's just no point wearing seat belts."
2021-03-29 01:46:56 +0200 <wrunt> I still wear a seat belt because I want to reduce my risk, not so I'm immortal.
2021-03-29 01:48:30 +0200conal(~conal@64.71.133.70) (Ping timeout: 252 seconds)
2021-03-29 01:49:46 +0200conal(~conal@107.181.166.205)
2021-03-29 01:50:29 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2021-03-29 01:50:43 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 01:53:27 +0200 <wrunt> Also, once you've made the initial investment in learning Haskell, it doesn't take that long to write programs. The "modeling elaborately" doesn't cost you much, and can actually help you finish faster and give you better guarantees that you're done.
2021-03-29 01:56:32 +0200jud(~jud@206.217.205.84)
2021-03-29 01:56:32 +0200jud(~jud@206.217.205.84) (Changing host)
2021-03-29 01:56:32 +0200jud(~jud@unaffiliated/jud)
2021-03-29 01:57:57 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78)
2021-03-29 02:00:06 +0200atk(~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
2021-03-29 02:00:27 +0200atk(~Arch-TK@ircpuzzles/staff/Arch-TK)
2021-03-29 02:01:47 +0200 <solvr> wrunt, the seatbelt analogy would be accurate if it took you hours to put on your seatbelt before you leave home, and then when you leave your house you need to leave the seatbelt at home.
2021-03-29 02:03:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2021-03-29 02:06:02 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-03-29 02:07:01 +0200 <wrunt> No, it still holds, because I'm saying Haskell's type safety saves time, it doesn't cost extra. And you still leave the house in your car with a seatbelt on, you just can't control a truck sideswiping you.
2021-03-29 02:08:40 +0200 <Axman6> yeah types definitely save time, they let you tell the compiler what you think your program needs and the compiler tells you when it turns out you were wrong
2021-03-29 02:09:00 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 02:12:29 +0200 <justsomeguy> wrunt: How long would you estimate that the initial investment of learning haskell takes?
2021-03-29 02:12:47 +0200locrian9(~mike@cpe-104-173-20-162.socal.res.rr.com) (Quit: leaving)
2021-03-29 02:13:26 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-03-29 02:13:38 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
2021-03-29 02:13:48 +0200ddellaco_(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 02:16:03 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2021-03-29 02:19:06 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2021-03-29 02:19:56 +0200JamesLu(~crazypyth@98.122.164.118) (Ping timeout: 246 seconds)
2021-03-29 02:20:23 +0200CrazyPython(~crazypyth@98.122.164.118)
2021-03-29 02:21:41 +0200robotmay(~beepboop@2001:8b0:7af0:2580:b995:956f:e934:6824) (Ping timeout: 250 seconds)
2021-03-29 02:21:47 +0200ph88(~ph88@2a02:8109:9e00:7e5c:e93f:8176:4aa5:ca0b)
2021-03-29 02:22:13 +0200Jd007(~Jd007@162.156.11.151)
2021-03-29 02:22:28 +0200slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-03-29 02:22:59 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-qyihkevgdfchqfky) (Quit: Connection closed for inactivity)
2021-03-29 02:23:40 +0200 <wrunt> That depends on how much knowledge you bring with you. If you already have a lot of computer science / discrete maths knowledge, or already know another FP language, then maybe a year or two. Otherwise maybe as many as five, to get really productive. But I only have my own experience to go on.
2021-03-29 02:23:50 +0200robotmay(~beepboop@80.172.187.81.in-addr.arpa)
2021-03-29 02:26:39 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-03-29 02:27:24 +0200Axman6hates how disengenuous the whole "Learn X language in 24h" industry is, a profession takes time to master, it takes experience of making mistakes to become proficient in not making them
2021-03-29 02:27:38 +0200 <wrunt> It's probably similar to the amount of investment needed to get good in Python or Java, say, except you won't cause quite as much damage (in terms of horrendous, unmaintainable code) along the way. The downside being that you also won't get as much done.
2021-03-29 02:28:04 +0200 <wrunt> (for short-term values of 'done')
2021-03-29 02:29:12 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 252 seconds)
2021-03-29 02:29:21 +0200 <Axman6> the first Haskell program I wrote professionally after uni (after two years of not programming) is still in production, and the only bug it's ever been found to have was a Postgres matertialised view which caused the database to fall over one day when it took too long to update
2021-03-29 02:32:33 +0200 <ephemient> I'm not sure what people's standards are for how much time and effort to put into learning a language are, either
2021-03-29 02:33:01 +0200 <wrunt> I'm talking about full-time professional use.
2021-03-29 02:34:05 +0200 <wrunt> Which is obviously hard as a beginner. You'd need a mentor guiding you, at first. The way I learned was over many years, tinkering in my spare time, until I was good enough to start using it at work.
2021-03-29 02:35:02 +0200 <wrunt> And the reason I learned Haskell was that I was just so frustrated with trying to enadicate certain types of bugs in C++, and with trying to express natural concepts with Java.
2021-03-29 02:35:30 +0200 <ephemient> I had a PL course (1 semester) in SML. from there, I found that learning Haskell on my own in an incremental fashion was easy - a lot of it was just lazier and sugarier versions of what I already knew. I'd say I was productive within a week, but as a student my "spare time" was really quite a lot :)
2021-03-29 02:36:11 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 240 seconds)
2021-03-29 02:37:17 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-03-29 02:37:44 +0200sdrodge(~sdrodge@unaffiliated/sdrodge)
2021-03-29 02:40:53 +0200robotmay_(~beepboop@2001:8b0:7af0:2580:6cec:6538:1c02:32bf)
2021-03-29 02:41:03 +0200robotmay(~beepboop@80.172.187.81.in-addr.arpa) (Ping timeout: 268 seconds)
2021-03-29 02:41:58 +0200 <wrunt> Most of the frustration that remains for me is in library management, not the programming itself, which is a delight.
2021-03-29 02:42:21 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-03-29 02:43:45 +0200 <wrunt> I like where the Unison language is going in that respect. It would be nice if Haskell could be compiled at the function level (rather than the module level), and then I could import content-addressed functions from packages without importing the whole package. But this is pretty ambitious.
2021-03-29 02:47:43 +0200Tesseraction(~Tesseract@unaffiliated/tesseraction)
2021-03-29 02:54:13 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-03-29 02:55:14 +0200DTZUZU_(~DTZUZO@207.81.119.43)
2021-03-29 02:55:28 +0200jamm_(~jamm@unaffiliated/jamm)
2021-03-29 02:57:02 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 246 seconds)
2021-03-29 02:58:23 +0200CMCDragonkai(~Thunderbi@60-242-118-130.tpgi.com.au)
2021-03-29 02:58:56 +0200ski. o O ( "Teach Yourself Programming in .." by Peter Norvig at <https://www.norvig.com/21-days.html> )
2021-03-29 02:59:08 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-29 02:59:16 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-03-29 02:59:18 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 02:59:34 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 245 seconds)
2021-03-29 03:03:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 03:07:34 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 265 seconds)
2021-03-29 03:08:32 +0200Guest55480(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds)
2021-03-29 03:09:46 +0200xiinotulp(~q@ppp-27-55-67-28.revip3.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 03:09:47 +0200robotmay_(~beepboop@2001:8b0:7af0:2580:6cec:6538:1c02:32bf) (Remote host closed the connection)
2021-03-29 03:11:41 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-03-29 03:12:48 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-03-29 03:14:59 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-03-29 03:15:36 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 03:16:23 +0200Jon(jon@dow.land) (Quit: ZNC - http://znc.in)
2021-03-29 03:17:36 +0200Tario(~Tario@200.119.186.197)
2021-03-29 03:17:52 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78)
2021-03-29 03:20:19 +0200haritz(~hrtz@unaffiliated/haritz) (Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in)
2021-03-29 03:21:03 +0200Jd007(~Jd007@162.156.11.151)
2021-03-29 03:21:46 +0200Tario(~Tario@200.119.186.197) (Ping timeout: 240 seconds)
2021-03-29 03:23:38 +0200Jon(~jon@redmars.org)
2021-03-29 03:23:59 +0200haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
2021-03-29 03:24:00 +0200haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
2021-03-29 03:24:00 +0200haritz(~hrtz@unaffiliated/haritz)
2021-03-29 03:24:32 +0200kupi(uid212005@gateway/web/irccloud.com/x-rsqhffuuxfehttck) (Quit: Connection closed for inactivity)
2021-03-29 03:25:30 +0200xiinotulp(~q@node-ugt.pool-125-24.dynamic.totinternet.net)
2021-03-29 03:25:37 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-29 03:25:58 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
2021-03-29 03:27:39 +0200Tario(~Tario@200.119.186.197)
2021-03-29 03:31:54 +0200Tario(~Tario@200.119.186.197) (Ping timeout: 252 seconds)
2021-03-29 03:31:58 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-03-29 03:33:17 +0200tpefreedom(~tsomers@184-157-240-110.dyn.centurytel.net)
2021-03-29 03:34:13 +0200 <justsomeguy> wrunt: I appreciate your take on it. I've been learning over the last eight months or so, and was trying to guage where I'm at in the process. I suppose I'm slowly getting there, but still pretty terrible at programming overall, as a mental activity.
2021-03-29 03:34:43 +0200DTZUZU_(~DTZUZO@207.81.119.43) (Ping timeout: 268 seconds)
2021-03-29 03:34:43 +0200 <justsomeguy> (Prior to this, I've only done simple scripting in Python and bash.)
2021-03-29 03:34:46 +0200aarvar(~foewfoiew@2601:602:a080:fa0:64a7:ab1c:edbd:150) (Ping timeout: 276 seconds)
2021-03-29 03:34:57 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8) (Remote host closed the connection)
2021-03-29 03:37:20 +0200Guest29(~textual@109.246.40.24)
2021-03-29 03:37:50 +0200robotmay(~beepboop@80.172.187.81.in-addr.arpa)
2021-03-29 03:37:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-29 03:38:16 +0200DataComputist(~lumeng@50.43.26.251)
2021-03-29 03:38:47 +0200Lovelace(~Android@102.141.185.135)
2021-03-29 03:39:02 +0200robwerks1(~robwerks@195.140.213.38) (Remote host closed the connection)
2021-03-29 03:39:22 +0200Guest29(~textual@109.246.40.24) (Client Quit)
2021-03-29 03:39:58 +0200elliott_(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-03-29 03:40:16 +0200solidus-river(~mike@174.127.249.180) (Remote host closed the connection)
2021-03-29 03:41:22 +0200Tario(~Tario@201.192.165.173)
2021-03-29 03:44:22 +0200gioyik_(~gioyik@gateway/tor-sasl/gioyik)
2021-03-29 03:45:50 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 03:45:50 +0200xiinotulp(~q@node-ugt.pool-125-24.dynamic.totinternet.net) (Ping timeout: 252 seconds)
2021-03-29 03:46:25 +0200robotmay(~beepboop@80.172.187.81.in-addr.arpa) (Ping timeout: 268 seconds)
2021-03-29 03:47:33 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 240 seconds)
2021-03-29 03:48:03 +0200aarvar(~foewfoiew@2601:602:a080:fa0:9ccc:9e5e:6c10:6175)
2021-03-29 03:48:18 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-03-29 03:49:32 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 03:50:44 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2021-03-29 03:52:55 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8) (Remote host closed the connection)
2021-03-29 03:53:33 +0200aarvar(~foewfoiew@2601:602:a080:fa0:9ccc:9e5e:6c10:6175) ()
2021-03-29 03:54:10 +0200Jarsto1(~Jarsto@195.140.213.38)
2021-03-29 03:54:14 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 03:54:38 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 252 seconds)
2021-03-29 03:54:54 +0200rajivr(uid269651@gateway/web/irccloud.com/x-nlktifqfsuwtyuzw)
2021-03-29 03:57:00 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 03:57:36 +0200aarvar(~foewfoiew@2601:602:a080:fa0:ce9:4062:4238:ecda)
2021-03-29 03:58:39 +0200xiinotulp(~q@node-ugt.pool-125-24.dynamic.totinternet.net)
2021-03-29 03:59:38 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78)
2021-03-29 04:01:39 +0200stree(~stree@68.36.8.116)
2021-03-29 04:02:51 +0200xff0x(~xff0x@2001:1a81:523f:7b00:3c18:a9e7:56f9:4d88) (Ping timeout: 245 seconds)
2021-03-29 04:03:54 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-03-29 04:03:58 +0200DigitalKiwiCryptoKiwi
2021-03-29 04:04:22 +0200CryptoKiwiDigitalKiwi
2021-03-29 04:05:00 +0200xff0x(~xff0x@2001:1a81:5268:4b00:6095:39e:f552:2f81)
2021-03-29 04:05:20 +0200Lovelace(~Android@102.141.185.135) (Quit: -a- IRC for Android 2.1.59)
2021-03-29 04:05:23 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-phnwtlzuswvxveua)
2021-03-29 04:06:25 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-03-29 04:06:25 +0200finn_elijaGuest31930
2021-03-29 04:06:25 +0200FinnElijafinn_elija
2021-03-29 04:08:17 +0200borne(~fritjof@2a06:8782:ffbb:1337:ce73:3416:bcd:fc35) (Ping timeout: 250 seconds)
2021-03-29 04:09:09 +0200Guest31930(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-03-29 04:10:34 +0200elliott_(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-29 04:11:42 +0200Wizek(uid191769@gateway/web/irccloud.com/x-ivxcahppedejjawd) (Quit: Connection closed for inactivity)
2021-03-29 04:13:49 +0200Guest66(~textual@S0106f0b4d2c39cee.va.shawcable.net)
2021-03-29 04:17:42 +0200CrazyPython(~crazypyth@98.122.164.118) (Read error: Connection reset by peer)
2021-03-29 04:21:26 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-03-29 04:22:15 +0200petersen(~petersen@redhat/juhp)
2021-03-29 04:22:20 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-03-29 04:23:57 +0200gioyik_(~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 240 seconds)
2021-03-29 04:27:07 +0200ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-29 04:27:10 +0200ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Remote host closed the connection)
2021-03-29 04:27:34 +0200slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-03-29 04:31:11 +0200elliott_(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2021-03-29 04:32:14 +0200aarvar(~foewfoiew@2601:602:a080:fa0:ce9:4062:4238:ecda) (Quit: Leaving.)
2021-03-29 04:34:35 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8) (Remote host closed the connection)
2021-03-29 04:35:54 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 04:35:56 +0200aarvar(~foewfoiew@2601:602:a080:fa0:4027:638f:3116:8de5)
2021-03-29 04:36:41 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-03-29 04:39:02 +0200__minoru__shirae(~shiraeesh@109.166.57.99)
2021-03-29 04:42:31 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8) (Ping timeout: 250 seconds)
2021-03-29 04:42:43 +0200CMCDragonkai(~Thunderbi@60-242-118-130.tpgi.com.au) (Quit: CMCDragonkai)
2021-03-29 04:43:19 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 04:46:18 +0200CMCDragonkai(~Thunderbi@60-242-118-130.tpgi.com.au)
2021-03-29 04:51:17 +0200conal(~conal@107.181.166.205) (Quit: Computer has gone to sleep.)
2021-03-29 04:52:05 +0200elliott_(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-29 04:53:18 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-29 04:55:42 +0200Tario(~Tario@201.192.165.173)
2021-03-29 04:56:57 +0200jamm_(~jamm@unaffiliated/jamm)
2021-03-29 05:00:12 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-03-29 05:00:49 +0200xiinotulp(~q@node-ugt.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2021-03-29 05:07:13 +0200aarvar(~foewfoiew@2601:602:a080:fa0:4027:638f:3116:8de5) ()
2021-03-29 05:07:23 +0200conal(~conal@107.181.166.205)
2021-03-29 05:10:05 +0200 <wrunt> justsomeguy: Programming happens at the intersection of maths, engineering, and whatever your problem domain is, so it typically takes a long time to get good at all three. But it's worth the effort. And don't worry, I think we were all pretty terrible at it to begin with. Like any skill it can be learned by anyone with enough persistence to stick with it.
2021-03-29 05:10:46 +0200aarvar(~foewfoiew@2601:602:a080:fa0:c76c:28dd:dc02:df4e)
2021-03-29 05:11:50 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 05:13:53 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-29 05:17:57 +0200andreas31(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2021-03-29 05:19:47 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8) (Ping timeout: 250 seconds)
2021-03-29 05:20:08 +0200andreas31(~andreas@gateway/tor-sasl/andreas303)
2021-03-29 05:20:44 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 05:24:42 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2021-03-29 05:30:38 +0200Jarsto1(~Jarsto@195.140.213.38) (Remote host closed the connection)
2021-03-29 05:31:08 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78)
2021-03-29 05:33:16 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8) (Ping timeout: 245 seconds)
2021-03-29 05:34:01 +0200irc_user(uid423822@gateway/web/irccloud.com/x-qhkvurpryivhyrpb) (Quit: Connection closed for inactivity)
2021-03-29 05:34:31 +0200aarvar(~foewfoiew@2601:602:a080:fa0:c76c:28dd:dc02:df4e) (Ping timeout: 245 seconds)
2021-03-29 05:34:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 05:36:01 +0200robotmay(~beepboop@2001:8b0:7af0:2580:24e0:5511:1a01:8ea8)
2021-03-29 05:38:00 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-03-29 05:44:20 +0200 <bbhoss> so I've noticed that very often the "collection" is often the last parameter to many functions. this makes sense because it makes it easier to use the same function for multiple things, as parameters are applied from the left. is this formalized somewhere?
2021-03-29 05:45:14 +0200alx741(~alx741@186.178.109.231) (Quit: alx741)
2021-03-29 05:46:43 +0200flound1129(~flound112@139.28.218.148)
2021-03-29 05:49:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-29 05:55:52 +0200drbean_(~drbean@TC210-63-209-15.static.apol.com.tw)
2021-03-29 05:55:53 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 05:56:05 +0200 <wrunt> Not formal, but here's some discussion of it: https://wiki.haskell.org/Parameter_order
2021-03-29 05:56:39 +0200bitmagie1(~Thunderbi@200116b8069ac20068656f6dd34a0922.dip.versatel-1u1.de)
2021-03-29 05:58:04 +0200 <bbhoss> this is what I was looking for, thanks
2021-03-29 05:58:31 +0200bitmagie(~Thunderbi@200116b80660de0030b444d902e7bc81.dip.versatel-1u1.de) (Ping timeout: 252 seconds)
2021-03-29 05:58:31 +0200bitmagie1bitmagie
2021-03-29 05:59:58 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-03-29 06:07:06 +0200elliott_(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-03-29 06:08:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-03-29 06:09:09 +0200zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-03-29 06:09:32 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-03-29 06:10:07 +0200zaquest(~notzaques@5.128.210.178)
2021-03-29 06:10:47 +0200solvr(57e3c46d@87.227.196.109)
2021-03-29 06:17:36 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-03-29 06:19:53 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-03-29 06:22:55 +0200SaitamaPlus(uid272474@gateway/web/irccloud.com/x-cfuxdhlufguvidaj) (Quit: Connection closed for inactivity)
2021-03-29 06:23:02 +0200stree(~stree@68.36.8.116)
2021-03-29 06:27:00 +0200z0k(~user@115.186.169.1)
2021-03-29 06:27:22 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-29 06:28:28 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-29 06:29:33 +0200NGravity(csp@gateway/shell/xshellz/x-ztkryqboprznxnxa) (Ping timeout: 250 seconds)
2021-03-29 06:29:54 +0200Jd007(~Jd007@162.156.11.151)
2021-03-29 06:32:11 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-29 06:32:35 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-29 06:32:53 +0200limbo(ar@45.63.9.236)
2021-03-29 06:35:13 +0200gioyik_(~gioyik@gateway/tor-sasl/gioyik)
2021-03-29 06:35:24 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-03-29 06:35:33 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 240 seconds)
2021-03-29 06:40:05 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 06:40:08 +0200DTZUZU_(~DTZUZO@207.81.119.43)
2021-03-29 06:42:03 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 246 seconds)
2021-03-29 06:51:17 +0200ddellaco_(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-03-29 06:51:28 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 06:52:05 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-03-29 06:53:06 +0200tpefreedom(~tsomers@184-157-240-110.dyn.centurytel.net) (Quit: Leaving)
2021-03-29 07:02:15 +0200kiweun(~kiweun@2607:fea8:2a62:9600:31a8:b768:9c51:16bb) (Remote host closed the connection)
2021-03-29 07:03:47 +0200incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 246 seconds)
2021-03-29 07:03:56 +0200Guest66(~textual@S0106f0b4d2c39cee.va.shawcable.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-03-29 07:04:48 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 246 seconds)
2021-03-29 07:08:02 +0200desophos(~desophos@2601:249:1680:a570:dd16:7252:b42e:9895)
2021-03-29 07:09:51 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 07:13:28 +0200ddellacosta(~ddellacos@86.106.143.53)
2021-03-29 07:13:36 +0200incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2021-03-29 07:13:38 +0200Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 240 seconds)
2021-03-29 07:14:15 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 246 seconds)
2021-03-29 07:14:28 +0200jamm_(~jamm@unaffiliated/jamm)
2021-03-29 07:14:33 +0200desophos(~desophos@2601:249:1680:a570:dd16:7252:b42e:9895) (Quit: Leaving)
2021-03-29 07:14:36 +0200ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 246 seconds)
2021-03-29 07:16:48 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Remote host closed the connection)
2021-03-29 07:17:41 +0200ddellacosta(~ddellacos@86.106.143.53) (Ping timeout: 240 seconds)
2021-03-29 07:18:30 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:f167:a89:f05f:5d78) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 07:18:49 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 07:18:57 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-03-29 07:19:17 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 07:20:21 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-03-29 07:23:11 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 07:26:53 +0200yaroot7(~yaroot@138.102.13.160.dy.iij4u.or.jp)
2021-03-29 07:26:59 +0200yaroot(~yaroot@138.102.13.160.dy.iij4u.or.jp) (Read error: Connection reset by peer)
2021-03-29 07:27:00 +0200yaroot7yaroot
2021-03-29 07:27:33 +0200bitmagie(~Thunderbi@200116b8069ac20068656f6dd34a0922.dip.versatel-1u1.de) (Quit: bitmagie)
2021-03-29 07:27:54 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 07:32:18 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 07:33:24 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-03-29 07:33:57 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-phnwtlzuswvxveua) (Quit: Connection closed for inactivity)
2021-03-29 07:34:03 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-29 07:34:19 +0200Tario(~Tario@201.192.165.173)
2021-03-29 07:37:34 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 07:40:27 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-03-29 07:41:17 +0200Anon(7aab9886@122.171.152.134)
2021-03-29 07:41:19 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-03-29 07:41:35 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-03-29 07:41:40 +0200AnonGuest9981
2021-03-29 07:41:58 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 07:42:08 +0200Guest9981(7aab9886@122.171.152.134) ()
2021-03-29 07:45:39 +0200Tene(~tene@mail.digitalkingdom.org)
2021-03-29 07:45:40 +0200Tene(~tene@mail.digitalkingdom.org) (Changing host)
2021-03-29 07:45:40 +0200Tene(~tene@poipu/supporter/slacker/tene)
2021-03-29 07:46:27 +0200ByronJohnson(~bairyn@unaffiliated/bob0)
2021-03-29 07:48:42 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 07:49:06 +0200plutoniix(~q@184.82.195.122)
2021-03-29 07:50:22 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 07:53:06 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-03-29 07:53:30 +0200codygman__(~user@209.251.131.98)
2021-03-29 07:54:45 +0200knupfer(~Thunderbi@200116b82b0bfe00e407e369ad43ca6f.dip.versatel-1u1.de)
2021-03-29 07:55:00 +0200madjestic(~Android@86-88-72-244.fixed.kpn.net)
2021-03-29 07:55:33 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-03-29 07:59:24 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:35c5:fb8d:f07:96c1) (Ping timeout: 246 seconds)
2021-03-29 08:00:17 +0200Varis(~Tadas@unaffiliated/varis)
2021-03-29 08:05:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 08:05:55 +0200d34df00d(~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net) (Max SendQ exceeded)
2021-03-29 08:07:41 +0200codygman__(~user@209.251.131.98) (Remote host closed the connection)
2021-03-29 08:08:01 +0200codygman__(~user@209.251.131.98)
2021-03-29 08:08:07 +0200pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-03-29 08:09:37 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 08:10:39 +0200Cetty-si(5809af17@23.red-88-9-175.dynamicip.rima-tde.net)
2021-03-29 08:10:56 +0200Cetty-si(5809af17@23.red-88-9-175.dynamicip.rima-tde.net) ()
2021-03-29 08:10:58 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Remote host closed the connection)
2021-03-29 08:11:02 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:1e40:f339:ac5b:717)
2021-03-29 08:13:30 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-03-29 08:14:40 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 268 seconds)
2021-03-29 08:16:32 +0200CMCDragonkai(~Thunderbi@60-242-118-130.tpgi.com.au) (Ping timeout: 268 seconds)
2021-03-29 08:16:59 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-03-29 08:20:05 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-03-29 08:23:46 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 08:26:14 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-qsyvwqmdsnwpfrno) (Quit: Connection closed for inactivity)
2021-03-29 08:28:06 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
2021-03-29 08:30:38 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-03-29 08:31:56 +0200codygman__(~user@209.251.131.98) (Ping timeout: 268 seconds)
2021-03-29 08:35:18 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-03-29 08:36:42 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 08:37:13 +0200solvr(57e3c46d@87.227.196.109)
2021-03-29 08:37:15 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-29 08:39:00 +0200gioyik_(~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0)
2021-03-29 08:39:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-03-29 08:39:30 +0200shad0w_(a0ca255a@160.202.37.90)
2021-03-29 08:42:01 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-03-29 08:43:11 +0200Wuzzy(~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-03-29 08:44:20 +0200stree(~stree@68.36.8.116)
2021-03-29 08:48:02 +0200acidjnk_new(~acidjnk@p200300d0c72b95797030ab852a1672b2.dip0.t-ipconnect.de)
2021-03-29 08:50:43 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 08:52:55 +0200Tops2(~Tobias@dyndsl-095-033-095-007.ewe-ip-backbone.de)
2021-03-29 08:55:05 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 246 seconds)
2021-03-29 08:56:43 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 09:01:06 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-03-29 09:04:01 +0200chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-03-29 09:06:57 +0200raym(~ray@115.187.32.14)
2021-03-29 09:08:18 +0200azure2(~azure@103.154.230.130) (Ping timeout: 240 seconds)
2021-03-29 09:08:41 +0200azure2(~azure@103.154.230.130)
2021-03-29 09:11:18 +0200Guest55480(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-03-29 09:12:13 +0200jespada(~jespada@90.254.243.187)
2021-03-29 09:14:13 +0200shad0w_(a0ca255a@160.202.37.90) (Quit: Connection closed)
2021-03-29 09:16:46 +0200eruditass(uid248673@gateway/web/irccloud.com/x-pqiwmoliqqwvohha) (Quit: Connection closed for inactivity)
2021-03-29 09:18:12 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-03-29 09:19:13 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-03-29 09:20:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 09:21:11 +0200__minoru__shirae(~shiraeesh@109.166.57.99) (Ping timeout: 265 seconds)
2021-03-29 09:22:13 +0200unyu(~pyon@unaffiliated/pyon) (Quit: ERC (IRC client for Emacs 27.2))
2021-03-29 09:22:58 +0200madjestic(~Android@86-88-72-244.fixed.kpn.net) (Remote host closed the connection)
2021-03-29 09:24:02 +0200Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-03-29 09:26:16 +0200ddere(uid110888@gateway/web/irccloud.com/x-ydfajrwtbkzcpvbs) (Quit: Connection closed for inactivity)
2021-03-29 09:28:19 +0200__minoru__shirae(~shiraeesh@109.166.57.99)
2021-03-29 09:28:51 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 09:28:55 +0200lawid(~quassel@dslb-090-186-023-078.090.186.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2021-03-29 09:29:15 +0200lawid(~quassel@dslb-084-060-077-139.084.060.pools.vodafone-ip.de)
2021-03-29 09:29:49 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 09:32:35 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-03-29 09:32:58 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 09:34:17 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
2021-03-29 09:34:31 +0200lawid(~quassel@dslb-084-060-077-139.084.060.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2021-03-29 09:34:36 +0200lawid_(~quassel@dslb-178-005-075-142.178.005.pools.vodafone-ip.de)
2021-03-29 09:35:10 +0200borne(~fritjof@2a06:8782:ffbb:1337:ce73:3416:bcd:fc35)
2021-03-29 09:37:01 +0200marinelli(~marinelli@gateway/tor-sasl/marinelli)
2021-03-29 09:37:36 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-03-29 09:38:02 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-03-29 09:38:31 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-03-29 09:40:01 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-29 09:41:35 +0200Yumasi(~guillaume@2a01:e0a:5cb:4430:dbe9:fd6c:d1a9:4bb5)
2021-03-29 09:44:24 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-03-29 09:45:27 +0200borne(~fritjof@2a06:8782:ffbb:1337:ce73:3416:bcd:fc35) (Ping timeout: 246 seconds)
2021-03-29 09:47:05 +0200kuribas(~user@ptr-25vy0i9nyhjns61vpxg.18120a2.ip6.access.telenet.be)
2021-03-29 09:47:16 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 09:47:18 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-03-29 09:47:25 +0200borne(~fritjof@200116b8648ef300f7ed9fd86a2491f0.dip.versatel-1u1.de)
2021-03-29 09:48:11 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-03-29 09:49:32 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-03-29 09:50:17 +0200kritzefitz(~kritzefit@fw-front.credativ.com)
2021-03-29 09:51:45 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 246 seconds)
2021-03-29 09:58:20 +0200unyu(~pyon@unaffiliated/pyon)
2021-03-29 09:58:52 +0200unyu(~pyon@unaffiliated/pyon) (Quit: brb)
2021-03-29 10:01:51 +0200Iceland_jack(~user@95.149.219.0)
2021-03-29 10:02:31 +0200lawid_(~quassel@dslb-178-005-075-142.178.005.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2021-03-29 10:03:16 +0200lawid(~quassel@dslb-178-005-066-219.178.005.pools.vodafone-ip.de)
2021-03-29 10:04:16 +0200unyu(~pyon@unaffiliated/pyon)
2021-03-29 10:04:54 +0200raichoo(~raichoo@dslb-188-109-062-207.188.109.pools.vodafone-ip.de)
2021-03-29 10:05:11 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-03-29 10:05:57 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-29 10:06:38 +0200fendor(~fendor@77.119.130.24.wireless.dyn.drei.com)
2021-03-29 10:07:24 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 10:08:56 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th)
2021-03-29 10:10:16 +0200seveg(~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 240 seconds)
2021-03-29 10:11:31 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 10:11:37 +0200seveg(~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk)
2021-03-29 10:11:42 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
2021-03-29 10:12:37 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-03-29 10:14:21 +0200Sorna(~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
2021-03-29 10:14:49 +0200graf_blutwurst(~user@2001:171b:226e:adc0:3dbe:eebd:8040:b693)
2021-03-29 10:15:46 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Ping timeout: 245 seconds)
2021-03-29 10:16:38 +0200Sornaensis(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-03-29 10:18:50 +0200thc202(~thc202@unaffiliated/thc202)
2021-03-29 10:20:06 +0200Erutuon_(~Erutuon@97-116-16-233.mpls.qwest.net) (Ping timeout: 246 seconds)
2021-03-29 10:21:30 +0200pupuupup1(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th)
2021-03-29 10:22:43 +0200dandart(~Thunderbi@home.dandart.co.uk)
2021-03-29 10:24:20 +0200pupuupup(~pupuupup@ppp-124-122-133-152.revip2.asianet.co.th) (Ping timeout: 246 seconds)
2021-03-29 10:25:36 +0200Franciman(~francesco@host-79-53-62-46.retail.telecomitalia.it)
2021-03-29 10:27:15 +0200pupuupup1(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th) (Ping timeout: 268 seconds)
2021-03-29 10:28:19 +0200__minoru__shirae(~shiraeesh@109.166.57.99) (Quit: Konversation terminated!)
2021-03-29 10:28:32 +0200__minoru__shirae(~shiraeesh@109.166.57.99)
2021-03-29 10:30:10 +0200pupuupup(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th)
2021-03-29 10:32:45 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2021-03-29 10:34:36 +0200pupuupup(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th) (Ping timeout: 260 seconds)
2021-03-29 10:35:23 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2021-03-29 10:39:13 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 276 seconds)
2021-03-29 10:39:33 +0200berberman(~berberman@unaffiliated/berberman)
2021-03-29 10:41:38 +0200azure2(~azure@103.154.230.130) (Ping timeout: 240 seconds)
2021-03-29 10:42:18 +0200azure2(~azure@180.247.95.50)
2021-03-29 10:45:04 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-03-29 10:46:28 +0200pupuupup_(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th)
2021-03-29 10:46:40 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 10:48:21 +0200drbean_(~drbean@TC210-63-209-15.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2021-03-29 10:48:52 +0200ixlun(~matthew@109.249.184.133) (Read error: Connection reset by peer)
2021-03-29 10:48:53 +0200Guest42457SIben
2021-03-29 10:49:54 +0200benkolera(uid285671@gateway/web/irccloud.com/x-eheuohrapvmfijla)
2021-03-29 10:50:46 +0200pupuupup_(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 10:51:56 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-03-29 10:52:33 +0200stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-03-29 10:58:17 +0200michalz(~user@185.246.204.46)
2021-03-29 11:01:50 +0200enoq(~textual@194-208-146-143.lampert.tv)
2021-03-29 11:02:46 +0200lawid(~quassel@dslb-178-005-066-219.178.005.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-03-29 11:03:33 +0200lawid(~quassel@dslb-178-005-075-139.178.005.pools.vodafone-ip.de)
2021-03-29 11:05:21 +0200stree(~stree@68.36.8.116)
2021-03-29 11:06:18 +0200Iryon(~Iryon@2a02:a31a:a045:3500:5420:2237:4aee:26f2)
2021-03-29 11:08:07 +0200SaitamaPlus(uid272474@gateway/web/irccloud.com/x-gljisqtsvqcmgfbx)
2021-03-29 11:16:12 +0200MarcelineVQ(~anja@198.254.208.159) (Read error: Connection reset by peer)
2021-03-29 11:17:32 +0200MarcelineVQ(~anja@198.254.208.159)
2021-03-29 11:17:46 +0200pupuupup_(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th)
2021-03-29 11:20:08 +0200gaff(~user@49.207.222.255)
2021-03-29 11:21:34 +0200 <gaff> is there a way to turn data Line a = Line a | Foo (a, a) | Empty into a monad instance
2021-03-29 11:21:37 +0200 <gaff> ?
2021-03-29 11:22:30 +0200pupuupup_(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th) (Ping timeout: 265 seconds)
2021-03-29 11:23:07 +0200 <merijn> I don't think so?
2021-03-29 11:23:14 +0200 <gaff> i see
2021-03-29 11:23:24 +0200 <merijn> gaff: Consider the type of >>=
2021-03-29 11:23:30 +0200 <merijn> :t (>>=)
2021-03-29 11:23:31 +0200 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2021-03-29 11:23:39 +0200 <gaff> yes
2021-03-29 11:23:50 +0200 <merijn> So you need to take a function "a -> Line b" and return "Line b"
2021-03-29 11:24:00 +0200 <gaff> yes
2021-03-29 11:24:14 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 11:24:22 +0200 <merijn> What would that look like when the input is "Foo"? You have two a's, you can run the function twice, but then you have *two* "Line b" values that need to be turned into one "Line b" to typecheck
2021-03-29 11:24:30 +0200pupuupup(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th)
2021-03-29 11:24:33 +0200 <merijn> I don't think you can write a law abiding instance that does that
2021-03-29 11:24:44 +0200 <gaff> the types will not match up
2021-03-29 11:25:17 +0200 <gaff> also, you can not define a sensible return
2021-03-29 11:25:38 +0200 <merijn> "return = Line" seems sensible enough
2021-03-29 11:25:52 +0200 <gaff> no, it isn't
2021-03-29 11:26:02 +0200 <gaff> how will you define return
2021-03-29 11:26:04 +0200 <gaff> ?
2021-03-29 11:26:30 +0200 <gaff> why is that sensible?
2021-03-29 11:26:53 +0200 <merijn> Why not?
2021-03-29 11:27:47 +0200 <merijn> Just looking at the "shape" of your datatype it seems reasonable enough
2021-03-29 11:28:02 +0200 <gaff> return (a, b) = ?
2021-03-29 11:28:32 +0200 <gaff> you have 2 cases: return (a, b), return a
2021-03-29 11:28:56 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-03-29 11:29:10 +0200 <opqdonut> I could see a fun applicative instance for Line though: Line f <*> Line x = Line (f x); Line f <*> Foo (x, y) = Foo (f x, f y); Foo (f, g) <*> Line x = Foo (f x, g x); Foo (f, g) <*> Foo (x, y) = Foo (f x, g y); _ <*>_ = Empty
2021-03-29 11:29:40 +0200 <opqdonut> gaff: there is no requirement to be able to produce all kinds of values in your type using "return"
2021-03-29 11:29:54 +0200 <gaff> ok
2021-03-29 11:29:54 +0200 <opqdonut> gaff: e.g. for lists, return x = [x]. There is no way to produce [1,2,3] using return.
2021-03-29 11:29:58 +0200azure2(~azure@180.247.95.50) (Ping timeout: 260 seconds)
2021-03-29 11:30:13 +0200 <opqdonut> similarly for Maybe, return x = Just x. There is no way to produce Nothing using return.
2021-03-29 11:30:24 +0200 <gaff> so why is return = Line sensible?
2021-03-29 11:30:56 +0200 <gaff> why not return (a, b) = Foo (a, b)?
2021-03-29 11:30:56 +0200 <opqdonut> the types match, and it works with e.g. the Applicative instance I just wrote out
2021-03-29 11:31:04 +0200 <opqdonut> gaff: that wouldn't type
2021-03-29 11:31:24 +0200 <opqdonut> it needs to be return :: a -> Line a. Your return would be (a,a) -> Line a
2021-03-29 11:31:24 +0200azure2(~azure@180.247.95.50)
2021-03-29 11:31:57 +0200 <gaff> ah, i see
2021-03-29 11:31:59 +0200 <opqdonut> return x = Foo (x,x) would type, as would return x = Empty
2021-03-29 11:32:22 +0200 <gaff> got it
2021-03-29 11:34:26 +0200 <gaff> so my question is, if we have f :: Line -> IO [Line], and g :: IO (), how can you extract values from Line within a do construact in g?
2021-03-29 11:34:42 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-qybeoxhtmvdqtlff)
2021-03-29 11:34:46 +0200 <gaff> given that Line is not a monad
2021-03-29 11:34:55 +0200 <opqdonut> you do it
2021-03-29 11:36:04 +0200 <opqdonut> something like: g = do ...; result <- f line; let foo = map something result; let final = foldr quux xyzzy foo; print final
2021-03-29 11:36:39 +0200 <opqdonut> IO is the monad here, Line doesn't need to be a monad
2021-03-29 11:36:46 +0200 <gaff> yes
2021-03-29 11:37:17 +0200mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-03-29 11:37:18 +0200mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-03-29 11:37:18 +0200mouseghost(~draco@wikipedia/desperek)
2021-03-29 11:38:40 +0200 <gaff> ok, i have to think about that
2021-03-29 11:39:07 +0200 <gaff> so you extract the values using pattern matching?
2021-03-29 11:40:16 +0200 <opqdonut> for example, yes
2021-03-29 11:47:30 +0200 <gaff> so suppose you have to call a function, say, p :: (Int, Int) -> Int in g :: IO (), where p 's tuple comes from Foo (x, y). when you pattern match an item in result, you have 2 cases: Foo (x, y) -> p (x, y). but what would you do with the other case, Line a -> ?
2021-03-29 11:47:58 +0200pupuupup(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th) (Ping timeout: 240 seconds)
2021-03-29 11:49:31 +0200pupuupup(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th)
2021-03-29 11:52:31 +0200 <opqdonut> gaff: it depends on what you want the code to do
2021-03-29 11:52:47 +0200 <opqdonut> `Line a -> 0` would type check
2021-03-29 11:52:57 +0200 <opqdonut> or you can just leave the case unhandled and get an error at runtime :)
2021-03-29 11:53:08 +0200 <gaff> ah, i see
2021-03-29 11:53:51 +0200 <ski> hm, it might be possible to make a (lawful) `Monad' instance for `Line' ..
2021-03-29 11:53:59 +0200 <gaff> it is cruffy stuff. i imagine people face these sort of situations often. and they have to revert to runtime checks.
2021-03-29 11:54:09 +0200 <opqdonut> ski: just ignore the second component of Foo?
2021-03-29 11:54:17 +0200 <ski> no
2021-03-29 11:54:19 +0200 <opqdonut> ok
2021-03-29 11:54:27 +0200 <ski> i don't think that would work
2021-03-29 11:55:05 +0200 <ski> `join (Foo (Foo (a,b),Foo (c,d)) = Foo (a,d)' sounds reasonable, i think. however, there's more cases to consider
2021-03-29 11:55:20 +0200MarcelineVQ(~anja@198.254.208.159) (Ping timeout: 252 seconds)
2021-03-29 11:55:52 +0200 <opqdonut> (hmm yes m >>= return === m doesn't hold if you ignore the other component)
2021-03-29 11:56:07 +0200 <ski> i think if we treat `Line a' as if it was `Foo (a,a)', then that could work. and if there's any `Empty', then the overall result is `Empty'
2021-03-29 11:56:18 +0200 <opqdonut> mmh
2021-03-29 11:56:38 +0200 <gaff> yes
2021-03-29 11:56:43 +0200 <ski> would need to check all cases for associativity to make sure, though. but it looks like it might work, on first thought
2021-03-29 11:56:56 +0200 <ski> however, it's likely that this is not what gaff really needed
2021-03-29 11:57:47 +0200MarcelineVQ(~anja@198.254.208.159)
2021-03-29 11:59:05 +0200 <ski> i guess this may be like `MaybeT Pair' or something, hm
2021-03-29 11:59:11 +0200 <gaff> ski: basically, i outlined the need a few minutes back. i want to extract (a, b) and pass it to a function p, where p :: (Int, Int) -> Int, and this code needs to be within a function :: IO ().
2021-03-29 11:59:14 +0200avn(~avn@78-56-108-78.static.zebra.lt) (Remote host closed the connection)
2021-03-29 11:59:26 +0200 <ski> yea, i (briefly) looked at that
2021-03-29 11:59:40 +0200 <ski> and that doesn't sound like you want to use `Line' as a monad
2021-03-29 12:00:16 +0200 <ski> hmm
2021-03-29 12:00:26 +0200 <ski> i think i may have a counter example
2021-03-29 12:00:33 +0200 <gaff> yes, i don't care if it is not a monad, but how do you solve this problem, because there is a case where you have to return some dummy value.
2021-03-29 12:00:47 +0200 <gaff> ?
2021-03-29 12:01:40 +0200gitgood(~gitgood@80-44-12-39.dynamic.dsl.as9105.com) (Remote host closed the connection)
2021-03-29 12:03:11 +0200 <ski> (join . join) (Foo (Foo (Foo (a,b),Empty),Foo (Empty,Foo (g,h)))) = join (Foo (Foo (a,b),Foo (g,h))) = Foo (a,h)
2021-03-29 12:03:17 +0200 <ski> (join . fmap join) (Foo (Foo (Foo (a,b),Empty),Foo (Empty,Foo (g,h)))) = join (Foo (Empty,Empty)) = Empty
2021-03-29 12:03:54 +0200 <ski> this is assuming `join (Foo (Empty,_)) = Empty' and `join (Foo (_,Empty)) = Empty'
2021-03-29 12:03:57 +0200 <lortabac> gaff: how you solve this problem depends on what your program does and how you handle errors
2021-03-29 12:04:20 +0200 <ski> gaff : what opqdonut and lortabac said
2021-03-29 12:04:27 +0200ddellacosta(~ddellacos@86.106.143.10)
2021-03-29 12:04:54 +0200 <lortabac> you can return some default value (if there is one that makes sense), you can return an 'Either Error Int', or a 'Maybe Int', you can throw an exception...
2021-03-29 12:04:58 +0200shailangsa(~shailangs@host86-161-220-11.range86-161.btcentralplus.com) ()
2021-03-29 12:05:16 +0200 <gaff> lortabac: yeah, or perhaps even call error
2021-03-29 12:05:33 +0200 <gaff> the easy way out.
2021-03-29 12:06:04 +0200 <ski> a generalization of "default value" is to use some "default value", not for the desired result of type `(Int,Int)', but for a larger expression that would include that result, if present
2021-03-29 12:06:46 +0200peanut_(~peanut_@2a02:8388:a101:2600:1aac:99fd:f87d:92f0)
2021-03-29 12:06:55 +0200 <ski> (in your case, possibly a default value of type `Int'. to use in place of the call to `p'. or perhaps a default value of type `IO ()' to use in place of the action that would otherwise make use of that result value from `p')
2021-03-29 12:07:19 +0200 <ski> gaff : point is, we can't tell you how you want to handle the alternative cases, here
2021-03-29 12:07:34 +0200 <gaff> ski: yeah, got it
2021-03-29 12:07:56 +0200 <ski> it really depends on your use-case, on what you're actually trying to to, trying to achieve
2021-03-29 12:08:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-03-29 12:08:42 +0200 <gaff> in this one, my only need is for Foo (x, y) -> p (x, y). the other case no need, although it is needed elsewhere.
2021-03-29 12:09:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 12:09:37 +0200ddellacosta(~ddellacos@86.106.143.10) (Ping timeout: 268 seconds)
2021-03-29 12:09:40 +0200 <gaff> bash has a no-op operator :. is there some thing like that in haskell?
2021-03-29 12:10:22 +0200 <gaff> `: arg` does nothing in bash.
2021-03-29 12:10:22 +0200pupuupup(~pupuupup@ppp-124-122-192-176.revip2.asianet.co.th) (Ping timeout: 252 seconds)
2021-03-29 12:12:27 +0200azure2(~azure@180.247.95.50) (Ping timeout: 246 seconds)
2021-03-29 12:12:29 +0200 <lortabac> gaff: yes, there is 'return ()'
2021-03-29 12:12:45 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 12:13:01 +0200 <gaff> i see, but then that works only for monad instances, right.
2021-03-29 12:13:23 +0200 <lortabac> no sorry, I meant 'return () :: IO ()'
2021-03-29 12:13:31 +0200 <gaff> ah
2021-03-29 12:14:12 +0200enoq(~textual@194-208-146-143.lampert.tv) (Ping timeout: 246 seconds)
2021-03-29 12:14:26 +0200 <lortabac> but of course you cannot use it directly in 'p :: (Int, Int) -> Int'
2021-03-29 12:14:52 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Remote host closed the connection)
2021-03-29 12:14:56 +0200 <gaff> i see
2021-03-29 12:14:59 +0200 <ski> what do you mean by "no-op operator" ?
2021-03-29 12:15:12 +0200 <ski> in some sense, `id' could be considered one
2021-03-29 12:15:34 +0200 <gaff> ski: thanks much
2021-03-29 12:15:40 +0200 <ski> > id 42
2021-03-29 12:15:42 +0200 <lambdabot> 42
2021-03-29 12:15:46 +0200 <gaff> lortabac: thanks much
2021-03-29 12:15:56 +0200 <gaff> opqdonut: thanks much for your time.
2021-03-29 12:16:31 +0200 <peanut_> > id (id (id 1))
2021-03-29 12:16:33 +0200 <lambdabot> 1
2021-03-29 12:17:04 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Ping timeout: 245 seconds)
2021-03-29 12:17:19 +0200malumore(~malumore@151.62.126.223)
2021-03-29 12:17:34 +0200lawid(~quassel@dslb-178-005-075-139.178.005.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2021-03-29 12:17:34 +0200enoq(~textual@194-208-146-143.lampert.tv)
2021-03-29 12:18:06 +0200 <gaff> switching topics here -- i encounterred a situation recently where a functiion, say f, defined in one module, when called from another module, say Main, works fine. but if i move the function to Main or some other module, it hangs. i don't have the code with me now, but any idea what's going on?
2021-03-29 12:18:08 +0200lawid(~quassel@dslb-090-186-122-181.090.186.pools.vodafone-ip.de)
2021-03-29 12:18:56 +0200 <gaff> ski: no -op operator just doesn't do anything.
2021-03-29 12:19:22 +0200 <gaff> bash -- `: arg` doesn't do anything.
2021-03-29 12:19:35 +0200 <peanut_> : is just true
2021-03-29 12:19:40 +0200 <gaff> doesn't process or execute anything
2021-03-29 12:20:15 +0200Majiir(~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net) (Quit: CUT THE HARDLINES!!)
2021-03-29 12:20:16 +0200 <xsperry> > id id id 1
2021-03-29 12:20:16 +0200 <gaff> peanut_: correct.
2021-03-29 12:20:19 +0200 <lambdabot> 1
2021-03-29 12:20:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-29 12:21:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 12:21:54 +0200__minoru__shirae(~shiraeesh@109.166.57.99) (Ping timeout: 246 seconds)
2021-03-29 12:22:48 +0200 <peanut_> > const 42 (putStrLn "nothing")
2021-03-29 12:22:51 +0200 <lambdabot> 42
2021-03-29 12:22:54 +0200dandart(~Thunderbi@home.dandart.co.uk) (Remote host closed the connection)
2021-03-29 12:23:10 +0200 <gaff> in bash, `: arg` expands `arg` but does nothing else.
2021-03-29 12:23:23 +0200 <peanut_> 🤔
2021-03-29 12:23:34 +0200 <gaff> like you can do : > some-file-path
2021-03-29 12:24:19 +0200 <gaff> peanut_: ok
2021-03-29 12:25:35 +0200MarcelineVQ(~anja@198.254.208.159) (Read error: Connection reset by peer)
2021-03-29 12:26:10 +0200 <gaff> so it is strange that which module a function lives affect performace?
2021-03-29 12:26:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-29 12:26:54 +0200MarcelineVQ(~anja@198.254.208.159)
2021-03-29 12:27:11 +0200 <peanut_> only thing i can think of is f uses another function g, defined in both modules but g doesnt terminate in Main
2021-03-29 12:27:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 12:27:13 +0200Majiir(~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net)
2021-03-29 12:28:11 +0200 <gaff> peanut_: no soory, that's not case at all. f calls functions that terminate well.
2021-03-29 12:28:57 +0200 <gaff> and even more bizarre, call f from other modules with smaller inputs works just fine.
2021-03-29 12:29:13 +0200 <peanut_> I'd have to see it
2021-03-29 12:29:32 +0200 <gaff> yeah, i will come back here when i get the code.
2021-03-29 12:30:19 +0200 <gaff> btw, cabal 3.4 works pretty good so far with nix-style builds.
2021-03-29 12:30:47 +0200 <gaff> documentations needs catch up, though.
2021-03-29 12:32:05 +0200 <gaff> peanut_: thank you very much. i will come back later when i get access to the code.
2021-03-29 12:32:33 +0200 <peanut_> 👍
2021-03-29 12:33:44 +0200gaff(~user@49.207.222.255) (Quit: ERC (IRC client for Emacs 27.1))
2021-03-29 12:34:41 +0200lawid(~quassel@dslb-090-186-122-181.090.186.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-03-29 12:37:40 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds)
2021-03-29 12:37:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-03-29 12:38:27 +0200lawid(~quassel@dslb-090-186-122-181.090.186.pools.vodafone-ip.de)
2021-03-29 12:38:34 +0200pyuk(~vroom@217.138.252.168)
2021-03-29 12:38:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 12:38:58 +0200pyuk(~vroom@217.138.252.168) (Client Quit)
2021-03-29 12:39:03 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-03-29 12:39:38 +0200puke(~vroom@217.138.252.196) (Ping timeout: 240 seconds)
2021-03-29 12:41:50 +0200bor0(~boro@unaffiliated/boro/x-000000001)
2021-03-29 12:42:55 +0200ubert(~Thunderbi@p200300ecdf25d94cca5b76fffe29f233.dip0.t-ipconnect.de)
2021-03-29 12:43:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-03-29 12:43:43 +0200 <bor0> I have a PropCalc data type defined as `data PropCalc = P | Q | R | Not PropCalc | And PropCalc PropCalc | Or PropCalc PropCalc | Imp PropCalc PropCalc`. I want to create a function `apply` so that it modifies an element in a specific order. E.g., apply 1 (\x -> P) (And Q R) should return (And P R). Is there an elegant/easy way of doing this? One way I thought of was to create between trees and list representations
2021-03-29 12:43:44 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-03-29 12:44:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 12:44:36 +0200 <ski> what's the `1' for ?
2021-03-29 12:44:46 +0200 <bor0> Position of the tree node
2021-03-29 12:45:23 +0200 <bor0> For unary operators it is easy: go n pos f (Not x) | n == pos = Not (f x) and go n pos f (Not x) = go (n + 1) pos f (Not x). Things get trickier when I have to deal with `And`
2021-03-29 12:45:48 +0200 <bor0> I don't know the count of the nodes in advance... maybe I should calculate that in the interim
2021-03-29 12:48:03 +0200 <ski> hm. numbered leaf ?
2021-03-29 12:48:51 +0200 <bor0> Yeah.. that could also work - to convert every node in the structure from Node to (Int, Node)
2021-03-29 12:48:59 +0200 <ski> i'm wondering if you could avoid referring to things to replace by numbers, at all
2021-03-29 12:49:08 +0200 <ski> if you could, that would probably be nicer
2021-03-29 12:49:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-03-29 12:49:45 +0200 <bor0> Basically, I'm trying to provide a toy implementation of Gentzen's propositional calculus. In it, we can replace some rules (e.g. ~~P with P). But I want to be able to specify at which point do I want to make this replacement
2021-03-29 12:49:51 +0200 <ski> (but if you really want to or have to use numbering, that's also possible .. you'd thread a state through the recursion. can be done manually. state-monad would be easier, though, i think)
2021-03-29 12:50:05 +0200 <bor0> Maybe there is a much more elegant way to achieve this than what I'm trying to do now
2021-03-29 12:50:07 +0200 <ski> hm, ok
2021-03-29 12:50:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 12:50:19 +0200 <ski> replace an arbitrary subformula ?
2021-03-29 12:50:29 +0200 <ski> or just replace leaves (that is, propositional variables) ?
2021-03-29 12:50:48 +0200 <ski> and, replace all occurances of a particular propositional variable ? or just a single occurance ?
2021-03-29 12:50:50 +0200 <bor0> Yeah. I was trying to map some of the examples used in Godel Escher Bach, and in there he just replaces an arbitrary subformula
2021-03-29 12:51:15 +0200 <ski> instead of using number, perhaps you could use a path to the formula you want to replace
2021-03-29 12:51:40 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-03-29 12:52:31 +0200 <bor0> So, let's say I want to convert (Imp (And P Q) Q) to (Imp (And (~~P) Q) Q). How would that work with this path approach?
2021-03-29 12:52:58 +0200 <ski> hm, also, i'm wondering if it's Genzen's Natural Deductin, or perhaps his Sequent Calculus
2021-03-29 12:53:10 +0200 <ski> s/Deductin/Deduction/
2021-03-29 12:54:05 +0200jakalx(~jakalx@base.jakalx.net)
2021-03-29 12:54:07 +0200 <ski> well, in that case, the path would consist of two components, one indicating the left subtree of `Imp', and the next indicating the left subtree of `And'
2021-03-29 12:54:26 +0200 <ski> the indicators could be numbers. could also be symbolic, if you prefer
2021-03-29 12:54:27 +0200 <ph88> i'm using tasty-hunit and for one test i would like to change the current working directory. How can i find my project directory or test directory ?? (from these i can calculate the working directory i need)
2021-03-29 12:54:28 +0200 <bor0> Hm, I think that's not specified.. the way he uses the rules are like https://imgur.com/a/l8oV8p0
2021-03-29 12:54:49 +0200 <bor0> Note how he applied contrapositive to the left argument of Imp
2021-03-29 12:54:59 +0200 <merijn> ph88: You can't reall, tbh
2021-03-29 12:55:12 +0200 <ph88> hows that ?
2021-03-29 12:55:13 +0200 <bor0> s/contrapositive/double-tilde/
2021-03-29 12:55:20 +0200 <merijn> ph88: What's in this working directory? Input files for tests?
2021-03-29 12:55:42 +0200 <ski> bor0 : hm, that looks like some Hilbert-style axiomatix system. my condoleances
2021-03-29 12:55:54 +0200 <ph88> the input files of the test are in a specific directory. I want to set the current working directory to this directory
2021-03-29 12:55:56 +0200 <bor0> :D
2021-03-29 12:55:57 +0200 <ski> hm, or maybe it isn't
2021-03-29 12:56:04 +0200dandart(~Thunderbi@home.dandart.co.uk)
2021-03-29 12:56:06 +0200 <ski> maybe that's just a deduction tree
2021-03-29 12:56:16 +0200 <bor0> Looks like it
2021-03-29 12:56:45 +0200 <ski> although .. i don't think it's either NK or LK
2021-03-29 12:56:48 +0200 <merijn> ph88: When installing package, the source isn't (normally) installed, so cabal doesn't allow you to depend on the layout of your source directory/ies
2021-03-29 12:56:56 +0200 <merijn> ph88: You probably want data-files instead: https://cabal.readthedocs.io/en/latest/cabal-package.html?highlight=getdatafile#accessing-data-fil…
2021-03-29 12:57:09 +0200 <bor0> OK, so by path you mean accept a list like [Left, Left, Right] which would pinpoint to exactly the node we want?
2021-03-29 12:57:31 +0200 <ph88> merijn, i need to install my package for i can run its tests ?
2021-03-29 12:57:32 +0200 <bor0> and when I reach [] I just apply f in there
2021-03-29 12:58:09 +0200 <ski> bor0 : "Note how he applied contrapositive to the left argument of Imp" -- i don't think that's what he did, actually
2021-03-29 12:58:14 +0200 <merijn> ph88: No, you don't have to install. But cabal doesn't allow you to ask "what is the path to the source directory?" because that question is non-sensical when packages get installed
2021-03-29 12:58:16 +0200 <ski> hm
2021-03-29 12:58:24 +0200 <bor0> ski, sorry. I amended that with s/contrapositive/double-tilde/
2021-03-29 12:58:27 +0200 <bor0> You probably missed that
2021-03-29 12:58:34 +0200 <ski> ah, just noticed your correction
2021-03-29 12:58:37 +0200 <merijn> ph88: Instead, you should use the data-files field and getDataFile to access read-only data from your code
2021-03-29 12:58:41 +0200 <ski> sure, yea
2021-03-29 12:59:07 +0200 <merijn> ph88: See the link I sent
2021-03-29 12:59:18 +0200 <bor0> I like this path approach. It's much better than converting between list/tree representations and the numbering one. Thanks! Will try doing that.
2021-03-29 12:59:24 +0200 <ski> bor0 : "OK, so by path you mean .. " -- yes, something like that. that would be much easier to interpret, in `Apply'
2021-03-29 12:59:34 +0200 <ph88> oki
2021-03-29 12:59:37 +0200 <ph88> thanks
2021-03-29 13:00:32 +0200 <ski> bor0 : if you go symbolic, i guess for `Not', you'd have a `Down' rather than arbitrarily choosing between `Left' and `Right'
2021-03-29 13:00:36 +0200 <bor0> Yes!
2021-03-29 13:00:37 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 13:00:42 +0200 <bor0> I just hit that and started asking a question lol
2021-03-29 13:01:03 +0200 <ski> (one could have `ImpLeft',`AndLeft' and so on .. but it probably doesn't make too much of a difference)
2021-03-29 13:01:17 +0200 <ph88> merijn, what do you think about this solution ? https://stackoverflow.com/a/21033253 since i know the structure of my project i can calculate the directory from any source file
2021-03-29 13:01:33 +0200 <ski> bor0 : heh, nice that i anticipated that, then :P
2021-03-29 13:01:46 +0200 <bor0> ski, in terms of front-end experience, the numbers make most sense. but in terms of simple implementation, I think [Left, Right, Down] will be acceptable
2021-03-29 13:02:05 +0200 <ski> you could obviously convert between the formats, if needed
2021-03-29 13:02:05 +0200 <bor0> (After all, it's probably only myself who will be the front-end user of this :D)
2021-03-29 13:02:06 +0200ixlun(~matthew@109.249.184.133)
2021-03-29 13:02:34 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 13:02:39 +0200 <merijn> ph88: I think it's terrible and dear god, please don't ever do that in a package you plan for other people to use... >.>
2021-03-29 13:02:47 +0200 <ski> (btw, "switcheroo" is a weird name ..)
2021-03-29 13:02:50 +0200puke(~vroom@217.138.252.168)
2021-03-29 13:02:50 +0200 <ph88> why terrible ??
2021-03-29 13:03:12 +0200 <merijn> ph88: Because you're hardcoding the compile time source path in your code
2021-03-29 13:03:21 +0200 <bor0> In https://en.wikipedia.org/wiki/Switcheroo there's some clarification: "In his book G�del, Escher, Bach, Douglas Hofstadter names one of the rules in his version of propositional calculus the Switcheroo Rule, apparently in honour of an Albanian railroad engineer, name Q. Q. Switcheroo, who "worked in logic on the siding".[5] This is in reality the material implication."
2021-03-29 13:03:21 +0200stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-03-29 13:03:21 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-03-29 13:03:38 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-03-29 13:03:48 +0200stree(~stree@68.36.8.116)
2021-03-29 13:03:49 +0200 <merijn> ph88: When someone tries to install your package, that path will almost certainly be in a temporary directory that gets deleted, so now the installed executable refers to a non-existent temporary path
2021-03-29 13:04:07 +0200 <merijn> Not to mention CPP is a terrible extension >.>
2021-03-29 13:04:17 +0200 <ski> (bor0 : i have read GEB, but it was a long time ago, so i don't remember much specifics of the formal systems in it)
2021-03-29 13:04:25 +0200 <merijn> Where as data-files is literally less work *and* more robust/safer
2021-03-29 13:04:28 +0200 <ph88> merijn, i figured since it's just for testing it's ok
2021-03-29 13:04:49 +0200dandart(~Thunderbi@home.dandart.co.uk) (Quit: dandart)
2021-03-29 13:04:57 +0200 <bor0> ski, yeah. So I'm trying to implement in Haskell his toy implementations of Gentzen's Propositional Calculus and later I want to also tackle Peano's arithmetic (TNT)
2021-03-29 13:05:25 +0200 <ph88> merijn, what about data-files ? do i have to list each individual file ?
2021-03-29 13:06:45 +0200 <ph88> oh wildcards cool
2021-03-29 13:07:27 +0200skinods to bor0
2021-03-29 13:07:52 +0200 <ski> bor0 : the basic rules of NK or LK aren't terribly complicated, either, btw
2021-03-29 13:08:05 +0200 <bor0> What's NK and LK?
2021-03-29 13:08:14 +0200 <ski> (NK is the Natural Deduction version. LK is the Sequent Calculus version)
2021-03-29 13:10:11 +0200 <bor0> While I have your interest here, could use your :eyes: for a quick review :) https://github.com/bor0/misc/blob/master/2021/Gentzen.hs
2021-03-29 13:10:15 +0200 <ski> bor0 : you might be interested in playing with the Sequent Calculus interactive tutorial, by lexilambda, at <http://logitext.mit.edu/main>
2021-03-29 13:11:00 +0200 <ski> er, sorry. wrong person. it's by ezyang (Edward Z. Yang) (sometime in 2012, i think)
2021-03-29 13:12:27 +0200 <ski> bor0 : hmm. you want `apply [Go] f P = P', rather than `apply [Go] f P = f P' ?
2021-03-29 13:13:14 +0200 <bor0> Thanks for sharing that. I've seen this somewhere. It reminds me of the incredible proof machine https://incredible.pm/
2021-03-29 13:13:25 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-03-29 13:13:46 +0200 <ski> it looks like you're using `Go' to terminate the path. i'd just use the end of the list (the empty list), to terminate, so that `apply' knows when to stop descending, and apply the rewriting at the currently reached node
2021-03-29 13:13:49 +0200 <bor0> ski, I decided to use GoLeft and GoRight just to traverse and Go to actually Apply. This seems redundant
2021-03-29 13:14:01 +0200 <bor0> Heh, we're almost talking the same stuff :D
2021-03-29 13:14:08 +0200Alleria__(~textual@2603-7000-3040-0000-908d-bfdf-28c9-9e71.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 13:14:24 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds)
2021-03-29 13:14:43 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-03-29 13:15:06 +0200 <ski> anyway, if applying `f' to a subformula `P' is actually meant to replace it by `f P', rather than leave it untouched (and similarly for `Q',`R'), you could in fact simplify your code, by having a single base case
2021-03-29 13:15:51 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 13:16:29 +0200 <bor0> How does this look? https://github.com/bor0/misc/commit/84c3bce60f4ce5448aadd561fb08e90d4938a547
2021-03-29 13:16:52 +0200ddellacosta(~ddellacos@86.106.143.196)
2021-03-29 13:16:52 +0200 <bor0> Ah. I need to `f P`, `f Q`, `f R`...
2021-03-29 13:17:12 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-03-29 13:17:22 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-03-29 13:17:44 +0200ski. o O ( "Go West" by Pet Shop Boys at <https://www.youtube.com/watch?v=LNBjMRvOB5M>,<https://www.youtube.com/watch?v=cfGTm_viXPs> )
2021-03-29 13:17:58 +0200 <bor0> Ah, you mean `apply [] f x = f x` would be the base case?
2021-03-29 13:18:13 +0200 <ski> yes
2021-03-29 13:19:44 +0200 <bor0> OK, I think I finally got it. The rule I shared earlier https://imgur.com/a/l8oV8p0 is basically `eg4` https://github.com/bor0/misc/blob/master/2021/Gentzen.hs#L115 which evaluates to `Or P (Not P)`. Quite satisfying :D
2021-03-29 13:20:22 +0200 <ski> and then you don't need the default case at the end (and then you'll get better diagnostics if you change the data type, while using `-Wincomplete-patterns'. cf. `-Wincomplete-uni-patterns',`-Wincomplete-record-updates')
2021-03-29 13:21:02 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-03-29 13:21:11 +0200 <raehik> I'm getting an HTTP 500 when trying to upload a package candidate to Hackage - is there someone I could notify?
2021-03-29 13:21:29 +0200jakalx(~jakalx@base.jakalx.net)
2021-03-29 13:21:46 +0200ddellacosta(~ddellacos@86.106.143.196) (Ping timeout: 268 seconds)
2021-03-29 13:22:10 +0200 <merijn> raehik: Is this your first upload?
2021-03-29 13:22:39 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 13:22:41 +0200 <raehik> merijn: it's the first upload of the package in question, but no I've pushed pkgs before
2021-03-29 13:23:05 +0200 <merijn> ah, just checking if maybe you weren't in the uploaders group yet :)
2021-03-29 13:23:40 +0200 <raehik> the error says "no space left on resource", seems like /tmp got filled, unsure if it's been caught yet
2021-03-29 13:23:55 +0200 <merijn> raehik: There's the #hackage channel and https://github.com/haskell/hackage-server/issues
2021-03-29 13:23:58 +0200 <merijn> a
2021-03-29 13:24:26 +0200 <merijn> raehik: Hackage mainpage says: "Serious issues requiring immediate action should be reported to admin@haskell.org or on the #haskell-infrastructure irc channel on freenode."
2021-03-29 13:24:31 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 245 seconds)
2021-03-29 13:24:41 +0200idhugo__(~idhugo@87-49-45-185-mobile.dk.customer.tdc.net)
2021-03-29 13:24:43 +0200Dykam(Dykam@dykam.nl) (Quit: Dykam)
2021-03-29 13:24:43 +0200 <raehik> merijn: Fab, thanks very much!
2021-03-29 13:26:29 +0200Dykam(Dykam@dykam.nl)
2021-03-29 13:26:58 +0200idhugo_(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-03-29 13:29:50 +0200raichoo(~raichoo@dslb-188-109-062-207.188.109.pools.vodafone-ip.de) (Quit: Lost terminal)
2021-03-29 13:32:57 +0200 <ph88> does anyone know if hunit has some facilities for test setup and teardown ?
2021-03-29 13:33:03 +0200 <ph88> tasty-hunit in particular
2021-03-29 13:36:34 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-03-29 13:38:20 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-03-29 13:40:21 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2021-03-29 13:41:28 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 13:41:46 +0200ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2021-03-29 13:42:44 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-03-29 13:43:18 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-03-29 13:43:43 +0200Alleria(~textual@mskresolve-a.mskcc.org)
2021-03-29 13:44:06 +0200AlleriaGuest23256
2021-03-29 13:45:12 +0200ph88(~ph88@2a02:8109:9e00:7e5c:e93f:8176:4aa5:ca0b) (Ping timeout: 246 seconds)
2021-03-29 13:46:02 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 258 seconds)
2021-03-29 13:48:51 +0200ixlun(~matthew@109.249.184.133) (Read error: Connection reset by peer)
2021-03-29 13:50:12 +0200 <dexterfoo> anyone use co-log? How do I use usingLoggerT with fmtRichMessageDefault? The types don't match up
2021-03-29 13:50:19 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-03-29 13:52:29 +0200flound1129(~flound112@139.28.218.148) (Remote host closed the connection)
2021-03-29 13:54:14 +0200bor0(~boro@unaffiliated/boro/x-000000001) (Quit: Leaving)
2021-03-29 13:55:48 +0200acidjnk_new(~acidjnk@p200300d0c72b95797030ab852a1672b2.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-03-29 13:56:31 +0200plutoniix(~q@184.82.195.122) (Quit: Leaving)
2021-03-29 13:56:51 +0200ddellacosta(~ddellacos@86.106.143.66)
2021-03-29 13:58:08 +0200 <xerox_> is there a way to collapse all collapsable dropdowns in an haddock page?
2021-03-29 13:58:30 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 246 seconds)
2021-03-29 13:58:56 +0200acidjnk_new(~acidjnk@p200300d0c72b9579218a2a0630d85b14.dip0.t-ipconnect.de)
2021-03-29 14:01:51 +0200ddellacosta(~ddellacos@86.106.143.66) (Ping timeout: 268 seconds)
2021-03-29 14:04:16 +0200MarcelineVQ(~anja@198.254.208.159) (Read error: Connection reset by peer)
2021-03-29 14:07:50 +0200geekosaur(82650c7a@130.101.12.122)
2021-03-29 14:11:32 +0200csadilek(~csadilek@178.239.168.171)
2021-03-29 14:12:09 +0200__minoru__shirae(~shiraeesh@109.166.57.99)
2021-03-29 14:15:29 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-03-29 14:26:35 +0200solvr(57e3c46d@87.227.196.109)
2021-03-29 14:27:02 +0200Deide(~Deide@217.155.19.23)
2021-03-29 14:27:28 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-03-29 14:28:46 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-03-29 14:31:24 +0200DTZUZU_(~DTZUZO@207.81.119.43) (Ping timeout: 246 seconds)
2021-03-29 14:31:50 +0200NGravity(csp@gateway/shell/xshellz/x-beigeckolcvbhubi)
2021-03-29 14:31:51 +0200seveg(~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 252 seconds)
2021-03-29 14:32:22 +0200geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-03-29 14:33:11 +0200seveg(~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk)
2021-03-29 14:36:35 +0200urodna(~urodna@unaffiliated/urodna)
2021-03-29 14:37:16 +0200ddellacosta(~ddellacos@86.106.143.248)
2021-03-29 14:37:36 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-03-29 14:37:53 +0200drbean_(~drbean@TC210-63-209-23.static.apol.com.tw)
2021-03-29 14:38:06 +0200yaroot(~yaroot@138.102.13.160.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat)
2021-03-29 14:38:10 +0200ubert(~Thunderbi@p200300ecdf25d94cca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-03-29 14:38:14 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
2021-03-29 14:38:29 +0200ubert(~Thunderbi@p200300ecdf25d94ce6b318fffe838f33.dip0.t-ipconnect.de)
2021-03-29 14:38:48 +0200yaroot(~yaroot@138.102.13.160.dy.iij4u.or.jp)
2021-03-29 14:40:06 +0200motersen(~motersen@217.160.212.240)
2021-03-29 14:40:34 +0200raym(~ray@115.187.32.14) (Quit: leaving)
2021-03-29 14:41:01 +0200 <ph88^> merijn, i tried data-files but the data directory is not being made :/
2021-03-29 14:41:21 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2021-03-29 14:41:56 +0200ddellacosta(~ddellacos@86.106.143.248) (Ping timeout: 268 seconds)
2021-03-29 14:43:37 +0200Yumasi(~guillaume@2a01:e0a:5cb:4430:dbe9:fd6c:d1a9:4bb5) (Ping timeout: 276 seconds)
2021-03-29 14:44:52 +0200Yumasi(~guillaume@static-176-175-104-214.ftth.abo.bbox.fr)
2021-03-29 14:45:24 +0200geekosaur(82650c7a@130.101.12.122)
2021-03-29 14:48:40 +0200motersen(~motersen@217.160.212.240) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-03-29 14:48:53 +0200motersen(~user@2a0a-a540-7dde-0-2d1c-e683-f179-e2a.ipv6dyn.netcologne.de)
2021-03-29 14:49:03 +0200 <ph88^> ah something is showing up actually
2021-03-29 14:49:46 +0200todda7(~torstein@athedsl-266674.home.otenet.gr) (Remote host closed the connection)
2021-03-29 14:50:58 +0200motersen(~user@2a0a-a540-7dde-0-2d1c-e683-f179-e2a.ipv6dyn.netcologne.de) (Client Quit)
2021-03-29 14:52:27 +0200fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar)
2021-03-29 14:54:33 +0200fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar) (Remote host closed the connection)
2021-03-29 14:54:44 +0200motersen(~motersen@217.160.212.240)
2021-03-29 14:55:32 +0200motersen(~motersen@217.160.212.240) (Client Quit)
2021-03-29 14:55:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Quit: leaving)
2021-03-29 14:59:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 15:01:57 +0200benkolera(uid285671@gateway/web/irccloud.com/x-eheuohrapvmfijla) (Quit: Connection closed for inactivity)
2021-03-29 15:02:26 +0200motersen(~user@2a0a-a540-7dde-0-2d1c-e683-f179-e2a.ipv6dyn.netcologne.de)
2021-03-29 15:02:38 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-03-29 15:04:39 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2021-03-29 15:05:15 +0200motersen(~user@2a0a-a540-7dde-0-2d1c-e683-f179-e2a.ipv6dyn.netcologne.de) (Client Quit)
2021-03-29 15:07:13 +0200carlomagno(~cararell@148.87.23.12)
2021-03-29 15:08:17 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 15:11:21 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-fhumobypoetbfjsj)
2021-03-29 15:11:39 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-03-29 15:11:51 +0200motersen(~motersen@217.160.212.240)
2021-03-29 15:12:55 +0200ddellacosta(~ddellacos@86.106.143.40)
2021-03-29 15:13:17 +0200Iceland_jack(~user@95.149.219.0) (Read error: Connection reset by peer)
2021-03-29 15:13:32 +0200Iceland_jack(~user@95.149.219.0)
2021-03-29 15:14:51 +0200motersen(~motersen@217.160.212.240) (Client Quit)
2021-03-29 15:15:40 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-29 15:15:59 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 15:17:53 +0200ddellacosta(~ddellacos@86.106.143.40) (Ping timeout: 265 seconds)
2021-03-29 15:19:35 +0200jamm_(~jamm@unaffiliated/jamm)
2021-03-29 15:24:58 +0200stree(~stree@68.36.8.116)
2021-03-29 15:25:08 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-29 15:25:27 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 15:25:58 +0200idhugo__(~idhugo@87-49-45-185-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-03-29 15:27:44 +0200jonathanx_(~jonathan@94.234.49.69)
2021-03-29 15:28:12 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 15:28:46 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 15:30:15 +0200 <johnnyboy[m]> hi
2021-03-29 15:30:40 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
2021-03-29 15:31:00 +0200 <johnnyboy[m]> how can I match a string having a tab between two tokens using regex-tdfa?
2021-03-29 15:31:14 +0200astronavt(~astronavt@unaffiliated/astronavt) (Remote host closed the connection)
2021-03-29 15:31:19 +0200 <johnnyboy[m]> I've tried these three without success: \t, \s+, [[:space:]]+
2021-03-29 15:31:23 +0200 <johnnyboy[m]> none of them match
2021-03-29 15:31:36 +0200 <johnnyboy[m]> \s+ and [[:space:]]+ work with grep -E
2021-03-29 15:32:29 +0200 <johnnyboy[m]> e.g. `[0-9]+.[0-9]{3}[[:space:]]+actual` works with grep, but seems not to work with TDFA
2021-03-29 15:33:05 +0200astronavt(~astronavt@unaffiliated/astronavt)
2021-03-29 15:33:21 +0200 <[exa]> you may need something like \\t for it to actually get through. but regex-tdfa support for escape sequences is limited, I've been adding mine one time I was playing with it
2021-03-29 15:33:42 +0200alx741(~alx741@181.196.68.106)
2021-03-29 15:33:54 +0200astronavt(~astronavt@unaffiliated/astronavt) (Remote host closed the connection)
2021-03-29 15:35:32 +0200astronavt(~astronavt@unaffiliated/astronavt)
2021-03-29 15:36:52 +0200 <merijn> tbh, I would recommend reconsidering the use of regexes
2021-03-29 15:37:44 +0200SaitamaPlus(uid272474@gateway/web/irccloud.com/x-gljisqtsvqcmgfbx) (Quit: Connection closed for inactivity)
2021-03-29 15:37:50 +0200astronavt(~astronavt@unaffiliated/astronavt) (Remote host closed the connection)
2021-03-29 15:38:18 +0200 <maerwald> regexes are great
2021-03-29 15:38:51 +0200 <merijn> maerwald: Regexes are great for accepting user input and using that too match stuff (like grep, search in vim, etc.)
2021-03-29 15:38:53 +0200 <geekosaur> …at being unreadable
2021-03-29 15:39:01 +0200 <merijn> Regexes are terrible if you embed them in source code
2021-03-29 15:39:03 +0200 <maerwald> merijn: merijn also, your opinions is appreciated: https://files.hasufell.de/jule/abstract-filepath/AbstractFilePath.html
2021-03-29 15:39:40 +0200 <merijn> My personal rule of thumb is to only use regexes when the pattern is runtime user input
2021-03-29 15:39:51 +0200astronavt(~astronavt@unaffiliated/astronavt)
2021-03-29 15:40:11 +0200malumore(~malumore@151.62.126.223) (Remote host closed the connection)
2021-03-29 15:40:34 +0200 <merijn> maerwald: I'll have a longer look later, but at first glance I appreciate your quixotic quest ;)
2021-03-29 15:40:37 +0200 <johnnyboy[m]> I also tried \t without success
2021-03-29 15:40:44 +0200 <johnnyboy[m]> and [:space:]
2021-03-29 15:40:53 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 15:41:10 +0200 <merijn> johnnyboy[m]: Any specific reason not to use some parser combinator library instead?
2021-03-29 15:41:17 +0200 <johnnyboy[m]> I'm kind of considering removing tabs as a preprocessing step
2021-03-29 15:41:38 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 15:41:54 +0200 <johnnyboy[m]> <merijn "johnnyboy: Any specific reason n"> not really, I just thought that regexes would be handy for my use case
2021-03-29 15:41:58 +0200xourt(d4c620ea@212-198-32-234.rev.numericable.fr)
2021-03-29 15:42:04 +0200 <johnnyboy[m]> so far, they've been working
2021-03-29 15:42:29 +0200 <johnnyboy[m]> it really seems to be the tab character that is problematic
2021-03-29 15:42:31 +0200 <merijn> maerwald: Maybe at version with an explicit encoding/decoding argument for linux too?
2021-03-29 15:42:40 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:cca4:232:630d:d55c)
2021-03-29 15:42:47 +0200 <maerwald> yeah, though about that too
2021-03-29 15:42:56 +0200 <maerwald> not sure that's common enough though?
2021-03-29 15:43:16 +0200 <maerwald> the idea is that more control is easily achievable by using the "private" constructors
2021-03-29 15:43:27 +0200geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-03-29 15:43:29 +0200 <maerwald> semi-private, so to speak
2021-03-29 15:44:28 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-29 15:44:30 +0200 <merijn> johnnyboy[m]: The upside is that (speaking from personal experience) maintaining/changing the parser combinator 1.5 year in the future will be much nicer than the regex ;)
2021-03-29 15:44:48 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 15:44:55 +0200drbean_(~drbean@TC210-63-209-23.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2021-03-29 15:45:41 +0200motersen(~motersen@217.160.212.240)
2021-03-29 15:46:13 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 15:46:30 +0200 <johnnyboy[m]> I'm using regexes to match output from a piece of software that has used the same output probably from the 80'ies or 90'ies
2021-03-29 15:47:04 +0200 <johnnyboy[m]> in fact, that's the reason why I'm writing my own tool in the first place
2021-03-29 15:47:13 +0200motersen(~motersen@217.160.212.240) (Client Quit)
2021-03-29 15:47:51 +0200kilolympusyutotakano
2021-03-29 15:47:53 +0200 <johnnyboy[m]> but I suppose parser combinators could also get the job done
2021-03-29 15:48:14 +0200 <johnnyboy[m]> I just don't need the power of context free grammars now
2021-03-29 15:48:16 +0200motersen(~motersen@217.160.212.240)
2021-03-29 15:48:21 +0200yutotakanokilolympus
2021-03-29 15:48:25 +0200 <johnnyboy[m]> regular expressions are sufficient
2021-03-29 15:48:49 +0200motersen(~motersen@217.160.212.240) (Client Quit)
2021-03-29 15:48:55 +0200 <merijn> johnnyboy[m]: I've been using them for trivial stuff like "split on : and count number of groups" and they work fine for that too :)
2021-03-29 15:49:04 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-03-29 15:49:27 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-03-29 15:49:36 +0200 <merijn> johnnyboy[m]: Stuff like: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/ingest-src/Parsers.hs is if much longer than the regex would be? Yes. Do I appreciate that 2 years after writing it? Also yes :p
2021-03-29 15:49:40 +0200malumore(~malumore@151.62.126.223)
2021-03-29 15:49:42 +0200 <johnnyboy[m]> I'm really just scraping output from another program, picking keywords and their associated values
2021-03-29 15:49:45 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-03-29 15:50:15 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 15:50:34 +0200 <johnnyboy[m]> and then I turn it into a nice structured format, e.g. JSON, XML, CSV, HTML tables, markdown tables, or LaTeX tables
2021-03-29 15:50:41 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 252 seconds)
2021-03-29 15:51:40 +0200 <johnnyboy[m]> I did use the optparse library for parsing the command line arguments and it works great
2021-03-29 15:52:21 +0200 <tomsmeding> johnnyboy[m]: can you perhaps share the code that runs that regex?
2021-03-29 15:52:39 +0200 <tomsmeding> to double-check syntax
2021-03-29 15:52:49 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Client Quit)
2021-03-29 15:53:09 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 15:54:08 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-03-29 15:55:11 +0200 <johnnyboy[m]> <tomsmeding "johnnyboy: can you perhaps share"> this is the file where my regexes are: https://gitlab.com/jllang/spin2latex/-/blob/master/src/Token.hs
2021-03-29 15:55:21 +0200 <johnnyboy[m]> I should really rename that project
2021-03-29 15:55:36 +0200 <[exa]> johnnyboy[m]: you should really use attoparsec
2021-03-29 15:55:39 +0200 <johnnyboy[m]> it's not really restricted to producing LaTeX tables anymore
2021-03-29 15:56:06 +0200 <tomsmeding> oh hi john :)
2021-03-29 15:56:21 +0200 <johnnyboy[m]> hi, tom :)
2021-03-29 15:57:02 +0200graf_blutwurst(~user@2001:171b:226e:adc0:3dbe:eebd:8040:b693) (Remote host closed the connection)
2021-03-29 15:57:13 +0200 <johnnyboy[m]> maybe a parser combinator library would be a good idea in the long run
2021-03-29 15:57:44 +0200 <[exa]> like, I understand the language may be regular so a "full" context-free grammar parser looks like an overkill
2021-03-29 15:57:57 +0200 <johnnyboy[m]> anyway, my intention is to simply just discard most of the input text and only pick a handful of interesting fields
2021-03-29 15:58:11 +0200deviantfero(~deviantfe@190.150.27.58)
2021-03-29 15:58:41 +0200 <[exa]> except, running normal attoparsecs is usually much less complex than compiling, optimizing and running the regexes
2021-03-29 15:59:26 +0200 <[exa]> also, it quite often happens that you need to do very ugly regex tricks to capture stuff that's trivial with parsers
2021-03-29 15:59:28 +0200 <tomsmeding> johnnyboy[m]: are you sure that [[:space:]] doesn't work? this page claims that it's supported (see under "Feature support"): https://hackage.haskell.org/package/regex-tdfa-1.3.1.0/docs/Text-Regex-TDFA.html
2021-03-29 15:59:46 +0200 <johnnyboy[m]> maybe there's something else wrong then
2021-03-29 15:59:48 +0200 <[exa]> and finally, you'll be ready for the moment you at some point realize you need to support parentheses.
2021-03-29 16:00:09 +0200 <johnnyboy[m]> by the way, the version in github has a mistake there
2021-03-29 16:00:23 +0200 <tomsmeding> [exa]: OP said that the text being parsed has been the same format since ages, so unlikely to change
2021-03-29 16:00:23 +0200 <johnnyboy[m]> sorry, no
2021-03-29 16:00:37 +0200 <merijn> tomsmeding: That's not really relevant, though :p
2021-03-29 16:01:00 +0200 <merijn> tomsmeding: Because the attoparsec version will be simpler to read/write even if you don't have to update it
2021-03-29 16:01:08 +0200 <tomsmeding> though I do agree that parser combinators are nicer than regex in Haskell, especially in Haskell, where parser combinators are so nice
2021-03-29 16:01:17 +0200 <tomsmeding> merijn: that latter point depends on your familiarity with regex ;)
2021-03-29 16:02:03 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:cca4:232:630d:d55c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 16:02:16 +0200 <[exa]> tomsmeding: I've heard this a few times. Usually followed by "whew what a nice export, what if we also packed in a $non_regular_feature to make the export more colorful?"
2021-03-29 16:02:35 +0200 <tomsmeding> export != import?
2021-03-29 16:02:39 +0200ixlun(~matthew@109.249.184.133)
2021-03-29 16:03:16 +0200 <[exa]> (I meant the export that comes from the other part of the program)
2021-03-29 16:03:48 +0200tomsmedingis just trying to provide a bit of pushback to "how do I do X simple common thing with technique A? -- Well, please use technique PQR that does 10 other things but is much nicer" :)
2021-03-29 16:03:53 +0200 <tomsmeding> not trying to be hostile
2021-03-29 16:04:24 +0200 <maerwald> tomsmeding: parser combinators are more expressive and as such may not be desired :) that is following the principle of using the least powerful tool.
2021-03-29 16:04:45 +0200 <tomsmeding> [exa]: ah, I see
2021-03-29 16:04:46 +0200 <maerwald> That argument has also repeatedly been made by the LANGSEC authors
2021-03-29 16:05:35 +0200 <maerwald> treat input as a language, write a validator and use the least expressive tool
2021-03-29 16:05:52 +0200 <maerwald> in that sense, they also created parser combinator library for C
2021-03-29 16:06:03 +0200MarcelineVQ(~anja@198.254.208.159)
2021-03-29 16:06:10 +0200 <maerwald> (arguing that parser combinators are magnitudes more safer than a hand-written one)
2021-03-29 16:06:14 +0200 <merijn> maerwald: parser combinators are just recursive descent parsers with a convenient paint of code
2021-03-29 16:07:00 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 16:07:57 +0200 <merijn> Well written recursive descent parsers are just as efficient and minimal as their corresponding LALR(k) version. But most humans find recursive descent much easier to write/think about (and better errors)
2021-03-29 16:08:29 +0200 <tomsmeding> % import Text.Regex.TDFA
2021-03-29 16:08:30 +0200 <yahb> tomsmeding: ; <no location info>: error:; Could not find module `Text.Regex.TDFA'; It is not a module in the current program, or in any known package.
2021-03-29 16:08:33 +0200 <tomsmeding> boo
2021-03-29 16:08:50 +0200 <tomsmeding> anyway johnnyboy[m]: 'match (makeRegex "\t" :: Regex) "\t" :: Bool' gives True for me
2021-03-29 16:09:05 +0200 <johnnyboy[m]> I think I'm going to replace tabs with spaces and see if I can then match against `[[:space:]]`
2021-03-29 16:09:08 +0200 <tomsmeding> just a literal tab character is apparently valid in a regex-tdfa regex
2021-03-29 16:09:19 +0200 <johnnyboy[m]> just to rule out the possibility that it's the tabs that somehow mess things up
2021-03-29 16:10:10 +0200 <[exa]> tomsmeding: in the "pushback" direction I'd probably suggest awk :]
2021-03-29 16:11:06 +0200 <johnnyboy[m]> okay, it's not the tabs
2021-03-29 16:11:14 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 245 seconds)
2021-03-29 16:11:15 +0200 <johnnyboy[m]> my regexes are just wrong somehow
2021-03-29 16:11:31 +0200 <tomsmeding> cue the rest here saying you should use parser combinators :p
2021-03-29 16:11:37 +0200 <tomsmeding> what's your source text and what's your regex
2021-03-29 16:11:52 +0200malumore_(~malumore@151.62.126.223)
2021-03-29 16:12:12 +0200 <johnnyboy[m]> https://gitlab.com/jllang/spin2latex/-/blob/master/testdata/success1.txt
2021-03-29 16:12:18 +0200 <johnnyboy[m]> that's a test file I'm using now
2021-03-29 16:12:34 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-mhbpgvvowjjnvcmn)
2021-03-29 16:14:01 +0200 <johnnyboy[m]> this is my regex: https://privatebin.net/?cea173e3eb0202b4#EJcfvuZf734KwdZUG8CBhoHfiNNj6cPH3E3M8hLs4o8u
2021-03-29 16:14:07 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 16:14:19 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 16:14:29 +0200 <johnnyboy[m]> so I'm looking for a number, followed by "actual memory use for states"
2021-03-29 16:14:42 +0200 <johnnyboy[m]> with whitespace (tab) between
2021-03-29 16:14:45 +0200rj(~x@gateway/tor-sasl/rj)
2021-03-29 16:15:03 +0200malumore(~malumore@151.62.126.223) (Ping timeout: 268 seconds)
2021-03-29 16:15:11 +0200 <tomsmeding> johnnyboy[m]: are you sure you're skipping the initial whitespace? i.e. aren't you missing a prefix ' *'?
2021-03-29 16:15:28 +0200 <johnnyboy[m]> `$ cat success1.txt | grep -E "[0-9]+.[0-9]{3}[[:space:]]+actual"` returns `0.292 actual memory usage for states`
2021-03-29 16:16:08 +0200 <tomsmeding> yes because 'grep' allows matching at any point in a line
2021-03-29 16:16:14 +0200 <johnnyboy[m]> ah
2021-03-29 16:16:22 +0200 <tomsmeding> oh TDFA also does; ignore
2021-03-29 16:16:24 +0200 <johnnyboy[m]> ok, I'll try adding an initial [[:space:]]+
2021-03-29 16:16:31 +0200 <johnnyboy[m]> or [[:space:]]*
2021-03-29 16:16:41 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 16:17:10 +0200 <tomsmeding> it matches that line for me :p
2021-03-29 16:17:18 +0200 <dminuoso> Regular expressions. How to introduce long lasting bugs by carelessly bolted-on regular expressions.
2021-03-29 16:17:20 +0200 <tomsmeding> so your problem is outside of the regex I think
2021-03-29 16:17:51 +0200 <johnnyboy[m]> but I have this other regex for picking the error count
2021-03-29 16:18:11 +0200 <johnnyboy[m]> it works even if the line containing "errors: xxx" does start with something else
2021-03-29 16:18:27 +0200 <tomsmeding> regexen are like excel: computer scientists are embarrassed to admit their effectiveness
2021-03-29 16:18:33 +0200slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-03-29 16:18:36 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Ping timeout: 258 seconds)
2021-03-29 16:18:46 +0200Iceland_jack(~user@95.149.219.0) (Ping timeout: 268 seconds)
2021-03-29 16:18:46 +0200 <tdammers> what about regexcel?
2021-03-29 16:18:48 +0200 <tomsmeding> johnnyboy[m]: indeed, for me your regex matches that line
2021-03-29 16:19:01 +0200 <tomsmeding> so I'm thinking the problem is not with the regex, but with the code that runs the regex
2021-03-29 16:19:16 +0200 <tomsmeding> tdammers: excel has gotten lambdas recently, surely it can also have regex
2021-03-29 16:19:17 +0200Jd007(~Jd007@162.156.11.151)
2021-03-29 16:19:32 +0200 <tomsmeding> oh it already does
2021-03-29 16:20:42 +0200 <tdammers> I bet it includes an email system too
2021-03-29 16:20:50 +0200ski. o O ( <https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/>,<https://www.microsoft.com/en-us/research/publication/a-user-centred-approach-to-functions-in-excel/> )
2021-03-29 16:21:04 +0200dcbdan(~dcbdan@c-73-76-129-120.hsd1.tx.comcast.net)
2021-03-29 16:21:09 +0200 <johnnyboy[m]> <tdammers "I bet it includes an email syste"> I thought that was emacs
2021-03-29 16:21:53 +0200 <ski> Emacs includes an editor
2021-03-29 16:23:06 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-29 16:23:23 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Remote host closed the connection)
2021-03-29 16:23:44 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-03-29 16:24:13 +0200 <tomsmeding> tdammers: you can access Outlook from VBA in any Office application, which includes Excel https://docs.microsoft.com/en-us/office/vba/outlook/Concepts/Getting-Started/automating-outlook-fr…
2021-03-29 16:25:40 +0200malumore(~malumore@151.62.126.223)
2021-03-29 16:26:36 +0200solvr(57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-03-29 16:27:55 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 16:28:18 +0200borne(~fritjof@200116b8648ef300f7ed9fd86a2491f0.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
2021-03-29 16:28:36 +0200borne(~fritjof@87.123.110.6)
2021-03-29 16:30:10 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 16:32:07 +0200 <johnnyboy[m]> doesn't adding Turing completeness to a spreadsheet processor also imply that it allows all sorts of nasty viruses etc?
2021-03-29 16:32:29 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 252 seconds)
2021-03-29 16:32:59 +0200DataComputist(~lumeng@50.43.26.251) (Quit: Leaving...)
2021-03-29 16:33:30 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-qybeoxhtmvdqtlff) ()
2021-03-29 16:33:41 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-edqceocpkulqhglr)
2021-03-29 16:34:51 +0200 <tomsmeding> johnnyboy[m]: browsers with javascript have been Turing complete since ages; same question applies
2021-03-29 16:35:22 +0200 <johnnyboy[m]> and browsers are known to have been subject to nasty malware
2021-03-29 16:38:00 +0200 <johnnyboy[m]> I tried processing a one megabyte CSV file with both excel and libreoffice calc once, and both of them struggled with it
2021-03-29 16:38:11 +0200 <johnnyboy[m]> I guess spreadsheet programs aren't lazy
2021-03-29 16:38:16 +0200Paks(~paks@c-69-136-183-189.hsd1.il.comcast.net) (Ping timeout: 245 seconds)
2021-03-29 16:40:54 +0200Iceland_jack(~user@95.149.219.0)
2021-03-29 16:43:08 +0200 <johnnyboy[m]> sorry, it was around a million lines
2021-03-29 16:43:26 +0200 <johnnyboy[m]> the file size might have been dozens or a hundred megabytes maybe
2021-03-29 16:44:37 +0200malumore(~malumore@151.62.126.223) (Quit: Leaving)
2021-03-29 16:44:38 +0200malumore_(~malumore@151.62.126.223) (Quit: Leaving)
2021-03-29 16:44:54 +0200malumore(~malumore@151.62.126.223)
2021-03-29 16:45:26 +0200 <tomsmeding> johnnyboy[m]: spreadsheet programs indeed have strict evaluation semantics (unless you turn off automatic evaluation, that is)
2021-03-29 16:46:00 +0200 <tomsmeding> and they also do far too much with their individual cells to be able to have the efficiency of a database engine, which is sometimes unfortunate
2021-03-29 16:46:04 +0200Iceland_jack(~user@95.149.219.0) (Read error: Connection reset by peer)
2021-03-29 16:46:07 +0200 <ski> i recall hearing someone describe functional programming as "a bit like spreadsheets", before i'd seen Haskell
2021-03-29 16:46:40 +0200 <ski> (well, i think it was specifically Haskell this person was trying to describe)
2021-03-29 16:47:19 +0200 <johnnyboy[m]> my first real programming project involved an NGO who used excel as a database
2021-03-29 16:47:36 +0200 <johnnyboy[m]> and we were supposed to write a real database application to replace it
2021-03-29 16:47:45 +0200 <johnnyboy[m]> but I think they still use excel
2021-03-29 16:48:03 +0200 <johnnyboy[m]> I can't really blame them
2021-03-29 16:48:12 +0200 <johnnyboy[m]> we used mongodb :P
2021-03-29 16:48:40 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 16:48:42 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 16:51:24 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-03-29 16:51:57 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 16:53:07 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 250 seconds)
2021-03-29 16:54:03 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 16:56:07 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 16:56:29 +0200jamm_(~jamm@unaffiliated/jamm)
2021-03-29 16:58:28 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 16:59:59 +0200DTZUZU_(~DTZUZO@207.81.119.43)
2021-03-29 17:00:06 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-03-29 17:00:07 +0200ubert(~Thunderbi@p200300ecdf25d94ce6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2021-03-29 17:00:24 +0200Pickchea(~private@unaffiliated/pickchea)
2021-03-29 17:00:42 +0200dpl_(~dpl@77.121.78.163) (Ping timeout: 268 seconds)
2021-03-29 17:02:01 +0200acidjnk_new(~acidjnk@p200300d0c72b9579218a2a0630d85b14.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2021-03-29 17:02:17 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 265 seconds)
2021-03-29 17:03:44 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:cca4:232:630d:d55c)
2021-03-29 17:04:04 +0200zjp(~zjp@66-45-138-104-dynamic.midco.net)
2021-03-29 17:06:16 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 17:07:22 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 252 seconds)
2021-03-29 17:08:51 +0200motersen(~motersen@gateway/tor-sasl/motersen)
2021-03-29 17:09:28 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 17:09:29 +0200ubert(~Thunderbi@p200300ecdf25d94ce6b318fffe838f33.dip0.t-ipconnect.de)
2021-03-29 17:10:38 +0200borne(~fritjof@87.123.110.6) (Ping timeout: 240 seconds)
2021-03-29 17:11:41 +0200peanut_(~peanut_@2a02:8388:a101:2600:1aac:99fd:f87d:92f0) (Quit: Leaving)
2021-03-29 17:12:50 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-29 17:13:12 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-29 17:13:41 +0200ubert(~Thunderbi@p200300ecdf25d94ce6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2021-03-29 17:13:48 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 258 seconds)
2021-03-29 17:17:06 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 17:18:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-03-29 17:19:09 +0200andreas31(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2021-03-29 17:20:06 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-03-29 17:21:09 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2021-03-29 17:23:15 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 17:24:19 +0200Hildegunst(~luc@80.248.12.109.rev.sfr.net)
2021-03-29 17:24:33 +0200Hildegunst(~luc@80.248.12.109.rev.sfr.net) ()
2021-03-29 17:25:42 +0200ezrakilty(~ezrakilty@97-113-58-224.tukw.qwest.net)
2021-03-29 17:25:49 +0200howdoi(uid224@gateway/web/irccloud.com/x-ykxhqtpjefqrmdft)
2021-03-29 17:25:54 +0200Hildegunst(~luc@80.248.12.109.rev.sfr.net)
2021-03-29 17:25:55 +0200pavonia(~user@unaffiliated/siracusa)
2021-03-29 17:25:57 +0200andreas31(~andreas@gateway/tor-sasl/andreas303)
2021-03-29 17:26:02 +0200Hildegunst(~luc@80.248.12.109.rev.sfr.net) (Client Quit)
2021-03-29 17:26:13 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-29 17:26:48 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
2021-03-29 17:27:27 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:1e40:f339:ac5b:717) (Ping timeout: 246 seconds)
2021-03-29 17:27:37 +0200ezrakilty(~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
2021-03-29 17:30:11 +0200shailangsa(~shailangs@host86-186-136-70.range86-186.btcentralplus.com)
2021-03-29 17:30:14 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 17:30:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-29 17:30:54 +0200kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2021-03-29 17:32:05 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-03-29 17:32:42 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-03-29 17:34:34 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 245 seconds)
2021-03-29 17:36:09 +0200borne(~fritjof@200116b864978000f7ed9fd86a2491f0.dip.versatel-1u1.de)
2021-03-29 17:37:22 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 17:38:08 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-03-29 17:39:42 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:3133:71df:e36c:dfbb)
2021-03-29 17:41:55 +0200supercoven(~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi)
2021-03-29 17:42:18 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
2021-03-29 17:43:56 +0200supercoven(~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-03-29 17:44:31 +0200__minoru__shirae(~shiraeesh@109.166.57.99) (Ping timeout: 260 seconds)
2021-03-29 17:44:56 +0200gaze__(sid387101@gateway/web/irccloud.com/x-avezvxuxwafmkbvn) (Ping timeout: 245 seconds)
2021-03-29 17:45:25 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 17:45:37 +0200SrPx(sid108780@gateway/web/irccloud.com/x-bbnjzembhmbnppsc) (Ping timeout: 276 seconds)
2021-03-29 17:46:16 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-edqceocpkulqhglr) (Ping timeout: 276 seconds)
2021-03-29 17:46:19 +0200stree(~stree@68.36.8.116)
2021-03-29 17:46:55 +0200mudri(sid317655@gateway/web/irccloud.com/x-mxbgcmszbbzcrnwx) (Ping timeout: 276 seconds)
2021-03-29 17:47:08 +0200gaze__(sid387101@gateway/web/irccloud.com/x-jyfzdgulluqjzdzf)
2021-03-29 17:47:33 +0200SrPx(sid108780@gateway/web/irccloud.com/x-mmboofbtgdacydlo)
2021-03-29 17:47:38 +0200kiweun(~kiweun@2607:fea8:2a62:9600:30e4:9f38:5ce5:23cb)
2021-03-29 17:48:06 +0200mudri(sid317655@gateway/web/irccloud.com/x-bcigdzdisjxobsht)
2021-03-29 17:48:21 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-kcdtjlkqhzglspxx)
2021-03-29 17:49:07 +0200ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-29 17:49:51 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-03-29 17:50:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-29 17:50:30 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-03-29 17:51:08 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 17:51:11 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:cca4:232:630d:d55c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 17:51:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 17:53:41 +0200Sorna(~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds)
2021-03-29 17:54:17 +0200enoq(~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
2021-03-29 17:54:18 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-29 17:55:31 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 250 seconds)
2021-03-29 17:57:22 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:cca4:232:630d:d55c)
2021-03-29 17:57:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-03-29 17:57:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 17:58:05 +0200ezrakilty(~ezrakilty@97-113-58-224.tukw.qwest.net)
2021-03-29 17:59:41 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-03-29 18:00:05 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 18:00:27 +0200Rudd0(~Rudd0@185.189.115.103)
2021-03-29 18:00:37 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2021-03-29 18:01:03 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 18:02:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-29 18:03:27 +0200codygman__(~user@47.186.207.161)
2021-03-29 18:03:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 18:04:12 +0200xff0x(~xff0x@2001:1a81:5268:4b00:6095:39e:f552:2f81) (Ping timeout: 246 seconds)
2021-03-29 18:04:13 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 18:05:13 +0200xff0x(~xff0x@2001:1a81:5268:4b00:52c4:a3b3:40c7:ac40)
2021-03-29 18:05:46 +0200 <Gurkenglas> What language or language extension do I want to model types like "real numbers where a less defined than b <=> a at most b" and "1-lipschitz functions on the previous type"?
2021-03-29 18:05:48 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Remote host closed the connection)
2021-03-29 18:05:54 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-03-29 18:08:12 +0200 <xerox_> am I completely off track wanting this? deriving instance Enum a => Enum (Maybe a
2021-03-29 18:08:26 +0200 <xerox_> (using StandaloneDeriving and friends)
2021-03-29 18:08:28 +0200geekosaur(82650c7a@130.101.12.122)
2021-03-29 18:08:37 +0200ezrakilty(~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
2021-03-29 18:08:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-03-29 18:09:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 18:11:37 +0200 <[exa]> xerox_: it's been discussed already for sure, but I don't remember the result
2021-03-29 18:12:15 +0200 <[exa]> uh what, hackage down?
2021-03-29 18:12:40 +0200 <[exa]> anyway, xerox_: Data.Enum.Deriving wouldn't work?
2021-03-29 18:13:38 +0200codygman__(~user@47.186.207.161) (Ping timeout: 240 seconds)
2021-03-29 18:13:59 +0200 <xerox_> first time delving into (non-haskell-2010-)deriving, didn't know about that package, just trying to figure out what ghc allows me to do as is for starters
2021-03-29 18:14:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-03-29 18:15:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 18:16:38 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 18:17:09 +0200andreas31(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2021-03-29 18:17:40 +0200 <xerox_> open to other ideas as well, trying to go from a newtype Foo = .. with deriving Enum to data Bar = Other | Foo and get that extra "Other" snuck in there into Enum
2021-03-29 18:18:00 +0200 <dexterfoo> hello when will hackage docs be back online?
2021-03-29 18:18:36 +0200 <xerox_> I guess in the meanwhile one can use stackage.org
2021-03-29 18:18:41 +0200 <xerox_> I often default to that one anyway
2021-03-29 18:18:48 +0200andreas31(~andreas@gateway/tor-sasl/andreas303)
2021-03-29 18:19:48 +0200kiweun(~kiweun@2607:fea8:2a62:9600:30e4:9f38:5ce5:23cb) (Remote host closed the connection)
2021-03-29 18:20:16 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 18:20:18 +0200zjp(~zjp@66-45-138-104-dynamic.midco.net) (Remote host closed the connection)
2021-03-29 18:20:52 +0200kiweun(~kiweun@2607:fea8:2a62:9600:bd23:b03d:cd6e:b210)
2021-03-29 18:20:54 +0200dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-29 18:21:51 +0200cake_eater(~kiweun@2607:fea8:2a62:9600:b1d8:81d4:b440:7736)
2021-03-29 18:23:19 +0200blackriversoftwa(sid364914@gateway/web/irccloud.com/x-elfvrucbyuzljosj)
2021-03-29 18:23:21 +0200conal(~conal@107.181.166.205) (Quit: Computer has gone to sleep.)
2021-03-29 18:24:00 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-03-29 18:25:25 +0200kiweun(~kiweun@2607:fea8:2a62:9600:bd23:b03d:cd6e:b210) (Ping timeout: 252 seconds)
2021-03-29 18:25:49 +0200conal(~conal@64.71.133.70)
2021-03-29 18:26:03 +0200[exa](exa@srv3.blesmrt.net) (Changing host)
2021-03-29 18:26:03 +0200[exa](exa@unaffiliated/exa/x-5381537)
2021-03-29 18:26:14 +0200cake_eater(~kiweun@2607:fea8:2a62:9600:b1d8:81d4:b440:7736) (Ping timeout: 245 seconds)
2021-03-29 18:26:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-03-29 18:27:35 +0200codygman__(~user@209.251.131.98)
2021-03-29 18:28:23 +0200 <slack1256> Gurkenglas: you probably want agda by then
2021-03-29 18:28:33 +0200 <slack1256> Computable real numbers and all that jazz
2021-03-29 18:29:36 +0200haritz(~hrtz@unaffiliated/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-03-29 18:30:26 +0200 <slack1256> dexterfoo: If you have a local copy of the libraries you want documentation of, you can see where those html are with the command `ghc-pkg field <package> haddock-html`.
2021-03-29 18:31:28 +0200 <statusbot> Status update: Due to a disk space issue the hackage web interface is down for a storage upgrade. -- http://status.haskell.org/pages/incident/537c07b0cf1fad5830000093/606200df2a84ed05341dcbf1
2021-03-29 18:32:09 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 18:32:54 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 18:33:00 +0200jonathanx_(~jonathan@94.234.49.69) (Read error: Connection reset by peer)
2021-03-29 18:33:11 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 18:35:24 +0200 <Gurkenglas> slack1256, not quite computable real numbers. I mean a type where each element corresponds to a real number and the definedness relation (in the sense that undefined is less defined than "asd") corresponds to the usual order on real numbers
2021-03-29 18:35:30 +0200__monty__(~toonn@unaffiliated/toonn)
2021-03-29 18:36:05 +0200 <Gurkenglas> (i mean, i can kinda make one: newtype Real = UnsafeReal {greaterThan :: Double -> ()}; embedDouble :: Double -> Real; embedDouble d = UnsafeReal (\d' -> if d>d' then () else error ("embedDouble" + show d + show d')) -- but it's not type safe)
2021-03-29 18:36:39 +0200borne(~fritjof@200116b864978000f7ed9fd86a2491f0.dip.versatel-1u1.de) (Ping timeout: 245 seconds)
2021-03-29 18:39:24 +0200codygman__(~user@209.251.131.98) (Remote host closed the connection)
2021-03-29 18:39:46 +0200codygman__(~user@209.251.131.98)
2021-03-29 18:40:52 +0200jakalx(~jakalx@base.jakalx.net) ("Disconnected: Replaced by new connection")
2021-03-29 18:40:52 +0200ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-03-29 18:40:57 +0200 <dolio> That description isn't real numbers, just like the other description wasn't natural numbers.
2021-03-29 18:41:02 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-29 18:41:14 +0200z0k(~user@115.186.169.1) (Quit: WeeChat 3.0)
2021-03-29 18:41:15 +0200jakalx(~jakalx@base.jakalx.net)
2021-03-29 18:41:21 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 18:41:57 +0200 <dolio> Also the usual ordering on the reals doesn't have a bottom to be a domain.
2021-03-29 18:42:20 +0200ubert(~Thunderbi@p200300ecdf25d94ce6b318fffe838f33.dip0.t-ipconnect.de)
2021-03-29 18:42:58 +0200 <dolio> It's also not directed complete, I think.
2021-03-29 18:43:18 +0200 <Gurkenglas> dolio, yeah add -inf and inf
2021-03-29 18:43:24 +0200Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 246 seconds)
2021-03-29 18:44:06 +0200ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 246 seconds)
2021-03-29 18:44:17 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-03-29 18:45:56 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-03-29 18:46:10 +0200 <sclv> psa btw, hackage web interface is down while we fix disk storage issues
2021-03-29 18:46:18 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-03-29 18:46:21 +0200kritzefitz(~kritzefit@212.86.56.80) (Client Quit)
2021-03-29 18:46:32 +0200 <Gurkenglas> do dependent types get me "that subtype of A defined by the property f : A -> Bool"? (or perhaps A -> ())
2021-03-29 18:47:23 +0200zaquest(~notzaques@5.128.210.178) (Read error: Connection reset by peer)
2021-03-29 18:47:45 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-03-29 18:47:49 +0200zaquest(~notzaques@5.128.210.178)
2021-03-29 18:47:52 +0200CrazyPython(~crazypyth@98.122.164.118)
2021-03-29 18:50:25 +0200 <dolio> A -> () is isomorphic to () in most dependently typed languages.
2021-03-29 18:50:57 +0200jonathanx_(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-03-29 18:52:26 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Remote host closed the connection)
2021-03-29 18:52:44 +0200 <dolio> The Sierpinski type would need to be defined instead.
2021-03-29 18:52:55 +0200jonathanx_(~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-03-29 18:53:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 18:53:49 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ("WeeChat 3.0.1")
2021-03-29 18:53:52 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-03-29 18:54:13 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-03-29 18:54:30 +0200 <dolio> Or a Sierpinski type, since there wouldn't be a unique choice in a lot of cases.
2021-03-29 18:55:08 +0200ByronJohnson(~bairyn@unaffiliated/bob0)
2021-03-29 18:55:25 +0200Tene(~tene@mail.digitalkingdom.org)
2021-03-29 18:55:25 +0200Tene(~tene@mail.digitalkingdom.org) (Changing host)
2021-03-29 18:55:25 +0200Tene(~tene@poipu/supporter/slacker/tene)
2021-03-29 18:56:38 +0200ukari(~ukari@unaffiliated/ukari) (Ping timeout: 240 seconds)
2021-03-29 18:58:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-03-29 18:58:36 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 260 seconds)
2021-03-29 18:58:38 +0200pupuupup(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net)
2021-03-29 19:03:02 +0200average(uid473595@gateway/web/irccloud.com/x-tblkdtktwteghrni)
2021-03-29 19:03:24 +0200codygman__(~user@209.251.131.98) (Remote host closed the connection)
2021-03-29 19:03:28 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:cca4:232:630d:d55c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 19:03:35 +0200ski. o O ( "First Steps in Synthetic Computability Theory" by Andrej Bauer in 2004 at <http://math.andrej.com/2005/05/08/first-steps-in-synthetic-computability-theory/> )
2021-03-29 19:03:51 +0200gitgood(~gitgood@80-44-12-39.dynamic.dsl.as9105.com)
2021-03-29 19:03:57 +0200codygman__(~user@209.251.131.98)
2021-03-29 19:06:52 +0200 <monochrom> I think when you wrote "A -> ()" you had "relation between A and ()" in mind.
2021-03-29 19:06:56 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-03-29 19:07:32 +0200 <monochrom> Because I recently used that in parametricity theorems to obtain induction/elimination principles. :)
2021-03-29 19:08:06 +0200pupuupup(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net) (Ping timeout: 240 seconds)
2021-03-29 19:09:29 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-03-29 19:10:10 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 19:12:10 +0200Erutuon_(~Erutuon@97-116-16-233.mpls.qwest.net)
2021-03-29 19:12:39 +0200DTZUZU_(~DTZUZO@207.81.119.43) (Ping timeout: 268 seconds)
2021-03-29 19:12:54 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 19:12:56 +0200chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-03-29 19:13:32 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-03-29 19:14:52 +0200pupuupup_(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net)
2021-03-29 19:14:59 +0200knupfer(~Thunderbi@200116b82b0bfe00e407e369ad43ca6f.dip.versatel-1u1.de) (Ping timeout: 245 seconds)
2021-03-29 19:17:13 +0200 <dolio> Well, you don't just want any relation.
2021-03-29 19:17:31 +0200 <dolio> Because that is A -> Ω.
2021-03-29 19:17:36 +0200 <dolio> Not A -> Σ
2021-03-29 19:17:37 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 258 seconds)
2021-03-29 19:19:57 +0200 <dolio> You can kind of pretend that () is Σ in some ways in something like Haskell, although there is no good encoding of the other truth value types.
2021-03-29 19:20:29 +0200 <dolio> At least, I think.
2021-03-29 19:21:27 +0200lawid(~quassel@dslb-090-186-122-181.090.186.pools.vodafone-ip.de) (Quit: lawid)
2021-03-29 19:22:19 +0200astronavt(~astronavt@unaffiliated/astronavt) (Remote host closed the connection)
2021-03-29 19:23:21 +0200__minoru__shirae(~shiraeesh@109.166.57.99)
2021-03-29 19:25:39 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2021-03-29 19:26:31 +0200jakalx(~jakalx@base.jakalx.net)
2021-03-29 19:26:46 +0200jamm_(~jamm@unaffiliated/jamm)
2021-03-29 19:27:55 +0200Pickchea(~private@unaffiliated/pickchea)
2021-03-29 19:29:11 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 19:30:38 +0200__minoru__shirae(~shiraeesh@109.166.57.99) (Ping timeout: 240 seconds)
2021-03-29 19:30:49 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 245 seconds)
2021-03-29 19:31:21 +0200gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2021-03-29 19:31:43 +0200gentauro(~gentauro@unaffiliated/gentauro)
2021-03-29 19:33:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2021-03-29 19:34:19 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 19:37:18 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-03-29 19:38:06 +0200pupuupup_(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net) (Ping timeout: 260 seconds)
2021-03-29 19:39:22 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Ping timeout: 276 seconds)
2021-03-29 19:39:43 +0200nuncanada(~dude@179.235.160.168)
2021-03-29 19:40:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 19:44:28 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5)
2021-03-29 19:44:38 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 19:44:54 +0200pupuupup_(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net)
2021-03-29 19:46:00 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Remote host closed the connection)
2021-03-29 19:47:11 +0200ixlun(~matthew@109.249.184.133) (Ping timeout: 240 seconds)
2021-03-29 19:49:12 +0200pupuupup_(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net) (Ping timeout: 246 seconds)
2021-03-29 19:49:23 +0200ubert(~Thunderbi@p200300ecdf25d94ce6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-03-29 19:49:30 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-29 19:49:35 +0200dandart(~Thunderbi@home.dandart.co.uk)
2021-03-29 19:49:49 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 19:50:02 +0200geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-03-29 19:51:46 +0200dandart(~Thunderbi@home.dandart.co.uk) (Client Quit)
2021-03-29 19:52:23 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-03-29 19:52:27 +0200dmoerner(~dmoerner@fedora/dmoerner)
2021-03-29 19:52:58 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
2021-03-29 19:53:24 +0200 <dmoerner> hackage is down, I guess
2021-03-29 19:53:45 +0200 <tomsmeding> dmoerner: disk space issues, it's being worked on
2021-03-29 19:53:58 +0200 <tdammers> talk about spofs...
2021-03-29 19:54:23 +0200 <dmoerner> tomsmeding: no problem.
2021-03-29 19:54:26 +0200stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-03-29 19:54:26 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-03-29 19:54:47 +0200 <tomsmeding> Does haskell have some kind of "injective type classes"? In particular, given 'instance C b => C (a, b)' and the information 'C (a, b)', I'd like to be able to infer 'C b', but GHC can't
2021-03-29 19:55:01 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 19:55:14 +0200 <Gurkenglas> monochrom, by A -> () I mean the monotonic functions from A to (), not necessarily strict, one-to-one with the Scott-open sets in A
2021-03-29 19:55:34 +0200 <tomsmeding> (my actual use case has 'a -> b' instead of '(a, b)', but I can't imagine that to make a difference)
2021-03-29 19:55:38 +0200sgibber2018(d055ed90@208.85.237.144)
2021-03-29 19:59:22 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-29 20:00:19 +0200xourt(d4c620ea@212-198-32-234.rev.numericable.fr) (Quit: Connection closed)
2021-03-29 20:00:21 +0200drakonis(~drakonis@unaffiliated/drakonis) ("WeeChat 3.1")
2021-03-29 20:01:25 +0200 <infinisil> I have a GADT like `data Method i o where IsRoot :: Method Int Bool GetName :: Method Int String`
2021-03-29 20:02:40 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-03-29 20:03:00 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:b98b:75b0:1d5d:7be4)
2021-03-29 20:03:05 +0200 <infinisil> Now I want to be able to have a `Show` instance for something like `ReqResp (Method i o) i o`
2021-03-29 20:03:28 +0200 <infinisil> data ReqResp i o = ReqResp (Method i o) i o
2021-03-29 20:03:32 +0200pupuupup_(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net)
2021-03-29 20:04:36 +0200 <tomsmeding> infinisil: use StandaloneDeriving, write 'deriving instance Show (Method i o)', and attach 'deriving (Show)' to ReqResp?
2021-03-29 20:04:39 +0200 <infinisil> Now I can't just `derive Show`, but that gives me an `instance (Show i, Show o) => Show (ReqResp i o)`
2021-03-29 20:04:44 +0200 <infinisil> s/can't/can
2021-03-29 20:06:39 +0200 <infinisil> I want an instance like `Show (ReqResp i o)`, without any dependent constraints
2021-03-29 20:06:39 +0200 <tomsmeding> infinisil: I don't think you can derive an unconstrained Show instance for ReqResp automatically
2021-03-29 20:06:46 +0200 <infinisil> Hmm
2021-03-29 20:07:08 +0200 <infinisil> Yeah currently I'm doing it manually. My question indeed would've been how that could be automated
2021-03-29 20:07:08 +0200electricityZZZZ(~electrici@135-180-3-82.static.sonic.net)
2021-03-29 20:07:36 +0200 <Gurkenglas> tomsmeding, isn't the following absence of overlapping instances just the injective type classes you want?
2021-03-29 20:07:39 +0200 <Gurkenglas> @let class Gurk a; instance Gurk Int; instance Gurk b => Gurk (a -> b)
2021-03-29 20:07:41 +0200 <lambdabot> Defined.
2021-03-29 20:07:43 +0200stree(~stree@68.36.8.116)
2021-03-29 20:07:48 +0200 <tomsmeding> infinisil: well you could do it using generics but not sure whether that's better :p
2021-03-29 20:07:57 +0200 <Gurkenglas> :t undefined :: Gurk (String -> Char) => ()
2021-03-29 20:07:59 +0200 <lambdabot> error:
2021-03-29 20:07:59 +0200 <lambdabot> No instance for (Gurk Char)
2021-03-29 20:07:59 +0200 <lambdabot> arising from an expression type signature
2021-03-29 20:08:08 +0200 <Gurkenglas> As you see, it looked directly for the Gurk Char instance
2021-03-29 20:08:14 +0200geekosaur(82650c7a@130.101.12.122)
2021-03-29 20:08:40 +0200dmoerner(~dmoerner@fedora/dmoerner) ("WeeChat 1.9.1")
2021-03-29 20:08:41 +0200 <tomsmeding> :t undefined :: Gurk (a -> b) => ()
2021-03-29 20:08:43 +0200 <lambdabot> error:
2021-03-29 20:08:43 +0200 <lambdabot> • Overlapping instances for Gurk (a0 -> b0)
2021-03-29 20:08:43 +0200 <lambdabot> Matching givens (or their superclasses):
2021-03-29 20:08:48 +0200 <tomsmeding> that's the problem
2021-03-29 20:09:00 +0200 <tomsmeding> wait what, why overlappign
2021-03-29 20:09:14 +0200 <tomsmeding> anyway that doesn't work :p
2021-03-29 20:09:33 +0200 <Gurkenglas> @let class Gurk2 a; instance Gurk2 b => Gurk2 (a -> b)
2021-03-29 20:09:35 +0200 <lambdabot> Defined.
2021-03-29 20:09:43 +0200 <Gurkenglas> :t undefined :: Gurk2 (a -> b) => ()
2021-03-29 20:09:44 +0200 <lambdabot> error:
2021-03-29 20:09:44 +0200 <lambdabot> • Overlapping instances for Gurk2 (a0 -> b0)
2021-03-29 20:09:44 +0200 <lambdabot> Matching givens (or their superclasses):
2021-03-29 20:09:49 +0200 <Gurkenglas> ruh roh
2021-03-29 20:10:18 +0200gitgood(~gitgood@80-44-12-39.dynamic.dsl.as9105.com) (Remote host closed the connection)
2021-03-29 20:10:29 +0200DTZUZU_(~DTZUZO@207.81.119.43)
2021-03-29 20:10:36 +0200 <tomsmeding> wait now I can't reproduce it locally, let me have a look
2021-03-29 20:11:38 +0200 <Gurkenglas> @let class Gurk4 a; instance Gurk4 (a -> b)
2021-03-29 20:11:39 +0200 <lambdabot> Defined.
2021-03-29 20:11:41 +0200 <tomsmeding> okay apparently the introduction of GADTs complicates the matter
2021-03-29 20:11:47 +0200 <Gurkenglas> :t undefined :: Gurk4 (a -> b) => ()
2021-03-29 20:11:48 +0200 <lambdabot> error:
2021-03-29 20:11:48 +0200 <lambdabot> • Overlapping instances for Gurk4 (a0 -> b0)
2021-03-29 20:11:48 +0200 <lambdabot> Matching givens (or their superclasses):
2021-03-29 20:11:50 +0200 <Gurkenglas> RUH ROH
2021-03-29 20:12:12 +0200 <tomsmeding> @let data Thing a where Tup :: a -> b -> Thing (a -> b)
2021-03-29 20:12:14 +0200 <lambdabot> Defined.
2021-03-29 20:12:28 +0200 <tomsmeding> @let foo :: Gurk4 a => a -> Int ; foo = undefined
2021-03-29 20:12:29 +0200 <lambdabot> Defined.
2021-03-29 20:12:41 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 246 seconds)
2021-03-29 20:12:43 +0200 <tomsmeding> @let bar :: Gurk4 a => Thing a -> Int ; bar (Tup x y) = foo y
2021-03-29 20:12:44 +0200 <lambdabot> .L.hs:174:17: error:
2021-03-29 20:12:45 +0200 <lambdabot> • Could not deduce (Gurk4 b) arising from a use of ‘foo’
2021-03-29 20:12:45 +0200 <lambdabot> from the context: Gurk4 a
2021-03-29 20:13:02 +0200 <tomsmeding> this is the exact issue I'm talking about, not sure what the "overlapping instances" is about
2021-03-29 20:14:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-03-29 20:14:36 +0200 <infinisil> Maybe I could derive a Show instance automatically for
2021-03-29 20:14:38 +0200 <infinisil> data ReqResp m = forall i o. m ~ Method i o => ReqResp m i o
2021-03-29 20:14:50 +0200 <infinisil> Something with QuantifiedConstraints
2021-03-29 20:16:08 +0200 <infinisil> Or maybe for
2021-03-29 20:16:10 +0200 <infinisil> data ReqResp (m :: Method i o) = ReqResp i o
2021-03-29 20:16:44 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-03-29 20:16:49 +0200 <infinisil> That kinda works
2021-03-29 20:16:51 +0200shailangsa(~shailangs@host86-186-136-70.range86-186.btcentralplus.com) (Ping timeout: 246 seconds)
2021-03-29 20:16:53 +0200 <infinisil> deriving instance Show (ReqResp 'IsRoot)
2021-03-29 20:16:59 +0200 <infinisil> deriving instance Show (ReqResp 'GetName)
2021-03-29 20:17:11 +0200 <infinisil> The method is lifted to the type level, but maybe that's fine for me
2021-03-29 20:17:13 +0200rajivr(uid269651@gateway/web/irccloud.com/x-nlktifqfsuwtyuzw) (Quit: Connection closed for inactivity)
2021-03-29 20:17:17 +0200 <tomsmeding> infinisil: the problem is that if the Method is on the value level, you need to explicitly pattern match on it to obtain the Show dictionaries
2021-03-29 20:17:37 +0200 <tomsmeding> in fact, at runtime, that's _necessary_, because otherwise the runtime doesn't know what 'show' method to call
2021-03-29 20:17:55 +0200 <infinisil> Yeah, but it could theoretically be derived automatically still
2021-03-29 20:20:26 +0200 <Gurkenglas> dolio, what do you mean by Σ? I can find Ω on https://ncatlab.org/nlab/show/truth+value but not Σ
2021-03-29 20:27:50 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 20:30:41 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-03-29 20:31:04 +0200dpl_(~dpl@77.121.78.163)
2021-03-29 20:31:22 +0200 <tomsmeding> Gurkenglas: I believe the "overlapping instances" error is a side effect of writing a context mentioning variables 'a', 'b', without the constrained type (here '()') also mentioning them
2021-03-29 20:31:33 +0200gitgood(~gitgood@80-44-12-39.dynamic.dsl.as9105.com)
2021-03-29 20:32:56 +0200kuribas(~user@ptr-25vy0i9nyhjns61vpxg.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-03-29 20:33:03 +0200 <infinisil> I want to write `makeRequest :: forall (method :: Method i o) i o. ...`
2021-03-29 20:33:21 +0200 <infinisil> So that I can e.g. do `makeRequest @IsRoot`
2021-03-29 20:33:37 +0200 <infinisil> But this doesn't work, because `i` and `o` aren't in scope when `method` is defined
2021-03-29 20:33:57 +0200 <infinisil> And if I do `forall i o (method :: Method i o)`, I won't be able to do `makeRequest @IsRoot`
2021-03-29 20:34:05 +0200 <infinisil> Is there a solution for this?
2021-03-29 20:34:17 +0200 <dolio> Gurkenglas: Σ is the Sierpinski space.
2021-03-29 20:34:21 +0200 <Gurkenglas> dolio, can't one see () as Ω? One need merely admit that () is the terminal object, and then true: * -> Ω is id, and every (mono)morphism m: U -> X is the pullback of true and (\x:X -> if x is above m ⊥ then () else ⊥), yes?
2021-03-29 20:34:51 +0200knupfer(~Thunderbi@dynamic-046-114-145-192.46.114.pool.telefonica.de)
2021-03-29 20:36:00 +0200 <dolio> If () is Ω then it isn't also the terminal object.
2021-03-29 20:36:29 +0200 <tomsmeding> infinisil: makeRequest @_ @_ @IsRoot, or do `makeRequest :: Proxy (Method i o) -> ...` and write `makeRequest (Proxy @IsRoot) ...`
2021-03-29 20:36:57 +0200 <infinisil> Yeah that's a workaround, but I wonder if `makeRequest @IsRoot` can be made to work
2021-03-29 20:37:15 +0200 <infinisil> Seems so simple
2021-03-29 20:37:45 +0200 <dolio> Anyhow, domain theory is not the right setting for having these kind of distinctions, I think.
2021-03-29 20:37:53 +0200 <ski> @where topology
2021-03-29 20:37:53 +0200 <lambdabot> "topology in Haskell" <http://www.haskell.org/pipermail/haskell/2004-June/014134.html> and "Synthetic topology of data types and classical spaces" <http://www.cs.bham.ac.uk/~mhe/papers/entcs87.(pdf|
2021-03-29 20:37:53 +0200 <lambdabot> dvi|ps)> by Mart�n Escard�
2021-03-29 20:37:54 +0200stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-03-29 20:37:59 +0200 <ski> Gurkenglas ^
2021-03-29 20:38:01 +0200 <ski> also
2021-03-29 20:38:02 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Read error: Connection reset by peer)
2021-03-29 20:38:05 +0200heatsink(~heatsink@2600:1700:bef1:5e10:f0bc:f236:90c7:a6f5) (Remote host closed the connection)
2021-03-29 20:38:06 +0200 <ski> @where impossible
2021-03-29 20:38:06 +0200 <lambdabot> <http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/>,<http://math.andrej.com/2008/11/21/a-haskell-monad-for-infinite-search-in-finite-time/>
2021-03-29 20:38:21 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-03-29 20:38:23 +0200stree(~stree@68.36.8.116)
2021-03-29 20:38:28 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-29 20:38:48 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-29 20:39:16 +0200pera(~pera@unaffiliated/pera)
2021-03-29 20:39:29 +0200 <ski> Gurkenglas : and the paper by Andrej Bauer i linked to, one and a half hour ago
2021-03-29 20:41:27 +0200 <dolio> Anyhow, there are many sorts of truth values computably. There is 2, for decidable truth, Σ for semi-decidable truth, and Ω for provable truth.
2021-03-29 20:41:43 +0200darjeeling_(~darjeelin@115.215.42.89) (Ping timeout: 265 seconds)
2021-03-29 20:42:02 +0200 <dolio> Also perhaps ∇Ω for classical truth.
2021-03-29 20:42:38 +0200 <infinisil> Okay I'm bringing out the big guns, type families
2021-03-29 20:42:50 +0200 <infinisil> data Method = IsRoot | GetName
2021-03-29 20:43:17 +0200 <infinisil> type family MethodInput (m :: Method) where MethodInput IsRoot = Int MethodInput GetName = Int
2021-03-29 20:43:23 +0200 <infinisil> Similarly for MethodOutput
2021-03-29 20:43:26 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 240 seconds)
2021-03-29 20:43:29 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-03-29 20:43:34 +0200 <dolio> Domain theoretic semantics of something like Haskell allow you to encode some of the Σ part as procedures, but it doesn't have a good story for the rest.
2021-03-29 20:43:36 +0200 <infinisil> This feels like a step in the right direction
2021-03-29 20:43:39 +0200 <infinisil> tomsmeding: ^
2021-03-29 20:43:41 +0200 <ski> "How many is two?" by ibid in 2005-05-16 at <http://math.andrej.com/2005/05/16/how-many-is-two/> could also be interesting, yea
2021-03-29 20:43:58 +0200pera(~pera@unaffiliated/pera) (Ping timeout: 240 seconds)
2021-03-29 20:45:36 +0200slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-03-29 20:47:50 +0200shailangsa(~shailangs@host86-186-196-238.range86-186.btcentralplus.com)
2021-03-29 20:48:07 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-03-29 20:49:28 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-03-29 20:49:47 +0200 <tomsmeding> infinisil: if it works, it works, but I don't see yet how to get the Show constraints in the right place that way; but I haven't thought about it much either :)
2021-03-29 20:51:56 +0200Guest29(~textual@109.246.40.24)
2021-03-29 20:53:47 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 20:54:07 +0200 <monochrom> ski: There is a Chinese novel that has this plot point of how a villain aquitted himself of a promise of "I won't tell this secret to the 5th person". So eventually he told the secret to a conference of a hundred people, and defended with "can you point out who's the 5th person?" >:)
2021-03-29 20:54:34 +0200darjeeling_(~darjeelin@122.245.122.120)
2021-03-29 20:54:52 +0200 <ski> hm
2021-03-29 20:55:08 +0200 <monochrom> (The number was 5 because initially this was a secret among 4 persons.)
2021-03-29 20:55:27 +0200 <ski> i see
2021-03-29 20:55:28 +0200atk(~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
2021-03-29 20:56:16 +0200 <monochrom> Conclusion: Intuitionistic constructivist logics are the root of all evil. >:)
2021-03-29 20:56:30 +0200 <ski> slightly apropos, i always found it weird, how apparently, at least in some jurisdictions, two people who've helped each other to commit a crime, can both be acquitted by the court, on the grounds that it can't be determined "who held the knife" (or whatever)
2021-03-29 20:57:07 +0200ph88(~ph88@2a02:8109:9e00:7e5c:4080:7dc1:315d:729)
2021-03-29 20:57:12 +0200 <justsomeguy> It seems like hackage is down. Is there a way for me to generate local documentation for QuickCheck with stack?
2021-03-29 20:57:42 +0200 <ski> it always seemed to me that, at least in common cases, it ought to be possible to charge and convict both of them of commiting either of the two deeds, and, serving out the greatest lower bound of the two associated penances, to both of them
2021-03-29 20:58:24 +0200ByteEater(57cd846a@gateway/web/cgi-irc/kiwiirc.com/ip.87.205.132.106)
2021-03-29 20:58:28 +0200 <ski> hehe, monochrom ;)
2021-03-29 20:59:13 +0200 <monochrom> Generally it looks like that if you put the burden of proof on one side you are bound to have this kind of asymmetries.
2021-03-29 21:00:08 +0200 <dolio> You can easily well-order finite sets, though. :)
2021-03-29 21:00:14 +0200atk(~Arch-TK@ircpuzzles/staff/Arch-TK)
2021-03-29 21:00:20 +0200 <dolio> Even intuitionistically.
2021-03-29 21:02:49 +0200 <ski> monochrom : iow, not "Either you committed this crime, or you committed that crime." but rather "You committed either this crime or that crime.". convicting both of them for the disjunction of the crimes
2021-03-29 21:03:15 +0200 <monochrom> The story was set in 11th century China, and the conference was of the martial art community. So unfortunately most of them were easily bluffed by these logical subtleties, apart from a few exceptional smartass villains.
2021-03-29 21:03:37 +0200 <justsomeguy> Seems that ''stack haddock'' was able to generate the html docs I was after.
2021-03-29 21:03:48 +0200heatsink(~heatsink@2600:1700:bef1:5e10:a5da:1e25:ab26:50f2)
2021-03-29 21:05:03 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
2021-03-29 21:05:35 +0200 <monochrom> ski: Hey, how about this idea: Order the formation of a company of those two persons. Now there is just one legal person, the company, to convict. Then the sole two shareholders take the common punishment.
2021-03-29 21:06:21 +0200 <monochrom> "homotopic criminal theory" >:)
2021-03-29 21:07:24 +0200 <ski> monochrom : hm. around when was it written ?
2021-03-29 21:07:41 +0200 <monochrom> 1960s or 1970s.
2021-03-29 21:07:49 +0200 <ski> monochrom : hehe :) .. could a court really order such a formation ?
2021-03-29 21:07:50 +0200 <ski> okay
2021-03-29 21:08:18 +0200 <ski> (also, wouldn't that legal person have had to existed, at the time in question for the deed ?)
2021-03-29 21:08:35 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 21:08:52 +0200 <monochrom> Just another cunning plan from monochrom that doesn't really work in practice. :)
2021-03-29 21:09:52 +0200ystael(~ystael@141.sub-174-242-80.myvzw.com)
2021-03-29 21:10:05 +0200idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2021-03-29 21:10:24 +0200Erutuon_(~Erutuon@97-116-16-233.mpls.qwest.net) (Ping timeout: 246 seconds)
2021-03-29 21:12:37 +0200Erutuon_(~Erutuon@97-116-16-233.mpls.qwest.net)
2021-03-29 21:13:43 +0200ski. o O ( "I have a cunning plan" <https://www.youtube.com/watch?v=AsXKS8Nyu8Q> )
2021-03-29 21:15:32 +0200heatsink(~heatsink@2600:1700:bef1:5e10:a5da:1e25:ab26:50f2) (Remote host closed the connection)
2021-03-29 21:17:33 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-29 21:19:13 +0200sorki(~sorki@gateway/tor-sasl/sorki)
2021-03-29 21:19:33 +0200hacxman(~hexo@gateway/tor-sasl/hexo)
2021-03-29 21:19:57 +0200srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
2021-03-29 21:19:57 +0200hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2021-03-29 21:19:58 +0200hacxmanhexo
2021-03-29 21:20:17 +0200woffs(3cd46299b2@woffs.de)
2021-03-29 21:20:25 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 21:20:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2021-03-29 21:21:02 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 21:21:38 +0200Vadrigar_(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-03-29 21:21:59 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-03-29 21:22:08 +0200 <wz1000> is there any nice way to define folds with unboxed result types?
2021-03-29 21:22:16 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-03-29 21:22:23 +0200sorkisrk
2021-03-29 21:22:26 +0200 <wz1000> I want something like `foldl :: forall r a (b :: TYPE r). (b -> a -> b) -> b -> [a] -> b`
2021-03-29 21:22:34 +0200woffs(3cd46299b2@woffs.de) ()
2021-03-29 21:22:57 +0200 <wz1000> s/unboxed result types/levity polymorphic result types/g
2021-03-29 21:24:12 +0200 <wz1000> This is my best attempt so far: https://gist.github.com/wz1000/2dee93d3b07825d1ae43cf43012adcc0
2021-03-29 21:24:44 +0200 <wz1000> it works fine for "simple" RuntimeReps, but breaks down for anything more compilicated involving unboxed tuples/sums etc.
2021-03-29 21:25:02 +0200 <wz1000> edwardk maybe?
2021-03-29 21:27:11 +0200michalz(~user@185.246.204.46) (Ping timeout: 240 seconds)
2021-03-29 21:27:26 +0200hidedagger(~nate@unaffiliated/hidedagger)
2021-03-29 21:33:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-29 21:34:07 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-03-29 21:39:05 +0200electricityZZZZ(~electrici@135-180-3-82.static.sonic.net) (Quit: Leaving)
2021-03-29 21:39:35 +0200 <ph88> is there any way to grab the data constructor functions from a data type ?
2021-03-29 21:40:40 +0200andrew2(602a442a@gateway/web/cgi-irc/kiwiirc.com/ip.96.42.68.42)
2021-03-29 21:42:31 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-03-29 21:42:58 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-03-29 21:43:44 +0200Natch(~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-03-29 21:43:50 +0200 <maerwald> with generics?
2021-03-29 21:44:05 +0200raichoo(~raichoo@dslb-188-109-062-207.188.109.pools.vodafone-ip.de)
2021-03-29 21:44:17 +0200 <ph88> ye ?
2021-03-29 21:44:26 +0200 <maerwald> yeah
2021-03-29 21:44:54 +0200 <ph88> oki thank you
2021-03-29 21:45:35 +0200Lord_of_Life_Lord_of_Life
2021-03-29 21:45:53 +0200lawid(~quassel@dslb-090-186-122-181.090.186.pools.vodafone-ip.de)
2021-03-29 21:46:32 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 21:48:15 +0200knupfer(~Thunderbi@dynamic-046-114-145-192.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2021-03-29 21:50:20 +0200andrew2(602a442a@gateway/web/cgi-irc/kiwiirc.com/ip.96.42.68.42) (Quit: Connection closed)
2021-03-29 21:50:57 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Ping timeout: 258 seconds)
2021-03-29 21:52:57 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-03-29 21:59:30 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-03-29 22:00:25 +0200molehillish(~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
2021-03-29 22:01:03 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-03-29 22:01:57 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-03-29 22:02:56 +0200aarvar(~foewfoiew@2601:602:a080:fa0:b1a9:3010:b3b8:f76d)
2021-03-29 22:04:11 +0200jjhoo(jahakala@dsl-trebng21-b048b5-171.dhcp.inet.fi) (Remote host closed the connection)
2021-03-29 22:05:00 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 246 seconds)
2021-03-29 22:07:06 +0200pupuupup_(~pupuupup@node-1p6.pool-125-24.dynamic.totinternet.net) (Ping timeout: 246 seconds)
2021-03-29 22:07:30 +0200petersen(~petersen@redhat/juhp)
2021-03-29 22:08:58 +0200solidus-river(~mike@174.127.249.180)
2021-03-29 22:10:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-29 22:11:47 +0200ByteEater(57cd846a@gateway/web/cgi-irc/kiwiirc.com/ip.87.205.132.106) (Quit: Connection closed)
2021-03-29 22:12:30 +0200 <mpickering> lyxia: Do you know of a "bind-like" operation for profunctors? Perhaps something like `p a b -> (b -> p c d) -> p (a, c) d`
2021-03-29 22:12:54 +0200 <mpickering> I want the structure to be able to depend on the result of the first computation
2021-03-29 22:13:08 +0200 <mpickering> but not sure how to generalise to the in/out parameters
2021-03-29 22:14:01 +0200heatsink(~heatsink@2600:1700:bef1:5e10:a5da:1e25:ab26:50f2)
2021-03-29 22:16:37 +0200ystael(~ystael@141.sub-174-242-80.myvzw.com) (Read error: Connection reset by peer)
2021-03-29 22:17:00 +0200 <mpickering> I suppose you could just have `(p a) b -> (b -> (p a) c) -> (p a) c`
2021-03-29 22:18:03 +0200jjhoo(jahakala@dsl-trebng21-b048b5-171.dhcp.inet.fi)
2021-03-29 22:20:10 +0200 <koz_> :t foldl'
2021-03-29 22:20:11 +0200 <lambdabot> Foldable t => (b -> a -> b) -> b -> t a -> b
2021-03-29 22:21:18 +0200Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
2021-03-29 22:24:00 +0200 <joel135> (p a) is a monad that depends contravariantly on a ?
2021-03-29 22:25:45 +0200nuncanada(~dude@179.235.160.168) (Read error: Connection reset by peer)
2021-03-29 22:26:10 +0200csadilek(~csadilek@178.239.168.171) (Remote host closed the connection)
2021-03-29 22:28:22 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-03-29 22:29:51 +0200heatsink(~heatsink@2600:1700:bef1:5e10:a5da:1e25:ab26:50f2) (Remote host closed the connection)
2021-03-29 22:30:11 +0200codygman`(~user@47.186.207.161)
2021-03-29 22:30:34 +0200mach1speed(~textual@S0106f0b4d2c39cee.va.shawcable.net)
2021-03-29 22:31:37 +0200marinelli(~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli)
2021-03-29 22:32:06 +0200geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-03-29 22:32:10 +0200codygman__(~user@209.251.131.98) (Ping timeout: 260 seconds)
2021-03-29 22:32:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-29 22:36:28 +0200raichoo(~raichoo@dslb-188-109-062-207.188.109.pools.vodafone-ip.de) (Quit: Lost terminal)
2021-03-29 22:36:39 +0200viluon(uid453725@gateway/web/irccloud.com/x-retpginqhscxyaoj)
2021-03-29 22:37:01 +0200Sornaensis(~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
2021-03-29 22:39:26 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-03-29 22:41:33 +0200kenran(~kenran@i59F67B6E.versanet.de)
2021-03-29 22:41:37 +0200Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-03-29 22:42:19 +0200mach1speed(~textual@S0106f0b4d2c39cee.va.shawcable.net) (Ping timeout: 268 seconds)
2021-03-29 22:44:39 +0200mach1speed(~textual@S0106f0b4d2c39cee.va.shawcable.net)
2021-03-29 22:44:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-29 22:45:06 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-03-29 22:46:18 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-03-29 22:46:55 +0200mach1speed(~textual@S0106f0b4d2c39cee.va.shawcable.net) (Client Quit)
2021-03-29 22:48:08 +0200nuncanada(~dude@179.235.160.168)
2021-03-29 22:50:08 +0200Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Read error: Connection reset by peer)
2021-03-29 22:50:36 +0200aarvar(~foewfoiew@2601:602:a080:fa0:b1a9:3010:b3b8:f76d) (Quit: Leaving.)
2021-03-29 22:53:43 +0200aarvar(~foewfoiew@2601:602:a080:fa0:e872:21d9:dd64:69e7)
2021-03-29 22:53:43 +0200Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
2021-03-29 22:54:49 +0200 <lyxia> mpickering: indeed, that's also what I do in my paper and you can derive a thing with your former bind-like type from it.
2021-03-29 22:56:29 +0200coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-03-29 22:57:01 +0200Guest29(~textual@109.246.40.24) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-03-29 22:59:39 +0200stree(~stree@68.36.8.116)
2021-03-29 22:59:59 +0200outerpassage_(outerpassa@2600:3c01::f03c:92ff:fed1:4643) (Quit: quitting)
2021-03-29 23:00:14 +0200outerpassage(~outerpass@li1196-30.members.linode.com)
2021-03-29 23:00:32 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:b98b:75b0:1d5d:7be4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 23:02:32 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-03-29 23:03:53 +0200aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-29 23:04:16 +0200mflux(flux@2001:708:310:3430:4506:8c48:1ba0:18ff) (Ping timeout: 240 seconds)
2021-03-29 23:04:23 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-03-29 23:05:09 +0200flx_(flux@coffee.modeemi.fi)
2021-03-29 23:05:11 +0200sparsity(5ce955fb@gateway/web/cgi-irc/kiwiirc.com/ip.92.233.85.251)
2021-03-29 23:05:19 +0200fen(5ce955fb@gateway/web/cgi-irc/kiwiirc.com/ip.92.233.85.251)
2021-03-29 23:05:22 +0200flx_mflux
2021-03-29 23:05:39 +0200aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-03-29 23:06:16 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-03-29 23:08:01 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 276 seconds)
2021-03-29 23:11:05 +0200 <fen> @let scanner f a = snd . mapAccumL f a
2021-03-29 23:11:07 +0200 <lambdabot> .L.hs:173:1: error: [-Woverlapping-patterns, -Werror=overlapping-patterns]
2021-03-29 23:11:07 +0200 <lambdabot> Pattern match is redundant
2021-03-29 23:11:07 +0200 <lambdabot> In an equation for ‘scanner’: scanner f a = ...
2021-03-29 23:11:38 +0200 <fen> @undefine
2021-03-29 23:11:38 +0200 <lambdabot> Undefined.
2021-03-29 23:11:41 +0200 <fen> @let scanner f a = snd . mapAccumL f a
2021-03-29 23:11:42 +0200 <lambdabot> Defined.
2021-03-29 23:11:58 +0200 <fen> :t \ f g a b -> sum $ uncurry (zipWith (+)) $ fmap (scanner f a) $ unzip $ unfoldr g b
2021-03-29 23:11:59 +0200 <lambdabot> Num a1 => (a2 -> b1 -> (a2, a1)) -> (b2 -> Maybe ((a1, b1), b2)) -> a2 -> b2 -> a1
2021-03-29 23:12:05 +0200Ahmuck(~Ahmuck@139.28.218.148)
2021-03-29 23:13:32 +0200arturh(~arturh@93.176.180.48)
2021-03-29 23:16:46 +0200zaquest(~notzaques@5.128.210.178) (Ping timeout: 240 seconds)
2021-03-29 23:19:37 +0200 <sparsity> (a=s_t0,(x_tn,w_tn,s_tn+1) = g s_tn)
2021-03-29 23:19:39 +0200 <sparsity> (b=r_t0,(y_tn,r_tn+1)= f (r_tn,w_tn)
2021-03-29 23:19:45 +0200 <sparsity> )
2021-03-29 23:21:17 +0200son0p(~son0p@181.136.122.143)
2021-03-29 23:21:48 +0200arturh(~arturh@93.176.180.48) ()
2021-03-29 23:22:46 +0200zaquest(~notzaques@5.128.210.178)
2021-03-29 23:23:46 +0200kenran(~kenran@i59F67B6E.versanet.de) (Quit: leaving)
2021-03-29 23:23:57 +0200acidjnk_new(~acidjnk@p200300d0c72b95739d8477eb9e4283c0.dip0.t-ipconnect.de)
2021-03-29 23:24:32 +0200sgibber2018(d055ed90@208.85.237.144) (Quit: Connection closed)
2021-03-29 23:26:38 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-29 23:26:58 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
2021-03-29 23:27:06 +0200dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
2021-03-29 23:27:33 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Read error: Connection reset by peer)
2021-03-29 23:27:51 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-29 23:28:15 +0200Franciman(~francesco@host-79-53-62-46.retail.telecomitalia.it) (Quit: Leaving)
2021-03-29 23:28:35 +0200Guest23256(~textual@mskresolve-a.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-29 23:28:48 +0200dpl__(~dpl@77.121.78.163)
2021-03-29 23:28:48 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-03-29 23:28:48 +0200ystael(~ystael@209.6.50.55)
2021-03-29 23:30:17 +0200heatsink(~heatsink@2600:1700:bef1:5e10:a5da:1e25:ab26:50f2)
2021-03-29 23:32:11 +0200dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-29 23:32:38 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-03-29 23:33:04 +0200 <statusbot> Status update: Hackage storage update complete -- back up and running. -- http://status.haskell.org/pages/incident/537c07b0cf1fad5830000093/606200df2a84ed05341dcbf1
2021-03-29 23:33:35 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
2021-03-29 23:34:34 +0200heatsink(~heatsink@2600:1700:bef1:5e10:a5da:1e25:ab26:50f2) (Ping timeout: 245 seconds)
2021-03-29 23:34:46 +0200Sorna(~Sornaensi@185.217.117.121)
2021-03-29 23:35:09 +0200dpl__(~dpl@77.121.78.163) (Quit: dpl__)
2021-03-29 23:35:47 +0200fendor_(~fendor@91.141.2.121.wireless.dyn.drei.com)
2021-03-29 23:36:01 +0200conal(~conal@64.71.133.70)
2021-03-29 23:37:08 +0200Sornaensis(~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 252 seconds)
2021-03-29 23:38:02 +0200kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-03-29 23:38:03 +0200borne(~fritjof@200116b864978000f7ed9fd86a2491f0.dip.versatel-1u1.de)
2021-03-29 23:38:06 +0200fendor(~fendor@77.119.130.24.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-03-29 23:38:39 +0200stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-03-29 23:39:06 +0200stree(~stree@68.36.8.116)
2021-03-29 23:40:03 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-29 23:40:49 +0200 <mpickering> lyxia: Thanks, I am playing with the idea of a build system built on free profunctors
2021-03-29 23:45:48 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-03-29 23:46:07 +0200dpl_(~dpl@77.121.78.163) (Read error: Connection reset by peer)
2021-03-29 23:46:20 +0200Wuzzy(~Wuzzy@p5790e118.dip0.t-ipconnect.de)
2021-03-29 23:47:03 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-03-29 23:50:23 +0200 <sparsity> i thought free things only could have functors in
2021-03-29 23:50:32 +0200kupi(uid212005@gateway/web/irccloud.com/x-ufrrxovbropqrvyy)
2021-03-29 23:50:33 +0200 <sparsity> or something
2021-03-29 23:50:44 +0200 <sparsity> free monads for less
2021-03-29 23:50:55 +0200 <sparsity> i see no profunctors
2021-03-29 23:51:35 +0200Alleria(~textual@2603-7000-3040-0000-29c5-30e3-fcb5-0c65.res6.spectrum.com)
2021-03-29 23:51:54 +0200 <sparsity> its probably quite technical...
2021-03-29 23:51:58 +0200AlleriaGuest5519
2021-03-29 23:52:19 +0200fendor_(~fendor@91.141.2.121.wireless.dyn.drei.com) (Remote host closed the connection)
2021-03-29 23:54:49 +0200conal(~conal@64.71.133.70)
2021-03-29 23:55:46 +0200Guest5519(~textual@2603-7000-3040-0000-29c5-30e3-fcb5-0c65.res6.spectrum.com) (Ping timeout: 245 seconds)
2021-03-29 23:57:57 +0200usr25(~J@121.red-88-0-140.dynamicip.rima-tde.net)
2021-03-29 23:58:00 +0200mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)