2020/10/17

2020-10-17 00:00:35 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 00:02:12 +0200 <frdg> why would somebody search for functions on stackage instead of hoogle?
2020-10-17 00:02:22 +0200Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds))
2020-10-17 00:02:44 +0200Katarushisu(~Katarushi@82.30.254.24)
2020-10-17 00:02:46 +0200 <monochrom> Is that a rhetorical question?
2020-10-17 00:02:47 +0200conal(~conal@64.71.133.70)
2020-10-17 00:03:15 +0200coot(~coot@37.30.35.208.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-10-17 00:03:26 +0200chaosmasttter(~chaosmast@p200300c4a710fa01b4d1efe2d5e04ce9.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-17 00:03:41 +0200 <frdg> no. I saw someone use it in a video. This is what I mean by stackage. https://www.stackage.org/
2020-10-17 00:04:00 +0200theorb(~theorb@cpc81860-swin19-2-0-cust166.3-1.cable.virginm.net)
2020-10-17 00:04:11 +0200Rudd0(~Rudd0@185.189.115.108)
2020-10-17 00:04:39 +0200 <monochrom> I don't use stack or stackage. But I think I understand that a stackage user would like to avoid getting search hits that hit outside stackage.
2020-10-17 00:06:29 +0200 <frdg> alright. As always I am confused about what stack even is. I used stack for my project and I was able to use packages from everywhere.
2020-10-17 00:06:33 +0200 <monochrom> I certainly do the parallel thing myself. When I'm looking for "getArgs" in the libraries I actually have, I'm not going to Google it worldwide.
2020-10-17 00:07:30 +0200shafox(~shafox@106.51.234.111)
2020-10-17 00:07:44 +0200skami(~user@24.225.186.176)
2020-10-17 00:07:45 +0200 <frdg> ohh stackage is like hackage.
2020-10-17 00:08:07 +0200theorbtwo(~theorb@cpc81860-swin19-2-0-cust166.3-1.cable.virginm.net) (Ping timeout: 246 seconds)
2020-10-17 00:08:09 +0200 <monochrom> stackage is a meticulously hand-checked subset of hackage.
2020-10-17 00:08:50 +0200 <frdg> ok I see
2020-10-17 00:08:52 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-10-17 00:09:09 +0200 <monochrom> and the subsetness is along at least 2 orthogonal axis at the same time.
2020-10-17 00:09:29 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2020-10-17 00:09:52 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-17 00:10:20 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1998:2d6c:5e41:4ff5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 00:10:29 +0200kupi(uid212005@gateway/web/irccloud.com/x-uvssjsekmuehxron)
2020-10-17 00:10:51 +0200Lycurgus(~niemand@98.4.96.235) (Quit: Exeunt)
2020-10-17 00:11:21 +0200 <monochrom> I had a software engineering prof who explained how to achieve reproducible, consistent build of legacy software. Say for example you have pretty old but time-tested code, you just need to fix a small bug.
2020-10-17 00:11:33 +0200dhil(~dhil@78.156.97.38) (Ping timeout: 258 seconds)
2020-10-17 00:12:22 +0200 <monochrom> You may have to be so anal down to the point you have to keep around the old compiler version you used last time, the old OS you used last time, the old hardware you used last time.
2020-10-17 00:12:44 +0200jsynacek(~jsynacek@ip-185-149-130-112.kmenet.cz) (Ping timeout: 272 seconds)
2020-10-17 00:13:02 +0200 <monochrom> stackage's purpose is doing that for library dependencies.
2020-10-17 00:13:58 +0200 <pjb> Yes, you can try.
2020-10-17 00:14:01 +0200 <frdg> ok that makes sense.
2020-10-17 00:14:31 +0200 <pjb> But often you need to keep the old hardware too, and here is the problem. Hardware breaks. Virtual machines bit-rot.
2020-10-17 00:14:40 +0200 <pjb> It's a full-time job.
2020-10-17 00:15:21 +0200son0p(~son0p@181.136.122.143)
2020-10-17 00:15:25 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:7144:6660:b16:ebff)
2020-10-17 00:15:31 +0200 <monochrom> We do demand our governments and corporate overlords of "more jobs, and they have to be full-time jobs", no? :)
2020-10-17 00:16:01 +0200 <dibblego> I use av sim software that only runs on windows-xp
2020-10-17 00:16:32 +0200 <gentauro> 00:02 < frdg> why would somebody search for functions on stackage instead of hoogle?
2020-10-17 00:16:45 +0200 <gentauro> frdg: I wouldn't. Hoogle is pretty fast and `stackage` not so much …
2020-10-17 00:17:41 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-10-17 00:19:38 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 00:20:48 +0200elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-10-17 00:21:25 +0200 <johnw> I have an app that only works on xp too
2020-10-17 00:22:07 +0200 <johnw> I have a VM where that app has been running for the last 20 years, only ever being suspended, never exited, because I wouldn't be able to restart it now
2020-10-17 00:24:16 +0200conal(~conal@64.71.133.70)
2020-10-17 00:27:14 +0200fendor(~fendor@046124068105.public.t-mobile.at) (Remote host closed the connection)
2020-10-17 00:28:23 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 260 seconds)
2020-10-17 00:28:45 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 00:30:15 +0200 <dibblego> heh, yeah I use vbox for winxp — aviation is stuck in the 1960s
2020-10-17 00:30:38 +0200netsoundW1(~netsoundW@84.39.116.180)
2020-10-17 00:31:16 +0200 <hpc> sometimes it seems like it should stay there
2020-10-17 00:31:23 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-17 00:31:32 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-17 00:31:42 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-17 00:31:43 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-17 00:31:43 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-17 00:32:00 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-17 00:35:04 +0200Ariakenom(~Ariakenom@h-98-128-228-53.NA.cust.bahnhof.se) (Quit: Leaving)
2020-10-17 00:35:19 +0200slack1256(~slack1256@181.203.95.77) (Ping timeout: 265 seconds)
2020-10-17 00:35:29 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:7144:6660:b16:ebff) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 00:35:40 +0200 <dibblego> today I have 4 flights totalling ~6 hours. It is going to be a 18 hour day
2020-10-17 00:40:33 +0200Ohg(~ohg@5.80.254.148)
2020-10-17 00:40:57 +0200 <monochrom> I once booked my flight from Munich to Toronto too late. The booking was very late, pretty last minute (OK, last week), it was also summer, so availability sucked. Therefore...
2020-10-17 00:40:58 +0200hackagechurros 0.1.3.0 - Channel/Arrow based streaming computation library. https://hackage.haskell.org/package/churros-0.1.3.0 (LyndonMaydwell)
2020-10-17 00:42:08 +0200 <monochrom> it consisted of Munich -> London -> Halifax and St. John (no need to leave plane) -> Montreal -> Toronto
2020-10-17 00:42:21 +0200 <monochrom> It spanned 24 hours.
2020-10-17 00:43:13 +0200 <monochrom> (no need to leave plane between Halifax and St. John. I forgot which order.)
2020-10-17 00:43:17 +0200 <dibblego> I am doing 4 flights today, in command, totalling 6 hours. Since aviation is stuck in the 1960s, I anticipate an additional 12 hours of error-prone, manual administration work
2020-10-17 00:43:36 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-10-17 00:43:43 +0200 <hpc> oh wow, that kind of "have 4 flights"
2020-10-17 00:44:21 +0200 <dibblego> I may have added that up incorrectly. Standby while I find my pen.
2020-10-17 00:45:14 +0200frdg(47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection)
2020-10-17 00:45:31 +0200 <int-e> . o O ( time flies )
2020-10-17 00:45:35 +0200 <hpc> although, apparently newer gulfstreams are modern in a pretty nice way
2020-10-17 00:45:54 +0200chris(~chris@81.96.113.213)
2020-10-17 00:45:56 +0200 <hpc> (source, https://www.code7700.com/ which has some pretty interesting blog posts)
2020-10-17 00:46:16 +0200chrisGuest62583
2020-10-17 00:47:26 +0200 <monochrom> I guess software project delays and flight delays have a lot in common.
2020-10-17 00:47:57 +0200hackagewebby 1.0.1 - A super-simple web server framework https://hackage.haskell.org/package/webby-1.0.1 (AdityaManthramurthy)
2020-10-17 00:48:00 +0200 <monochrom> Or "delays" because perhaps we simply always underestimate schedules.
2020-10-17 00:48:24 +0200 <hpc> monochrom: you should read that link, it's shocking how much is the same
2020-10-17 00:48:40 +0200 <dibblego> my first one is 0030Z-0200Z want to time it?
2020-10-17 00:50:38 +0200 <dibblego> that website is very US-oriented and generalises inaccurately in places
2020-10-17 00:50:39 +0200mimi_vx(mimi1vx@nat/suse/x-rrcxinfwcsbojhcp) (Ping timeout: 258 seconds)
2020-10-17 00:50:57 +0200 <hpc> exactly like programming!
2020-10-17 00:51:14 +0200 <dibblego> :)
2020-10-17 00:51:40 +0200Guest62583(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 00:52:37 +0200 <dibblego> better go
2020-10-17 00:54:43 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 00:55:34 +0200Alleria_(~AllahuAkb@2604:2000:1484:26:dcad:5cf5:9c19:447f)
2020-10-17 00:55:39 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 256 seconds)
2020-10-17 00:59:09 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-17 01:00:25 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-17 01:01:57 +0200 <justsomeguy> This is kind of a shot in the dark, but ... Where did the idea of pattern matching come from? I'm somewhat interested in what the original motivation was for creating the feature.
2020-10-17 01:02:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-10-17 01:02:54 +0200 <justsomeguy> I guess I should probably start by looking searching for things related ML or CLU.
2020-10-17 01:04:27 +0200 <monochrom> I know pretty little, but ML is the earliest I know of.
2020-10-17 01:05:00 +0200 <dminuoso> justsomeguy: ALGOL 68 seems to be the earliest language that supports it
2020-10-17 01:05:29 +0200 <monochrom> But did Algol 68 have algebraic data types?
2020-10-17 01:05:32 +0200Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Quit: Leaving)
2020-10-17 01:05:32 +0200 <dminuoso> At least that's what a little bit of wiki warrioring reveals
2020-10-17 01:05:40 +0200 <hpc> if it had a mathematical inspiration, it would probably be definition by parts
2020-10-17 01:05:53 +0200 <dminuoso> monochrom: well you had union types, at least.
2020-10-17 01:06:03 +0200 <monochrom> OK that counts.
2020-10-17 01:06:17 +0200 <dolio> https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf
2020-10-17 01:06:51 +0200 <dolio> Might be earlier than 66, too, though.
2020-10-17 01:06:54 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-10-17 01:06:56 +0200Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-10-17 01:07:16 +0200 <justsomeguy> Funny; Half the time I ask where a PL feature originates from, it leads to Algol 68.
2020-10-17 01:10:14 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-10-17 01:12:29 +0200 <dolio> Hah, the ISWIM paper is already using the phrase "purely functional" in 1966.
2020-10-17 01:13:21 +0200Ohg(~ohg@5.80.254.148) (Remote host closed the connection)
2020-10-17 01:16:49 +0200avn(~avn@78-56-108-78.static.zebra.lt) (Read error: Connection reset by peer)
2020-10-17 01:18:20 +0200 <ski> (Peano) recursive definition of operations on naturals is older
2020-10-17 01:19:34 +0200ski. o O ( <https://plato.stanford.edu/entries/recursive-functions/> )
2020-10-17 01:20:01 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-10-17 01:22:40 +0200johnw(~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
2020-10-17 01:23:34 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:f977:bb39:9180:7f9c)
2020-10-17 01:23:50 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 01:25:27 +0200conal(~conal@64.71.133.70)
2020-10-17 01:26:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-17 01:28:03 +0200earldouglas(~james@unaffiliated/jamestastic)
2020-10-17 01:28:11 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-10-17 01:28:22 +0200 <earldouglas> Is there a way to pattern match on a newtype constructor that's in a hidden module?
2020-10-17 01:29:22 +0200 <hpc> somehow or another, the data constructor needs to be in scope in order to match on it
2020-10-17 01:30:21 +0200 <L29Ah> earldouglas: can't you coerce instead?
2020-10-17 01:31:01 +0200Alleria_(~AllahuAkb@2604:2000:1484:26:dcad:5cf5:9c19:447f) (Quit: Textual IRC Client: www.textualapp.com)
2020-10-17 01:32:25 +0200whatisRT(~whatisRT@2002:5b41:6a33:0:d585:23a3:86e4:f2b4) (Ping timeout: 240 seconds)
2020-10-17 01:34:52 +0200anik(~anik@103.23.207.151)
2020-10-17 01:35:52 +0200 <monochrom> "This instance is only usable if the constructor MkNT is in scope."
2020-10-17 01:36:16 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 01:36:39 +0200conal(~conal@64.71.133.70)
2020-10-17 01:37:31 +0200mimi_vx(mimi1vx@nat/suse/x-mbferublenzmdqyh)
2020-10-17 01:37:51 +0200 <earldouglas> L29Ah: Do you mean `Data.Coerce (coerce)`? I'm not sure how to use that.
2020-10-17 01:38:09 +0200 <monochrom> Yes. And unusable as said.
2020-10-17 01:39:16 +0200slack1256(~slack1256@181.203.95.77)
2020-10-17 01:39:32 +0200son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-10-17 01:40:27 +0200 <earldouglas> monochrom: Ah, I see that now. Yeah, coerce fails with "The data constructor ... of newtype ... is not in scope"
2020-10-17 01:41:37 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca)
2020-10-17 01:41:38 +0200 <earldouglas> I'm probably doing something wrong, but this feels like a bug. Is it even possible to use requestAccept? https://hackage.haskell.org/package/cgi-3001.5.0.0/docs/Network-CGI.html#v:requestAccept
2020-10-17 01:41:39 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-17 01:42:02 +0200 <earldouglas> I can't import Accept, which is hidden in Network.CGI.Accept, then re-exprted in Network.CGI
2020-10-17 01:42:35 +0200ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-17 01:42:37 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 01:43:17 +0200anik(~anik@103.23.207.151) (Quit: Textual IRC Client: www.textualapp.com)
2020-10-17 01:43:47 +0200chris(~chris@81.96.113.213)
2020-10-17 01:44:10 +0200chrisGuest96118
2020-10-17 01:45:48 +0200 <monochrom> Use negotiate?
2020-10-17 01:46:30 +0200Guest96118(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 01:49:30 +0200 <earldouglas> That should work. Thanks!
2020-10-17 01:51:14 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-17 01:51:14 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-17 01:51:14 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-17 01:52:23 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
2020-10-17 01:53:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 01:54:20 +0200Alleria_(~AllahuAkb@2604:2000:1484:26:4c41:7084:aa7f:3802)
2020-10-17 01:55:37 +0200anik(~anik@103.23.207.151)
2020-10-17 01:56:11 +0200larou(5201f2b7@gateway/web/cgi-irc/kiwiirc.com/ip.82.1.242.183)
2020-10-17 01:56:12 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 01:58:09 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:f977:bb39:9180:7f9c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 01:58:26 +0200 <larou> do constraints in smart constructors work at type level?
2020-10-17 01:58:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-17 02:00:02 +0200netsoundW1(~netsoundW@84.39.116.180) ()
2020-10-17 02:01:18 +0200karanlikmadde(~karanlikm@2a01:c23:6037:1800:955:6189:d72:9daf) (Quit: karanlikmadde)
2020-10-17 02:04:38 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 260 seconds)
2020-10-17 02:08:08 +0200unlink2(~unlink2@p57b852f3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-17 02:08:20 +0200ephemera_(~E@122.34.1.187)
2020-10-17 02:09:57 +0200hackageminio-hs 1.5.3 - A MinIO Haskell Library for Amazon S3 compatible cloudstorage. https://hackage.haskell.org/package/minio-hs-1.5.3 (AdityaManthramurthy)
2020-10-17 02:11:55 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds)
2020-10-17 02:15:11 +0200 <larou> hmm, it seems like it works!
2020-10-17 02:15:19 +0200 <larou> thats quite interesting
2020-10-17 02:15:27 +0200 <larou> i didnt think constraints at type level would work
2020-10-17 02:15:37 +0200 <larou> but apparently this is a workaround! woop!
2020-10-17 02:15:56 +0200 <larou> https://pastebin.com/raw/R1YH9J7e
2020-10-17 02:16:20 +0200 <larou> so apparently, you can provide constraints at type level using smart constructors
2020-10-17 02:17:00 +0200 <larou> this gives the "place in syntax" where the constraint goes, since it would be an error if it appeared in a kind...
2020-10-17 02:17:17 +0200 <larou> i think... unless some recent extension like standalone kind signatures enables this
2020-10-17 02:17:20 +0200mirrorbird(~psutcliff@m83-187-163-53.cust.tele2.se) (Quit: Leaving)
2020-10-17 02:17:28 +0200 <larou> anyone know if it does?
2020-10-17 02:19:07 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-vrmickywrfnlobks) (Quit: Connection closed for inactivity)
2020-10-17 02:20:15 +0200halogenandtoast(~halogenan@072-176-116-031.res.spectrum.com)
2020-10-17 02:20:31 +0200 <halogenandtoast> If I have an instance like this deriving anyclass instance (IsInvestigator investigator) => HasModifiersFor env investigator Asset is there anyway to have another instance with a different constraint?
2020-10-17 02:20:44 +0200jedws(~jedws@121.209.161.98)
2020-10-17 02:21:00 +0200 <halogenandtoast> Just changing the constraint will give a duplicate instance error.
2020-10-17 02:22:35 +0200isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Remote host closed the connection)
2020-10-17 02:23:39 +0200polyrain(~polyrain@130.102.13.188)
2020-10-17 02:26:36 +0200conal(~conal@64.71.133.70)
2020-10-17 02:27:03 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-10-17 02:27:37 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-10-17 02:28:00 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
2020-10-17 02:29:51 +0200elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-17 02:31:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 02:32:58 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de)
2020-10-17 02:33:38 +0200 <larou> halogenandtoast: would it be possible to provide an extra parameter that could "label" these instances?
2020-10-17 02:34:14 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-10-17 02:34:24 +0200 <larou> your essentially trying to match on constraints
2020-10-17 02:37:52 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-17 02:37:53 +0200dmwit(~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-17 02:39:58 +0200klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) (Quit: WeeChat 2.8)
2020-10-17 02:40:56 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds)
2020-10-17 02:41:37 +0200dmwit(~dmwit@pool-108-18-228-100.washdc.fios.verizon.net)
2020-10-17 02:43:44 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2020-10-17 02:44:26 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 02:45:06 +0200 <halogenandtoast> larou: ooh interesting, the answer is assuredly yes, I could
2020-10-17 02:45:31 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 02:45:31 +0200 <larou> i think thats the best way to do that
2020-10-17 02:46:07 +0200conal(~conal@64.71.133.70)
2020-10-17 02:46:38 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-17 02:46:56 +0200 <halogenandtoast> larou: thanks, I may try that if my current route (just removing the polymorphism) doesn't work out for me.
2020-10-17 02:47:48 +0200 <larou> if you do, you can create a sum datatype with constructors that dont take arguments (like Bool)
2020-10-17 02:48:09 +0200 <larou> with one of each of these "labels" to disambiguate the instances
2020-10-17 02:48:25 +0200alp_(~alp@2a01:e0a:58b:4920:8c10:5fbc:1459:e068) (Ping timeout: 272 seconds)
2020-10-17 02:49:00 +0200klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net)
2020-10-17 02:49:51 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-17 02:49:57 +0200conal(~conal@64.71.133.70)
2020-10-17 02:50:18 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:c99f:20b5:4775:2afa)
2020-10-17 02:52:28 +0200slack1256(~slack1256@181.203.95.77) (Ping timeout: 260 seconds)
2020-10-17 02:54:33 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:c99f:20b5:4775:2afa) (Client Quit)
2020-10-17 02:55:14 +0200slack1256(~slack1256@191.125.41.183)
2020-10-17 02:55:38 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 02:57:10 +0200conal(~conal@64.71.133.70)
2020-10-17 02:57:33 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-17 02:58:32 +0200 <monochrom> Today I begin to learn the Yoneda lemma. Interesting.
2020-10-17 02:59:01 +0200conal(~conal@64.71.133.70)
2020-10-17 02:59:07 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-17 02:59:56 +0200 <monochrom> It currently feels like setting up a lot of machinery to conclude very little. But I haven't applied it to really interesting things.
2020-10-17 03:01:26 +0200polyrain(~polyrain@130.102.13.188) (Quit: Textual IRC Client: www.textualapp.com)
2020-10-17 03:01:29 +0200 <monochrom> (Namely, I have only tried applying it to forgetful functors. Yeah I know, lame, heh.)
2020-10-17 03:01:30 +0200conal(~conal@64.71.133.70)
2020-10-17 03:01:30 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-17 03:01:39 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 03:01:54 +0200 <koz_> monochrom: Or, should we say, _forgettable_? :P
2020-10-17 03:02:48 +0200 <monochrom> Unfortunately forgetful functors are needed to define "free", so one must not forget them.
2020-10-17 03:03:13 +0200 <EvanR> category theory: a lot of machinery to conclude very little
2020-10-17 03:04:34 +0200 <monochrom> I think it feels limiting because Yoneda lemma's premise is "you can pick your category C, but you must pick a functor F from C to Set". The "to Set" part is a bit disappointing. It's why I could only thought up forgetful functors for now.
2020-10-17 03:04:38 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-17 03:04:40 +0200 <dolio> There are probably dozens of examples where some discipline has a 'cool theorem' that is the Yoneda lemma applied to a relevant category.
2020-10-17 03:05:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-17 03:05:17 +0200acidjnk_new2(~acidjnk@p200300d0c723787058597087ca157dd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-17 03:05:23 +0200 <monochrom> However! I see that if F is a homset functor, you can get some really useful theorems.
2020-10-17 03:06:30 +0200acidjnk_new2(~acidjnk@p200300d0c7237854351719f4ac22c63a.dip0.t-ipconnect.de)
2020-10-17 03:06:31 +0200 <dolio> It doesn't have to be Set. The reason Set is special is because all ordinary categories are constructed out of sets.
2020-10-17 03:06:54 +0200 <dolio> When you do V-enriched category theory, then V is special instead.
2020-10-17 03:08:36 +0200 <dolio> Or specifically, it's because categories have hom-sets.
2020-10-17 03:09:37 +0200kipras(~Kipras@78-56-235-39.static.zebra.lt)
2020-10-17 03:09:55 +0200Swing_Couple(~Swing_Cou@88.230.101.23)
2020-10-17 03:10:25 +0200perdent(~blah@101.175.98.122) (Ping timeout: 264 seconds)
2020-10-17 03:10:36 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 03:10:38 +0200ComaGrayce[m](commagrays@gateway/shell/matrix.org/x-judmpjaakotiswoi)
2020-10-17 03:10:39 +0200 <monochrom> For example, let G be an endofunctor so you can talk about G-algebras. (No further restriction on G.) Then Yoneda's lemma gives you the natural isomorphism between algebras GA->A and polymorphic functions "forall t. (t->A) -> (G t -> A)"
2020-10-17 03:11:07 +0200jedws(~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 03:11:20 +0200carlomagno1(~cararell@inet-hqmc02-o.oracle.com) (Ping timeout: 272 seconds)
2020-10-17 03:11:55 +0200xff0x(~fox@2001:1a81:5391:7900:1d93:24cf:d0e0:8889) (Ping timeout: 240 seconds)
2020-10-17 03:12:04 +0200ephemera_(~E@122.34.1.187)
2020-10-17 03:12:18 +0200drbean(~drbean@TC210-63-209-162.static.apol.com.tw)
2020-10-17 03:12:48 +0200 <monochrom> I learned this today when I read again the Hinze paper I mentioned earlier today. Hinze gave a proof specific to that statement about GA->A, but he also mentioned how to use the Yoneda lemma on a suitable homset functor to get the same conclusion in two steps.
2020-10-17 03:13:06 +0200Swing_Couple(~Swing_Cou@88.230.101.23) (Remote host closed the connection)
2020-10-17 03:13:12 +0200xff0x(~fox@2001:1a81:5391:7900:9543:bc08:f6aa:e535)
2020-10-17 03:14:18 +0200carlomagno(~cararell@inet-hqmc01-o.oracle.com)
2020-10-17 03:16:17 +0200nineonine(~nineonine@50.216.62.2) (Remote host closed the connection)
2020-10-17 03:17:22 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-10-17 03:20:35 +0200iqubic(~user@2601:602:9500:4870:dc23:22a3:8a0d:b5e6)
2020-10-17 03:21:20 +0200 <dolio> For instance, if you consider proposition 'enriched' categories where every arrow has an inverse, then C -> Prop is special instead; predicates on C.
2020-10-17 03:21:53 +0200DeadComaGrayce[m(commagra1@gateway/shell/matrix.org/x-mbzrorwyrzsyvzxq)
2020-10-17 03:22:55 +0200 <dolio> Then the Yoneda lemma says that P(x) ≃ (x ≃ y) → P(y), so it's telling you about Leibniz' notion of equality.
2020-10-17 03:25:52 +0200dmwit(~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-17 03:26:17 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 258 seconds)
2020-10-17 03:27:45 +0200delYsid(~user@84-115-55-45.cable.dynamic.surfer.at) (Remote host closed the connection)
2020-10-17 03:27:55 +0200chris(~chris@81.96.113.213)
2020-10-17 03:28:19 +0200chrisGuest85855
2020-10-17 03:28:19 +0200mirrorbird(~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
2020-10-17 03:30:03 +0200jedws(~jedws@121.209.161.98)
2020-10-17 03:31:28 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 246 seconds)
2020-10-17 03:32:20 +0200Tario(~Tario@201.192.165.173)
2020-10-17 03:32:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 03:32:54 +0200ephemera_(~E@122.34.1.187)
2020-10-17 03:33:25 +0200 <larou> dolio: how do you read that line in spoken words?
2020-10-17 03:37:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-17 03:39:19 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-17 03:42:22 +0200nbloomf(~nbloomf@104-183-67-6.lightspeed.fyvlar.sbcglobal.net)
2020-10-17 03:44:23 +0200ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 03:45:25 +0200 <sshine> Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
2020-10-17 03:45:39 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 256 seconds)
2020-10-17 03:45:41 +0200 <koz_> sshine: I see you too have found Nyarlathotep, our lord and saviour.
2020-10-17 03:46:03 +0200ephemera_(~E@122.34.1.187)
2020-10-17 03:46:13 +0200Zus(~Zushauque@d67-193-170-251.home3.cgocable.net) (Read error: Connection reset by peer)
2020-10-17 03:47:48 +0200Guest85855(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 03:48:30 +0200nineonine(~nineonine@50.216.62.2)
2020-10-17 03:48:45 +0200jchia(~jchia@58.32.34.43) (Read error: No route to host)
2020-10-17 03:50:27 +0200jchia(~jchia@45.32.62.73)
2020-10-17 03:51:29 +0200jchia(~jchia@45.32.62.73) (Remote host closed the connection)
2020-10-17 03:51:40 +0200clmg(~clmg@2601:1c2:200:720:4114:54ca:ed6a:7bde)
2020-10-17 03:52:22 +0200machinedgod(~machinedg@24.105.81.50)
2020-10-17 03:52:24 +0200jchia(~jchia@45.32.62.73)
2020-10-17 03:52:59 +0200 <clmg> How can I add a heading to the bibliography section of my Hakyll blog? I'm generating it this way: https://pastebin.com/6L58eAPU
2020-10-17 03:53:43 +0200elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-10-17 03:54:44 +0200jchia(~jchia@45.32.62.73) (Remote host closed the connection)
2020-10-17 03:55:03 +0200jchia(~jchia@58.32.34.43)
2020-10-17 03:58:15 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 03:59:15 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Ping timeout: 256 seconds)
2020-10-17 03:59:33 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-10-17 04:01:15 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-10-17 04:02:58 +0200dmwit(~dmwit@pool-108-18-228-100.washdc.fios.verizon.net)
2020-10-17 04:02:58 +0200carlomagno(~cararell@inet-hqmc01-o.oracle.com) (Remote host closed the connection)
2020-10-17 04:03:09 +0200xff0x(~fox@2001:1a81:5391:7900:9543:bc08:f6aa:e535) (Ping timeout: 272 seconds)
2020-10-17 04:03:54 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-10-17 04:04:26 +0200xff0x(~fox@2001:1a81:53c5:c200:9543:bc08:f6aa:e535)
2020-10-17 04:06:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 04:11:15 +0200fragamus(~michaelgo@73.93.154.229)
2020-10-17 04:12:13 +0200gnumonik(~gnumonik@c-73-170-91-210.hsd1.ca.comcast.net)
2020-10-17 04:13:39 +0200sw1nn(~sw1nn@2a00:23c6:2385:3a00:842c:7584:d43a:6b01)
2020-10-17 04:21:28 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 04:22:34 +0200theDon(~td@muedsl-82-207-238-153.citykom.de) (Ping timeout: 260 seconds)
2020-10-17 04:22:45 +0200falafel(~falafel@ip70-173-59-40.lv.lv.cox.net)
2020-10-17 04:24:08 +0200theDon(~td@muedsl-82-207-238-039.citykom.de)
2020-10-17 04:24:38 +0200anik(~anik@103.23.207.151) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2020-10-17 04:25:25 +0200 <ddellacosta> can anyone help me understand the definition for forever? It's hurting my brain
2020-10-17 04:25:27 +0200 <ddellacosta> forever a = let a' = a *> a' in a'
2020-10-17 04:25:44 +0200 <koz_> :t forever
2020-10-17 04:25:45 +0200 <lambdabot> Applicative f => f a -> f b
2020-10-17 04:25:57 +0200 <koz_> The key is that forever doesn't actually return a value at any point.
2020-10-17 04:25:57 +0200 <ghoulguy> ddellacosta: Is something about it confusing in particular?
2020-10-17 04:26:02 +0200 <koz_> It just repeats the effect over and over.
2020-10-17 04:26:11 +0200 <c_wraith> ddellacosta: would you be comfortable with the definition forever a = a *> forever a ?
2020-10-17 04:26:17 +0200 <ddellacosta> ghoulguy: I think I'm having trouble understanding the order of evaluation
2020-10-17 04:26:26 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-17 04:26:31 +0200 <ddellacosta> koz_: yeah that's what's hurting my brain lol
2020-10-17 04:26:42 +0200 <ddellacosta> c_wraith: processing
2020-10-17 04:27:04 +0200 <ddellacosta> c_wraith: okay yes actually now I see the order
2020-10-17 04:27:20 +0200 <ddellacosta> so it just executes a's effect and calls itself again
2020-10-17 04:27:34 +0200 <c_wraith> ok. the definition you quoted does the same thing, but with a knot-tying trick in order to reduce potential overhead
2020-10-17 04:27:49 +0200 <monochrom> "forever" is most useful if you use it for IO and go something like "forever (putStrLn "Your PC is stoned")"
2020-10-17 04:28:19 +0200 <ddellacosta> c_wraith: okay! I get it! Thank you so much
2020-10-17 04:28:20 +0200ephemera_(~E@122.34.1.187)
2020-10-17 04:28:34 +0200 <monochrom> It is clearly useless if you try "forever Nothing" or "forever (Just 4)"
2020-10-17 04:28:37 +0200 <c_wraith> you're welcome
2020-10-17 04:29:05 +0200 <ddellacosta> monochrom: yeah, actually I have used it a bunch but all of a sudden realized I didn't know how it was defined, so then I went to take a look and got confused
2020-10-17 04:29:26 +0200Tario(~Tario@201.192.165.173)
2020-10-17 04:29:54 +0200 <c_wraith> > forever Nothing
2020-10-17 04:29:57 +0200 <lambdabot> Nothing
2020-10-17 04:30:03 +0200 <c_wraith> that hardly took forever at all!
2020-10-17 04:30:04 +0200 <monochrom> So now you're ready for "fix f = let x = f x in x", too. TEE HEE HEE
2020-10-17 04:30:13 +0200 <iqubic> > forever (Just 4)
2020-10-17 04:30:17 +0200 <lambdabot> *Exception: <<loop>>
2020-10-17 04:30:22 +0200lagothrixGuest94488
2020-10-17 04:30:30 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-10-17 04:30:30 +0200HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
2020-10-17 04:30:45 +0200chris(~chris@81.96.113.213)
2020-10-17 04:30:46 +0200 <ddellacosta> monochrom: you're making me remember when I spent a week learning recursion schemes, and I have mostly forgetten them at this point
2020-10-17 04:30:48 +0200 <iqubic> Oh, that's just "Just (Just (Just (Just (Just (Just ...)))))" With a 4 at the bottom of the infinite stack.
2020-10-17 04:30:49 +0200 <ddellacosta> forgotten
2020-10-17 04:31:02 +0200 <ddellacosta> _sigh_
2020-10-17 04:31:08 +0200 <c_wraith> iqubic: actually it isn't.
2020-10-17 04:31:08 +0200chrisGuest78718
2020-10-17 04:31:15 +0200 <ddellacosta> I need to figure out how to retain all the haskell I've forgotten
2020-10-17 04:31:18 +0200 <iqubic> Oh? How come?
2020-10-17 04:31:32 +0200 <c_wraith> iqubic: it's Just 4 *> (Just 4 *> (Just 4 *> ...
2020-10-17 04:31:36 +0200 <monochrom> Age of Empires Infinity: The Forgotton Recursions: Definitive Edition
2020-10-17 04:31:52 +0200 <c_wraith> iqubic: Just 4 *> Just 3
2020-10-17 04:32:01 +0200Guest78718(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 04:32:02 +0200 <iqubic> Right, but what does (*>) do for Maybe?
2020-10-17 04:32:05 +0200 <larou> % Just 4 *> Just 3
2020-10-17 04:32:06 +0200 <yahb> larou: Just 3
2020-10-17 04:32:08 +0200 <c_wraith> > Just 4 *> Just 3
2020-10-17 04:32:10 +0200 <lambdabot> Just 3
2020-10-17 04:32:33 +0200 <c_wraith> :t (*>)
2020-10-17 04:32:33 +0200 <iqubic> @src (*>)
2020-10-17 04:32:34 +0200 <lambdabot> (*>) = liftA2 (const id)
2020-10-17 04:32:35 +0200 <lambdabot> Applicative f => f a -> f b -> f b
2020-10-17 04:32:57 +0200 <c_wraith> Notably, it doesn't add a layer of f
2020-10-17 04:33:00 +0200 <ddellacosta> monochrom: that definitely sounds like a game that would suck up a lot of time
2020-10-17 04:33:09 +0200 <iqubic> I'm so confused by that definition?
2020-10-17 04:33:11 +0200 <monochrom> It took me about 3 re-learnings to retain catamorphisms, so don't worry.
2020-10-17 04:33:23 +0200Guest94488(~lagothrix@unaffiliated/lagothrix) (Ping timeout: 260 seconds)
2020-10-17 04:33:45 +0200 <larou> oh, i had a fun thing
2020-10-17 04:33:50 +0200 <monochrom> But buy one get one free, retaining catamorphisms implies retaining anamorphisms.
2020-10-17 04:34:10 +0200 <monochrom> After that, I simply declared that the rest of recursion schemes are not worth my time.
2020-10-17 04:34:17 +0200 <larou> a list of maybe Int, where the Int points to the location of another Int somewhere else in the list
2020-10-17 04:34:18 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2020-10-17 04:34:28 +0200 <larou> and you have to constrain it so the ints "point to each other"
2020-10-17 04:34:36 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de)
2020-10-17 04:34:42 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 260 seconds)
2020-10-17 04:34:42 +0200 <monochrom> Instead, Ralf Hinze's "adjoint folds and unfolds" are actually elegant and not ad hoc.
2020-10-17 04:34:51 +0200 <c_wraith> iqubic: fa *> fb = (\_ y -> y) <$> fa <*> fb -- is this more comfortable of a definition?
2020-10-17 04:34:57 +0200 <ddellacosta> I mean, I think folds are really cool and fundamental and I love how it like turns them inside out
2020-10-17 04:35:00 +0200ephemera_(~E@122.34.1.187)
2020-10-17 04:35:08 +0200 <ddellacosta> monochrom: oh, I'll check it out, thanks
2020-10-17 04:35:23 +0200clmg(~clmg@2601:1c2:200:720:4114:54ca:ed6a:7bde) (Quit: Leaving)
2020-10-17 04:35:26 +0200 <iqubic> :t const
2020-10-17 04:35:27 +0200 <lambdabot> a -> b -> a
2020-10-17 04:36:02 +0200 <iqubic> Wait a minute...? Isn't "const id" just the same as "flip const"
2020-10-17 04:36:08 +0200 <ddellacosta> haha "Or: Scything Through the Thicket of Morphisms"
2020-10-17 04:36:59 +0200 <iqubic> If my last statement is true, then I fully understand how "liftA2 (const id)" works.
2020-10-17 04:37:38 +0200noctux(~noctux@unaffiliated/noctux) (Ping timeout: 256 seconds)
2020-10-17 04:37:54 +0200 <iqubic> Wait... no, not really. Where does the loop get introduced? What causes the infinite recursion there.
2020-10-17 04:38:28 +0200 <c_wraith> which "there" do you mean?
2020-10-17 04:39:30 +0200 <iqubic> "liftA2 (const id)" creates what is the equivalent of an infinite loop. How does that function introduce infinite recursion?
2020-10-17 04:39:31 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Read error: Connection reset by peer)
2020-10-17 04:39:52 +0200 <c_wraith> I think you've mixed things up. (*>) doesn't introduce recursion, forever does
2020-10-17 04:40:09 +0200 <iqubic> Oh. I see.
2020-10-17 04:40:38 +0200 <iqubic> "liftA2 (const id)" is the default implementation of (*>). That clears things up.
2020-10-17 04:41:06 +0200 <iqubic> Now, does "const id" do the same thing as "flip const"?
2020-10-17 04:41:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-10-17 04:41:12 +0200 <iqubic> :t const id
2020-10-17 04:41:14 +0200 <lambdabot> b -> a -> a
2020-10-17 04:41:19 +0200 <iqubic> :t flip const
2020-10-17 04:41:20 +0200 <lambdabot> b -> c -> c
2020-10-17 04:41:25 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 240 seconds)
2020-10-17 04:43:02 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 04:43:03 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 04:43:11 +0200ephemera_(~E@122.34.1.187)
2020-10-17 04:43:31 +0200 <iqubic> From those very generic and unconstrained type signatures being the same, I conclude that they two different implementations of the same function.
2020-10-17 04:43:42 +0200 <sshine> :t liftA2 (const id)
2020-10-17 04:43:43 +0200 <lambdabot> Applicative f => f b -> f c -> f c
2020-10-17 04:43:58 +0200 <sshine> :t liftA2 (\a b -> b)
2020-10-17 04:44:00 +0200 <lambdabot> Applicative f => f a -> f c -> f c
2020-10-17 04:44:22 +0200 <sshine> :t (*>)
2020-10-17 04:44:23 +0200 <lambdabot> Applicative f => f a -> f b -> f b
2020-10-17 04:44:42 +0200 <iqubic> :t liftA2 (flip const)
2020-10-17 04:44:44 +0200 <lambdabot> Applicative f => f b -> f c -> f c
2020-10-17 04:44:55 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Quit: Leaving)
2020-10-17 04:45:35 +0200albertus11(~seb@x4db49541.dyn.telefonica.de)
2020-10-17 04:48:52 +0200albertus1(~seb@x4db5a1e1.dyn.telefonica.de) (Ping timeout: 272 seconds)
2020-10-17 04:49:43 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Ping timeout: 260 seconds)
2020-10-17 04:51:06 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-10-17 04:55:11 +0200noctux(~noctux@unaffiliated/noctux)
2020-10-17 04:55:25 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 244 seconds)
2020-10-17 04:55:40 +0200 <sshine> const id = (\b c -> b) (\a -> a) = (\c -> (\a -> a)) = (\c a -> a)
2020-10-17 04:55:59 +0200 <sshine> flip const = (\f y x -> f x y) (\b c -> b) = (\y x -> (\b c -> b) x y) = (\y x -> x)
2020-10-17 04:56:10 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 260 seconds)
2020-10-17 04:56:56 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer)
2020-10-17 04:56:58 +0200ericsagnes(~ericsagne@2405:6580:0:5100:2c71:50df:a168:e256) (Ping timeout: 244 seconds)
2020-10-17 04:57:00 +0200Stanley|00(~stanley00@unaffiliated/stanley00)
2020-10-17 04:57:17 +0200ephemera_(~E@122.34.1.187)
2020-10-17 04:57:47 +0200crestfallen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-17 04:59:55 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-17 05:00:18 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
2020-10-17 05:00:33 +0200 <crestfallen> hi re: lines 27-28, are c and d equivalent because of referential transparency? (If they are equivalent, they must return the same (b -> a) , correct?
2020-10-17 05:00:37 +0200 <crestfallen> https://github.com/varreli/haskell/blob/master/handEval/unify_f_g_h.txt
2020-10-17 05:00:56 +0200 <fragamus> howdy
2020-10-17 05:01:15 +0200nineonin_(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-10-17 05:02:06 +0200 <iqubic> If c and d truely are the same, then you've got a function of the type c -> c, which can only be id.
2020-10-17 05:02:15 +0200chris(~chris@81.96.113.213)
2020-10-17 05:02:39 +0200chrisGuest93478
2020-10-17 05:02:39 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-10-17 05:03:32 +0200Guest93478(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 05:03:34 +0200darjeeli1(~darjeelin@122.245.216.36) (Ping timeout: 265 seconds)
2020-10-17 05:03:36 +0200 <iqubic> So, yeah, if can prove that c and d are the same type, then you've also proven that g is id.
2020-10-17 05:04:04 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 272 seconds)
2020-10-17 05:04:06 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-10-17 05:04:06 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-10-17 05:04:48 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 258 seconds)
2020-10-17 05:05:55 +0200ephemera_(~E@122.34.1.187)
2020-10-17 05:06:32 +0200Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2020-10-17 05:06:37 +0200acidjnk_new2(~acidjnk@p200300d0c7237854351719f4ac22c63a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-17 05:07:23 +0200 <crestfallen> iqubic so you would back track, by saying both g's were (c -> c) By backtracking I mean naming them both c .. and then substituting (b -> c) for the id on line 28?
2020-10-17 05:07:25 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-10-17 05:09:20 +0200ericsagnes(~ericsagne@2405:6580:0:5100:1942:718:5977:178d)
2020-10-17 05:11:07 +0200 <crestfallen> iqubic: I mean, if you have c -> (b -> a) and c ~ d, then by the idea of referential transparency, both g's must return (b -> a)
2020-10-17 05:11:34 +0200pera(~pera@unaffiliated/pera) (Ping timeout: 256 seconds)
2020-10-17 05:11:57 +0200wrunt[m](wruntmatri@gateway/shell/matrix.org/x-lgxhuyewbpjmhgno)
2020-10-17 05:13:43 +0200mrchampion(~mrchampio@216-211-57-41.dynamic.tbaytel.net) (Ping timeout: 265 seconds)
2020-10-17 05:14:23 +0200fragamus_(~michaelgo@73.93.154.229)
2020-10-17 05:14:28 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-17 05:14:49 +0200 <koz_> fragamus: Yo.
2020-10-17 05:15:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 05:15:55 +0200fragamus(~michaelgo@73.93.154.229) (Ping timeout: 258 seconds)
2020-10-17 05:16:24 +0200darjeeli1(~darjeelin@122.245.211.155)
2020-10-17 05:16:25 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-10-17 05:17:48 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-10-17 05:18:20 +0200 <crestfallen> iqubic: thanks only now saw your post at 20:03:58
2020-10-17 05:20:31 +0200irc_user(uid423822@gateway/web/irccloud.com/x-juqawwjwttxnnpia) (Quit: Connection closed for inactivity)
2020-10-17 05:20:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-10-17 05:22:01 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-17 05:22:53 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-10-17 05:26:07 +0200acidjnk_new2(~acidjnk@p200300d0c7237854351719f4ac22c63a.dip0.t-ipconnect.de)
2020-10-17 05:29:05 +0200falafel(~falafel@ip70-173-59-40.lv.lv.cox.net) (Ping timeout: 240 seconds)
2020-10-17 05:29:45 +0200slack1256(~slack1256@191.125.41.183) (Ping timeout: 240 seconds)
2020-10-17 05:30:49 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 246 seconds)
2020-10-17 05:32:10 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Quit: WeeChat 2.3)
2020-10-17 05:33:34 +0200ephemera_(~E@122.34.1.187)
2020-10-17 05:45:32 +0200crestfallen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Quit: Lost terminal)
2020-10-17 05:48:55 +0200xff0x(~fox@2001:1a81:53c5:c200:9543:bc08:f6aa:e535) (Ping timeout: 272 seconds)
2020-10-17 05:49:40 +0200xff0x(~fox@2001:1a81:53c5:c200:b9db:1021:8997:304)
2020-10-17 05:52:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 05:52:39 +0200chris(~chris@81.96.113.213)
2020-10-17 05:53:03 +0200chrisGuest72057
2020-10-17 05:53:25 +0200ddellacosta(~dd@86.106.121.168) (Ping timeout: 240 seconds)
2020-10-17 05:53:59 +0200polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 272 seconds)
2020-10-17 05:54:35 +0200pjb(~t@2a01cb04063ec50091a4fa1f69281349.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2020-10-17 05:55:01 +0200pera(~pera@unaffiliated/pera)
2020-10-17 05:55:34 +0200nbloomf(~nbloomf@104-183-67-6.lightspeed.fyvlar.sbcglobal.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 05:56:16 +0200Guest47631(~ccallahan@84.39.117.57)
2020-10-17 05:57:10 +0200anik(~anik@103.23.207.148)
2020-10-17 05:57:55 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-10-17 05:58:28 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 258 seconds)
2020-10-17 05:59:39 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:a405:7897:267b:514b)
2020-10-17 06:06:41 +0200pera(~pera@unaffiliated/pera) (Quit: leaving)
2020-10-17 06:07:24 +0200shafox(~shafox@106.51.234.111) (Remote host closed the connection)
2020-10-17 06:10:25 +0200fragamus_(~michaelgo@73.93.154.229) (Ping timeout: 264 seconds)
2020-10-17 06:12:01 +0200fragamus(~michaelgo@73.93.155.61)
2020-10-17 06:15:03 +0200mrchampion(~mrchampio@216-211-57-41.dynamic.tbaytel.net)
2020-10-17 06:15:10 +0200acidjnk_new2(~acidjnk@p200300d0c7237854351719f4ac22c63a.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-10-17 06:16:02 +0200skami(~user@24.225.186.176) (Remote host closed the connection)
2020-10-17 06:16:57 +0200fragamus(~michaelgo@73.93.155.61) (Ping timeout: 256 seconds)
2020-10-17 06:18:38 +0200fragamus(~michaelgo@c-24-7-31-19.hsd1.ca.comcast.net)
2020-10-17 06:19:28 +0200Guest72057(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 06:20:52 +0200howdoi(uid224@gateway/web/irccloud.com/x-vzqpthvuyxsqigap) (Quit: Connection closed for inactivity)
2020-10-17 06:21:29 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 256 seconds)
2020-10-17 06:23:57 +0200ephemera_(~E@122.34.1.187)
2020-10-17 06:26:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-10-17 06:26:37 +0200Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-10-17 06:28:04 +0200 <gnumonik> Hello. I am trying to write an interpreted DSL that "compiles" to Haskell (i.e. parses to haskell expressions). I would like to implement composable record accessors/setters in the DSL, so I've been trying to marshal strings into Setters/Getters from Control.Lens. I've been at it a month and there seems to be no way to get it to work (without impredicative polymorphism...) Has anyone ever tried to successfully do something like
2020-10-17 06:28:05 +0200 <gnumonik> this?
2020-10-17 06:28:25 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 240 seconds)
2020-10-17 06:29:47 +0200 <larou> where do you encounter impredictive polymorphism?
2020-10-17 06:30:38 +0200ephemera_(~E@122.34.1.187)
2020-10-17 06:31:14 +0200slack1256(~slack1256@191.125.41.183)
2020-10-17 06:38:48 +0200fragamus(~michaelgo@c-24-7-31-19.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2020-10-17 06:38:52 +0200 <koz_> larou: When you try to combine . with runST, for example.
2020-10-17 06:39:15 +0200 <koz_> With lenses, there's a nested forall in the representation.
2020-10-17 06:39:37 +0200 <larou> can you write that down?
2020-10-17 06:39:39 +0200 <koz_> That's why (I think) we have Lens and ALens.
2020-10-17 06:40:09 +0200 <koz_> larou: type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t
2020-10-17 06:40:09 +0200 <larou> how does that fit in with the question about the DSL?
2020-10-17 06:40:16 +0200 <koz_> Now try passing that as an argument.
2020-10-17 06:40:26 +0200 <koz_> You hit impredicativity issues _very_ fast.
2020-10-17 06:40:32 +0200 <larou> ah, ok
2020-10-17 06:40:59 +0200 <larou> isnt there the option of using a different representation of lenses?
2020-10-17 06:41:49 +0200 <koz_> larou: If by 'different' you mean 'profunctor optics', then I think the issue remains, though I'm not sure.
2020-10-17 06:41:55 +0200 <larou> i thought you could exhaustively enumerate Traversables
2020-10-17 06:42:02 +0200 <koz_> larou: What does that even _mean_?
2020-10-17 06:42:25 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 240 seconds)
2020-10-17 06:42:25 +0200 <koz_> (also, probbo not, since we have type Lens s t a b = forall p. Strong p => Optic p s t a b)
2020-10-17 06:42:40 +0200 <larou> isnt there soemthing halfway towards the lenses setup?
2020-10-17 06:43:08 +0200 <larou> that instead of abstracting over Traversals, just systematically represents them?
2020-10-17 06:43:33 +0200 <larou> im not sure if that would solve the issue
2020-10-17 06:43:44 +0200ephemera_(~E@122.34.1.187)
2020-10-17 06:43:46 +0200shatriff(~vitaliish@176.52.219.10)
2020-10-17 06:43:59 +0200 <koz_> larou: The specifics of the question don't mention Traversals.
2020-10-17 06:44:28 +0200 <larou> i cant quite remember how it goes, but it was something to do with biplate
2020-10-17 06:45:03 +0200 <larou> i think you can do all the lens stuff when you have arbitrary Traversal instances
2020-10-17 06:45:04 +0200 <koz_> larou: You'd have to give me a more specific reference, because nothing like this comes to mind, and I don't think I get it in the abstract.
2020-10-17 06:45:17 +0200 <koz_> Traversal? Or Traversable?
2020-10-17 06:45:36 +0200 <larou> you avoid Traversal, but enumerating instances of Traversable
2020-10-17 06:45:56 +0200 <larou> this gives you the modifiers and insertion/deletion operations
2020-10-17 06:46:09 +0200 <koz_> Yeah, I'm not sure I follow. 'Enumerating instances of Traversable' doesn't make much sense to me.
2020-10-17 06:46:23 +0200 <larou> i just approach it in terms of Get & Set instances
2020-10-17 06:46:34 +0200 <larou> with abstractions to account for "structure"
2020-10-17 06:46:51 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-10-17 06:47:01 +0200 <larou> i think these can basically be formulated into monadic Get/Set varients
2020-10-17 06:47:08 +0200day_(~Unknown@unaffiliated/day)
2020-10-17 06:47:18 +0200 <larou> where the monad is sufficient to capture structure information
2020-10-17 06:47:41 +0200 <larou> if its true, that everything Traversable is...
2020-10-17 06:47:49 +0200 <larou> oh no, wait, then you get scanners
2020-10-17 06:48:01 +0200 <larou> because you cant do monadic traversal properly
2020-10-17 06:48:26 +0200 <larou> i think geti&seti get there for the pure varients
2020-10-17 06:48:44 +0200 <larou> but the nested states are difficult
2020-10-17 06:48:51 +0200 <larou> for the unfolding therof
2020-10-17 06:49:18 +0200 <larou> like, imagine trying to unfold a list of lists, you need a depth 2 nested state for the unfold
2020-10-17 06:49:46 +0200 <larou> and if your trying to capture all possible Traversal instance, you need a systematic framework for the nested States and Costates
2020-10-17 06:49:56 +0200 <larou> for the unfolds and folds respectively
2020-10-17 06:50:04 +0200 <MarcelineVQ> bleep borp
2020-10-17 06:50:11 +0200 <larou> so the geti&seti setup isnt quite suffiencet
2020-10-17 06:50:28 +0200day(~Unknown@unaffiliated/day) (Ping timeout: 260 seconds)
2020-10-17 06:50:29 +0200day_day
2020-10-17 06:50:37 +0200fragamus(~michaelgo@73.93.153.121)
2020-10-17 06:51:54 +0200 <gnumonik> The problem (as far as I can tell) is that in order to cross the bridge from string land to lens land in a way that lets you compose, you a function with a type like :: forall a c. (forall b. Lens' a b -> c) -> String -> c. I think anyway. This is my first real haskell program so I might be wrong
2020-10-17 06:51:59 +0200 <larou> idk if it solves your impredictive polymorphism problem...
2020-10-17 06:52:02 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-10-17 06:52:07 +0200 <gnumonik> And that's an impossible function
2020-10-17 06:52:15 +0200Tario(~Tario@201.192.165.173)
2020-10-17 06:52:44 +0200 <larou> seems like an ambitious first program!
2020-10-17 06:53:04 +0200cole-h_(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-10-17 06:53:07 +0200 <larou> i cant really follow sorry, idk lenses, but thanks for explaining
2020-10-17 06:53:41 +0200 <larou> i have never really seen anything that enamoured me towards them - let alone the documentation!
2020-10-17 06:54:43 +0200 <gnumonik> I wrote the rest of it on the assumption that there'd be some easy way to parse strings into lenses... I don't want to give up but right now my best idea for how to make it work is "rewrite the whole thing in clojure"
2020-10-17 06:55:20 +0200fragamus(~michaelgo@73.93.153.121) (Ping timeout: 256 seconds)
2020-10-17 06:55:35 +0200fragamus(~michaelgo@73.93.153.97)
2020-10-17 06:55:38 +0200 <larou> does that have impredictive polymorphism?
2020-10-17 06:56:07 +0200 <gnumonik> No but I'm pretty sure I could make this work in an impure dynamic language
2020-10-17 06:56:33 +0200 <larou> hmm, intersting.
2020-10-17 06:56:37 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2020-10-17 06:56:57 +0200 <gnumonik> It's either that, or write a type system capable of supporting profunctor optics for a dsl that is (aside from the record accessing stuff) about as a complicated as a calculator
2020-10-17 06:57:34 +0200gioyik(~gioyik@190.67.155.46)
2020-10-17 06:58:02 +0200 <larou> ah, your making me wish i knew what you mean
2020-10-17 06:58:15 +0200 <larou> the siren song of lenses!
2020-10-17 06:59:06 +0200 <larou> i thought your whole problem was writing DSLs in the first place!
2020-10-17 06:59:11 +0200 <larou> seems like a catch 22
2020-10-17 06:59:28 +0200Stanley|00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-10-17 07:00:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 07:01:06 +0200 <gnumonik> Well I read that haskell was a good language for embedding a dsl and was like "oh this will be a good first project", but that is apparently only true if you want to use the features of haskell that don't involve higher rank types. Which is kinda disappointing I guess.
2020-10-17 07:01:28 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-10-17 07:02:03 +0200 <larou> im still not convinced that its inexpressible in this language
2020-10-17 07:02:39 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-17 07:02:40 +0200 <larou> either your lens problem is totally profound, or its just a limitation of trying to use that machinery
2020-10-17 07:02:59 +0200anik(~anik@103.23.207.148) (Quit: Textual IRC Client: www.textualapp.com)
2020-10-17 07:03:05 +0200 <larou> can you tell if its a revelation or a limitation of lenses?
2020-10-17 07:03:19 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-10-17 07:04:38 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 07:04:45 +0200Tops2(~Tobias@dyndsl-091-249-082-055.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-10-17 07:05:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-10-17 07:06:09 +0200ephemera_(~E@122.34.1.187)
2020-10-17 07:06:11 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-10-17 07:06:26 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-10-17 07:06:27 +0200 <gnumonik> as far as i can tell it's a limit of the type system. I mean there is a way to make it work. Actually, there are 2 ways: One is to package the program with Hint (makes the binary 10x as large and isn't suitable for my application cuz it needs to be run as root), and use that as a 100mb parser for the lenses. The other is to write a super rich type system for what amounts to a calculator. I'm probably not smart enough to do the
2020-10-17 07:06:27 +0200 <gnumonik> latter :-(
2020-10-17 07:07:28 +0200 <davean> gnumonik: do you mean the 'hint' package?
2020-10-17 07:08:24 +0200 <gnumonik> yeah
2020-10-17 07:08:30 +0200 <davean> ... why would you run that as root?
2020-10-17 07:08:44 +0200anik(~anik@103.23.207.140)
2020-10-17 07:09:08 +0200 <gnumonik> You wouldn't. But my DSL is for packet capturing, so you need superuser, so although hint solves the "parse some lenses" problem, it's not suitable
2020-10-17 07:09:18 +0200 <davean> No you don't?
2020-10-17 07:09:24 +0200 <davean> You can packet capture without root
2020-10-17 07:09:31 +0200 <davean> thats what capabilities are for
2020-10-17 07:09:49 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
2020-10-17 07:10:30 +0200 <davean> Also, lenses have composition rules
2020-10-17 07:10:36 +0200 <davean> so if you just map strings to the lens objects
2020-10-17 07:10:45 +0200 <davean> and combine them with the operators, you don't need to use something like 'hint'
2020-10-17 07:10:55 +0200 <davean> Haskell is a functional language
2020-10-17 07:11:02 +0200slack1256(~slack1256@191.125.41.183) (Remote host closed the connection)
2020-10-17 07:11:23 +0200jud(~jud@cpe-70-113-106-222.austin.res.rr.com)
2020-10-17 07:11:23 +0200jud(~jud@cpe-70-113-106-222.austin.res.rr.com) (Changing host)
2020-10-17 07:11:23 +0200jud(~jud@unaffiliated/jud)
2020-10-17 07:11:33 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-17 07:12:05 +0200toorevitimirp(~tooreviti@117.182.180.0)
2020-10-17 07:12:44 +0200 <gnumonik> Yeah you can write a function from "foo" to foo (where foo without quotes is a lens), but as far as I can tell you can't write a function from a string to any given lens for a data type
2020-10-17 07:13:21 +0200 <davean> No, you have to enumerate the lenses that exist
2020-10-17 07:13:21 +0200 <dsal> You should also be able to test packet capture mechanisms offline.
2020-10-17 07:13:30 +0200 <davean> yes, thats what tcpdump helps with
2020-10-17 07:13:35 +0200 <davean> or libpcap
2020-10-17 07:13:42 +0200 <larou> ah, its to do with matching on record accessor names
2020-10-17 07:13:45 +0200 <davean> But you can capture online without root
2020-10-17 07:14:03 +0200 <larou> all my datatypes are just like HLists or whatever
2020-10-17 07:14:05 +0200 <davean> gnumonik: you can code-gen the tables of names to lenses also
2020-10-17 07:14:19 +0200toorevitimirp(~tooreviti@117.182.180.0) (Client Quit)
2020-10-17 07:14:22 +0200 <larou> so you have "positional" data other than "record names"
2020-10-17 07:14:40 +0200 <larou> i guess thats actually a pretty serious limitation for most practical uses
2020-10-17 07:14:43 +0200 <larou> damn...
2020-10-17 07:14:45 +0200 <gnumonik> You can kind of use type classes and higher rank types to pass another function to the String -> Lens function, but to get composition I'm pretty sure you need something like, (again) forall a c. (forall b. Lens' a b -> c) -> String -> c. If I'm wrong about that let me know but I can't think of anything
2020-10-17 07:15:38 +0200 <larou> wait, isnt that what the template haskell machinery for autoderiving lesnes is for?
2020-10-17 07:15:45 +0200 <gnumonik> And yeah I know about capabilities and was glossing over that, but anyway there has to be something better than lugging around most of GHCI to parse...record selectors
2020-10-17 07:16:18 +0200 <davean> I'm confused why you're talking about doing the lenses the way you are - can you restate the problem? Because that signature doesn't make sense for what I understand you want
2020-10-17 07:16:19 +0200toorevitimirp(~tooreviti@117.182.180.0)
2020-10-17 07:16:39 +0200 <larou> well, i was doing it for scientific computations, where "locality" on a manifold is basically the end goal
2020-10-17 07:16:45 +0200 <dsal> If you're using lens for "record selectors" then that might be the wrong tool for the job, especially if the job is an interactive runtime that behaves like haskell, but isn't haskell.
2020-10-17 07:16:45 +0200 <larou> you just have structured access paterns
2020-10-17 07:17:15 +0200 <larou> all the data is selected relative to some position, so all this string names stuff just never arises
2020-10-17 07:17:49 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 258 seconds)
2020-10-17 07:17:56 +0200 <larou> trying to enumerate all the different names would just be totally pointless!
2020-10-17 07:18:08 +0200codedmart(~codedmart@149.28.9.205) (Quit: ZNC 1.7.5 - https://znc.in)
2020-10-17 07:18:09 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 07:18:13 +0200 <gnumonik> Well they're not actually just record selectors, and technically I need prisms too so talking about lenses is a bit wrong (is the general term for lens-ey things 'optics'?). Lemme try to restate the problem, gimme a min
2020-10-17 07:18:25 +0200codedmart(~codedmart@149.28.9.205)
2020-10-17 07:18:31 +0200 <larou> i guess i quotient away all the isomorphisms by record renaming as an equivalence class
2020-10-17 07:18:51 +0200 <davean> Yah, optics
2020-10-17 07:18:57 +0200anik(~anik@103.23.207.140) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2020-10-17 07:19:16 +0200 <larou> so isnt it just about the "shape" at the end of the day?
2020-10-17 07:20:13 +0200pjb(~t@2a01cb04063ec50040327e18e003ea94.ipv6.abo.wanadoo.fr)
2020-10-17 07:20:45 +0200 <larou> and then the logis is something like, lists are good. and then you Fix them and hopefully get graphs at some point
2020-10-17 07:21:04 +0200 <larou> again, something to do with isomorphisms
2020-10-17 07:21:30 +0200ephemera_(~E@122.34.1.187)
2020-10-17 07:21:38 +0200 <larou> and then with type hetroginaity you get the most general structure thats isomorphic to everything else
2020-10-17 07:21:55 +0200 <larou> ah, that was the problem, the nested states were unfolding type hetroginous things
2020-10-17 07:22:03 +0200 <larou> horror
2020-10-17 07:22:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-17 07:22:59 +0200zoran119(~zoran119@124-169-31-193.dyn.iinet.net.au)
2020-10-17 07:23:24 +0200 <larou> i guess thats the point about product base functors
2020-10-17 07:23:40 +0200 <gnumonik> So I have a DSL. Just for elaboration, the DSL is some pretty simple syntactical sugar over Edward KMett's "Machines" library, and the point is to allow for generation/modification/performing side effects with streams of network packets. I wrote the DSL on the assumption that there'd be some way to translate strings into optics in such a way that, if, e.g., _Foo is a prism and bar is a lens, you could type "Foo . bar" in the dsl
2020-10-17 07:23:40 +0200 <gnumonik> to access the bar field of a product type inside a sum type "Foo." But.. I can't figure out how to go from string to the optics in a way that lets them compose.
2020-10-17 07:24:03 +0200 <gnumonik> Again this is my first real haskell program ever, so I dunno if that was a horrid idea or if there's some obviously better approach
2020-10-17 07:24:37 +0200 <davean> mmm, I see
2020-10-17 07:25:01 +0200 <larou> wait, i thought lenses composed good
2020-10-17 07:25:23 +0200 <davean> larou: he needs to match the type, but he's at runtime, so he has to prove he only composes correct ones ever
2020-10-17 07:25:24 +0200bifunc2(bifunc2@gateway/vpn/protonvpn/bifunc2)
2020-10-17 07:25:31 +0200 <davean> Which is doable
2020-10-17 07:25:33 +0200 <gnumonik> they do. as a *library* everything would work fine. but i wanted this to be used by people who won't install ghc
2020-10-17 07:25:45 +0200 <gnumonik> er usable at least
2020-10-17 07:25:55 +0200 <larou> whaaaat!?
2020-10-17 07:26:01 +0200 <bifunc2> Can an integration test be done within an HUnit testCase, or are there more usual ways to do integration tests?
2020-10-17 07:26:03 +0200 <davean> A) Thats not what lenses are for, B) I can see how to do it, but I'm not sure how much you'd like it
2020-10-17 07:26:04 +0200 <larou> why throw away the compiler!?
2020-10-17 07:26:24 +0200 <davean> gnumonik: You'd want a Map for every starting type, and return the result type with it
2020-10-17 07:26:38 +0200 <larou> i thought DSLs were supposed to *leverage* the typechecker into their own type systems
2020-10-17 07:26:40 +0200 <davean> it'll compose, you can fold them together
2020-10-17 07:26:51 +0200 <davean> larou: depends on how deeply embeded they are, for example
2020-10-17 07:27:11 +0200 <larou> hmmm
2020-10-17 07:27:32 +0200 <larou> like, if they are supposed to do something the haskell typesystem cant?
2020-10-17 07:28:14 +0200 <davean> I mean thats exactly one case
2020-10-17 07:28:14 +0200 <gnumonik> Wait a Data.Map map? I'm a little confused on how that would work if the data types don't contain fields of all the same type. (Do heteogenous maps exist?) I might not be understanding you
2020-10-17 07:28:31 +0200 <larou> in which case wouldnt it be better to compile it to a subset of haskell that *is* expressive enough?
2020-10-17 07:29:04 +0200 <gnumonik> Yeah, I was a little ambitious in thinking that "Oh hey lenses are really neat, lemme throw them in my DSL as expressions". Or I didn't know enough to know that that wasn't a good idea
2020-10-17 07:29:08 +0200unlink2(~unlink2@p200300ebcf17c500f1cd4c5efbdddd1e.dip0.t-ipconnect.de)
2020-10-17 07:29:22 +0200 <larou> not really sure how Map is implemented tbh... can you emulate it using list?
2020-10-17 07:29:34 +0200 <davean> gnumonik: You can make them hetrogenious, or dependent. I was suggesting sometihng like (data OpticMap s = OMap (Map String (forall r . (Optic s r, r)))
2020-10-17 07:30:11 +0200 <larou> and that impredictive right?
2020-10-17 07:30:19 +0200 <larou> thats*
2020-10-17 07:30:30 +0200 <davean> gnumonik: if you store the tag, you can look up the correct map next time ... etc
2020-10-17 07:30:44 +0200 <davean> gnumonik: it'll get ugly, but you can make it work. I'm not sure you want to.
2020-10-17 07:30:59 +0200 <larou> is the issue that a HList with a pair with an accessor index would be slow to lookup?
2020-10-17 07:31:19 +0200 <davean> gnumonik: to be clear, I hate this approach
2020-10-17 07:31:21 +0200 <gnumonik> I've been trying to solve this problem for a month out of sheer anger that I couldn't do it, I don't really care if it's ugly at this point :p
2020-10-17 07:31:24 +0200 <larou> i mean, maybe you could use some kind of tree based thing thats faster..
2020-10-17 07:31:42 +0200 <davean> I'm pretty sure it'll work
2020-10-17 07:32:17 +0200stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-10-17 07:32:25 +0200 <larou> i cant tell if vinyl would be helpful...
2020-10-17 07:32:34 +0200stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
2020-10-17 07:33:27 +0200 <larou> runtime typechecking sounds off though... never seen that
2020-10-17 07:33:31 +0200 <davean> you know the result type because you get a token and look up the next in the map that starts with that by having a top level map like Map 'r (forall s . Map String (forall r . (Optic s r, r))
2020-10-17 07:33:59 +0200 <davean> So your'e chaining through the connecting type
2020-10-17 07:34:01 +0200 <davean> but ugh
2020-10-17 07:34:06 +0200 <davean> Its *basicly* a type checker
2020-10-17 07:34:14 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 07:34:32 +0200 <davean> Just linear chaining
2020-10-17 07:34:54 +0200 <davean> er
2020-10-17 07:35:00 +0200 <larou> what about parallel?
2020-10-17 07:35:04 +0200 <davean> I mixed up an r and s above
2020-10-17 07:35:08 +0200 <larou> like zipwith
2020-10-17 07:35:11 +0200 <gnumonik> ohhhh I see now. That might work. That might not even be that bad. I have some template haskell that generates type for a data type and its subtypes (I know they aren't real subtypes, components I guess) until it reaches a "primitive" type (relative to the DSL)
2020-10-17 07:35:18 +0200 <gnumonik> that I could probably use
2020-10-17 07:35:24 +0200 <larou> im sure some mix of those two should be arbitrarily expressive
2020-10-17 07:35:51 +0200 <larou> hmm, maybe its the difference between successive flat layers and a lattice like partial order for an arbitrary graph
2020-10-17 07:36:06 +0200 <larou> the good thing about layers is they are obviously ordered
2020-10-17 07:36:13 +0200 <davean> gnumonik: At least I gave you something to consider.
2020-10-17 07:36:54 +0200 <zoran119> is anyone using vscode + haskell-language-server (with haskell.haskell plugin in vscode)? got to definition should work there, right? it doesn't seem to be able to find definition of my modules in other source files (only current source file)...
2020-10-17 07:37:17 +0200 <larou> i really wanted something that could represent modern computing architectures so you could compile to bitcode for the virtual version and run it on regular hardware
2020-10-17 07:37:24 +0200 <gnumonik> I appreciate it! I've been smashing my face against this for so long that any way of making it work is relieving
2020-10-17 07:37:56 +0200 <larou> its the realisation thats the obstacle
2020-10-17 07:38:36 +0200 <gnumonik> Though, actually, running into this problem made me dive deep into TH/Generics.SOP and really figure out the lens library at some depth, so I suppose it was a good problem to run into.
2020-10-17 07:38:48 +0200 <larou> something about emulating concurrency
2020-10-17 07:38:53 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 07:39:02 +0200 <gnumonik> None of those helped me solve it but oh well :p
2020-10-17 07:39:24 +0200 <davean> gnumonik: I know how that feels. I do think you more want like a query engine but ... Hey, I'm not here to tell you what to code, just answer questions :)
2020-10-17 07:39:38 +0200 <davean> A good problem is very educational
2020-10-17 07:39:51 +0200ensyde(~ensyde@2600:1702:2e30:1a40:584e:1c7e:e97b:16d2)
2020-10-17 07:40:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 07:40:35 +0200 <larou> modifiable programs represented as scanner nets, anybody?
2020-10-17 07:40:49 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-17 07:41:08 +0200 <larou> with structured access for implementation on virtual FPGAs...
2020-10-17 07:41:12 +0200 <larou> *sigh*
2020-10-17 07:41:38 +0200 <larou> autodeploys to skynet...
2020-10-17 07:42:43 +0200 <larou> implements nets based on virtual market signal processing. subsumes the finance sector, brings about the rapture...
2020-10-17 07:43:02 +0200 <larou> now with 50% more functions! free!
2020-10-17 07:43:06 +0200 <davean> gnumonik: Also, if you don't like capabilities, sudo tcpdump and pipe that into your program? Or drop privileges
2020-10-17 07:43:28 +0200larou(5201f2b7@gateway/web/cgi-irc/kiwiirc.com/ip.82.1.242.183) (Quit: Connection closed)
2020-10-17 07:44:11 +0200 <justsomeguy> zoran119: I tried it out just now on a stack project, and it gave a warning message about some config file called hie.yaml. Maybe that file needs to be populated so hie can find stuff.
2020-10-17 07:44:36 +0200 <justsomeguy> https://github.com/mpickering/hie-bios#hie-bios
2020-10-17 07:44:42 +0200ensyde(~ensyde@2600:1702:2e30:1a40:584e:1c7e:e97b:16d2) (Ping timeout: 260 seconds)
2020-10-17 07:47:04 +0200 <zoran119> justsomeguy: thanks for trying it out, i just found this (seems like a new issue): https://github.com/haskell/haskell-language-server/issues/486
2020-10-17 07:48:46 +0200Sanchayan(~Sanchayan@171.76.92.241)
2020-10-17 07:49:05 +0200gioyik(~gioyik@190.67.155.46) (Read error: Connection reset by peer)
2020-10-17 07:49:31 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2020-10-17 07:49:57 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 07:50:08 +0200gioyik(~gioyik@190.67.155.46)
2020-10-17 07:52:48 +0200Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-10-17 07:52:48 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:a405:7897:267b:514b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 07:53:21 +0200Mathnerd314(uid442749@supertux/Mathnerd314) (Quit: Connection closed for inactivity)
2020-10-17 07:53:23 +0200Sanchayan(~Sanchayan@171.76.92.241) (Remote host closed the connection)
2020-10-17 07:54:02 +0200chris(~chris@81.96.113.213)
2020-10-17 07:54:26 +0200chrisGuest37509
2020-10-17 07:54:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-17 07:55:48 +0200Sanchayan(~Sanchayan@171.76.92.241)
2020-10-17 07:56:58 +0200falafel(~falafel@ip70-173-59-40.lv.lv.cox.net)
2020-10-17 07:58:39 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 260 seconds)
2020-10-17 07:58:57 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 08:00:02 +0200Guest47631(~ccallahan@84.39.117.57) ()
2020-10-17 08:03:23 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 260 seconds)
2020-10-17 08:03:47 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 08:05:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 08:09:26 +0200gioyik(~gioyik@190.67.155.46) (Quit: WeeChat 2.9)
2020-10-17 08:09:30 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-10-17 08:10:02 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
2020-10-17 08:10:04 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-17 08:13:35 +0200falafel(~falafel@ip70-173-59-40.lv.lv.cox.net) (Ping timeout: 260 seconds)
2020-10-17 08:14:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-17 08:17:52 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 272 seconds)
2020-10-17 08:18:09 +0200Tario(~Tario@201.192.165.173)
2020-10-17 08:19:09 +0200agrajag`(~agrajag`@104.254.90.195)
2020-10-17 08:22:56 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-17 08:24:48 +0200sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-10-17 08:26:38 +0200coot(~coot@37.30.35.208.nat.umts.dynamic.t-mobile.pl)
2020-10-17 08:27:48 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-ukzmbdoxywbjiwys) (Quit: Connection closed for inactivity)
2020-10-17 08:30:27 +0200 <proofofme> can cassava be used for csv parsing without a filepath? like can you just give it a string and it yields a list of elements instead?
2020-10-17 08:31:48 +0200 <c_wraith> that... sure seems like what decode does
2020-10-17 08:32:04 +0200 <koz_> http://hackage.haskell.org/package/cassava-0.5.2.0/docs/Data-Csv.html#v:decode
2020-10-17 08:32:14 +0200 <koz_> Well, aside from it being given a ByteString.
2020-10-17 08:32:55 +0200andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2020-10-17 08:35:00 +0200lucid_0x80(~lucid_0x8@188.253.235.213)
2020-10-17 08:35:06 +0200Guest37509(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 08:35:38 +0200lucid_0x80(~lucid_0x8@188.253.235.213) (Client Quit)
2020-10-17 08:35:59 +0200lucid_0x80(~lucid_0x8@188.253.235.213)
2020-10-17 08:36:06 +0200andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-10-17 08:36:38 +0200 <proofofme> how to convert something like "a,b,c" to a bytestring?
2020-10-17 08:37:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 08:41:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 08:41:56 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-10-17 08:42:05 +0200 <dsal> proofofme: One way is to have it always be a bytestring so you don't have to convert it.
2020-10-17 08:42:21 +0200 <proofofme> it's being read from a database where it comes that way
2020-10-17 08:42:42 +0200 <dsal> The database doesn't return a ByteString? It probably has one.
2020-10-17 08:43:01 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 08:43:10 +0200 <dsal> What database interface is this?
2020-10-17 08:43:27 +0200 <proofofme> mysql
2020-10-17 08:43:47 +0200 <dsal> AFAIK, that's not an interfae.
2020-10-17 08:44:20 +0200ephemera_(~E@122.34.1.187)
2020-10-17 08:44:22 +0200 <dsal> I guess there is one named that. It looks fairly old, though.
2020-10-17 08:44:24 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be)
2020-10-17 08:44:40 +0200 <proofofme> Database.MySQL.Base
2020-10-17 08:46:07 +0200 <dsal> Ah, stackage has docs. It says it returns ByteString. How did you convert it from ByteString? Maybe do the opposite of that. :)
2020-10-17 08:47:00 +0200iqubic(~user@2601:602:9500:4870:dc23:22a3:8a0d:b5e6) ("ERC (IRC client for Emacs 28.0.50)")
2020-10-17 08:47:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-17 08:48:34 +0200chris(~chris@81.96.113.213)
2020-10-17 08:48:57 +0200chrisGuest34058
2020-10-17 08:50:13 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
2020-10-17 08:56:07 +0200Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-10-17 08:57:01 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de)
2020-10-17 08:59:36 +0200mirrorbird(~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Quit: Leaving)
2020-10-17 09:01:42 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-17 09:02:52 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-17 09:08:16 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 09:11:13 +0200Guest34058(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 09:12:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-17 09:13:26 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-10-17 09:13:57 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be)
2020-10-17 09:16:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 09:17:27 +0200hackageZ-Data 0.1.7.2 - Array, vector and text https://hackage.haskell.org/package/Z-Data-0.1.7.2 (winterland)
2020-10-17 09:18:42 +0200cole-h_(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-10-17 09:24:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 09:26:10 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-vecxpakzwaisvdlf) (Quit: Connection closed for inactivity)
2020-10-17 09:28:45 +0200alp_(~alp@2a01:e0a:58b:4920:7959:9b61:1d77:4ea5)
2020-10-17 09:28:47 +0200LKoen(~LKoen@81.255.219.130)
2020-10-17 09:28:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-17 09:30:52 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de)
2020-10-17 09:40:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 09:42:37 +0200alp_(~alp@2a01:e0a:58b:4920:7959:9b61:1d77:4ea5) (Ping timeout: 272 seconds)
2020-10-17 09:43:24 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-10-17 09:43:55 +0200falafel(~falafel@ip70-173-59-40.lv.lv.cox.net)
2020-10-17 09:44:29 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-10-17 09:44:53 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 09:47:12 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 09:47:28 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-10-17 09:48:27 +0200ephemera_(~E@122.34.1.187)
2020-10-17 09:49:15 +0200chris(~chris@81.96.113.213)
2020-10-17 09:49:39 +0200chrisGuest12530
2020-10-17 09:50:48 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-17 09:51:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-17 09:51:21 +0200Guest91452(~samuel@223.166.32.19)
2020-10-17 09:52:19 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-10-17 09:56:50 +0200avdb_(~avdb@ip-83-134-26-198.dsl.scarlet.be)
2020-10-17 09:57:03 +0200Guest91452(~samuel@223.166.32.19) (Quit: Leaving)
2020-10-17 09:58:18 +0200falafel(~falafel@ip70-173-59-40.lv.lv.cox.net) (Ping timeout: 260 seconds)
2020-10-17 10:00:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 10:00:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-10-17 10:04:15 +0200_ashbreeze_(~mark@72-161-252-240.dyn.centurytel.net)
2020-10-17 10:04:58 +0200hackageZ-IO 0.1.6.0 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.6.0 (winterland)
2020-10-17 10:05:40 +0200ashbreeze(~mark@72-161-252-240.dyn.centurytel.net) (Ping timeout: 256 seconds)
2020-10-17 10:05:58 +0200hackagestm-queue 0.1.2.1 - An implementation of a real-time concurrent queue https://hackage.haskell.org/package/stm-queue-0.1.2.1 (sgschlesinger)
2020-10-17 10:08:52 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 10:10:08 +0200ephemera_(~E@122.34.1.187)
2020-10-17 10:11:08 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 10:11:11 +0200avdb_(~avdb@ip-83-134-26-198.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-17 10:12:36 +0200lep-deleteGuest88073
2020-10-17 10:15:56 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-17 10:17:46 +0200Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-10-17 10:18:35 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 10:19:58 +0200cdepillabout(~cdepillab@pl35600.ag1001.nttpc.ne.jp)
2020-10-17 10:23:19 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 260 seconds)
2020-10-17 10:23:21 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-10-17 10:23:38 +0200ephemera_(~E@122.34.1.187)
2020-10-17 10:28:58 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 272 seconds)
2020-10-17 10:29:23 +0200fragamus(~michaelgo@73.93.153.97) (Read error: Connection reset by peer)
2020-10-17 10:30:29 +0200SanchayanM(~Sanchayan@136.185.169.16)
2020-10-17 10:30:58 +0200Sanchayan(~Sanchayan@171.76.92.241) (Ping timeout: 260 seconds)
2020-10-17 10:31:35 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-17 10:32:12 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 10:33:26 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be)
2020-10-17 10:34:01 +0200thir(~thir@p200300f27f02580074cf2a3fa9ab5ee7.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-10-17 10:34:14 +0200fragamus(~michaelgo@73.93.153.97)
2020-10-17 10:38:29 +0200Guest88073lep-delete
2020-10-17 10:42:35 +0200chaosmasttter(~chaosmast@p200300c4a710fa0165702c806d7b3e40.dip0.t-ipconnect.de)
2020-10-17 10:43:01 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-10-17 10:43:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 10:47:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-10-17 10:50:26 +0200 <tomsmeding> why does ghc, when giving me an error about an ambiguous type variable, not tell me where that type variable occurs?
2020-10-17 10:50:46 +0200 <tomsmeding> if that happens in a large expression it's less than helpful :p
2020-10-17 10:52:28 +0200drbean(~drbean@TC210-63-209-162.static.apol.com.tw) (Ping timeout: 246 seconds)
2020-10-17 10:56:28 +0200hackagenumhask-space 0.6.1 - numerical spaces https://hackage.haskell.org/package/numhask-space-0.6.1 (tonyday567)
2020-10-17 10:56:45 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 10:57:03 +0200 <Rembane> tomsmeding: Doesn't it? Do you have an example? :)
2020-10-17 10:57:06 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-10-17 10:57:19 +0200 <tomsmeding> well I have a huge one :p
2020-10-17 10:57:48 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 256 seconds)
2020-10-17 10:59:02 +0200 <tomsmeding> Rembane: https://paste.tomsmeding.com/oKOtSj3l
2020-10-17 10:59:56 +0200 <Rembane> tomsmeding: Yeah, that's not small, what would GHC say if you had your way?
2020-10-17 11:00:01 +0200agrajag`(~agrajag`@104.254.90.195) ()
2020-10-17 11:00:21 +0200 <tomsmeding> well presumably it's trying to help me by saying "the constraint (Elt x00)"
2020-10-17 11:01:05 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-10-17 11:01:09 +0200 <tomsmeding> if the x00 would occur somewhere else in a larger type too, then I'd like it to print the entire type (just "Elt x00" tells me nothing about where this x00 comes from)
2020-10-17 11:01:17 +0200 <tomsmeding> but now I realise that perhaps it _only_ occurs in this constraint
2020-10-17 11:02:09 +0200 <Rembane> I think it only exists in this constraint
2020-10-17 11:02:35 +0200 <tomsmeding> but in that case it would be nice if it said that this type variable occurs _only_ in a constraint -- because that particular situation is something you never want anyway, I think
2020-10-17 11:02:45 +0200 <tomsmeding> also that would be weird
2020-10-17 11:02:53 +0200 <tomsmeding> given the code, let me see if I can distill a smaller case
2020-10-17 11:03:10 +0200 <Rembane> Sounds like a good approach
2020-10-17 11:03:28 +0200hackagehw-json 1.3.2.2 - Memory efficient JSON parser https://hackage.haskell.org/package/hw-json-1.3.2.2 (haskellworks)
2020-10-17 11:05:00 +0200 <nshepperd> arising from a use of zipWith? is this some sort of nontraditional exotic zipWith? not the list one
2020-10-17 11:05:31 +0200 <tomsmeding> it certainly is :)
2020-10-17 11:06:17 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 11:06:30 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 11:06:40 +0200 <nshepperd> i think you'll find that type variable occurs in the type of your exotic zipWith
2020-10-17 11:06:48 +0200 <nshepperd> in that case
2020-10-17 11:07:23 +0200tito_04(~taurux@net-93-144-13-212.cust.vodafonedsl.it)
2020-10-17 11:07:26 +0200taurux(~taurux@net-93-144-64-237.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
2020-10-17 11:07:38 +0200 <tomsmeding> nshepperd: true enough, but it has three Elt constraints: https://hackage.haskell.org/package/accelerate-1.3.0.0/docs/Data-Array-Accelerate.html#v:zipWith
2020-10-17 11:07:49 +0200ephemera_(~E@122.34.1.187)
2020-10-17 11:07:49 +0200 <tomsmeding> so basically my point is: constraint "Elt x00", okay, _WHICH_ Elt :p
2020-10-17 11:10:02 +0200 <tomsmeding> ah there is a different case, look at this: https://paste.tomsmeding.com/b8b4SRuW
2020-10-17 11:10:08 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 272 seconds)
2020-10-17 11:10:34 +0200 <tomsmeding> look at it giving a _different_ binding than what the problematic type variable occurs in, showing that indeed the variable occurs outside of the constraint
2020-10-17 11:10:42 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 11:10:44 +0200 <tomsmeding> (note a40f != a40)
2020-10-17 11:11:35 +0200 <tomsmeding> now I guess I'd like to see the type of a40f with that type variable x10 shown where it occurs (because it must; a40 is defined fairly trivially in terms of a40f)
2020-10-17 11:12:28 +0200 <tomsmeding> (indeed now I know it's that particular tuple element, I know how to solve it :p)
2020-10-17 11:13:23 +0200 <nshepperd> yeah i guess it would be nice if it printed the type signature of zipWith with the ambiguous variable highlighted or something
2020-10-17 11:13:46 +0200 <Rembane> I wonder if there's an issue on the GHC bug tracker about this, or if it's worth posting one.
2020-10-17 11:13:55 +0200 <tomsmeding> precisely (though highlighting is not even the primary concern :p)
2020-10-17 11:14:17 +0200plast1k_(~plast1k_@196.207.181.246)
2020-10-17 11:14:20 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 11:18:51 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 11:20:36 +0200 <Rembane> Yeah, it's an x/y one. :)
2020-10-17 11:23:22 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 256 seconds)
2020-10-17 11:24:57 +0200invaser(~Thunderbi@31.148.23.125)
2020-10-17 11:25:46 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 11:26:19 +0200thunderrd(~thunderrd@183.182.110.178) (Remote host closed the connection)
2020-10-17 11:26:21 +0200 <tomsmeding> okay this is a more minimal case: https://paste.tomsmeding.com/jvWCizUj
2020-10-17 11:26:26 +0200jespada(~jespada@90.254.245.15)
2020-10-17 11:26:31 +0200 <tomsmeding> no deps
2020-10-17 11:26:59 +0200 <tomsmeding> do people agree that error is uninformative?
2020-10-17 11:27:38 +0200jespada(~jespada@90.254.245.15) (Client Quit)
2020-10-17 11:28:24 +0200thir(~thir@pd9e1b01f.dip0.t-ipconnect.de)
2020-10-17 11:28:39 +0200 <tomsmeding> in particular: there are two Elt constraints around: one on map' and one on constant'. It's not indicating which is the problem; in this case it doesn't really matter, but in a more complex scenario that may be useful information
2020-10-17 11:29:04 +0200lemmih(~lemmih@2406:3003:2072:44:70c9:d5cf:dc27:2e6a) (Remote host closed the connection)
2020-10-17 11:29:26 +0200 <tomsmeding> "a40f = map' (constant' 2.0)" is a better replacement of the last two lines, no need for the "id" indirection
2020-10-17 11:29:29 +0200lemmih(~lemmih@2406:3003:2072:44:70c9:d5cf:dc27:2e6a)
2020-10-17 11:30:18 +0200Randy(randy@freebsd/user/randy) (Quit: Out)
2020-10-17 11:30:34 +0200Randy(randy@freebsd/user/randy)
2020-10-17 11:32:51 +0200kenran(~maier@87.123.205.246)
2020-10-17 11:34:41 +0200 <Rembane> tomsmeding: In this case I can manage because I can see everything that creates this error, but in your earlier case I would've loved to have some more help from the compiler.
2020-10-17 11:35:32 +0200 <Rembane> tomsmeding: This all boils down to, post in on the issue tracker please. :)
2020-10-17 11:36:02 +0200zebrag(~inkbottle@aaubervilliers-654-1-98-110.w86-212.abo.wanadoo.fr)
2020-10-17 11:36:53 +0200inkbottle(~inkbottle@aaubervilliers-654-1-104-11.w86-212.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-10-17 11:38:39 +0200 <tomsmeding> I can post it; I feel uncertain whether there is an existing issue about it, given that there are 4k+ issues open :p
2020-10-17 11:38:50 +0200knupfer(~Thunderbi@87.123.206.163)
2020-10-17 11:40:15 +0200ensyde(~ensyde@2600:1702:2e30:1a40:584e:1c7e:e97b:16d2)
2020-10-17 11:40:15 +0200 <tomsmeding> this is a feature_request, isn't it?
2020-10-17 11:40:31 +0200wei2912(~wei2912@unaffiliated/wei2912)
2020-10-17 11:40:32 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-17 11:41:20 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 11:41:42 +0200 <Rembane> tomsmeding: I think it is, blame me if it isn't. :)
2020-10-17 11:41:58 +0200dcoutts_(~duncan@33.14.75.194.dyn.plus.net)
2020-10-17 11:42:42 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-wfqfiwhdaazevkgj) (Quit: Connection closed for inactivity)
2020-10-17 11:44:09 +0200 <phadej> doesn't that error happen because 2.0 is arbitrary Fractional a => a
2020-10-17 11:44:23 +0200 <phadej> if you do (2.0 :: Double) it will "go away", or at least say Elt Double cosntraint?
2020-10-17 11:45:11 +0200 <phadej> I don't think its uninformative, it's a literal gotcha
2020-10-17 11:45:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 11:45:29 +0200ensyde(~ensyde@2600:1702:2e30:1a40:584e:1c7e:e97b:16d2) (Ping timeout: 272 seconds)
2020-10-17 11:45:36 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 272 seconds)
2020-10-17 11:46:50 +0200 <phadej> in the minimal example, it's the same `Elt a` which is unsatisfied, i.e. it could come from either map' or constant'
2020-10-17 11:47:07 +0200 <phadej> as `a`s are unified
2020-10-17 11:47:21 +0200wei2912(~wei2912@unaffiliated/wei2912) (Quit: leaving)
2020-10-17 11:47:24 +0200 <tomsmeding> phadej: true, it's about the literal, but it could equally be a variable with type Fractional a => a
2020-10-17 11:47:45 +0200 <phadej> tomsmeding: more concretely, what you think GHC should say
2020-10-17 11:48:02 +0200 <tomsmeding> the point is: what if there were a number of such literals, and most could be inferred based on external information except one. Which one is it? The error message doesn't tell.
2020-10-17 11:48:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-17 11:48:30 +0200invaser(~Thunderbi@31.148.23.125) (Quit: invaser)
2020-10-17 11:49:16 +0200 <tomsmeding> phadej: for errors reading "... (mentions type variable a0) ... arising from a use of ‘myFunction’, ...", I'd like to see the type of myFunction, that includes a0
2020-10-17 11:49:32 +0200 <tomsmeding> because presumably a0 is in there :p
2020-10-17 11:49:59 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-17 11:50:05 +0200kenran(~maier@87.123.205.246) (Ping timeout: 240 seconds)
2020-10-17 11:50:47 +0200invaser(~Thunderbi@31.148.23.125)
2020-10-17 11:53:14 +0200 <phadej> arising from a use of ‘a40f’ at type 'a40f :: (Elt a0, Fractional a0) => (Exp a0 -> Exp a0) -> ()'
2020-10-17 11:53:17 +0200 <phadej> ?
2020-10-17 11:53:45 +0200 <phadej> yes, that could be reasonable feature request
2020-10-17 11:54:25 +0200 <tomsmeding> yes that; I'll see if I can make a more compelling example
2020-10-17 11:54:28 +0200 <phadej> this example is a bit too minimal, as `a40f` has only one variable
2020-10-17 11:56:08 +0200mterwoord(~mterwoord@178.162.204.238)
2020-10-17 11:56:28 +0200 <phadej> something with (Integral a, Integral b) => ...
2020-10-17 11:56:33 +0200 <phadej> and used so you flip arguments
2020-10-17 11:56:43 +0200 <phadej> so you aren't sure anymore whether a0 was actually b
2020-10-17 11:57:17 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 11:58:52 +0200 <phadej> except integral will be defaulted :(
2020-10-17 11:59:46 +0200 <tomsmeding> that can be fixed with a custom class :p
2020-10-17 12:00:12 +0200 <tomsmeding> I had an example where the variable got an obscure name from somewhere, let me see if I can resurrect that one
2020-10-17 12:00:52 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-17 12:02:33 +0200tito_04(~taurux@net-93-144-13-212.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2020-10-17 12:02:43 +0200 <phadej> https://gist.github.com/phadej/7b95d1876dd085d28f49bf4ebf349663
2020-10-17 12:03:02 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 256 seconds)
2020-10-17 12:03:05 +0200 <phadej> here it's unclear is "MyIntegral b1" is from 1 or 2
2020-10-17 12:03:29 +0200taurux(~taurux@net-188-216-43-120.cust.vodafonedsl.it)
2020-10-17 12:03:41 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 12:03:46 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 12:03:47 +0200 <phadej> in fact, type of plus2 is
2020-10-17 12:03:48 +0200 <phadej> plus2 :: (MyIntegral b1, MyIntegral b2) => b2 -> b1 -> b1
2020-10-17 12:03:55 +0200 <tomsmeding> yes that's a neat one
2020-10-17 12:04:19 +0200 <phadej> tomsmeding: I have to admit, I have sometimes scratched my head what's wrong in similar-ish examples
2020-10-17 12:04:26 +0200 <phadej> and had to add extra type-signatures to figure out what
2020-10-17 12:04:32 +0200xerox_(~xerox@unaffiliated/xerox) (Quit: leaving)
2020-10-17 12:04:43 +0200 <phadej> as here. The obvious solution is to add a type-signature to plus2
2020-10-17 12:04:52 +0200 <phadej> (with better type-variables)
2020-10-17 12:05:10 +0200 <phadej> but if you open an issue you have to argue why you cannot or don't want do that in non-minimal example :)
2020-10-17 12:05:14 +0200ephemera_(~E@122.34.1.187)
2020-10-17 12:05:46 +0200 <phadej> I guess saying that "annotating every auxiliary bindingin in accelerate code isn't acceptable, adds too much noise"
2020-10-17 12:06:26 +0200 <tomsmeding> that latter statement is certainly the case
2020-10-17 12:06:33 +0200 <phadej> in my case, when there are type-variables brought into the scope by pattern matching on GADTs, it was in fact very tricky to just add a type-signatures
2020-10-17 12:06:47 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-10-17 12:06:58 +0200 <phadej> as one had to re-arrange code to get this type-variables
2020-10-17 12:08:36 +0200 <phadej> (https://github.com/ghc-proposals/ghc-proposals/pull/126 would solve it, but I have no idea if anyone is working on it)
2020-10-17 12:09:51 +0200 <phadej> you concinced me there is a problem worth fixing :)
2020-10-17 12:10:01 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2020-10-17 12:10:02 +0200 <phadej> go ahead, open an issue!
2020-10-17 12:10:19 +0200 <tomsmeding> :D
2020-10-17 12:10:41 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 258 seconds)
2020-10-17 12:11:47 +0200ephemera_(~E@122.34.1.187)
2020-10-17 12:13:25 +0200plast1k_(~plast1k_@196.207.181.246) (Ping timeout: 264 seconds)
2020-10-17 12:13:35 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 12:13:40 +0200cdepillabout(~cdepillab@pl35600.ag1001.nttpc.ne.jp) (Ping timeout: 246 seconds)
2020-10-17 12:13:49 +0200thunderrd(~thunderrd@183.182.110.178)
2020-10-17 12:14:01 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-17 12:15:17 +0200 <tomsmeding> phadej: https://gitlab.haskell.org/ghc/ghc/-/issues/18860
2020-10-17 12:15:42 +0200 <tomsmeding> probably could be worded better, so if you want to re-word stuff / tell me to re-word stuff, go ahead :p
2020-10-17 12:16:24 +0200 <phadej> +1
2020-10-17 12:16:34 +0200 <phadej> IMO it's fine
2020-10-17 12:16:41 +0200 <phadej> let see if others see the problem :)
2020-10-17 12:18:39 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 12:19:10 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds)
2020-10-17 12:19:58 +0200ephemera_(~E@122.34.1.187)
2020-10-17 12:22:19 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-10-17 12:22:28 +0200Rudd0^(~Rudd0@185.189.115.98)
2020-10-17 12:24:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 12:24:51 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 265 seconds)
2020-10-17 12:25:04 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: Textual IRC Client: www.textualapp.com)
2020-10-17 12:25:18 +0200rprije(~rprije@203-219-208-42.static.tpgi.com.au) (Ping timeout: 260 seconds)
2020-10-17 12:26:23 +0200plast1k_(~plast1k_@196.207.181.246)
2020-10-17 12:26:40 +0200plast1k_(~plast1k_@196.207.181.246) (Max SendQ exceeded)
2020-10-17 12:29:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-17 12:29:58 +0200knupfer(~Thunderbi@87.123.206.163) (Ping timeout: 260 seconds)
2020-10-17 12:32:03 +0200utopic_int0x80(~lucid_0x8@188.253.235.213)
2020-10-17 12:32:07 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection)
2020-10-17 12:32:31 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-17 12:32:35 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 12:33:19 +0200utopic_int0x80(~lucid_0x8@188.253.235.213) (Read error: Connection reset by peer)
2020-10-17 12:33:25 +0200lucid_0x80(~lucid_0x8@188.253.235.213) (Ping timeout: 240 seconds)
2020-10-17 12:33:45 +0200utopic_int0x80(~lucid_0x8@188.253.235.213)
2020-10-17 12:34:01 +0200utopic_int0x80(~lucid_0x8@188.253.235.213) (Max SendQ exceeded)
2020-10-17 12:34:40 +0200gopher----(~gopher@2a03:1b20:3:f011::4d)
2020-10-17 12:34:42 +0200 <gopher----> hi
2020-10-17 12:34:47 +0200 <gopher----> is anyone a dev in here?
2020-10-17 12:34:47 +0200utopic_int0x80(~lucid_0x8@188.253.235.213)
2020-10-17 12:35:01 +0200utopic_int0x80(~lucid_0x8@188.253.235.213) (Max SendQ exceeded)
2020-10-17 12:35:41 +0200utopic_int0x80(~lucid_0x8@188.253.235.213)
2020-10-17 12:35:45 +0200 <gopher----> btw
2020-10-17 12:35:53 +0200 <gopher----> haskell is absolute gobshite
2020-10-17 12:35:57 +0200utopic_int0x80(~lucid_0x8@188.253.235.213) (Max SendQ exceeded)
2020-10-17 12:37:26 +0200zariuq(~zar@fw1.ciirc.cvut.cz)
2020-10-17 12:37:33 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 12:37:52 +0200 <Axman6> gopher----: yeah it is
2020-10-17 12:38:00 +0200 <gopher----> yep
2020-10-17 12:38:07 +0200 <gopher----> its horribal
2020-10-17 12:38:15 +0200dhil(~dhil@195.213.192.122)
2020-10-17 12:38:47 +0200 <[exa]> ...but isn't that the fundament of the existence?
2020-10-17 12:38:59 +0200 <gopher----> haskell is massive shit
2020-10-17 12:39:02 +0200 <Axman6> we are all but gobshite
2020-10-17 12:39:14 +0200fendor(~fendor@046124068105.public.t-mobile.at)
2020-10-17 12:39:38 +0200 <Axman6> gopher----: trolling works better if you make some arguments, and not just whinge because you're doing badly in a university assignment
2020-10-17 12:39:55 +0200 <gopher----> haskell is mega bs
2020-10-17 12:40:16 +0200Gerula(~Gerula@unaffiliated/gerula) (Quit: Leaving)
2020-10-17 12:40:24 +0200 <Axman6> GHC is definitely several hungres megabytes, so it might even be giga bs!
2020-10-17 12:40:29 +0200 <Axman6> hundred*
2020-10-17 12:40:41 +0200 <gopher----> niga
2020-10-17 12:40:55 +0200 <Axman6> come on mate, try harder, this is embarassing
2020-10-17 12:41:02 +0200 <no-n> gopher----: which language do you prefer?
2020-10-17 12:41:11 +0200 <gopher----> a non blm supported lang
2020-10-17 12:41:16 +0200plast1k_(~plast1k_@196.207.181.246)
2020-10-17 12:41:28 +0200 <no-n> oof
2020-10-17 12:41:32 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-17 12:41:38 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-17 12:41:59 +0200 <Axman6> damn, I knew we should have voted against -XBlackLivesMatter
2020-10-17 12:42:21 +0200 <gopher----> yes
2020-10-17 12:42:28 +0200 <gopher----> dem cotton pickers
2020-10-17 12:42:44 +0200__monty__(~toonn@unaffiliated/toonn)
2020-10-17 12:42:48 +0200Guest12530(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 12:43:22 +0200xff0x(~fox@2001:1a81:53c5:c200:b9db:1021:8997:304) (Ping timeout: 260 seconds)
2020-10-17 12:43:30 +0200 <gopher----> yup
2020-10-17 12:43:34 +0200 <Axman6> I reckon PHP might not be a BLM supported language, maybe you should try that? It's not very supported at all these days
2020-10-17 12:44:00 +0200 <gopher----> php ss on every major website
2020-10-17 12:44:01 +0200 <gopher----> is
2020-10-17 12:44:02 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-17 12:44:13 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 12:44:36 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 12:44:43 +0200 <Axman6> is it tho???
2020-10-17 12:45:21 +0200 <gopher----> yup
2020-10-17 12:45:30 +0200 <gopher----> on most commercial grade apps
2020-10-17 12:45:34 +0200 <gopher----> banking sites
2020-10-17 12:45:47 +0200ChanServ+o dibblego
2020-10-17 12:45:51 +0200dibblego+b *!*@2a03:1b20:3:f011::4d
2020-10-17 12:45:51 +0200 <Axman6> I think you're misspelling ASP.Net
2020-10-17 12:45:53 +0200gopher----dibblegogopher----
2020-10-17 12:45:56 +0200ChanServ-o dibblego
2020-10-17 12:46:13 +0200 <Axman6> dibblego: Sorry mate, things were quiet =)
2020-10-17 12:46:19 +0200ephemera_(~E@122.34.1.187) (Quit: No Ping reply in 180 seconds.)
2020-10-17 12:46:35 +0200 <dibblego> :)
2020-10-17 12:46:39 +0200ephemera_(~E@122.34.1.187)
2020-10-17 12:48:56 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 256 seconds)
2020-10-17 12:50:00 +0200 <jophish> nh2: How are things going with static haskell nix?
2020-10-17 12:50:23 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 260 seconds)
2020-10-17 12:50:58 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 12:53:25 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 12:53:42 +0200Gerula(~Gerula@unaffiliated/gerula)
2020-10-17 12:54:49 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 264 seconds)
2020-10-17 12:55:07 +0200ephemera_(~E@122.34.1.187)
2020-10-17 12:57:58 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 260 seconds)
2020-10-17 12:58:07 +0200xff0x(~fox@2001:1a81:53c5:c200:980e:44c6:52dd:fd04)
2020-10-17 12:59:52 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be)
2020-10-17 13:00:52 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-10-17 13:01:26 +0200berberman(~berberman@unaffiliated/berberman)
2020-10-17 13:03:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 13:04:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 13:05:43 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 13:07:11 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-10-17 13:07:13 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-10-17 13:08:19 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
2020-10-17 13:08:57 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-17 13:12:05 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 13:12:12 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-17 13:12:21 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 13:18:13 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 13:18:14 +0200kish(~oracle@unaffiliated/oracle)
2020-10-17 13:19:53 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr)
2020-10-17 13:20:20 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 13:22:23 +0200chaosmasttter(~chaosmast@p200300c4a710fa0165702c806d7b3e40.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2020-10-17 13:24:16 +0200hiroaki(~hiroaki@2a02:908:4b18:e20::a362)
2020-10-17 13:25:02 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-10-17 13:26:17 +0200 <tomjaguarpaw> jophish: How are things going with dynamic python windows installer?
2020-10-17 13:29:52 +0200knupfer(~Thunderbi@200116b82cc5f50010341dfffe74c338.dip.versatel-1u1.de)
2020-10-17 13:29:52 +0200knupfer(~Thunderbi@200116b82cc5f50010341dfffe74c338.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-17 13:30:05 +0200knupfer(~Thunderbi@200116b82cc5f500182db56019d06096.dip.versatel-1u1.de)
2020-10-17 13:30:36 +0200Nahra(~Nahra@unaffiliated/nahra)
2020-10-17 13:31:19 +0200kuribas(~user@ptr-25vy0i8tzgojz6gquv5.18120a2.ip6.access.telenet.be)
2020-10-17 13:31:45 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 13:32:33 +0200 <jophish> dynamic python windows installer? tomjaguarpaw
2020-10-17 13:33:09 +0200 <jophish> sounds pretty horrible all round
2020-10-17 13:33:19 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 13:33:31 +0200thir(~thir@pd9e1b01f.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-17 13:34:24 +0200alp_(~alp@2a01:e0a:58b:4920:e85b:6e33:d06d:4253)
2020-10-17 13:34:34 +0200karanlikmadde(~karanlikm@2a01:c23:641c:2200:c88d:7d7e:c962:437f)
2020-10-17 13:35:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 13:36:05 +0200 <jophish> Ah, I understand!
2020-10-17 13:36:13 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 264 seconds)
2020-10-17 13:36:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-17 13:36:45 +0200 <jophish> tomjaguarpaw: poorly enough that I'm looking forward to the alternative!
2020-10-17 13:37:58 +0200thir(~thir@p200300f27f2f01007c5b769b7a26171f.dip0.t-ipconnect.de)
2020-10-17 13:38:09 +0200thir(~thir@p200300f27f2f01007c5b769b7a26171f.dip0.t-ipconnect.de) (Client Quit)
2020-10-17 13:39:32 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 256 seconds)
2020-10-17 13:40:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-17 13:40:32 +0200xff0x(~fox@2001:1a81:53c5:c200:980e:44c6:52dd:fd04) (Ping timeout: 260 seconds)
2020-10-17 13:41:10 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 13:41:25 +0200xff0x(~fox@2001:1a81:53c5:c200:800e:b588:fbcf:aa74)
2020-10-17 13:41:31 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-10-17 13:49:18 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 13:49:40 +0200cdepillabout(~cdepillab@pl35600.ag1001.nttpc.ne.jp)
2020-10-17 13:52:30 +0200hyiltiz(~quassel@unaffiliated/hyiltiz) (Remote host closed the connection)
2020-10-17 13:54:09 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 13:55:20 +0200dhil(~dhil@195.213.192.122) (Ping timeout: 258 seconds)
2020-10-17 13:57:44 +0200 <arahael> ANd that alternative is: "Anything else!" ;)
2020-10-17 14:00:02 +0200mterwoord(~mterwoord@178.162.204.238) ()
2020-10-17 14:00:03 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-17 14:03:25 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 14:03:55 +0200 <tomjaguarpaw> jophish: We should play a game some time
2020-10-17 14:04:59 +0200drbean(~drbean@TC210-63-209-144.static.apol.com.tw)
2020-10-17 14:06:57 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 14:08:10 +0200jud(~jud@unaffiliated/jud) (Quit: Leaving)
2020-10-17 14:08:48 +0200fragamus_(~michaelgo@73.93.152.141)
2020-10-17 14:10:06 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 14:10:49 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 14:11:25 +0200knupfer(~Thunderbi@200116b82cc5f500182db56019d06096.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-10-17 14:11:28 +0200fragamus(~michaelgo@73.93.153.97) (Ping timeout: 260 seconds)
2020-10-17 14:11:47 +0200alp_(~alp@2a01:e0a:58b:4920:e85b:6e33:d06d:4253) (Ping timeout: 272 seconds)
2020-10-17 14:12:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 14:12:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 14:13:44 +0200Amras(~Amras@unaffiliated/amras0000)
2020-10-17 14:15:10 +0200Buntspecht(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-10-17 14:15:10 +0200jpcooper(~user@unaffiliated/jpcooper)
2020-10-17 14:15:41 +0200 <jpcooper> Hello. The documentation for ShowS (https://hackage.haskell.org/package/base-4.14.0.0/docs/Prelude.html#t:ShowS) mentions constant time concatenation of Strings. How does this work if Strings are just [Char]?
2020-10-17 14:17:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-17 14:17:43 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 14:18:28 +0200invaser(~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
2020-10-17 14:19:31 +0200 <Cheery> jpcooper: it's how it is accessed.
2020-10-17 14:19:35 +0200 <jophish> tomjaguarpaw: I would like that very much
2020-10-17 14:19:51 +0200 <jpcooper> Cheery: Yes good point. Thanks. Should have worked it out in my head
2020-10-17 14:20:16 +0200supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-10-17 14:20:23 +0200 <jophish> tomjaguarpaw: I've been taking photos recently, if you'd like to look at an album: https://photos.app.goo.gl/yUVCPMRnks8cP4fHA
2020-10-17 14:20:26 +0200dyeplexer(~lol@unaffiliated/terpin)
2020-10-17 14:21:05 +0200jud(~jud@cpe-70-113-106-222.austin.res.rr.com)
2020-10-17 14:21:05 +0200jud(~jud@cpe-70-113-106-222.austin.res.rr.com) (Changing host)
2020-10-17 14:21:05 +0200jud(~jud@unaffiliated/jud)
2020-10-17 14:21:08 +0200 <Cheery> jpcooper: you only need the first value when the structure is being accessed.
2020-10-17 14:21:55 +0200Icewing(~Icewing@unaffiliated/icewing)
2020-10-17 14:22:13 +0200 <phadej> jpcooper: https://wiki.haskell.org/Difference_list
2020-10-17 14:22:25 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 240 seconds)
2020-10-17 14:22:40 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 272 seconds)
2020-10-17 14:23:02 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 14:23:12 +0200daGrevis(~daGrevis@unaffiliated/dagrevis) (Quit: daGrevis)
2020-10-17 14:23:47 +0200 <jpcooper> Makes sense. Thanks
2020-10-17 14:24:07 +0200Gerula(~Gerula@unaffiliated/gerula) (Read error: Connection reset by peer)
2020-10-17 14:24:18 +0200 <phadej> https://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/lists.pdf
2020-10-17 14:24:21 +0200 <phadej> very old idea :)
2020-10-17 14:24:25 +0200 <Cheery> for x ++ y, if x=(z:xs), then x ++ y = z:xs++y.
2020-10-17 14:24:39 +0200daGrevis(~daGrevis@unaffiliated/dagrevis)
2020-10-17 14:24:57 +0200hackagepolysemy-video 0.1.1.0 - https://hackage.haskell.org/package/polysemy-video-0.1.1.0 (locallycompact)
2020-10-17 14:26:51 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 14:27:32 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-17 14:28:06 +0200dmiles(dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
2020-10-17 14:29:15 +0200SanchayanM(~Sanchayan@136.185.169.16) (Quit: leaving)
2020-10-17 14:32:46 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-10-17 14:37:03 +0200fendor(~fendor@046124068105.public.t-mobile.at) (Remote host closed the connection)
2020-10-17 14:38:06 +0200geekosaur(ac3a8c49@172.58.140.73)
2020-10-17 14:38:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 14:40:32 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 14:43:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-10-17 14:44:02 +0200alp_(~alp@2a01:e0a:58b:4920:8da2:3041:1462:f42)
2020-10-17 14:46:58 +0200Achylles(~Achylles@179.111.113.1)
2020-10-17 14:46:59 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 14:47:33 +0200invaser(~Thunderbi@31.148.23.125)
2020-10-17 14:48:05 +0200gawen_(~gawen@movzbl.root.sx) (Quit: cya)
2020-10-17 14:48:28 +0200gawen(~gawen@movzbl.root.sx)
2020-10-17 14:48:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 14:48:50 +0200machinedgod(~machinedg@24.105.81.50)
2020-10-17 14:50:08 +0200revtintin(~revtintin@158.140.144.34)
2020-10-17 14:54:04 +0200dhil(~dhil@195.213.192.122)
2020-10-17 14:54:36 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 14:54:40 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-17 14:55:09 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2020-10-17 14:55:14 +0200polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-10-17 14:55:25 +0200Dragavnir(~Dragavnir@217.146.82.202)
2020-10-17 14:55:38 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2020-10-17 14:59:43 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-17 15:00:09 +0200isBEKaml(~~.~@unaffiliated/isbekaml)
2020-10-17 15:05:37 +0200alp_(~alp@2a01:e0a:58b:4920:8da2:3041:1462:f42) (Ping timeout: 272 seconds)
2020-10-17 15:09:16 +0200avdb(~avdb@ip-83-134-26-198.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-17 15:10:19 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 260 seconds)
2020-10-17 15:11:47 +0200ephemera_(~E@122.34.1.187)
2020-10-17 15:12:27 +0200JordiGH(jordi@octave/developer/JordiGH)
2020-10-17 15:12:51 +0200 <JordiGH> take 100 $ [fib_0*fib_3 - fib_1*fib_2 | fib_0:fib_1:fib_2:fib_3:_ <- tails fibs] where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
2020-10-17 15:12:57 +0200 <JordiGH> Why is that a syntax error?
2020-10-17 15:13:11 +0200 <JordiGH> Is it because I need newlines?
2020-10-17 15:13:20 +0200 <JordiGH> I don't understand where I can use `where`.
2020-10-17 15:13:20 +0200moy(a4b11321@static-csq-cds-019033.business.bouyguestelecom.com)
2020-10-17 15:13:45 +0200moyGuest29616
2020-10-17 15:13:55 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-10-17 15:13:56 +0200 <ski> JordiGH : `where' attaches to definition, not expressions
2020-10-17 15:13:58 +0200 <geekosaur> `where` is part of declaration syntax, not something you can attach to just any expression
2020-10-17 15:14:12 +0200carlomagno(~cararell@inet-hqmc01-o.oracle.com)
2020-10-17 15:14:45 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-10-17 15:15:10 +0200 <ski> you could use `let fibs = ... in take 100 [...]'
2020-10-17 15:15:25 +0200 <JordiGH> Is that because I can use = with let but not with where?
2020-10-17 15:15:35 +0200 <JordiGH> Is that a definition or an expression?
2020-10-17 15:15:47 +0200 <ski> `let ... in ...' is an expression
2020-10-17 15:15:51 +0200 <Guest29616> Hello. Since i added sockaddr as a dependency of my stack project, stack build is displayid me an error saying i need to add a line on extra-deps field. But when i do, then it say that extra-deps field is not recognized. I dont get it :/ Herer is the error and my package.yaml :
2020-10-17 15:15:52 +0200 <Guest29616> https://pastebin.com/68kGhcKJhttps://pastebin.com/68kGhcKJhttps://pastebin.com/68kGhcKJhttps://pas…
2020-10-17 15:15:54 +0200 <JordiGH> But there's an =
2020-10-17 15:15:58 +0200 <JordiGH> An = is not a definition?
2020-10-17 15:16:11 +0200 <Guest29616> https://pastebin.com/68kGhcKJ sorry
2020-10-17 15:16:15 +0200 <ski> yes, the part between the `let' and the `in' can contain defining equations
2020-10-17 15:16:27 +0200 <ski> but the whole thing is still an expression
2020-10-17 15:16:35 +0200 <JordiGH> So expressions can contain definitions?
2020-10-17 15:16:47 +0200 <JordiGH> I can't write an expression that contains a where definition?
2020-10-17 15:16:55 +0200 <ski> (cf the expression `(let ((fibs ...)) ..fibs..)' in the Lisps)
2020-10-17 15:16:58 +0200hackagenix-thunk 0.2.0.0 - Lightweight dependency management with Nix https://hackage.haskell.org/package/nix-thunk-0.2.0.0 (RyanTrinkle)
2020-10-17 15:17:23 +0200 <ski> you can, but then that `where' have to be attached to a defining equation (or a `case' branch), inside that expression
2020-10-17 15:17:40 +0200 <ski> you can go `let foo = ..x.. where x = ... in ..foo..'
2020-10-17 15:17:52 +0200 <JordiGH> Haskell doesn't distinguish statements from expressions, does it?
2020-10-17 15:18:06 +0200 <ski> (you can also do `case ... of x:xs -> ..x..xs..y.. where y = ..x..xs..')
2020-10-17 15:18:11 +0200 <JordiGH> Definitions seem like statements, sort of.
2020-10-17 15:18:30 +0200 <ski> definitions are not commands
2020-10-17 15:18:43 +0200 <ski> (commands are what you write after `do')
2020-10-17 15:18:44 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:a405:7897:267b:514b)
2020-10-17 15:19:06 +0200 <JordiGH> Hm, okay.
2020-10-17 15:19:34 +0200 <ski> (statements, i'd say, is what you write in Prolog. like `mother(bob,eliza).')
2020-10-17 15:19:38 +0200JordiGH= https://www.youtube.com/watch?v=KdxEAt91D7k
2020-10-17 15:19:55 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2020-10-17 15:20:29 +0200 <ski> (statements of fact, and conditional statements like "Mothers are parents.", `parent(Person,Mother) :- mother(Person,Mother).')
2020-10-17 15:22:04 +0200 <JordiGH> I think I'm trying to picture Haskell syntax as sexps and failing.
2020-10-17 15:22:15 +0200Guest29616(a4b11321@static-csq-cds-019033.business.bouyguestelecom.com) (Remote host closed the connection)
2020-10-17 15:22:57 +0200 <JordiGH> And I thought "do" wasn't a real thing, just some kind of sugar for something else.
2020-10-17 15:23:08 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 15:23:27 +0200 <JordiGH> Like, you could translate every "do" into something else that didn't require, uh, "commands".
2020-10-17 15:23:33 +0200 <geekosaur> it is sugar. I would have described it more that the inside of a do pretends to be commands
2020-10-17 15:23:39 +0200 <JordiGH> So, do is just a reader macro.
2020-10-17 15:23:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-10-17 15:24:00 +0200 <geekosaur> but trying to shoehorn haskell into scheme syntax won't get you very far, I think
2020-10-17 15:24:26 +0200ephemera_(~E@122.34.1.187)
2020-10-17 15:24:41 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 15:25:00 +0200 <geekosaur> I mean,in some sense typeclasses are also sugar, but you can't do it with a reader macro
2020-10-17 15:25:35 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 15:25:40 +0200 <ski> `do ...' itself is an expression, yes
2020-10-17 15:26:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 15:28:08 +0200 <ski> (there has been `do'-macros defined in Scheme, fwiw ..)
2020-10-17 15:28:52 +0200lnlsn(~lnlsn@189.100.212.150) (Ping timeout: 258 seconds)
2020-10-17 15:30:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-17 15:30:31 +0200Dragavnir(~Dragavnir@217.146.82.202) (Remote host closed the connection)
2020-10-17 15:30:38 +0200brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Quit: WeeChat 2.9)
2020-10-17 15:31:47 +0200lnlsn(~lnlsn@2804:14c:2b:891d::1007)
2020-10-17 15:32:09 +0200whald(~trem@2a02:810a:8100:11a6:6d28:5eff:640c:9eda)
2020-10-17 15:33:41 +0200lep-delete(~lep@94.31.82.44) (Read error: Connection reset by peer)
2020-10-17 15:33:59 +0200lep-delete(~lep@94.31.82.44)
2020-10-17 15:36:50 +0200 <JordiGH> I'm identifying so hard right now with that kid who can't subtract.
2020-10-17 15:38:59 +0200ephemera_(~E@122.34.1.187) (Read error: Connection reset by peer)
2020-10-17 15:39:19 +0200nyd(~lpy@unaffiliated/elysian)
2020-10-17 15:39:54 +0200ephemera_(~E@122.34.1.187)
2020-10-17 15:40:04 +0200neefany(4d283e9e@77.40.62.158)
2020-10-17 15:40:09 +0200 <ski> the syntax ?
2020-10-17 15:40:17 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 15:40:36 +0200ensyde(~ensyde@2600:1702:2e30:1a40:584e:1c7e:e97b:16d2)
2020-10-17 15:42:28 +0200Icewing(~Icewing@unaffiliated/icewing) (Ping timeout: 272 seconds)
2020-10-17 15:44:55 +0200ensyde(~ensyde@2600:1702:2e30:1a40:584e:1c7e:e97b:16d2) (Ping timeout: 240 seconds)
2020-10-17 15:46:53 +0200geekosaur(ac3a8c49@172.58.140.73) (Remote host closed the connection)
2020-10-17 15:47:05 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 15:47:29 +0200neefany(4d283e9e@77.40.62.158) (Remote host closed the connection)
2020-10-17 15:50:40 +0200Rudd0^(~Rudd0@185.189.115.98) (Ping timeout: 246 seconds)
2020-10-17 15:51:23 +0200reallymemorable(~quassel@ip68-9-215-56.ri.ri.cox.net) (Ping timeout: 260 seconds)
2020-10-17 15:51:32 +0200 <bifunc2> Is it appropriate to put an integration test into an HUnit testCase?
2020-10-17 15:52:13 +0200nyd(~lpy@unaffiliated/elysian) (Quit: nyd)
2020-10-17 15:53:03 +0200cdepillabout(~cdepillab@pl35600.ag1001.nttpc.ne.jp) (Quit: Leaving)
2020-10-17 15:55:06 +0200fendor(~fendor@046124068105.public.t-mobile.at)
2020-10-17 15:55:31 +0200drbean(~drbean@TC210-63-209-144.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-10-17 15:55:49 +0200Nahra(~Nahra@unaffiliated/nahra) (Quit: leaving)
2020-10-17 15:57:14 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 15:57:36 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:a405:7897:267b:514b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 16:00:50 +0200petersen(~petersen@redhat/juhp)
2020-10-17 16:00:57 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 16:01:52 +0200gnrp1(~gnrp@84.39.117.57)
2020-10-17 16:06:46 +0200bifunc2(bifunc2@gateway/vpn/protonvpn/bifunc2) (Ping timeout: 246 seconds)
2020-10-17 16:07:30 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-mfevbueuacsxobra)
2020-10-17 16:15:20 +0200kotrcka(~kotrcka@ip-94-112-194-11.net.upcbroadband.cz)
2020-10-17 16:16:14 +0200howdoi(uid224@gateway/web/irccloud.com/x-ingbgflergmrjqkw)
2020-10-17 16:16:30 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-10-17 16:16:35 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:fc2b:b27d:96e3:a54e)
2020-10-17 16:17:50 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:fc2b:b27d:96e3:a54e) (Client Quit)
2020-10-17 16:21:06 +0200dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 272 seconds)
2020-10-17 16:30:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 16:31:17 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-17 16:31:17 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-17 16:31:17 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-17 16:31:52 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
2020-10-17 16:32:25 +0200ericsagnes(~ericsagne@2405:6580:0:5100:1942:718:5977:178d) (Ping timeout: 240 seconds)
2020-10-17 16:33:47 +0200xff0x(~fox@2001:1a81:53c5:c200:800e:b588:fbcf:aa74) (Ping timeout: 260 seconds)
2020-10-17 16:33:59 +0200 <zincy__> Is it correct to refer to the parameter in Maybe's type constructor as a polymorphic type variable?
2020-10-17 16:34:38 +0200xff0x(~fox@2001:1a81:53c5:c200:3161:a29a:3186:4358)
2020-10-17 16:34:45 +0200 <L29Ah> s/polymorphic//
2020-10-17 16:35:15 +0200 <zincy__> Does that mean delete the word?
2020-10-17 16:35:28 +0200urodna(~urodna@unaffiliated/urodna)
2020-10-17 16:35:33 +0200lnlsn(~lnlsn@2804:14c:2b:891d::1007) (Ping timeout: 272 seconds)
2020-10-17 16:35:35 +0200kotrcka(~kotrcka@ip-94-112-194-11.net.upcbroadband.cz) (Quit: kotrcka)
2020-10-17 16:35:49 +0200 <L29Ah> yes
2020-10-17 16:36:14 +0200conal(~conal@64.71.133.70)
2020-10-17 16:36:18 +0200invaser(~Thunderbi@31.148.23.125) (Quit: invaser)
2020-10-17 16:36:44 +0200invaser(~Thunderbi@31.148.23.125)
2020-10-17 16:36:51 +0200 <zincy__> Ok thanks
2020-10-17 16:37:54 +0200dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
2020-10-17 16:37:57 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-nisutrzlzcwlcitv)
2020-10-17 16:38:48 +0200 <ski> zincy__ : not polymorphic
2020-10-17 16:39:03 +0200dhil(~dhil@195.213.192.122) (Ping timeout: 260 seconds)
2020-10-17 16:39:33 +0200Tops2(~Tobias@dyndsl-095-033-019-139.ewe-ip-backbone.de)
2020-10-17 16:39:57 +0200 <zincy__> ski: Maybe I dont understand what polymorphism is but when I see a type variable I just think oh look polymorphic
2020-10-17 16:40:02 +0200 <zincy__> Is that misguided?
2020-10-17 16:40:03 +0200 <ski> (parametric types begets polymorphic operations on such types. so there is a relation)
2020-10-17 16:40:45 +0200 <ski> `length' is polymorphic. its type `[a] -> Int' is not polymorphic (nor is the type variable `a', in that type, polymorphic)
2020-10-17 16:41:15 +0200 <zincy__> Oh so polymorphism refers to operations on values of different types
2020-10-17 16:41:41 +0200 <zincy__> Whereas type variable is just about representation
2020-10-17 16:41:48 +0200 <ski> the explicit type of `length' is `forall a. [a] -> Int'. Haskell allows you to leave out the `forall' in source, and it'll be inserted implicitly by the language. but it's always, conceptually, there
2020-10-17 16:42:12 +0200 <ski> a value is polymorphic if and only if it has a type of general shape `forall a. ..a..'
2020-10-17 16:42:24 +0200 <zincy__> Ah thanks!
2020-10-17 16:42:47 +0200 <ski> just like a value is a list if and only if it has a type of general shape `[...]'. or is a function if and only if it has a type of general shape `... -> ...'
2020-10-17 16:42:54 +0200 <zincy__> So just functions can be polymorphic?
2020-10-17 16:43:10 +0200Tops2(~Tobias@dyndsl-095-033-019-139.ewe-ip-backbone.de) (Client Quit)
2020-10-17 16:43:15 +0200 <ski> no. e.g. `Nothing' is not a function, but is still polymorphic. has type `forall a. Maybe a'
2020-10-17 16:43:56 +0200 <zincy__> Is Nothing not a data constructor and data constructors are functions?
2020-10-17 16:44:07 +0200 <ski> not all deata constructors are functions, no
2020-10-17 16:44:25 +0200 <ski> `Nothing' doesn't have a type that looks like `... -> ...'. hence it's not a function
2020-10-17 16:45:06 +0200 <zincy__> So only data constructors which are parameterised by at least one other value are functions?
2020-10-17 16:45:10 +0200jpcooper(~user@unaffiliated/jpcooper) (Ping timeout: 272 seconds)
2020-10-17 16:45:13 +0200 <ski> in fact, strictly speaking, `Just' isn't a function, either. it has type `forall a. a -> Maybe a'. it's a "polymorphic value (that when specialized, will become a function)"
2020-10-17 16:45:14 +0200ericsagnes(~ericsagne@2405:6580:0:5100:54da:6b21:e514:b8a2)
2020-10-17 16:45:18 +0200fragamus_(~michaelgo@73.93.152.141) (Read error: Connection reset by peer)
2020-10-17 16:45:38 +0200 <ski> yes, data constructors which take arguments, which "pack data fields", are functions
2020-10-17 16:46:07 +0200 <ski> (or, in this case, "polymorphic functions", meaning "polymorphic value, that when specialized, will become a function")
2020-10-17 16:46:24 +0200 <zincy__> So forall a. id :: a -> a isn't a function?
2020-10-17 16:46:33 +0200 <zincy__> Until you parameterise the `a`?
2020-10-17 16:46:45 +0200Katarushisu(~Katarushi@82.30.254.24) (Quit: The Lounge - https://thelounge.chat)
2020-10-17 16:47:18 +0200 <ski> strictly speaking, it's not a function. but if we take `id :: forall a. a -> a', and specialize this, replacing `a' by `Bool' say, we get `id :: Bool -> Bool', which is a function
2020-10-17 16:47:51 +0200 <zincy__> Thanks, I have upgraded my thinking
2020-10-17 16:47:55 +0200unlink2(~unlink2@p200300ebcf17c500f1cd4c5efbdddd1e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-17 16:48:02 +0200 <ski> one perhaps confusing part here is that the specializing of a polymorphic value is written as nothing, in the syntax. we still write `id'. but conceptually, it's an operation
2020-10-17 16:48:07 +0200 <zincy__> And to think I understood data constructors and Maybe :D
2020-10-17 16:48:21 +0200 <ski> (with a language extension, you can actually write `id @Bool' for this)
2020-10-17 16:49:00 +0200 <zincy__> Yeah so the polymorphic value becomes a function at some point during run time
2020-10-17 16:49:44 +0200 <ski> you can think of it as being a kind of expression node, in the abstract syntax tree in the implementation. it's just that it's (usually) written as nothing, in the source code
2020-10-17 16:50:00 +0200cole-h_(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-10-17 16:50:25 +0200fragamus(~michaelgo@73.93.152.141)
2020-10-17 16:50:26 +0200 <zincy__> Ah thanks
2020-10-17 16:51:28 +0200hackagepath-io 1.6.1 - Interface to ‘directory’ package for users of ‘path’ https://hackage.haskell.org/package/path-io-1.6.1 (mrkkrp)
2020-10-17 16:51:47 +0200isBEKaml(~~.~@unaffiliated/isbekaml) (Quit: Leaving)
2020-10-17 16:52:00 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 16:52:11 +0200 <ski> something like `data Exp | Var Ident | Con Ident | App Exp Exp | Spec Exp Typ | ...' with `data Typ = TyVar Ident | TyCon Ident | Fun Typ Typ | Forall Ident Typ | ...'
2020-10-17 16:52:14 +0200 <zincy__> So is the general shape the same for parametric and adhoc polymorphism?
2020-10-17 16:52:29 +0200 <zincy__> Or is the difference there just the behaviour of the operation
2020-10-17 16:53:25 +0200 <ski> you could represent an expression like `not (id False)', using this AST, as `App (Var "not") (App (Spec (Var "id") (TyCon "Bool")) (Con "False"))'
2020-10-17 16:53:54 +0200 <ski> zincy__ : the difference is that the latter also involve type class constraints
2020-10-17 16:54:08 +0200 <zincy__> Ok gotcha
2020-10-17 16:54:34 +0200 <ski> `sort :: forall a. Ord a => [a] -> [a]' means `sort :: forall a. ((Ord a) => ([a] -> [a]))'
2020-10-17 16:54:45 +0200 <zincy__> So will that AST be reqritten when the `a` is specialised?
2020-10-17 16:54:59 +0200 <zincy__> And when would the rewriting occur?
2020-10-17 16:55:01 +0200 <ski> `... => ...' is a separate operation on types. you could call it the type of overloaded operations, i suppose
2020-10-17 16:55:56 +0200 <zincy__> Interesting
2020-10-17 16:57:08 +0200 <ski> well, in that example, `Var "id"' would be classified as having the type (namely `forall a. a -> a') expressed by `Forall "a" (Fun (TyVar "a") (TyVar "a"))'
2020-10-17 16:57:40 +0200knupfer(~Thunderbi@200116b82cc5f5003098c64aed4ab9ee.dip.versatel-1u1.de)
2020-10-17 16:58:02 +0200alp_(~alp@2a01:e0a:58b:4920:417:348e:da6e:d990)
2020-10-17 16:58:37 +0200 <ski> specializing that to `Bool', we have that `Spec (Var "id")' is classified by `Fun (TyCon "Bool") (TyCon "Bool")'
2020-10-17 16:59:32 +0200hiroaki(~hiroaki@2a02:908:4b18:e20::a362) (Ping timeout: 246 seconds)
2020-10-17 17:00:01 +0200gnrp1(~gnrp@84.39.117.57) ()
2020-10-17 17:00:11 +0200 <ski> i'm not sure if the rewriting you have in mind would correspond to reducing/evaluating expressions .. or maybe you were thinking of the substitution (in the type, replacing the type variable with some other type) when specializing a polymorphic value
2020-10-17 17:00:24 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 17:01:43 +0200 <zincy__> The latter
2020-10-17 17:02:01 +0200unlink2(~unlink2@p200300ebcf3c540084d3be2f13d23449.dip0.t-ipconnect.de)
2020-10-17 17:02:17 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 17:02:50 +0200 <ski> that substitution (in the type) happens during type-checking
2020-10-17 17:03:06 +0200 <zincy__> So a nullary data/type constructor shouldn't be thought of as a function but just a plain value/type
2020-10-17 17:03:17 +0200 <zincy__> Ah ok
2020-10-17 17:03:54 +0200 <zincy__> Because I used to think of nullary constructors as functions of 0 parameters
2020-10-17 17:03:58 +0200 <ski> (you could imagine a corresponding substitution, in the implementation of e.g. `sort', that would be happening (conceptually) at run-time. it's just that with a type-erasing implementation, this would corresponds to a no-op)
2020-10-17 17:04:17 +0200 <ski> yea, all functions take exactly one argument, in Haskell
2020-10-17 17:04:31 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-17 17:04:38 +0200 <ski> if a value doesn't have a type that looks like `... -> ...', it's not a function
2020-10-17 17:04:47 +0200 <zincy__> Ah great thanks
2020-10-17 17:05:41 +0200Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-10-17 17:05:47 +0200 <ski> it's another thing that, because of Haskell's non-strict semantics, you can define a value, like e.g. with `ones = 1 : ones', whose computation won't happen yet, until its result is demanded
2020-10-17 17:06:47 +0200 <ski> in a strict language, the only way to delay a computation like this, tends to be to define a function. but that's not the case in Haskell
2020-10-17 17:07:47 +0200Buntspecht(~user@unaffiliated/siracusa)
2020-10-17 17:07:47 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-17 17:08:14 +0200 <ski> if you want to, you could say that general values, in Haskell, can be implemented by a procedure, that, when executed/followed, will produce the demanded result (typically a data constructor, to be matched on)
2020-10-17 17:08:35 +0200 <ski> but that's an implementation detail, not a property of Haskell itself
2020-10-17 17:08:48 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 17:09:10 +0200 <ski> (but sometimes people try to express this, by saying that "everything in Haskell is a function", or something like that)
2020-10-17 17:10:01 +0200invaser(~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds)
2020-10-17 17:10:37 +0200 <zincy__> So values with lazy semantics are represented by procedures which yield a value
2020-10-17 17:10:59 +0200 <zincy__> But functions are concrete values which are yielded by such procedures
2020-10-17 17:11:38 +0200 <zincy__> As in functions are specific values but in the first line I was talking about general values
2020-10-17 17:11:55 +0200 <ski> (careful to distinguish values at the level of the language, from .. i suppose, let's call them "tokens" .. at the level of the implementation)
2020-10-17 17:12:11 +0200hiroaki(~hiroaki@2a02:908:4b18:e20::dd5c)
2020-10-17 17:12:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 17:13:31 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 260 seconds)
2020-10-17 17:16:51 +0200 <zincy__> Yeah
2020-10-17 17:17:30 +0200lightwave(uid469838@gateway/web/irccloud.com/x-senxbphlukrorlpa)
2020-10-17 17:19:03 +0200 <lightwave> Hello everyone. Newbie here. Going down the Haskell highway without wearing a seat belt.
2020-10-17 17:19:05 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-10-17 17:19:23 +0200 <ski> hello lightwave
2020-10-17 17:19:57 +0200 <lightwave> hi ski
2020-10-17 17:20:31 +0200alp_(~alp@2a01:e0a:58b:4920:417:348e:da6e:d990) (Ping timeout: 272 seconds)
2020-10-17 17:20:37 +0200 <lightwave> Any Doom Emacs user here?
2020-10-17 17:20:38 +0200 <ski> do you have any questions, so far ?
2020-10-17 17:21:13 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 264 seconds)
2020-10-17 17:21:40 +0200 <lightwave> ski, I'm trying to get my Doom Emacs Haskell LSP module setup but having a confusion in Haskell-language-server installation.
2020-10-17 17:22:04 +0200skihasn't tried getting LSP working
2020-10-17 17:22:33 +0200 <lightwave> It seems Haskell-langauge-server can be installed with ghcup but I came across some advice against using ghcup. Is there a way to install Haskell-language-server with Stack?
2020-10-17 17:22:37 +0200 <ski> (if you wait a bit, perhaps someone else who's tried that could give some advice)
2020-10-17 17:22:41 +0200unlink2(~unlink2@p200300ebcf3c540084d3be2f13d23449.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-17 17:22:49 +0200 <lightwave> ski, what do you use? Dante?
2020-10-17 17:22:54 +0200unlink2(~unlink2@p200300ebcf3c54001b9e8be0a8d0c9c4.dip0.t-ipconnect.de)
2020-10-17 17:23:22 +0200Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-10-17 17:23:31 +0200 <maerwald> lightwave: what was that advice?
2020-10-17 17:23:44 +0200 <maerwald> (against using ghcup, that is)
2020-10-17 17:24:42 +0200skijust uses basic `haskell-mode'
2020-10-17 17:25:38 +0200 <lightwave> maerwald, here is the link. https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html
2020-10-17 17:26:34 +0200 <maerwald> I don't see ghcup discussed there
2020-10-17 17:26:51 +0200kuribas(~user@ptr-25vy0i8tzgojz6gquv5.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-10-17 17:26:56 +0200 <maerwald> that's a post from 2015
2020-10-17 17:27:01 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca)
2020-10-17 17:27:03 +0200 <lightwave> maerwald, is ghcup not the same as 'Haskell Platform'?
2020-10-17 17:27:05 +0200 <maerwald> no
2020-10-17 17:27:35 +0200 <lightwave> So, ghcup doesn't install a global ghc and packages along with it?
2020-10-17 17:27:37 +0200 <maerwald> I don't even know what haskell platform is these days
2020-10-17 17:27:51 +0200 <maerwald> lightwave: it installs ghc and cabal into ~/.ghcup
2020-10-17 17:27:55 +0200 <maerwald> nothing else
2020-10-17 17:28:04 +0200 <lightwave> Haskell.org points Haskell Platform to ghcup.
2020-10-17 17:28:16 +0200 <lightwave> Very confusing for newbie. :-)
2020-10-17 17:28:17 +0200 <maerwald> yes, it's a mess of page redirections and confusion
2020-10-17 17:28:26 +0200 <maerwald> I raised that several times, there's no action
2020-10-17 17:28:52 +0200dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 265 seconds)
2020-10-17 17:29:47 +0200 <maerwald> https://github.com/haskell-infra/www.haskell.org/issues/12
2020-10-17 17:30:19 +0200 <lightwave> Are those libraries/packages in ~/.ghcup/ghc/8.8.4/lib/ghc-8.8.4 not going to cause potential conflicts down the road for me?
2020-10-17 17:30:39 +0200 <maerwald> no, those are always shipped with GHC, no matter how you install
2020-10-17 17:30:49 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 17:31:13 +0200 <lightwave> I feel less stressed now. 🙂
2020-10-17 17:31:17 +0200 <maerwald> :D
2020-10-17 17:32:32 +0200 <lightwave> It drives me nut when I don't know if I'm potentially shooting myself in the foot especially when there is some voice in the Internet warning me loudly in my head.
2020-10-17 17:32:43 +0200fendor(~fendor@046124068105.public.t-mobile.at) (Ping timeout: 260 seconds)
2020-10-17 17:32:52 +0200 <maerwald> Paranoia is a virtue
2020-10-17 17:34:16 +0200Slava_(~textual@2a02:8308:89:8a00:2cbe:ab16:cb7a:e0ed)
2020-10-17 17:34:16 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-10-17 17:34:17 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-10-17 17:34:38 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-10-17 17:40:16 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 272 seconds)
2020-10-17 17:40:35 +0200jpcooper(~user@unaffiliated/jpcooper)
2020-10-17 17:42:24 +0200MattMareo(~mattl@unaffiliated/mattmareo) (Ping timeout: 256 seconds)
2020-10-17 17:42:57 +0200MattMareo(~mattl@unaffiliated/mattmareo)
2020-10-17 17:42:58 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6096:8e01:2935:dbba)
2020-10-17 17:44:22 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
2020-10-17 17:44:57 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-17 17:45:15 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-17 17:45:16 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-17 17:45:16 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-17 17:46:28 +0200hackagereq 3.7.0 - Easy-to-use, type-safe, expandable, high-level HTTP client library https://hackage.haskell.org/package/req-3.7.0 (mrkkrp)
2020-10-17 17:48:50 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-10-17 17:53:54 +0200Gerula(~Gerula@unaffiliated/gerula)
2020-10-17 17:55:15 +0200DarTar(~DarTar@185.204.1.185)
2020-10-17 17:55:26 +0200 <monochrom> How could the Internet be in your head?
2020-10-17 17:55:34 +0200 <maerwald> a terrifying thought
2020-10-17 17:56:37 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2020-10-17 17:56:44 +0200 <monochrom> "The Phaaaaaaan, tom of the Internet is theeeeeeeere. In siiiiide my mind!"
2020-10-17 17:58:32 +0200fendor(~fendor@178.165.129.91.wireless.dyn.drei.com)
2020-10-17 17:58:33 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-17 17:58:40 +0200jneira_(~jneira@80.30.100.250)
2020-10-17 17:59:01 +0200 <monochrom> Haskell Platform is now a historic relic.
2020-10-17 18:00:10 +0200fendor_(~fendor@046124068105.public.t-mobile.at)
2020-10-17 18:00:22 +0200Rudd0(~Rudd0@185.189.115.98)
2020-10-17 18:00:24 +0200jsynacek(~jsynacek@ip-185-149-130-112.kmenet.cz)
2020-10-17 18:03:57 +0200 <MarcelineVQ> It belongs in a museum!
2020-10-17 18:04:07 +0200 <lightwave> monochrom, my wife says I have a big head.
2020-10-17 18:04:17 +0200 <maerwald> xd
2020-10-17 18:04:22 +0200 <monochrom> Megamind
2020-10-17 18:05:28 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-17 18:05:33 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-17 18:06:21 +0200chris(~chris@81.96.113.213)
2020-10-17 18:06:45 +0200chrisGuest14237
2020-10-17 18:07:57 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-17 18:08:19 +0200Achylles(~Achylles@179.111.113.1) (Quit: Leaving)
2020-10-17 18:08:27 +0200tzh(~tzh@2601:448:c500:5300::bfca)
2020-10-17 18:08:33 +0200knupfer(~Thunderbi@200116b82cc5f5003098c64aed4ab9ee.dip.versatel-1u1.de) (Quit: knupfer)
2020-10-17 18:08:47 +0200knupfer(~Thunderbi@200116b82cc5f5009c7410757d55ad2f.dip.versatel-1u1.de)
2020-10-17 18:14:47 +0200GyroW(~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
2020-10-17 18:15:05 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-17 18:15:06 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-17 18:15:06 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-17 18:17:24 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection)
2020-10-17 18:17:32 +0200jneira_(~jneira@80.30.100.250) (Ping timeout: 258 seconds)
2020-10-17 18:18:06 +0200ystael(~ystael@209.6.50.55)
2020-10-17 18:18:27 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net)
2020-10-17 18:18:27 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-17 18:20:02 +0200lawr3nce(~lawr3nce@gateway/tor-sasl/lawr3nce)
2020-10-17 18:21:11 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu)
2020-10-17 18:21:34 +0200fendor_(~fendor@046124068105.public.t-mobile.at) (Ping timeout: 256 seconds)
2020-10-17 18:23:20 +0200dcoutts_(~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 272 seconds)
2020-10-17 18:23:32 +0200alp_(~alp@2a01:e0a:58b:4920:fc9b:d25a:66ec:3629)
2020-10-17 18:24:25 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6096:8e01:2935:dbba) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 18:28:58 +0200hackagehaskell-exp-parser 0.1.4 - Simple parser parser from Haskell to TemplateHaskell expressions https://hackage.haskell.org/package/haskell-exp-parser-0.1.4 (EmilAxelsson)
2020-10-17 18:29:13 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 246 seconds)
2020-10-17 18:31:37 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-17 18:31:48 +0200GyroW(~GyroW@d54c03e98.access.telenet.be)
2020-10-17 18:31:48 +0200GyroW(~GyroW@d54c03e98.access.telenet.be) (Changing host)
2020-10-17 18:31:48 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-17 18:31:52 +0200Slava_(~textual@2a02:8308:89:8a00:2cbe:ab16:cb7a:e0ed) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 18:34:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-17 18:34:13 +0200toorevitimirp(~tooreviti@117.182.180.0) (Quit: Konversation terminated!)
2020-10-17 18:34:28 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-17 18:39:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 18:40:05 +0200jpcooper(~user@unaffiliated/jpcooper) (Ping timeout: 240 seconds)
2020-10-17 18:42:33 +0200Tops2(~Tobias@dyndsl-095-033-019-139.ewe-ip-backbone.de)
2020-10-17 18:44:08 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2020-10-17 18:44:58 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Client Quit)
2020-10-17 18:45:11 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 18:45:56 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 256 seconds)
2020-10-17 18:47:14 +0200ephemera_(~E@122.34.1.187)
2020-10-17 18:48:07 +0200lep-deleteGuest88073
2020-10-17 18:49:28 +0200 <maerwald> https://paste.tomsmeding.com/N28qCrM3 is there a more efficient way to write this? (with efficient I mean faster/better optimized, not golfing)e
2020-10-17 18:50:38 +0200 <opqdonut> looks pretty optimal to me
2020-10-17 18:50:43 +0200 <phadej> maerwald: chunksOf -- no
2020-10-17 18:50:54 +0200 <opqdonut> given lists
2020-10-17 18:51:14 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6096:8e01:2935:dbba)
2020-10-17 18:51:15 +0200 <phadej> https://hackage.haskell.org/package/extra-1.7.8/docs/src/Data.List.Extra.html#chunksOf
2020-10-17 18:51:48 +0200 <maerwald> that looks pretty much the same, yeah
2020-10-17 18:52:25 +0200irc_user(uid423822@gateway/web/irccloud.com/x-jycoetfjhrvokwjj)
2020-10-17 18:52:52 +0200Guest88073lep-delete
2020-10-17 18:53:18 +0200coot(~coot@37.30.35.208.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 256 seconds)
2020-10-17 18:54:12 +0200Slava_(~textual@2a02:8308:89:8a00:2cbe:ab16:cb7a:e0ed)
2020-10-17 18:56:48 +0200howdoi(uid224@gateway/web/irccloud.com/x-ingbgflergmrjqkw) (Quit: Connection closed for inactivity)
2020-10-17 18:56:54 +0200jneira_(~jneira@111.red-176-83-68.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
2020-10-17 18:58:34 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 18:59:55 +0200ephemera_(~E@122.34.1.187)
2020-10-17 19:00:42 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 19:01:31 +0200lawr3nce(~lawr3nce@gateway/tor-sasl/lawr3nce) (Quit: Leaving)
2020-10-17 19:04:57 +0200hackagejoint 0.1.8 - Trying to compose non-composable https://hackage.haskell.org/package/joint-0.1.8 (iokasimovmt)
2020-10-17 19:05:37 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 264 seconds)
2020-10-17 19:06:37 +0200lnlsn(~lnlsn@189.100.212.150) (Remote host closed the connection)
2020-10-17 19:06:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 19:06:55 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-mfevbueuacsxobra) (Quit: Connection closed for inactivity)
2020-10-17 19:10:26 +0200Guest14237(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 19:11:59 +0200alp_(~alp@2a01:e0a:58b:4920:fc9b:d25a:66ec:3629) (Ping timeout: 272 seconds)
2020-10-17 19:12:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-17 19:12:55 +0200avdb(~avdb@ip-83-134-202-115.dsl.scarlet.be)
2020-10-17 19:18:49 +0200LKoen(~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-10-17 19:21:16 +0200Slava_(~textual@2a02:8308:89:8a00:2cbe:ab16:cb7a:e0ed) (Quit: Textual IRC Client: www.textualapp.com)
2020-10-17 19:21:48 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-10-17 19:22:06 +0200elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-17 19:22:12 +0200avdb(~avdb@ip-83-134-202-115.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-17 19:22:14 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-10-17 19:22:27 +0200avdb(~avdb@ip-83-134-202-115.dsl.scarlet.be)
2020-10-17 19:22:34 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-17 19:25:03 +0200Kira_(~Kira@201.192.165.173)
2020-10-17 19:25:05 +0200mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-10-17 19:25:50 +0200dhil(~dhil@195.213.192.122)
2020-10-17 19:25:59 +0200halogenandtoast(~halogenan@072-176-116-031.res.spectrum.com) (Quit: WeeChat 2.9)
2020-10-17 19:26:58 +0200avdb(~avdb@ip-83-134-202-115.dsl.scarlet.be) (Client Quit)
2020-10-17 19:27:05 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds)
2020-10-17 19:27:19 +0200 <Kira_> Greetings
2020-10-17 19:27:25 +0200 <lightwave> Hello Kira
2020-10-17 19:27:35 +0200 <Kira_> Helloo
2020-10-17 19:28:20 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-uldwzywipdbtosxt)
2020-10-17 19:30:05 +0200 <lightwave> newbie question: If one stack install hoogle or something else from one stack project and then stack install hoogle from another stack project. The hoogle binary will be overwritten in ~/.local/bin. If two different stack projects are using two different LTS version and hence two GHC versions, how do you ensure each sandbox project has its own versioned Hoogle binary?
2020-10-17 19:30:57 +0200 <phadej> version of hoogle binary itself doesn't matter
2020-10-17 19:31:28 +0200 <phadej> (except I don't know how compatible databases are)
2020-10-17 19:31:43 +0200 <phadej> but having just one hoogle binary will make your life easier
2020-10-17 19:32:33 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-10-17 19:32:57 +0200 <geekosaur> what should happen is it gets installed in a project-specific exec directpry and then symlinked to ~/local/bin, then use stack exec to run hoogle within each project to ensure its specific hoogle is run. although as phadej says it'll all go easier if you can get away with running one version globally
2020-10-17 19:33:49 +0200oats(~hurr@durr/im/a/sheep) (Quit: until later, my friends)
2020-10-17 19:34:11 +0200cole-h_cole-h
2020-10-17 19:34:12 +0200oats(~hurr@durr/im/a/sheep)
2020-10-17 19:34:39 +0200 <Kira_> I've havent organized myself to continuously keep practicing haskell, but little by little I think Im understanding the language. Finally when attempting to finish my tiny dummy login, I attempted to do the following:
2020-10-17 19:34:47 +0200 <Kira_> https://pastebin.com/0DTLpFrW
2020-10-17 19:34:54 +0200Inoperable(~PLAYER_1@fancydata.science) (Remote host closed the connection)
2020-10-17 19:35:10 +0200 <Kira_> but Im getting the error noted at the end of the pastebin ^:
2020-10-17 19:35:40 +0200 <Kira_> • Couldn't match type ‘Login’ with ‘HashMap Text Value’
2020-10-17 19:35:43 +0200 <Kira_> Expected type: Object
2020-10-17 19:35:45 +0200 <Kira_> Actual type: Login
2020-10-17 19:35:47 +0200 <Kira_> • In the first argument of ‘(.:)’, namely ‘login’
2020-10-17 19:36:42 +0200 <Kira_> in Yesod do we obtain the values of keys of a JSON in a different way?
2020-10-17 19:37:46 +0200 <geekosaur> it's not a json at that point, but a Haskell value
2020-10-17 19:39:30 +0200 <geekosaur> or at least that's what you have told it with the type `Handler Login`
2020-10-17 19:41:16 +0200jkachmar(uid226591@gateway/web/irccloud.com/x-veduxhoxxqmbqgpm)
2020-10-17 19:42:32 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 256 seconds)
2020-10-17 19:42:53 +0200ephemera_(~E@122.34.1.187)
2020-10-17 19:45:51 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-17 19:46:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 19:46:38 +0200a1c3(~a1c3@c-67-175-34-43.hsd1.il.comcast.net)
2020-10-17 19:46:49 +0200 <a1c3> :t
2020-10-17 19:46:55 +0200 <Kira_> hmmm
2020-10-17 19:47:02 +0200 <Kira_> so then I should transform my Handler Login into a
2020-10-17 19:47:05 +0200 <Kira_> Login
2020-10-17 19:47:30 +0200 <Kira_> and then, obtain the property email, from this Login
2020-10-17 19:47:34 +0200 <geekosaur> requireCheckJsonBody presumably did that
2020-10-17 19:47:46 +0200 <monochrom> You already have your Login.
2020-10-17 19:47:49 +0200 <geekosaur> so you just want to extract the email field from the resulting Haskell value
2020-10-17 19:48:33 +0200a1c3(~a1c3@c-67-175-34-43.hsd1.il.comcast.net) (Client Quit)
2020-10-17 19:49:58 +0200 <Kira_> Yup, you guys were right
2020-10-17 19:50:19 +0200 <Kira_> like this:
2020-10-17 19:50:21 +0200 <Kira_> postUserLoginR :: Handler Value
2020-10-17 19:50:24 +0200 <Kira_> postUserLoginR = do
2020-10-17 19:50:26 +0200 <Kira_> login <- requireCheckJsonBody :: Handler Login
2020-10-17 19:50:28 +0200 <Kira_> let usermail = email login
2020-10-17 19:50:30 +0200 <Kira_> sendStatusJSON ok200 (object [ "login" .= usermail ] )
2020-10-17 19:50:32 +0200 <Kira_> the method compiles
2020-10-17 19:50:35 +0200 <Kira_> the project *
2020-10-17 19:50:55 +0200 <Kira_> and then, when performing a POST request, I now get the user email
2020-10-17 19:50:59 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-17 19:50:59 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-17 19:50:59 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-17 19:51:23 +0200 <Kira_> as {"login": "foo@mail.com"}
2020-10-17 19:51:31 +0200 <Kira_> Thank you all!
2020-10-17 19:52:10 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
2020-10-17 19:57:31 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 244 seconds)
2020-10-17 19:58:39 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6096:8e01:2935:dbba) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-17 19:59:28 +0200hackageless-arbitrary 0.1.0.0 - Linear time testing with variant of Arbitrary class that always terminates. https://hackage.haskell.org/package/less-arbitrary-0.1.0.0 (MichalGajda)
2020-10-17 20:00:02 +0200DarTar(~DarTar@185.204.1.185) ()
2020-10-17 20:01:14 +0200dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-10-17 20:02:14 +0200alp_(~alp@2a01:e0a:58b:4920:a0a0:4e46:1a7b:c634)
2020-10-17 20:02:14 +0200fendor_(~fendor@178.165.130.180.wireless.dyn.drei.com)
2020-10-17 20:03:56 +0200chaosmasttter(~chaosmast@p200300c4a710fa0165702c806d7b3e40.dip0.t-ipconnect.de)
2020-10-17 20:04:42 +0200fendor(~fendor@178.165.129.91.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2020-10-17 20:05:27 +0200hackageless-arbitrary 0.1.0.1 - Linear time testing with variant of Arbitrary class that always terminates. https://hackage.haskell.org/package/less-arbitrary-0.1.0.1 (MichalGajda)
2020-10-17 20:07:10 +0200chris(~chris@81.96.113.213)
2020-10-17 20:07:33 +0200chrisGuest44468
2020-10-17 20:09:14 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-10-17 20:09:28 +0200 <monochrom> aaarrrggghhh they forgot to include less-arbitray.md
2020-10-17 20:09:31 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 20:10:22 +0200knupfer(~Thunderbi@200116b82cc5f5009c7410757d55ad2f.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-17 20:10:30 +0200knupfer(~Thunderbi@200116b82cc5f5003098c64aed4ab9ee.dip.versatel-1u1.de)
2020-10-17 20:10:57 +0200 <monochrom> OK nevermind, probably intended.
2020-10-17 20:11:19 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 260 seconds)
2020-10-17 20:11:44 +0200ephemera_(~E@122.34.1.187)
2020-10-17 20:11:48 +0200mananamenos__(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-10-17 20:11:53 +0200Inoperable(~PLAYER_1@fancydata.science)
2020-10-17 20:13:13 +0200stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-10-17 20:13:30 +0200stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
2020-10-17 20:15:03 +0200mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 260 seconds)
2020-10-17 20:15:18 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-17 20:17:59 +0200ephemera_(~E@122.34.1.187) (Read error: Connection reset by peer)
2020-10-17 20:17:59 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 20:18:01 +0200kenran(~maier@87.123.205.246)
2020-10-17 20:18:41 +0200ephemera_(~E@122.34.1.187)
2020-10-17 20:20:23 +0200cosimone_(~cosimone@5.170.241.6)
2020-10-17 20:20:56 +0200netsoundW1(~netsoundW@185.204.1.185)
2020-10-17 20:22:26 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-17 20:23:52 +0200cosimone__(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-17 20:23:58 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 20:24:12 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 260 seconds)
2020-10-17 20:24:38 +0200cosimone__cosimone
2020-10-17 20:25:17 +0200Guest44468(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-17 20:25:40 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-10-17 20:26:01 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-10-17 20:26:19 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-10-17 20:26:50 +0200cosimone_(~cosimone@5.170.241.6) (Ping timeout: 272 seconds)
2020-10-17 20:26:54 +0200brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net)
2020-10-17 20:28:01 +0200conal_(~conal@64.71.133.70)
2020-10-17 20:29:16 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-10-17 20:29:58 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-10-17 20:31:31 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 20:32:49 +0200ephemera_(~E@122.34.1.187)
2020-10-17 20:33:09 +0200revtintin(~revtintin@158.140.144.34) (Quit: WeeChat 2.9)
2020-10-17 20:36:52 +0200dcoutts_(~duncan@33.14.75.194.dyn.plus.net)
2020-10-17 20:37:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 20:39:02 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-17 20:39:54 +0200ddellacosta(~dd@86.106.121.168)
2020-10-17 20:41:12 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-10-17 20:42:35 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-17 20:42:52 +0200ericsagnes(~ericsagne@2405:6580:0:5100:54da:6b21:e514:b8a2) (Ping timeout: 260 seconds)
2020-10-17 20:43:57 +0200acidjnk_new(~acidjnk@p200300d0c72378540964073eddc5c406.dip0.t-ipconnect.de)
2020-10-17 20:44:09 +0200MaoZeDong_(~yuri@2a00:1370:8135:ef77:e999:4684:87eb:b717)
2020-10-17 20:44:15 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-10-17 20:45:12 +0200kenran(~maier@87.123.205.246) (Ping timeout: 272 seconds)
2020-10-17 20:47:40 +0200aenesidemus(~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) (Read error: Connection reset by peer)
2020-10-17 20:47:51 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-10-17 20:49:58 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-17 20:51:13 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu)
2020-10-17 20:53:19 +0200MaoZeDong_(~yuri@2a00:1370:8135:ef77:e999:4684:87eb:b717) (Ping timeout: 272 seconds)
2020-10-17 20:54:59 +0200ericsagnes(~ericsagne@2405:6580:0:5100:c46f:cebb:a37a:3cd)
2020-10-17 20:56:13 +0200elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2020-10-17 21:01:43 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 21:02:19 +0200masamasa(~jimmy@2a02:20c8:4124::1d)
2020-10-17 21:02:24 +0200 <masamasa> haskell is fooking shite
2020-10-17 21:03:17 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-10-17 21:03:20 +0200mananamenos__(~mananamen@84.122.202.215.dyn.user.ono.com) (Quit: Leaving)
2020-10-17 21:03:22 +0200berberman_(~berberman@unaffiliated/berberman)
2020-10-17 21:03:39 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-10-17 21:05:33 +0200 <maerwald> this seems to be a recent meme
2020-10-17 21:06:17 +0200Deide(~Deide@217.155.19.23)
2020-10-17 21:06:22 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 265 seconds)
2020-10-17 21:06:24 +0200 <maerwald> I wonder if these are the fruits of a failed course
2020-10-17 21:06:41 +0200 <masamasa> fak u
2020-10-17 21:06:48 +0200 <geekosaur> or "fruit" singular
2020-10-17 21:07:26 +0200 <maerwald> masamasa: I respectfully decline
2020-10-17 21:07:55 +0200ChanServ+o monochrom
2020-10-17 21:07:58 +0200monochrom+b *!*@2a02:20c8:4124::1d
2020-10-17 21:07:58 +0200masamasamonochrommasamasa
2020-10-17 21:08:06 +0200monochrom-o monochrom
2020-10-17 21:08:38 +0200coot(~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl)
2020-10-17 21:10:09 +0200lemmih(~lemmih@2406:3003:2072:44:70c9:d5cf:dc27:2e6a) (Remote host closed the connection)
2020-10-17 21:10:26 +0200lemmih(~lemmih@2406:3003:2072:44:508f:7862:5b0d:296)
2020-10-17 21:11:38 +0200 <Rembane> Is the fruit from the appetizer, main course or desert?
2020-10-17 21:11:50 +0200 <Kira_> wow
2020-10-17 21:13:25 +0200conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-17 21:13:55 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 240 seconds)
2020-10-17 21:14:49 +0200 <geekosaur> just desserts?
2020-10-17 21:14:55 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:14c3:11ef:29f5:c42)
2020-10-17 21:15:22 +0200lucasb(uid333435@gateway/web/irccloud.com/x-tkhwugfitzdjoeco)
2020-10-17 21:15:37 +0200 <Rembane> Seems legit, the spice must flow.
2020-10-17 21:16:11 +0200 <Rembane> Also, I learned the hard way that you need to walk without rhythm and you won't attract the worm.
2020-10-17 21:17:09 +0200lemmih(~lemmih@2406:3003:2072:44:508f:7862:5b0d:296) (Remote host closed the connection)
2020-10-17 21:17:37 +0200lemmih(~lemmih@2406:3003:2072:44:508f:7862:5b0d:296)
2020-10-17 21:17:52 +0200tzh(~tzh@2601:448:c500:5300::bfca) (Ping timeout: 260 seconds)
2020-10-17 21:20:07 +0200 <tomsmeding> geekosaur: the three that I remember (including this one) were all different IPs, it seems
2020-10-17 21:20:39 +0200anik(~anik@103.23.207.146)
2020-10-17 21:21:08 +0200tzh(~tzh@c-73-94-222-143.hsd1.mn.comcast.net)
2020-10-17 21:27:12 +0200 <monochrom> Can worms tell whether your walk pattern is cryptographically random or not? :)
2020-10-17 21:29:23 +0200 <Rembane> monochrom: The high level worms with great taste can. :)
2020-10-17 21:29:49 +0200geekosaur*eyeroll*
2020-10-17 21:31:32 +0200anik(~anik@103.23.207.146) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2020-10-17 21:35:57 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:14c3:11ef:29f5:c42) (Ping timeout: 260 seconds)
2020-10-17 21:39:42 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com) (Remote host closed the connection)
2020-10-17 21:40:14 +0200Guest_76(49fcca1b@73.252.202.27)
2020-10-17 21:41:08 +0200Guest_76(49fcca1b@73.252.202.27) ()
2020-10-17 21:41:29 +0200 <ddellacosta> wait, did that person leave without anyone converting them into a Haskell fanatic? sad
2020-10-17 21:42:22 +0200 <koz_> ddellacosta: We only have so much juice.
2020-10-17 21:42:26 +0200 <[exa]> unbeievable, these difficult times
2020-10-17 21:42:38 +0200 <ddellacosta> koz_: that's fair
2020-10-17 21:42:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-10-17 21:42:59 +0200 <koz_> And honestly, I don't think we're under any obligation to convince bad-faith trolls.
2020-10-17 21:43:13 +0200 <koz_> It's not usually even possible.
2020-10-17 21:43:27 +0200 <ddellacosta> koz_: oh not at all, I just always think of that one legendary exchange with the person who came on here trolling and then decided to check Haskell out for real
2020-10-17 21:43:44 +0200 <koz_> ddellacosta: Well, sometimes, we can work magic, but honestly, in 2020? We're all tired.
2020-10-17 21:43:48 +0200supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Read error: Connection reset by peer)
2020-10-17 21:43:54 +0200 <ddellacosta> koz_: absolutely, I feel that
2020-10-17 21:44:37 +0200 <ddellacosta> here we are (homophobic language at the beginning, be warned) https://gist.github.com/quchen/5280339
2020-10-17 21:45:49 +0200 <koz_> ddellacosta: Yeah, I'm familiar.
2020-10-17 21:46:36 +0200 <ddellacosta> to be fair, in the example I linked to that person was clearly more receptive
2020-10-17 21:46:56 +0200gioyik(~gioyik@190.67.155.46)
2020-10-17 21:47:02 +0200 <maerwald> he only got kicked from bitcoin-dev
2020-10-17 21:47:08 +0200 <maerwald> that doesn't seem too hard
2020-10-17 21:47:13 +0200 <ddellacosta> hahaha
2020-10-17 21:52:23 +0200hyiltiz(~quassel@82.118.227.47)
2020-10-17 21:52:23 +0200hyiltiz(~quassel@82.118.227.47) (Changing host)
2020-10-17 21:52:23 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2020-10-17 21:53:30 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-vyxxbgdzqophhzrj)
2020-10-17 21:55:51 +0200karanlikmadde(~karanlikm@2a01:c23:641c:2200:c88d:7d7e:c962:437f) (Quit: karanlikmadde)
2020-10-17 22:01:17 +0200lucid_0x80(~lucid_0x8@188.253.231.133)
2020-10-17 22:02:35 +0200lucid_0x80(~lucid_0x8@188.253.231.133) (Read error: Connection reset by peer)
2020-10-17 22:02:48 +0200 <tomsmeding> that is an absolute gem
2020-10-17 22:02:56 +0200 <tomsmeding> though indeed the person seemed more receptive
2020-10-17 22:02:58 +0200lucid_0x80(~lucid_0x8@188.253.231.133)
2020-10-17 22:03:12 +0200lucid_0x80(~lucid_0x8@188.253.231.133) (Max SendQ exceeded)
2020-10-17 22:03:56 +0200lucid_0x80(~lucid_0x8@188.253.231.133)
2020-10-17 22:04:11 +0200lucid_0x80(~lucid_0x8@188.253.231.133) (Max SendQ exceeded)
2020-10-17 22:04:43 +0200lucid_0x80(~lucid_0x8@188.253.231.133)
2020-10-17 22:04:56 +0200lucid_0x80(~lucid_0x8@188.253.231.133) (Max SendQ exceeded)
2020-10-17 22:05:28 +0200lucid_0x80(~lucid_0x8@188.253.231.133)
2020-10-17 22:05:43 +0200lucid_0x80(~lucid_0x8@188.253.231.133) (Max SendQ exceeded)
2020-10-17 22:07:27 +0200knupfer(~Thunderbi@200116b82cc5f5003098c64aed4ab9ee.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-10-17 22:08:20 +0200fendor_(~fendor@178.165.130.180.wireless.dyn.drei.com) (Remote host closed the connection)
2020-10-17 22:09:16 +0200StoneToad(~StoneToad@199-167-119-214.ppp.storm.ca)
2020-10-17 22:09:53 +0200fendor(~fendor@178.165.130.180.wireless.dyn.drei.com)
2020-10-17 22:10:03 +0200conal(~conal@64.71.133.70)
2020-10-17 22:10:31 +0200fendor(~fendor@178.165.130.180.wireless.dyn.drei.com) (Remote host closed the connection)
2020-10-17 22:11:34 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-10-17 22:13:19 +0200rprije(~rprije@203-219-208-42.static.tpgi.com.au)
2020-10-17 22:13:58 +0200Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Quit: Leaving)
2020-10-17 22:16:13 +0200Tops2(~Tobias@dyndsl-095-033-019-139.ewe-ip-backbone.de) (Ping timeout: 260 seconds)
2020-10-17 22:17:17 +0200lnlsn(~lnlsn@189.100.212.150)
2020-10-17 22:18:05 +0200son0p(~son0p@181.136.122.143)
2020-10-17 22:18:16 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-17 22:21:42 +0200ephemera_(~E@122.34.1.187) (Remote host closed the connection)
2020-10-17 22:23:00 +0200ephemera_(~E@122.34.1.187)
2020-10-17 22:25:03 +0200lnlsn(~lnlsn@189.100.212.150) (Read error: Connection reset by peer)
2020-10-17 22:25:34 +0200karanlikmadde(~karanlikm@2a01:c23:641c:2200:c88d:7d7e:c962:437f)
2020-10-17 22:26:07 +0200 <{abby}> love the lambdabot command to ping all of the ops
2020-10-17 22:27:38 +0200Jonkimi727406120(~Jonkimi@223.213.79.20)
2020-10-17 22:28:38 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 256 seconds)
2020-10-17 22:28:52 +0200elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-17 22:30:05 +0200ephemera_(~E@122.34.1.187)
2020-10-17 22:30:44 +0200stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-10-17 22:31:01 +0200stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
2020-10-17 22:32:04 +0200Jonkimi727406120(~Jonkimi@223.213.79.20) (Ping timeout: 258 seconds)
2020-10-17 22:34:31 +0200man(4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net)
2020-10-17 22:34:39 +0200manGuest55558
2020-10-17 22:34:56 +0200Guest55558(4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net) (Remote host closed the connection)
2020-10-17 22:37:03 +0200plast1k_(~plast1k_@196.207.181.246) (Ping timeout: 258 seconds)
2020-10-17 22:41:18 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu) (Remote host closed the connection)
2020-10-17 22:41:51 +0200abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
2020-10-17 22:42:31 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 260 seconds)
2020-10-17 22:43:17 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2020-10-17 22:43:45 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2020-10-17 22:45:49 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-10-17 22:45:54 +0200knupfer(~Thunderbi@200116b82cc5f500858f4de08bca2329.dip.versatel-1u1.de)
2020-10-17 22:48:49 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2020-10-17 22:50:37 +0200knupfer(~Thunderbi@200116b82cc5f500858f4de08bca2329.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-10-17 22:52:48 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:fce4:f626:e7a:99f3)
2020-10-17 22:56:56 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 272 seconds)
2020-10-17 22:57:43 +0200ephemera_(~E@122.34.1.187)
2020-10-17 23:00:01 +0200netsoundW1(~netsoundW@185.204.1.185) ()
2020-10-17 23:00:50 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-10-17 23:01:28 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2020-10-17 23:02:11 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2020-10-17 23:03:26 +0200chaosmasttter(~chaosmast@p200300c4a710fa0165702c806d7b3e40.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-17 23:03:42 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-10-17 23:06:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-10-17 23:06:47 +0200hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-17 23:08:43 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-10-17 23:10:52 +0200ephemera_(~E@122.34.1.187) (Ping timeout: 272 seconds)
2020-10-17 23:11:16 +0200ephemera_(~E@122.34.1.187)
2020-10-17 23:11:58 +0200ashbreeze(~mark@72-161-252-32.dyn.centurytel.net)
2020-10-17 23:12:19 +0200jsynacek(~jsynacek@ip-185-149-130-112.kmenet.cz) (Ping timeout: 258 seconds)
2020-10-17 23:12:50 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-17 23:12:50 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-17 23:12:50 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-17 23:13:46 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 246 seconds)
2020-10-17 23:14:43 +0200_ashbreeze_(~mark@72-161-252-240.dyn.centurytel.net) (Ping timeout: 260 seconds)
2020-10-17 23:17:51 +0200carldd102(~carldd@90-224-49-113-no56.tbcn.telia.com) (Quit: The Lounge - https://thelounge.chat)
2020-10-17 23:18:14 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2020-10-17 23:18:59 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-10-17 23:20:28 +0200hackageuniqueness-periods-vector-examples 0.13.0.0 - Usage examples for the uniqueness-periods-vector series of packages https://hackage.haskell.org/package/uniqueness-periods-vector-examples-0.13.0.0 (OleksandrZhabenko)
2020-10-17 23:21:31 +0200dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 272 seconds)
2020-10-17 23:21:34 +0200CodeWeaver(49eff865@c-73-239-248-101.hsd1.wa.comcast.net)
2020-10-17 23:25:07 +0200_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net)
2020-10-17 23:26:01 +0200fxg(~fxg@unaffiliated/fxg)
2020-10-17 23:26:22 +0200ashbreeze(~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 256 seconds)
2020-10-17 23:27:51 +0200alp_(~alp@2a01:e0a:58b:4920:a0a0:4e46:1a7b:c634) (Ping timeout: 272 seconds)
2020-10-17 23:30:39 +0200mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-10-17 23:33:07 +0200 <CodeWeaver> Got kind of an odd discrepancy in thunk (or maybe seq) behaviour...
2020-10-17 23:33:25 +0200 <CodeWeaver> for ghci in particular.
2020-10-17 23:33:27 +0200 <CodeWeaver> https://pastebin.pl/view/b4a4b142
2020-10-17 23:34:16 +0200 <CodeWeaver> If I run this in the interpreter, in stack ghci, must by asking main to run, q seems to get dethunked once. You can see the delay as it evaluates.
2020-10-17 23:34:19 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 260 seconds)
2020-10-17 23:35:52 +0200CodeWeaver(49eff865@c-73-239-248-101.hsd1.wa.comcast.net) (Remote host closed the connection)
2020-10-17 23:36:44 +0200CodeWeaver(49eff865@c-73-239-248-101.hsd1.wa.comcast.net)
2020-10-17 23:36:48 +0200 <CodeWeaver> Stupid disconnect.
2020-10-17 23:37:09 +0200 <CodeWeaver> If I use foo direction as in foo () in the interpreter, it again dethunks q just once.
2020-10-17 23:37:42 +0200coot(~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-10-17 23:37:43 +0200 <CodeWeaver> But if I paste the let clause _from_ foo directly into the interpreter, it seems to dethunk q muiltiple times.
2020-10-17 23:37:48 +0200knupfer(~Thunderbi@87.123.206.163)
2020-10-17 23:39:48 +0200 <jil> Hello, working through theexampls of the book programming in haskel, I run into this problem https://paste.debian.net/1167620/
2020-10-17 23:39:50 +0200 <CodeWeaver> Funny thing is if I paste the entirety of the foo function (with a preceding let) into the interpreter and run _that_, it seems to dethunk q multiple times there too.
2020-10-17 23:40:07 +0200 <jil> The type signature for myand lacks an accompanying binding
2020-10-17 23:40:10 +0200 <CodeWeaver> Hoping someone smarter than me knows why the interpreter behaves differently under these circumstances.
2020-10-17 23:40:35 +0200ashbreeze(~mark@72-161-252-32.dyn.centurytel.net)
2020-10-17 23:41:16 +0200 <[exa]> CodeWeaver: weird... monomorphism restriction perhaps?
2020-10-17 23:41:28 +0200 <[exa]> (not sure if it would apply then though)
2020-10-17 23:42:13 +0200 <[exa]> jil: you need to say the type for the same identifier that you are defining; ie. there you are typing 'myand' and defining '&&'
2020-10-17 23:42:45 +0200 <[exa]> jil: if you rename it to: True `myand` True = True ... etc, it should work
2020-10-17 23:43:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-17 23:43:08 +0200_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 260 seconds)
2020-10-17 23:43:35 +0200 <CodeWeaver> jil: Or corresondingly, (&&) True True = True in the second half, so that you can see you're defining a function more obviously.
2020-10-17 23:44:26 +0200 <jil> ho I see. thank oyou
2020-10-17 23:44:31 +0200 <CodeWeaver> exa: Maybe, but I'm not quite smart enough to work out if that's the case. There's a subtlety here... loading in that file and evaluating foo (), as opposed to using a let foo _ = ... paste into the interpreter... the distinction eludes me.
2020-10-17 23:45:09 +0200 <[exa]> CodeWeaver: well, check the types, that should show if you're dreaded by the monomorphism
2020-10-17 23:45:39 +0200 <CodeWeaver> exa: Okay, there's a way to do that? How would I show the distinction? (My haskell's a bit rusty, and that's above my mental pay grade)
2020-10-17 23:45:49 +0200 <CodeWeaver> : can use the :t syntax in ghci but I don't know what I"m looking for.
2020-10-17 23:45:52 +0200 <[exa]> otherwise it's some subtlety in ghci perhaps, I really don't know much about that
2020-10-17 23:46:20 +0200 <[exa]> CodeWeaver: if it's MR, you will have the type of one binding defaulted, and one with a typeclass
2020-10-17 23:46:32 +0200ephemera_(~E@122.34.1.187) (Read error: Connection reset by peer)
2020-10-17 23:46:43 +0200 <[exa]> and the typeclass materializes the "invisible" parameter that causes that memoization does not occur
2020-10-17 23:47:02 +0200 <[exa]> ...or perhaps add explicit type to foo and see
2020-10-17 23:47:27 +0200 <jil> ho I see. thank you
2020-10-17 23:47:29 +0200gioyik(~gioyik@190.67.155.46) (Quit: WeeChat 2.9)
2020-10-17 23:47:43 +0200ephemera_(~E@122.34.1.187)
2020-10-17 23:47:52 +0200 <CodeWeaver> exa: Okay, loaded from file, evaluating foo (), where it behaves right, the type is:
2020-10-17 23:47:53 +0200 <CodeWeaver> foo :: Num a => p -> [a]
2020-10-17 23:47:56 +0200 <jil> why don't I nee back quote around && ?
2020-10-17 23:48:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-17 23:48:39 +0200 <CodeWeaver> jil: because its an operator. You turn normal functions into operators with the `myadd` syntax, and you turn operators into ordinary functions with the (&&) syntax
2020-10-17 23:49:07 +0200 <CodeWeaver> exa: The type for the directly pasted let foo _ = ... line gives:
2020-10-17 23:49:08 +0200 <CodeWeaver> foo :: Num a => p -> [a]
2020-10-17 23:49:24 +0200 <CodeWeaver> So, nothing explicitly revealed from :t
2020-10-17 23:50:12 +0200 <CodeWeaver> Very odd that the dethunking would simply not happen in one case.
2020-10-17 23:50:16 +0200 <[exa]> CodeWeaver: o good, try forcing the type to p -> [Int]
2020-10-17 23:50:50 +0200 <CodeWeaver> exa: will do.
2020-10-17 23:51:02 +0200knupfer(~Thunderbi@87.123.206.163) (Ping timeout: 258 seconds)
2020-10-17 23:52:15 +0200 <[exa]> anyway I think this might be the whole reason for monomorphism restriction; the parameter appears there automagically and there is no way to really memoize something with a parameter
2020-10-17 23:52:37 +0200 <CodeWeaver> But I'm not memoizing foo.
2020-10-17 23:52:42 +0200 <CodeWeaver> I'm memoizing q, inside foo.
2020-10-17 23:52:46 +0200 <jil> Clear. Thank you
2020-10-17 23:53:02 +0200 <CodeWeaver> q has no relationship to the 'throwaway value' p.
2020-10-17 23:53:29 +0200 <[exa]> CodeWeaver: that might vary if you start pulling the code out of context
2020-10-17 23:53:38 +0200 <[exa]> not sure though
2020-10-17 23:54:05 +0200 <[exa]> if you specialized the code to Ints and nothing happened, it's likely not the monomorphism restriction
2020-10-17 23:54:31 +0200 <CodeWeaver> Nope, no effect. At least if I got my multiline let syntax in the repl right.
2020-10-17 23:55:10 +0200_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net)
2020-10-17 23:55:14 +0200 <[exa]> quite likely, it's pretty resistant to weirdness :]
2020-10-17 23:55:21 +0200 <[exa]> ok nevermind, it was a guess :D
2020-10-17 23:55:25 +0200 <CodeWeaver> Good guess.
2020-10-17 23:55:59 +0200 <CodeWeaver> Its more a curiosity, because by the time I'm ready to do something performant, I'm rarely doing direct pastes into the repl like that. But.... it really bugs me not to know. ;)
2020-10-17 23:56:23 +0200 <CodeWeaver> I mean, I"m literally using the repl in both cases. It's just that in one case it's bein gloaded from a file.
2020-10-17 23:56:25 +0200ashbreeze(~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 240 seconds)
2020-10-17 23:56:28 +0200hackageuniqueness-periods-vector-examples 0.13.1.0 - Usage examples for the uniqueness-periods-vector series of packages https://hackage.haskell.org/package/uniqueness-periods-vector-examples-0.13.1.0 (OleksandrZhabenko)
2020-10-17 23:56:40 +0200 <dolio> Loaded from a file isn't the same as pasted into the repl.
2020-10-17 23:56:48 +0200 <CodeWeaver> Okay, that's a fair statement.
2020-10-17 23:57:15 +0200 <CodeWeaver> But I am still not quite sure why the evaluation would be different in that particular way. The reuslt is the same, obviously, but the dethunking is wildly different.
2020-10-17 23:57:56 +0200 <dolio> Different defaulting rules are enabled in the repl, so it may be treating the code differently in each case.
2020-10-17 23:58:22 +0200 <CodeWeaver> Mm.
2020-10-17 23:58:22 +0200mirrorbird(~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
2020-10-17 23:58:43 +0200 <CodeWeaver> I wonder if I can change that default in the repl just for the sake of this test.