2022/06/30

2022-06-30 00:01:57 +0200king_gs1king_gs
2022-06-30 00:04:35 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-30 00:05:30 +0200ski(~ski@ext-1-468.eduroam.chalmers.se) (Ping timeout: 268 seconds)
2022-06-30 00:07:58 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-06-30 00:09:27 +0200michalz(~michalz@185.246.204.126) (Remote host closed the connection)
2022-06-30 00:14:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 00:17:48 +0200sander(~sander@user/sander) (Ping timeout: 272 seconds)
2022-06-30 00:20:18 +0200king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688) (Remote host closed the connection)
2022-06-30 00:20:35 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-30 00:21:37 +0200king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688)
2022-06-30 00:22:37 +0200sander(~sander@user/sander)
2022-06-30 00:23:23 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2022-06-30 00:25:14 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-06-30 00:28:22 +0200jargon(~jargon@184.101.186.108)
2022-06-30 00:35:06 +0200Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2022-06-30 00:37:14 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-06-30 00:53:37 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2022-06-30 00:54:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-30 00:56:36 +0200 <lally> Hi, I got a weird one today. When building a stackage lts 19.13 project, I got a "Setup.lhs: Encountered missing or private dependencies: attoparsec:attoparsec-internal" Ref: https://paste.tomsmeding.com/I6dcBDTO
2022-06-30 00:56:42 +0200 <lally> Has anyone seen this before?
2022-06-30 00:56:50 +0200 <lally> (using rules_haskell)
2022-06-30 00:58:32 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2022-06-30 00:59:06 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer)
2022-06-30 01:00:12 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-30 01:00:21 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2022-06-30 01:00:53 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2022-06-30 01:02:51 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-30 01:03:06 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 01:05:20 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-06-30 01:06:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fd7f:8a24:ea99:bd9b)
2022-06-30 01:10:39 +0200 <sm> not me.. I'd try stack clean --full, whatever the bazal equivalent is, and comparing a non bazel build
2022-06-30 01:20:42 +0200king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688) (Read error: Connection reset by peer)
2022-06-30 01:20:57 +0200king_gs(~Thunderbi@187.201.91.195)
2022-06-30 01:21:41 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 01:22:43 +0200liz(~liz@host86-159-158-175.range86-159.btcentralplus.com)
2022-06-30 01:24:58 +0200ashln(~ashln@98.38.236.123) (Ping timeout: 240 seconds)
2022-06-30 01:26:30 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 264 seconds)
2022-06-30 01:27:50 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2022-06-30 01:28:37 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-06-30 01:29:39 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-06-30 01:34:19 +0200winny(~weechat@user/winny) (Ping timeout: 268 seconds)
2022-06-30 01:35:05 +0200winny(~weechat@user/winny)
2022-06-30 01:35:38 +0200alp(~alp@user/alp) (Ping timeout: 240 seconds)
2022-06-30 01:41:55 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-30 01:50:20 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2022-06-30 01:54:17 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-06-30 01:55:39 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-06-30 01:59:07 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-06-30 02:02:20 +0200king_gs(~Thunderbi@187.201.91.195) (Read error: Connection reset by peer)
2022-06-30 02:02:31 +0200king_gs1(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688)
2022-06-30 02:04:15 +0200hounded(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)
2022-06-30 02:04:50 +0200king_gs1king_gs
2022-06-30 02:08:15 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-30 02:10:29 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 02:16:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-06-30 02:17:51 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 02:23:22 +0200Kevin578(~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
2022-06-30 02:23:44 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 02:25:19 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection)
2022-06-30 02:26:48 +0200frost(~frost@user/frost)
2022-06-30 02:28:17 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
2022-06-30 02:29:48 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-06-30 02:31:16 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 02:31:26 +0200sudden(~cat@user/sudden) (Ping timeout: 272 seconds)
2022-06-30 02:31:41 +0200sudden(~cat@user/sudden)
2022-06-30 02:32:48 +0200 <jackdk> `MVar`s (which is how `Chan` is implemented) should be able to admit an `Invariant` instance but I think you'd have to do horrible unsafe things to actually write it
2022-06-30 02:39:03 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-06-30 02:42:43 +0200king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688) (Quit: king_gs)
2022-06-30 02:43:55 +0200pleo(~pleo@user/pleo) (Ping timeout: 260 seconds)
2022-06-30 02:48:59 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-30 02:49:32 +0200sander(~sander@user/sander) (Ping timeout: 268 seconds)
2022-06-30 02:54:40 +0200Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.)
2022-06-30 02:58:10 +0200xff0x(~xff0x@2405:6580:b080:900:6299:ef57:2e8d:3dc9) (Ping timeout: 268 seconds)
2022-06-30 02:58:15 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2022-06-30 02:59:38 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-06-30 03:01:41 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 03:02:29 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-06-30 03:03:53 +0200Guest20(~Guest20@2601:46:c881:49e0:5804:f33a:d097:444e)
2022-06-30 03:04:19 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-06-30 03:11:12 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-06-30 03:12:56 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-06-30 03:14:45 +0200nate4(~nate@98.45.169.16)
2022-06-30 03:17:19 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-06-30 03:18:06 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 03:19:18 +0200nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-30 03:19:58 +0200 <albet70> what's the difference between chunk and stream in web? there're bodyReader and stream both in the Web.Scotty.Trans
2022-06-30 03:19:59 +0200Guest2083(~Guest20@2601:46:c881:49e0:5804:f33a:d097:444e)
2022-06-30 03:20:26 +0200sander(~sander@user/sander)
2022-06-30 03:20:43 +0200sagax(~sagax_nb@user/sagax) (Excess Flood)
2022-06-30 03:21:28 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 272 seconds)
2022-06-30 03:25:58 +0200Kevin578(~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
2022-06-30 03:26:08 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-30 03:27:04 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 03:27:50 +0200sagax(~sagax_nb@user/sagax)
2022-06-30 03:28:45 +0200Guest20(~Guest20@2601:46:c881:49e0:5804:f33a:d097:444e) (Quit: Client closed)
2022-06-30 03:28:50 +0200Guest2083(~Guest20@2601:46:c881:49e0:5804:f33a:d097:444e) (Quit: Client closed)
2022-06-30 03:29:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-06-30 03:29:42 +0200zaquest(~notzaques@5.130.79.72)
2022-06-30 03:31:12 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-06-30 03:39:40 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-06-30 03:52:26 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-06-30 03:52:26 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-06-30 03:53:03 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
2022-06-30 03:55:20 +0200 <dsal> I assume a stream is made of chunks.
2022-06-30 03:56:38 +0200kimjetwav(~user@2607:fea8:2340:da00:e1b5:3eed:5fa8:62c7)
2022-06-30 03:58:25 +0200 <Axman6> My experience with streams is that they are made of water
2022-06-30 04:01:46 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-30 04:02:21 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
2022-06-30 04:05:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fd7f:8a24:ea99:bd9b) (Remote host closed the connection)
2022-06-30 04:09:27 +0200 <dsal> Lucky.
2022-06-30 04:09:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fd7f:8a24:ea99:bd9b)
2022-06-30 04:11:33 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-06-30 04:11:44 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 04:17:32 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 04:27:25 +0200 <monochrom> I thought they had fish, too.
2022-06-30 04:36:19 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-30 04:38:10 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 04:42:23 +0200td_(~td@muedsl-82-207-238-037.citykom.de) (Ping timeout: 268 seconds)
2022-06-30 04:43:45 +0200td_(~td@muedsl-82-207-238-240.citykom.de)
2022-06-30 04:44:17 +0200 <Axman6> you wouldn't say a stream was made of fish though - without fish, it's still a stream, without water, it's no longer a stream
2022-06-30 04:46:37 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-06-30 04:46:47 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 04:49:18 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-06-30 04:49:31 +0200 <Axman6> Profpatsch: it would be useful exercise to try writing a Functor instance for Chan - its definition is https://hackage.haskell.org/package/base-4.16.1.0/docs/src/Control-Concurrent-Chan.html#Chan and you can copy that into a module and see if you can go it. I think you'll find it's at least very difficult, if not impossible (one of the big reasons is that you need to use IO to do anything with an MVar, so that pretty much rules out Functor, but even writing: f
2022-06-30 04:49:31 +0200 <Axman6> mapish :: (a -> b) -> Chan a -> IO (Chan b) is not trivial, if it is possible)
2022-06-30 04:49:58 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-06-30 04:51:10 +0200 <Axman6> s/go/do
2022-06-30 04:51:15 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-06-30 04:52:02 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-06-30 05:01:32 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
2022-06-30 05:02:48 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-06-30 05:06:55 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-06-30 05:07:13 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 05:08:20 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 255 seconds)
2022-06-30 05:14:27 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-06-30 05:17:04 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 05:17:29 +0200flinner(~user@user/flinner)
2022-06-30 05:18:26 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-30 05:20:46 +0200img(~img@user/img)
2022-06-30 05:21:06 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 264 seconds)
2022-06-30 05:21:42 +0200slac81585(~slack1256@191.125.227.211)
2022-06-30 05:23:36 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-30 05:23:36 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-30 05:23:36 +0200wroathe(~wroathe@user/wroathe)
2022-06-30 05:24:20 +0200slack1256(~slack1256@186.11.62.168) (Ping timeout: 260 seconds)
2022-06-30 05:24:50 +0200slac81585slack1256
2022-06-30 05:28:28 +0200kaskal-(~kaskal@089144220061.atnat0029.highway.webapn.at)
2022-06-30 05:28:50 +0200kaskal(~kaskal@89.144.222.105) (Ping timeout: 240 seconds)
2022-06-30 05:35:40 +0200notzmv(~zmv@user/notzmv)
2022-06-30 05:37:31 +0200vysn(~vysn@user/vysn)
2022-06-30 05:37:32 +0200Vajb(~Vajb@2001:999:48c:99ca:b00c:585c:3999:aa8b) (Read error: Connection reset by peer)
2022-06-30 05:38:35 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-30 05:39:16 +0200coot(~coot@213.134.190.95)
2022-06-30 05:51:34 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-06-30 06:00:15 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-06-30 06:06:49 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-06-30 06:06:54 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-06-30 06:12:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-30 06:12:26 +0200quarkyalice(~alice@user/quarkyalice) (Read error: Connection reset by peer)
2022-06-30 06:12:42 +0200quarkyalice(~alice@172.77.24.253)
2022-06-30 06:12:43 +0200quarkyalice(~alice@172.77.24.253) (Changing host)
2022-06-30 06:12:43 +0200quarkyalice(~alice@user/quarkyalice)
2022-06-30 06:12:56 +0200Vajb(~Vajb@85-76-113-230-nat.elisa-mobile.fi)
2022-06-30 06:21:08 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 06:21:41 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2022-06-30 06:32:24 +0200macabre(~m@161.35.15.236)
2022-06-30 06:36:22 +0200flinner(~user@user/flinner) (Quit: Using Circe, the loveliest of all IRC clients)
2022-06-30 06:39:20 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 248 seconds)
2022-06-30 06:41:07 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2022-06-30 06:52:41 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fd7f:8a24:ea99:bd9b) (Remote host closed the connection)
2022-06-30 06:53:38 +0200nate4(~nate@98.45.169.16)
2022-06-30 06:53:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 06:55:19 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-06-30 06:56:12 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 268 seconds)
2022-06-30 06:56:12 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-30 06:58:40 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-30 07:00:05 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 07:04:50 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 268 seconds)
2022-06-30 07:12:15 +0200winny(~weechat@user/winny) (Ping timeout: 268 seconds)
2022-06-30 07:14:00 +0200winny(~weechat@user/winny)
2022-06-30 07:14:30 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-06-30 07:16:57 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-30 07:18:00 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 07:36:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-06-30 07:41:45 +0200slack1256(~slack1256@191.125.227.211) (Remote host closed the connection)
2022-06-30 07:50:33 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-06-30 07:51:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 07:52:32 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-06-30 07:54:48 +0200raym(~raym@user/raym) (Ping timeout: 244 seconds)
2022-06-30 07:54:50 +0200raym_(~raym@user/raym)
2022-06-30 07:55:18 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:812e:6c05:83db:6853) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2022-06-30 07:55:37 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:4573:7c9a:94a6:9db6)
2022-06-30 08:01:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 08:03:56 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 272 seconds)
2022-06-30 08:06:03 +0200jelewis2(~lewisje@2001:470:1f11:14e:50c5:a481:bb91:9810)
2022-06-30 08:06:16 +0200darkstardevx(~darkstard@50.53.212.60) (Quit: Leaving)
2022-06-30 08:06:38 +0200raym_raym
2022-06-30 08:06:54 +0200hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2022-06-30 08:08:00 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
2022-06-30 08:09:18 +0200jrm(~jrm@user/jrm) (Ping timeout: 240 seconds)
2022-06-30 08:09:32 +0200jrm(~jrm@user/jrm)
2022-06-30 08:09:35 +0200lewisje(~lewisje@2001:470:1f11:14e:50c5:a481:bb91:9810) (Ping timeout: 268 seconds)
2022-06-30 08:15:19 +0200Kevin578(~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
2022-06-30 08:19:43 +0200acidjnk(~acidjnk@dynamic-046-114-169-191.46.114.pool.telefonica.de)
2022-06-30 08:22:05 +0200Pickchea(~private@user/pickchea)
2022-06-30 08:28:12 +0200hsw_hsw
2022-06-30 08:29:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 08:30:40 +0200MajorBiscuit(~MajorBisc@c-001-020-035.client.tudelft.eduvpn.nl)
2022-06-30 08:32:05 +0200gdown(~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
2022-06-30 08:34:18 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 08:38:44 +0200michalz(~michalz@185.246.204.97)
2022-06-30 08:39:28 +0200lortabac(~lortabac@88.125.6.227)
2022-06-30 08:47:51 +0200yoneda(~mike@193.206.102.122)
2022-06-30 08:48:38 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-06-30 08:51:18 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 08:56:22 +0200 <albet70> when post file with chunk, how the data upload to scotty server? post with request?
2022-06-30 08:56:56 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 09:01:50 +0200quarkyalice_(~alice@172.77.162.117)
2022-06-30 09:01:50 +0200quarkyalice_(~alice@172.77.162.117) (Changing host)
2022-06-30 09:01:50 +0200quarkyalice_(~alice@user/quarkyalice/x-8092822)
2022-06-30 09:03:40 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
2022-06-30 09:04:28 +0200quarkyalice(~alice@user/quarkyalice) (Ping timeout: 268 seconds)
2022-06-30 09:04:38 +0200jonathanx(~jonathan@c-5eea65d0-74736162.cust.telenor.se)
2022-06-30 09:09:52 +0200gmg(~user@user/gehmehgeh)
2022-06-30 09:13:18 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-06-30 09:15:14 +0200jonathanx(~jonathan@c-5eea65d0-74736162.cust.telenor.se) (Read error: No route to host)
2022-06-30 09:15:46 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 09:16:28 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-06-30 09:16:49 +0200alp(~alp@user/alp)
2022-06-30 09:18:03 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-06-30 09:18:18 +0200mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-30 09:21:56 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-06-30 09:22:02 +0200jonathanx(~jonathan@dyn-5-sc.cdg.chalmers.se)
2022-06-30 09:22:42 +0200gmg(~user@user/gehmehgeh)
2022-06-30 09:24:42 +0200mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 264 seconds)
2022-06-30 09:27:55 +0200winny(~weechat@user/winny) (Ping timeout: 268 seconds)
2022-06-30 09:28:46 +0200winny(~weechat@user/winny)
2022-06-30 09:29:26 +0200sagax(~sagax_nb@user/sagax) (Excess Flood)
2022-06-30 09:29:55 +0200jonathanx(~jonathan@dyn-5-sc.cdg.chalmers.se) (Read error: Connection reset by peer)
2022-06-30 09:30:05 +0200jonathanx(~jonathan@dyn-5-sc.cdg.chalmers.se)
2022-06-30 09:34:48 +0200jonathanx(~jonathan@dyn-5-sc.cdg.chalmers.se) (Ping timeout: 248 seconds)
2022-06-30 09:38:07 +0200mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-30 09:38:36 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-06-30 09:38:52 +0200mmhat(~mmh@p200300f1c7160b67ee086bfffe095315.dip0.t-ipconnect.de)
2022-06-30 09:43:36 +0200shriekingnoise(~shrieking@201.212.175.181) (Quit: Quit)
2022-06-30 09:46:11 +0200mbuf(~Shakthi@122.164.12.45)
2022-06-30 09:47:02 +0200cfricke(~cfricke@user/cfricke)
2022-06-30 09:47:38 +0200acidjnk(~acidjnk@dynamic-046-114-169-191.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-06-30 09:49:29 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-06-30 09:49:34 +0200acidjnk(~acidjnk@dynamic-046-114-169-191.46.114.pool.telefonica.de)
2022-06-30 09:52:57 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 09:55:37 +0200jonathanx(~jonathan@dyn-5-sc.cdg.chalmers.se)
2022-06-30 09:55:38 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:1243:591f:920e:62b8)
2022-06-30 10:00:18 +0200jonathanx_(~jonathan@dyn-5-sc.cdg.chalmers.se)
2022-06-30 10:00:35 +0200jonathanx(~jonathan@dyn-5-sc.cdg.chalmers.se) (Ping timeout: 268 seconds)
2022-06-30 10:01:06 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
2022-06-30 10:01:19 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com)
2022-06-30 10:03:02 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 10:04:08 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 10:05:31 +0200jonathanx_(~jonathan@dyn-5-sc.cdg.chalmers.se) (Ping timeout: 268 seconds)
2022-06-30 10:06:29 +0200 <Profpatsch> Axman6: I’d guess you’d have to install the function in an MVar as well, which would blow up the representation of the chan
2022-06-30 10:06:41 +0200 <Profpatsch> So it makes sense that it has nearly no instances
2022-06-30 10:07:13 +0200 <dminuoso> Axman6: Why shouldnt it be possible?
2022-06-30 10:08:00 +0200 <Profpatsch> BUt it’s rather easy to do it with conduit: (repeatMC (readChan ch)) .| mapC f
2022-06-30 10:08:42 +0200 <merijn> ooh
2022-06-30 10:08:44 +0200 <merijn> wait
2022-06-30 10:08:50 +0200 <merijn> I missed some context
2022-06-30 10:09:02 +0200 <merijn> Chan and conduits...what are we doing?
2022-06-30 10:09:29 +0200 <Profpatsch> merijn: just taking some chunks from a chan and mapping a function over them
2022-06-30 10:09:56 +0200 <Profpatsch> I mean I know that unbounded chans are not the best, but it was just a scripting thing
2022-06-30 10:11:42 +0200 <merijn> Just asking because I made my own closable channel type and a conduit interface for parallel processing of it, but not sure it's relevant for the problem :p
2022-06-30 10:14:38 +0200Pickchea(~private@user/pickchea) (Ping timeout: 240 seconds)
2022-06-30 10:15:39 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-06-30 10:20:12 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 10:21:46 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net) (Remote host closed the connection)
2022-06-30 10:21:47 +0200ccntrq(~Thunderbi@2a00:6020:1383:c500:e7bb:73b6:1514:e3cc)
2022-06-30 10:22:45 +0200raym(~raym@user/raym) (Remote host closed the connection)
2022-06-30 10:24:05 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 10:24:21 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net) (Read error: Connection reset by peer)
2022-06-30 10:24:22 +0200odnes_(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 10:26:30 +0200ulvarrefr(~user@188.124.56.153)
2022-06-30 10:27:43 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-06-30 10:29:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 10:29:18 +0200 <Profpatsch> merijn: yeah, if it was more than a toy script I’d have hunted for something like that :)
2022-06-30 10:29:54 +0200 <Profpatsch> Tho I have to admit I’m very careful pulling in channels/mutexes, because I’m very bad at parallel programming (as I guess people might have noticed) :)
2022-06-30 10:30:10 +0200 <merijn> Profpatsch: Also, it's very fucking hard to get right :p
2022-06-30 10:30:31 +0200 <Profpatsch> merijn: is it unagi-chan?
2022-06-30 10:30:34 +0200 <merijn> That's actually why I split it off into its own package, I was tired of reimplementing it badly every time
2022-06-30 10:31:25 +0200 <merijn> naah, unagi-chan is trying to be fast for high numbers of messages. My main problem was "I want to concurrently process a whole bunch of stuff coming from a channel"
2022-06-30 10:31:39 +0200 <Profpatsch> But stuff like reading a stdout an stderr of a subprocess basically *forces* you into using something like channels
2022-06-30 10:32:05 +0200 <merijn> Why?
2022-06-30 10:32:24 +0200 <Profpatsch> unless you want to do an event loop
2022-06-30 10:32:31 +0200 <Profpatsch> I guess with epoll you can also do it
2022-06-30 10:32:59 +0200 <Profpatsch> But then you have to restructure your whole execution loop around it
2022-06-30 10:33:33 +0200 <merijn> Profpatsch: you can just hook into the already existing RTS event loop, though :p
2022-06-30 10:34:15 +0200 <Profpatsch> merijn: I saw some functions where you can race multiple Fds, do you mean that?
2022-06-30 10:34:27 +0200acidjnk_new(~acidjnk@dynamic-046-114-173-120.46.114.pool.telefonica.de)
2022-06-30 10:34:33 +0200 <merijn> Profpatsch: https://hackage.haskell.org/package/base-4.16.1.0/docs/Control-Concurrent.html#g:6
2022-06-30 10:34:48 +0200 <Profpatsch> ah yeah, those
2022-06-30 10:35:02 +0200 <Profpatsch> It’s good to know that they are there for next time haha
2022-06-30 10:35:07 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-06-30 10:35:10 +0200 <merijn> Profpatsch: Specifically threadWaitReadSTM, you can just use that to get a bunch of STM action and have 1 thread wait until any of the files are ready to read from
2022-06-30 10:35:46 +0200 <Profpatsch> merijn: do you know whether the rts uses epolling under the hood?
2022-06-30 10:35:49 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-30 10:36:08 +0200 <merijn> It does (well, depending on platform)
2022-06-30 10:36:35 +0200 <merijn> kqueue on BSD/macOS and the new windows stuff on windows
2022-06-30 10:36:38 +0200 <Profpatsch> I guess the good thing is that that means it can work on a single-threaded env
2022-06-30 10:37:23 +0200 <Profpatsch> Wait, but can *I* say I want to wait and timeout after a few ms?
2022-06-30 10:37:44 +0200 <merijn> Well, there's
2022-06-30 10:37:47 +0200 <merijn> @hackage timeout
2022-06-30 10:37:47 +0200 <lambdabot> https://hackage.haskell.org/package/timeout
2022-06-30 10:37:52 +0200 <merijn> eh, wait
2022-06-30 10:37:53 +0200 <Profpatsch> Does async work on the single-threaded runtime?
2022-06-30 10:37:54 +0200acidjnk(~acidjnk@dynamic-046-114-169-191.46.114.pool.telefonica.de) (Ping timeout: 264 seconds)
2022-06-30 10:37:54 +0200 <merijn> wrong command
2022-06-30 10:37:58 +0200 <merijn> @hoogle timeout
2022-06-30 10:37:58 +0200 <lambdabot> System.Timeout timeout :: Int -> IO a -> IO (Maybe a)
2022-06-30 10:37:58 +0200 <lambdabot> System.Directory.Internal.Prelude timeout :: () => Int -> IO a -> IO (Maybe a)
2022-06-30 10:37:58 +0200 <lambdabot> System.Timeout.Lifted timeout :: MonadBaseControl IO m => Int -> m a -> m (Maybe a)
2022-06-30 10:38:44 +0200 <Profpatsch> ohhhh
2022-06-30 10:38:47 +0200 <Profpatsch> How did I miss that
2022-06-30 10:38:55 +0200 <Profpatsch> that’s cool
2022-06-30 10:39:20 +0200 <Profpatsch> oh course it can be a combinator in Haskell
2022-06-30 10:39:23 +0200 <Profpatsch> that’s so good
2022-06-30 10:39:42 +0200 <Profpatsch> > yfw language with no first-class IO values
2022-06-30 10:39:44 +0200 <lambdabot> <hint>:1:28: error: parse error on input ‘class’
2022-06-30 10:40:01 +0200 <Profpatsch> lambdabot, the average greentext-enjoyer
2022-06-30 10:41:39 +0200 <Profpatsch> Wait, is every epoll loop in the GHC rts written with an exception handler interrupt case?
2022-06-30 10:41:58 +0200 <Profpatsch> So if the Timeout is thrown to e.g. hGetLine it knows how to immediately stop itself?
2022-06-30 10:42:20 +0200 <merijn> Profpatsch: The thing is, hGetLine, etc. aren't blocking at all
2022-06-30 10:42:35 +0200 <merijn> Profpatsch: They just register a thread with the event manager, then unschedule the thread
2022-06-30 10:42:55 +0200 <Profpatsch> merijn: thread in the green sense?
2022-06-30 10:43:09 +0200 <merijn> Profpatsch: Which just means threads can be woken up by 2 things: event manager wake up (i.e. readable data) OR an exception
2022-06-30 10:43:14 +0200 <merijn> yes, in the forkIO sense
2022-06-30 10:43:40 +0200 <Profpatsch> Ah, so it’s built into the base loop
2022-06-30 10:43:54 +0200 <Profpatsch> makes sense
2022-06-30 10:44:14 +0200 <Profpatsch> I should just start reading the GHC code at this point
2022-06-30 10:46:33 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-30 10:47:30 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:1243:591f:920e:62b8) (Ping timeout: 264 seconds)
2022-06-30 10:48:05 +0200tnks(sid412124@helmsley.irccloud.com) (Ping timeout: 256 seconds)
2022-06-30 10:48:15 +0200tnks(sid412124@id-412124.helmsley.irccloud.com)
2022-06-30 10:49:18 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-06-30 10:49:31 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-06-30 10:52:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-06-30 10:53:00 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-06-30 10:54:34 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 10:55:08 +0200raym(~raym@user/raym)
2022-06-30 10:55:09 +0200nate4(~nate@98.45.169.16)
2022-06-30 10:58:51 +0200odnes_(~odnes@109-178-162-164.pat.ren.cosmote.net) (Remote host closed the connection)
2022-06-30 10:58:55 +0200odnes__(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 10:59:38 +0200nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-06-30 11:00:13 +0200synthmeat(~synthmeat@user/synthmeat) (WeeChat 3.5)
2022-06-30 11:01:13 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-06-30 11:01:29 +0200Guest79(~Guest79@193.233.158.141)
2022-06-30 11:01:32 +0200Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi)
2022-06-30 11:02:03 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 11:02:42 +0200Guest79oumptrain
2022-06-30 11:03:48 +0200odnes__(~odnes@109-178-162-164.pat.ren.cosmote.net) (Read error: Connection reset by peer)
2022-06-30 11:04:39 +0200oumptrain(~Guest79@193.233.158.141) (Client Quit)
2022-06-30 11:11:40 +0200yax__(~yax__@user/yax/x-9576643)
2022-06-30 11:11:53 +0200 <yax__> hii ^_^
2022-06-30 11:15:43 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection)
2022-06-30 11:17:18 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de)
2022-06-30 11:17:24 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-30 11:19:38 +0200jelewis2(~lewisje@2001:470:1f11:14e:50c5:a481:bb91:9810) (Quit: Leaving)
2022-06-30 11:20:56 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 248 seconds)
2022-06-30 11:25:41 +0200raym(~raym@user/raym) (Ping timeout: 268 seconds)
2022-06-30 11:25:55 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-06-30 11:28:57 +0200mc47(~mc47@xmonad/TheMC47)
2022-06-30 11:29:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 11:31:56 +0200atwm(~atwm@81.28.193.19)
2022-06-30 11:32:19 +0200hyiltiz_(~quassel@31.220.5.250) (Ping timeout: 244 seconds)
2022-06-30 11:33:08 +0200hyiltiz(~quassel@31.220.5.250)
2022-06-30 11:33:25 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-30 11:34:36 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:dbe1:e0b6:a385:2fd6)
2022-06-30 11:39:38 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
2022-06-30 11:40:02 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f)
2022-06-30 11:44:40 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 260 seconds)
2022-06-30 11:46:32 +0200mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Read error: Connection reset by peer)
2022-06-30 11:47:02 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving)
2022-06-30 11:47:56 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 255 seconds)
2022-06-30 11:49:09 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f)
2022-06-30 11:49:38 +0200hyiltiz(~quassel@31.220.5.250)
2022-06-30 11:53:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 11:53:20 +0200mmhat(~mmh@p200300f1c7160b67ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-06-30 11:57:24 +0200raym(~raym@user/raym)
2022-06-30 11:57:45 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-06-30 12:03:44 +0200ozkutuk(~ozkutuk@176.240.173.153)
2022-06-30 12:03:59 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 12:06:23 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-06-30 12:06:29 +0200mmhat(~mmh@p200300f1c7160b83ee086bfffe095315.dip0.t-ipconnect.de)
2022-06-30 12:06:42 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 12:08:07 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 12:08:14 +0200acidjnk_new(~acidjnk@dynamic-046-114-173-120.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-06-30 12:10:27 +0200atwm(~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-30 12:10:57 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-06-30 12:18:06 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-06-30 12:18:39 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-06-30 12:19:26 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 12:21:59 +0200acidjnk_new(~acidjnk@dynamic-046-114-173-120.46.114.pool.telefonica.de)
2022-06-30 12:22:54 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net) (Ping timeout: 264 seconds)
2022-06-30 12:23:37 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving)
2022-06-30 12:31:19 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:dbe1:e0b6:a385:2fd6) (Remote host closed the connection)
2022-06-30 12:31:31 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:5b4a:1ea:c071:1ecb)
2022-06-30 12:37:27 +0200yax__(~yax__@user/yax/x-9576643) (Quit: Lost terminal)
2022-06-30 12:40:42 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-06-30 12:40:42 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
2022-06-30 12:43:00 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 260 seconds)
2022-06-30 12:43:28 +0200finsternis(~X@23.226.237.192) (Read error: Connection reset by peer)
2022-06-30 12:43:52 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-06-30 12:44:27 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-06-30 12:44:36 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 12:45:50 +0200vysn(~vysn@user/vysn) (Read error: Connection reset by peer)
2022-06-30 12:46:53 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-30 12:47:36 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 12:51:27 +0200 <Profpatsch> uwu
2022-06-30 12:53:15 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-06-30 12:54:56 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-30 13:03:01 +0200quarkyalice_(~alice@user/quarkyalice/x-8092822) (Remote host closed the connection)
2022-06-30 13:03:19 +0200quarkyalice_(~alice@172.77.162.117)
2022-06-30 13:03:20 +0200quarkyalice_(~alice@172.77.162.117) (Changing host)
2022-06-30 13:03:20 +0200quarkyalice_(~alice@user/quarkyalice/x-8092822)
2022-06-30 13:08:12 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-30 13:12:29 +0200Kevin578(~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2022-06-30 13:15:42 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Remote host closed the connection)
2022-06-30 13:16:38 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-06-30 13:16:56 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-06-30 13:18:05 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 13:18:50 +0200img(~img@user/img)
2022-06-30 13:23:27 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-06-30 13:23:28 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-06-30 13:23:29 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-06-30 13:25:49 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-06-30 13:26:40 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-06-30 13:29:54 +0200lewisje(~lewisje@2001:470:1f11:14e:cd43:1885:128a:a771)
2022-06-30 13:30:42 +0200acidjnk_new(~acidjnk@dynamic-046-114-173-120.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2022-06-30 13:31:29 +0200Kaipei(~Kaiepi@156.34.47.253) (Ping timeout: 268 seconds)
2022-06-30 13:31:54 +0200notzmv(~zmv@user/notzmv)
2022-06-30 13:33:56 +0200acidjnk_new(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de)
2022-06-30 13:36:29 +0200frost(~frost@user/frost)
2022-06-30 13:36:33 +0200acidjnk(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de)
2022-06-30 13:37:54 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-30 13:37:55 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-06-30 13:38:20 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-30 13:39:09 +0200acidjnk_new(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2022-06-30 13:41:03 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-30 13:42:17 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 13:44:38 +0200alp(~alp@user/alp) (Ping timeout: 240 seconds)
2022-06-30 13:47:31 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Ping timeout: 268 seconds)
2022-06-30 13:47:48 +0200Kaipei(~Kaiepi@156.34.47.253)
2022-06-30 13:50:30 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 13:50:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-06-30 13:51:19 +0200odnes_(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 13:51:52 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net) (Read error: Connection reset by peer)
2022-06-30 13:53:22 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:9086:accf:d98b:5e0d)
2022-06-30 13:55:05 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 13:55:20 +0200Surobaki(~surobaki@69.49-107-213.static.virginmediabusiness.co.uk)
2022-06-30 13:56:39 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 246 seconds)
2022-06-30 13:59:51 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-06-30 14:03:55 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:5b4a:1ea:c071:1ecb) (Remote host closed the connection)
2022-06-30 14:04:07 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:8b92:e555:3967:c2a6)
2022-06-30 14:04:53 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-06-30 14:05:06 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-06-30 14:06:59 +0200 <Haskelytic> guys, im reading the haskell first principles book and in chapter 16 (functors) it says the law `fmap (f . g) = fmap f . fmap g` follows from `fmap id = id`
2022-06-30 14:07:18 +0200 <Haskelytic> I'm struggling to see how as they just dropped that without any explanation
2022-06-30 14:07:53 +0200lortabac(~lortabac@88.125.6.227) (Ping timeout: 255 seconds)
2022-06-30 14:08:08 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-06-30 14:08:10 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:d403:38fe:64cf:db6d)
2022-06-30 14:09:35 +0200 <merijn> Haskelytic: Well, it actually follows from "fmap id = id" *and* the type system
2022-06-30 14:10:11 +0200 <merijn> Haskelytic: "fmap id = id" guarantees that 'fmap' cannot change "the structure" your mapping (i.e. lists remains the same length, trees, the same shape, etc.)
2022-06-30 14:10:22 +0200dextaa(~DV@user/dextaa)
2022-06-30 14:10:45 +0200 <merijn> And the type system guarantees that if you have a function 'a -> b' that you fmap all 'a' in the input MUST be transformed into b's, else you'd get conflicting types
2022-06-30 14:16:48 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-30 14:21:34 +0200atwm(~atwm@81.28.193.19)
2022-06-30 14:21:51 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 246 seconds)
2022-06-30 14:26:45 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 14:29:45 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 260 seconds)
2022-06-30 14:31:15 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 14:35:14 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-30 14:36:07 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de)
2022-06-30 14:36:43 +0200 <tomjaguarpaw> Traversal' t a -> (a -> a -> Ordering) -> t -> t
2022-06-30 14:36:58 +0200 <tomjaguarpaw> ^ This seems plausible. Has anyone got any experience with it? Does it exist somewhere?
2022-06-30 14:37:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 14:38:00 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-30 14:38:06 +0200 <tomjaguarpaw> Oh, I guess it can be obtained via partsOf
2022-06-30 14:38:42 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:9086:accf:d98b:5e0d) (Ping timeout: 268 seconds)
2022-06-30 14:44:52 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 268 seconds)
2022-06-30 14:46:02 +0200 <Surobaki> Hi, can as-patterns only be used with lists? Or can they be used to refer to constructed datatypes too?
2022-06-30 14:46:18 +0200 <geekosaur> anywhere a pattern can
2022-06-30 14:46:26 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 14:46:55 +0200 <merijn> > case Just 5 of x@(Just y) -> (x, y) -- you tell me ;)
2022-06-30 14:46:57 +0200 <lambdabot> (Just 5,5)
2022-06-30 14:47:38 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-06-30 14:48:12 +0200 <geekosaur> keys conf@(XConfig {XMonad.modMask = modMask}) = …
2022-06-30 14:48:42 +0200 <geekosaur> grabs the whole XConfig and uses record syntax to extract one field from it
2022-06-30 14:49:59 +0200 <Surobaki> Oh great, thank you!
2022-06-30 14:51:08 +0200moonsheep(~user@user/moonsheep)
2022-06-30 14:51:18 +0200 <moonsheep> How can I serialize an StdGen?
2022-06-30 14:51:27 +0200 <moonsheep> It seems that internally it uses an SMGen, whose constructor I can't access
2022-06-30 14:51:56 +0200 <merijn> eh, don't
2022-06-30 14:52:41 +0200 <geekosaur> you can extract and serialize a seed iirc, if you actually need to do that
2022-06-30 14:53:12 +0200 <merijn> I would say just store a seed from the beginning if you need reproducability
2022-06-30 14:55:02 +0200mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-30 14:55:39 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 14:55:49 +0200 <geekosaur> hm, can't extract a seed I guess. so what merijn said
2022-06-30 14:55:56 +0200 <geekosaur> you probably want that anyway
2022-06-30 14:56:13 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-06-30 14:57:37 +0200nate4(~nate@98.45.169.16)
2022-06-30 14:59:18 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 246 seconds)
2022-06-30 14:59:29 +0200Sgeo(~Sgeo@user/sgeo)
2022-06-30 15:00:42 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2022-06-30 15:02:20 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-06-30 15:02:30 +0200nate4(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2022-06-30 15:03:46 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 15:04:36 +0200kimjetwav(~user@2607:fea8:2340:da00:e1b5:3eed:5fa8:62c7) (Ping timeout: 268 seconds)
2022-06-30 15:05:18 +0200stef204(~stef204@user/stef204)
2022-06-30 15:08:03 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-06-30 15:08:08 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 248 seconds)
2022-06-30 15:09:44 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-30 15:11:23 +0200acidjnk(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-06-30 15:13:47 +0200motherfsck(~motherfsc@user/motherfsck)
2022-06-30 15:15:13 +0200atwm(~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-30 15:19:40 +0200ccntrq(~Thunderbi@2a00:6020:1383:c500:e7bb:73b6:1514:e3cc) (Remote host closed the connection)
2022-06-30 15:21:25 +0200 <moonsheep> Ah, alright, I don't really need reproducibility anyway, but being able to serialize it would've saved me some trouble
2022-06-30 15:21:27 +0200 <moonsheep> Thanks anyway!
2022-06-30 15:22:05 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-06-30 15:23:50 +0200Guest3(~Guest3@43.21.135.77.rev.sfr.net)
2022-06-30 15:26:45 +0200 <merijn> moonsheep: I mean, why can't you simply store the seed before creating the StdGen?
2022-06-30 15:29:13 +0200 <moonsheep> I can yeah
2022-06-30 15:29:21 +0200 <geekosaur> it might not really be about the StdGen as such, it might be serializing a structure that happens to contain a StdGen and not needing to special-case it?
2022-06-30 15:29:31 +0200 <moonsheep> Exactly
2022-06-30 15:29:34 +0200 <merijn> ah
2022-06-30 15:29:53 +0200 <moonsheep> It was just a matter of convenience
2022-06-30 15:33:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 15:35:04 +0200moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-06-30 15:35:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 15:38:55 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-06-30 15:40:08 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Ping timeout: 255 seconds)
2022-06-30 15:45:13 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 15:45:49 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:6c20:6100:5fd0:a681)
2022-06-30 15:46:56 +0200noctux(~noctux@user/noctux) (Read error: Connection reset by peer)
2022-06-30 15:47:12 +0200noctux(~noctux@user/noctux)
2022-06-30 15:49:07 +0200Guest3(~Guest3@43.21.135.77.rev.sfr.net) ()
2022-06-30 15:49:54 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2022-06-30 15:51:41 +0200shriekingnoise(~shrieking@201.212.175.181)
2022-06-30 15:52:50 +0200 <yrlnry> Is there a way to write this with combinators instead of two explicit cases? v ?! Nothing = Nothing ; v ?! (Just i) = Just (V.! i)
2022-06-30 15:53:05 +0200 <yrlnry> I tried doing something with right sections but I couldn't make it work.
2022-06-30 15:53:45 +0200 <yrlnry> That second clause was wrong. It was supposed to say v ?! Nothing = Nothing ; v ?! (Just i) = Just (v V.! i)
2022-06-30 15:54:16 +0200 <merijn> yrlnry: findWithDefault ?
2022-06-30 15:54:31 +0200 <merijn> oh, wait nested lookups?
2022-06-30 15:54:42 +0200 <merijn> yrlnry: Just use >>= ?
2022-06-30 15:56:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 15:57:12 +0200 <yrlnry> I don't understand how >>= is applicable here.
2022-06-30 15:57:43 +0200 <geekosaur> Maybe is a Monad
2022-06-30 15:58:16 +0200 <merijn> > Nothing >>= \x -> Just (x+2)
2022-06-30 15:58:18 +0200 <lambdabot> Nothing
2022-06-30 15:58:24 +0200 <merijn> > Just 5 >>= \x -> Just (x+2)
2022-06-30 15:58:26 +0200 <lambdabot> Just 7
2022-06-30 15:58:30 +0200 <yrlnry> That I do understand, Thanks.
2022-06-30 15:58:39 +0200 <tdammers> > (+ 2) <$> Nothing
2022-06-30 15:58:41 +0200 <lambdabot> Nothing
2022-06-30 15:58:46 +0200 <tdammers> > (+ 2) <$> Just 1
2022-06-30 15:58:48 +0200 <geekosaur> substitute V.! for + there
2022-06-30 15:58:48 +0200 <lambdabot> Just 3
2022-06-30 16:00:18 +0200arthurs115(~arthurs11@163.5.10.106)
2022-06-30 16:01:19 +0200Lears(~Leary]@122-58-224-198-vdsl.sparkbb.co.nz)
2022-06-30 16:01:20 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-06-30 16:01:33 +0200[Leary](~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 276 seconds)
2022-06-30 16:03:05 +0200 <yrlnry> Sorry, I still don't get it. ! is a function of two arguments Vector a -> Int -> a. I want to turn it into a function of two arguments Vector a -> f Int -> f a. Your example uses (+), which confuses me because its two arguments have the same type and I'm not sure whether you are applying f to the first or to the second argument.
2022-06-30 16:03:06 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-06-30 16:03:22 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 272 seconds)
2022-06-30 16:03:38 +0200 <yrlnry> Also your example has an explicit Just, which I don't want.
2022-06-30 16:04:30 +0200 <geekosaur> it'd also be spelled `pure`. But see tdammers's example using Applicative, which may be closer to what you want
2022-06-30 16:04:52 +0200 <yrlnry> I think so, yes.
2022-06-30 16:06:17 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-06-30 16:07:38 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
2022-06-30 16:08:04 +0200motherfsck(~motherfsc@user/motherfsck)
2022-06-30 16:08:08 +0200 <yrlnry> Thanks, I think the f <$> i form is one of the things I was looking for.
2022-06-30 16:11:24 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de)
2022-06-30 16:12:05 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:d403:38fe:64cf:db6d) (Quit: WeeChat 2.8)
2022-06-30 16:14:25 +0200feliix42(~felix@gibbs.uberspace.de) (Read error: Connection reset by peer)
2022-06-30 16:14:45 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-06-30 16:14:45 +0200AWizzArd(~code@gehrels.uberspace.de) (Read error: Connection reset by peer)
2022-06-30 16:14:53 +0200AWizzArd(~code@gehrels.uberspace.de)
2022-06-30 16:16:27 +0200 <yrlnry> I have `class MJDHashable t where ...` and now I want to say that strings are instances. When I say `instance MJDHashable String where ...` ghci says: ` Illegal instance declaration for ‘MJDHashable String’ ... where T is not a synonym.`. Is the problem here really that String is a for [Char]?
2022-06-30 16:16:35 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 255 seconds)
2022-06-30 16:17:30 +0200feliix42(~felix@gibbs.uberspace.de)
2022-06-30 16:18:03 +0200arthurs115(~arthurs11@163.5.10.106) (Ping timeout: 246 seconds)
2022-06-30 16:18:36 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Ping timeout: 268 seconds)
2022-06-30 16:19:27 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-06-30 16:20:12 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 16:22:52 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-06-30 16:23:35 +0200gmg(~user@user/gehmehgeh)
2022-06-30 16:24:26 +0200 <geekosaur> yes
2022-06-30 16:24:54 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-06-30 16:25:10 +0200 <geekosaur> note that this isn't just being pedantic, because an instance for String will overlap with instances for other lists
2022-06-30 16:25:51 +0200averell(~averell@user/averell)
2022-06-30 16:25:59 +0200 <geekosaur> or at least complicate them
2022-06-30 16:27:56 +0200 <geekosaur> in particular, it will overlap with instance MJDHashable a => MJDHashable [a] where …
2022-06-30 16:28:00 +0200 <yrlnry> I see. I could do `instance MJDHashable a => instance MJDHashable [a]`, but I can't do this for a single specific a.
2022-06-30 16:28:03 +0200 <yrlnry> Yes, just so.
2022-06-30 16:28:27 +0200 <geekosaur> there's an extension which will let you do it for a specific a, but that just means you have two overlaps with the general one
2022-06-30 16:28:48 +0200 <yrlnry> It seems like it could allow that, using the general instance for all the cases that aren't overridden by more specific definitions.
2022-06-30 16:29:05 +0200 <geekosaur> it will try, but it makes no guarantees
2022-06-30 16:29:25 +0200 <geekosaur> you can use pragmas to permit the overlap and ghc will try its best
2022-06-30 16:30:00 +0200 <yrlnry> It might generate code to use the a => [a] definition for String, even if there is also a [Char] definition available?
2022-06-30 16:30:53 +0200 <geekosaur> yes. it depends on what instances are in scope at the point where it needs to pass the dictionary
2022-06-30 16:31:21 +0200 <yrlnry> That makes sense, thanks.
2022-06-30 16:31:33 +0200 <geekosaur> as I understand it, things will work most reliably if all instances are in the same file and it's always imported
2022-06-30 16:41:03 +0200 <yrlnry> I suppose `instance (Functor f, Functor g) => Functor (f . g) where fmap = fmap . fmap` doesn't work, but could we get around it by doing something like `class Composition a b ab | a b -> ab where ...` and then `instance (Functor f, Functor g, Composition f g fg) => Functor fg where ... ?
2022-06-30 16:43:16 +0200 <dminuoso> yrlnry: Of course that works!
2022-06-30 16:43:29 +0200 <yrlnry> The first one, or the second one, or both?
2022-06-30 16:43:38 +0200 <dminuoso> The first one, except we need a surrogate newtype for it.
2022-06-30 16:43:57 +0200 <merijn> yrlnry: That looks like reinventing Data.Compose
2022-06-30 16:44:04 +0200 <dminuoso> ^-
2022-06-30 16:44:12 +0200 <merijn> Eh, Data.Functor.Compose, I guess
2022-06-30 16:44:18 +0200 <geekosaur> was gonna say
2022-06-30 16:44:42 +0200 <dminuoso> yrlnry: Personally I prefer the name being :.: rather than Compose, it makes the functorial composition a bit more obvious
2022-06-30 16:44:52 +0200 <yrlnry> Thanks, I will look into that.
2022-06-30 16:44:56 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-06-30 16:45:40 +0200acidjnk(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de)
2022-06-30 16:45:42 +0200 <yrlnry> How about that, awesome.
2022-06-30 16:47:06 +0200dextaa(~DV@user/dextaa)
2022-06-30 16:50:14 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Ping timeout: 272 seconds)
2022-06-30 16:54:06 +0200pleo(~pleo@user/pleo)
2022-06-30 17:01:21 +0200mmhat(~mmh@p200300f1c7160b83ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
2022-06-30 17:02:54 +0200odnes_(~odnes@109-178-162-164.pat.ren.cosmote.net) (Quit: Leaving)
2022-06-30 17:03:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 17:03:51 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-06-30 17:09:27 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-06-30 17:16:07 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de)
2022-06-30 17:18:26 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-06-30 17:26:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 17:26:45 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
2022-06-30 17:27:08 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-06-30 17:28:54 +0200Surobaki(~surobaki@69.49-107-213.static.virginmediabusiness.co.uk) (Ping timeout: 268 seconds)
2022-06-30 17:33:16 +0200echoreply(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8)
2022-06-30 17:33:28 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-06-30 17:33:44 +0200echoreply(~echoreply@45.32.163.16)
2022-06-30 17:37:30 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net)
2022-06-30 17:37:48 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
2022-06-30 17:39:22 +0200arthurs115(~arthurs11@163.5.10.42)
2022-06-30 17:39:47 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-06-30 17:41:13 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-06-30 17:43:06 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2022-06-30 17:43:26 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Ping timeout: 255 seconds)
2022-06-30 17:45:03 +0200odnes(~odnes@109-178-162-164.pat.ren.cosmote.net) (Remote host closed the connection)
2022-06-30 17:47:20 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-06-30 17:55:54 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 264 seconds)
2022-06-30 17:57:42 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-06-30 17:58:17 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 17:59:15 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-30 18:01:23 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-06-30 18:02:16 +0200eax_(6ba2dd7b84@user/eax/x-8810663) ()
2022-06-30 18:02:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-06-30 18:04:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-06-30 18:04:41 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 18:06:22 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2022-06-30 18:06:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 18:07:01 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-06-30 18:07:34 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-06-30 18:09:32 +0200michalz(~michalz@185.246.204.97) (Read error: No route to host)
2022-06-30 18:10:42 +0200acidjnk_new(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de)
2022-06-30 18:10:56 +0200mbuf(~Shakthi@122.164.12.45) (Quit: Leaving)
2022-06-30 18:12:43 +0200Goodbye_Vincent(cyvahl@freakshells.net) (Quit: Ping timeout (120 seconds))
2022-06-30 18:13:11 +0200Goodbye_Vincent(cyvahl@freakshells.net)
2022-06-30 18:13:38 +0200acidjnk(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2022-06-30 18:13:58 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-06-30 18:15:24 +0200Goodbye_Vincent(cyvahl@freakshells.net) (Client Quit)
2022-06-30 18:16:10 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-06-30 18:16:19 +0200Goodbye_Vincent(~Goodbye_V@freakshells.net)
2022-06-30 18:17:53 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
2022-06-30 18:19:59 +0200arthurs115(~arthurs11@163.5.10.42) (Quit: arthurs115)
2022-06-30 18:20:31 +0200econo(uid147250@user/econo)
2022-06-30 18:21:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 18:25:27 +0200pleo(~pleo@user/pleo)
2022-06-30 18:25:28 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 18:28:49 +0200Goodbye_Vincent(~Goodbye_V@freakshells.net) (Quit: Ping timeout (120 seconds))
2022-06-30 18:28:57 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-30 18:30:25 +0200Goodbye_Vincent(~Goodbye_V@freakshells.net)
2022-06-30 18:32:15 +0200son0p(~ff@181.136.122.143)
2022-06-30 18:34:36 +0200jafarlihi(~user@188.253.239.229)
2022-06-30 18:35:57 +0200phma(~phma@2001:5b0:2144:56f8:f543:9add:d16f:4fe4) (Read error: Connection reset by peer)
2022-06-30 18:36:21 +0200phma(~phma@host-67-44-208-95.hnremote.net)
2022-06-30 18:37:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 18:38:20 +0200michalz(~michalz@185.246.204.97)
2022-06-30 18:38:45 +0200 <ephemient> https://github.com/BowenFu/hspp ... template magic scary
2022-06-30 18:39:35 +0200qhong_(~qhong@rescomp-21-400677.stanford.edu)
2022-06-30 18:39:35 +0200qhong(~qhong@rescomp-21-400677.stanford.edu) (Read error: Connection reset by peer)
2022-06-30 18:42:40 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-06-30 18:43:12 +0200Topsi(~Topsi@37.84.228.224)
2022-06-30 18:43:55 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-06-30 18:48:20 +0200aeka`(~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea)
2022-06-30 18:49:11 +0200aeka(~aeka@user/hiruji) (Ping timeout: 256 seconds)
2022-06-30 18:49:11 +0200aeka`aeka
2022-06-30 18:49:30 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 18:52:03 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-06-30 18:53:51 +0200MajorBiscuit(~MajorBisc@c-001-020-035.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5)
2022-06-30 18:54:05 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-06-30 18:56:50 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net)
2022-06-30 18:58:41 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-06-30 18:58:52 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-06-30 18:59:07 +0200nate4(~nate@98.45.169.16)
2022-06-30 19:01:09 +0200yauhsien(~yauhsien@61-231-28-31.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-06-30 19:02:01 +0200mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds)
2022-06-30 19:03:57 +0200nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-30 19:04:26 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-06-30 19:04:49 +0200 <Haskelytic> question about arbitrary / coarbitrary in QuickCheck
2022-06-30 19:04:56 +0200 <Haskelytic> why is the naming upside down
2022-06-30 19:05:12 +0200 <Haskelytic> coarbitrary for the domain, arbitrary for codomain
2022-06-30 19:05:38 +0200 <Haskelytic> it would make more sense (naming wise) to be the other way round
2022-06-30 19:05:41 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-30 19:05:44 +0200 <Haskelytic> sorry if this sounds like a stupid question lol
2022-06-30 19:06:04 +0200 <shapr> huh, I hadn't thought of it that way
2022-06-30 19:07:06 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-30 19:07:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2022-06-30 19:09:52 +0200 <geekosaur> afaik it's just because Arbitrary came first
2022-06-30 19:11:14 +0200Topsi1(~Topsi@host-88-217-154-179.customer.m-online.net)
2022-06-30 19:12:37 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-30 19:13:07 +0200Topsi(~Topsi@37.84.228.224) (Ping timeout: 268 seconds)
2022-06-30 19:13:07 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 268 seconds)
2022-06-30 19:16:11 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3)
2022-06-30 19:16:34 +0200 <int-e> I think the naming is correct as is. "Arbitrary" is named by functionality. "Coarbitrary" is dual to that in a reasonable sense.
2022-06-30 19:18:33 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-06-30 19:18:58 +0200gmg(~user@user/gehmehgeh)
2022-06-30 19:19:04 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:8b92:e555:3967:c2a6) (Remote host closed the connection)
2022-06-30 19:20:16 +0200Topsi1(~Topsi@host-88-217-154-179.customer.m-online.net) (Read error: Connection reset by peer)
2022-06-30 19:20:31 +0200jafarlihi(~user@188.253.239.229) (Ping timeout: 268 seconds)
2022-06-30 19:23:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-06-30 19:24:11 +0200gascOwn(~Gascown@151.16.46.212)
2022-06-30 19:24:30 +0200 <gascOwn> hi everybody, new Haskeller
2022-06-30 19:24:42 +0200 <monochrom> In retrospect, possibly it is the "domain-codomain" pair that's backwards.
2022-06-30 19:25:17 +0200gascOwn(~Gascown@151.16.46.212) (Remote host closed the connection)
2022-06-30 19:25:45 +0200gascOwn(~Gascown@151.16.46.212)
2022-06-30 19:26:03 +0200 <monochrom> Or maybe not. Instead, I might be OK with s/Coarbitrary/Contraarbitary/
2022-06-30 19:26:04 +0200 <int-e> I guess "domain" is kind of meaningless
2022-06-30 19:26:15 +0200jafarlihi(~user@188.253.228.60)
2022-06-30 19:26:51 +0200 <monochrom> At a meta level, it looks like Wadler's law is getting worse.
2022-06-30 19:27:03 +0200 <geekosaur> gascOwn, hello
2022-06-30 19:27:08 +0200 <monochrom> It is no longer fashionable to pick on syntax. Now people have to pick on spellings, too.
2022-06-30 19:27:08 +0200 <int-e> (So when you have two sets, as in A -> B, then it could apply to either one.)
2022-06-30 19:27:34 +0200 <int-e> My pet peeve is still the reflect/reify pair.
2022-06-30 19:27:34 +0200Vajb(~Vajb@85-76-113-230-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-06-30 19:28:07 +0200 <int-e> (refelctions are immaterial, so when given values and types, the reflections should be the types... no? meh.)
2022-06-30 19:28:08 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-30 19:30:30 +0200 <int-e> (I used to feel more strongly about this though... the prevailing terminology is analogous to whe Java world, where the reflection methods are about turning types into values describing them.)
2022-06-30 19:33:05 +0200 <int-e> Btw, Arbitrary a can be thought of as providing a function that takes a seed and produces a new seed and a value, s -> (s, a), and Coarbitrary as one that does the opposite, (s, a) -> s, making those dual in the proper categorical sense.
2022-06-30 19:33:06 +0200 <monochrom> Ah but we also say "my concrete actions are reflections of my abstract ideas"
2022-06-30 19:33:41 +0200coot(~coot@213.134.190.95)
2022-06-30 19:33:47 +0200 <monochrom> This is what happens when programmers insist on "daily" "intuitive" "plain English" nomenclature.
2022-06-30 19:37:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 19:38:07 +0200 <dolio> co- just means some kind of opposite of another concept. It makes no sense to expect that the named concept in a pair will always be related to every other named concept, and not the opposite of a named concept.
2022-06-30 19:38:23 +0200 <dolio> Sometimes both the thing and its opposite are named.
2022-06-30 19:41:24 +0200 <monochrom> One might say, they are co-named. >:)
2022-06-30 19:42:41 +0200 <int-e> . o O ( consider a co-edge in a graph, from a co-source to a co-target )
2022-06-30 19:43:09 +0200 <int-e> (directed graph)
2022-06-30 19:46:25 +0200jafarlihi(~user@188.253.228.60) (Ping timeout: 268 seconds)
2022-06-30 19:46:25 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
2022-06-30 19:50:44 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-06-30 19:52:50 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-30 19:53:12 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-06-30 19:54:49 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 19:56:00 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-30 19:56:02 +0200jafarlihi(~user@188.253.228.60)
2022-06-30 19:56:24 +0200jafarlihi(~user@188.253.228.60) (Client Quit)
2022-06-30 20:00:30 +0200 <EvanR> int-e, the idea of "material" is evocative and effective as part of an argument.
2022-06-30 20:01:18 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds)
2022-06-30 20:01:28 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Ping timeout: 248 seconds)
2022-06-30 20:01:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-06-30 20:01:57 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-06-30 20:02:47 +0200 <EvanR> but I distinctly remember someone reacting badly to justification involving material
2022-06-30 20:02:56 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 255 seconds)
2022-06-30 20:03:09 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 20:03:13 +0200 <EvanR> I can't remember if it was programming philosophy or regular philosophy
2022-06-30 20:04:22 +0200 <monochrom> Sorry, what is "justification involving material"?
2022-06-30 20:04:45 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-06-30 20:05:15 +0200 <monochrom> I am thinking "empirical evidence" but I'm sure I'm wrong.
2022-06-30 20:05:45 +0200 <EvanR> in this case, the direction of reflection should be toward the immaterial
2022-06-30 20:06:52 +0200 <monochrom> OK I'll just say haha.
2022-06-30 20:07:21 +0200 <monochrom> And contribute "co-material" :)
2022-06-30 20:07:24 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-06-30 20:08:51 +0200 <EvanR> in high school optics you were required to identify what was a virtual image and what was a real image. That never made any sense xD
2022-06-30 20:09:26 +0200 <dolio> If you get values that describe types, then the values are the reflection.
2022-06-30 20:09:36 +0200 <dolio> If you get types that describe values, then the types are the reflection.
2022-06-30 20:09:54 +0200 <dolio> It's just like co-.
2022-06-30 20:10:37 +0200 <EvanR> that solves it
2022-06-30 20:11:56 +0200 <int-e> EvanR: Yeah I did think that I had a good argument... but fighting the published literature and existing code is a losing fight so I've more or less made my peace with it.
2022-06-30 20:12:21 +0200 <int-e> Though I still like bringing it up on occasion. :)
2022-06-30 20:13:05 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2022-06-30 20:14:32 +0200 <int-e> EvanR: The virtual/real image thing... funny, I never questioned that when I was in highschool. You do have a point.
2022-06-30 20:15:13 +0200 <int-e> (Well, the way a real image becomes real is if you hold a sheet of paper in that plane.)
2022-06-30 20:15:25 +0200hochata(~hochata@user/hochata) ()
2022-06-30 20:15:33 +0200 <EvanR> uh huh
2022-06-30 20:15:34 +0200 <int-e> (Since there are actual photons there to intercept)
2022-06-30 20:15:38 +0200 <monochrom> OK, when do we say "reify"?
2022-06-30 20:15:52 +0200 <EvanR> there are actual photons regardless lol, since you can see the image
2022-06-30 20:16:23 +0200 <int-e> EvanR: if you hold a sheet of paper in the plane with a virtual image, you'll see photons but they won't produce that image
2022-06-30 20:16:46 +0200gascOwn(~Gascown@151.16.46.212) (Remote host closed the connection)
2022-06-30 20:16:51 +0200 <int-e> Anyway, I think that's how the distinction makes some sense.
2022-06-30 20:17:10 +0200gascOwn(~Gascown@151.16.46.212)
2022-06-30 20:17:42 +0200 <EvanR> I know the words you say, can say them, but in the manner of chinese room thought experiment
2022-06-30 20:17:52 +0200 <int-e> In the end the only "real" images are on the retina of an eye. :P (Oh no, I guess now we have to define "real"... though maybe that was the issue all along.)
2022-06-30 20:18:19 +0200 <monochrom> You know, "real image" was an oxymoron in the first place :)
2022-06-30 20:18:28 +0200 <EvanR> now you're talking
2022-06-30 20:18:48 +0200 <monochrom> "I have a real NFT" or something
2022-06-30 20:19:37 +0200 <monochrom> We need to add real images and virtual images to the lens library!
2022-06-30 20:20:30 +0200 <geekosaur> how do you know they're not already there? 🙂
2022-06-30 20:22:05 +0200 <int-e> EvanR: Ah, here's an issue: The distinction doesn't make so much sense with planar mirrors... it makes more sense with lenses (the physical kind)... since there you get focal planes on the way, rather than just the originating object and whatever happens in your eye.
2022-06-30 20:22:37 +0200 <int-e> of course trust computer science to give "virtual images" a whole new meaning
2022-06-30 20:23:53 +0200 <darkling> We're great at stealing other people's words.
2022-06-30 20:24:01 +0200 <geekosaur> virtual images live in the cloud…
2022-06-30 20:24:07 +0200 <EvanR> criteria to get the right answer: real images are right side up, virtual image is upside down. Totally different!
2022-06-30 20:24:13 +0200 <int-e> "you took the words right out of my mouth"
2022-06-30 20:24:30 +0200 <EvanR> doing actual work with actual optics probably makes the distinction make sense for practical reasons
2022-06-30 20:24:58 +0200 <int-e> EvanR: oh yeah... a classic: why do wall mirrors flip left and right but not up and down?
2022-06-30 20:25:10 +0200 <EvanR> lol no
2022-06-30 20:25:16 +0200 <geekosaur> heh
2022-06-30 20:25:37 +0200 <EvanR> "they do reflect left right... handedness"
2022-06-30 20:25:58 +0200 <EvanR> oh that's what you said
2022-06-30 20:26:01 +0200 <monochrom> geekosaur, is that why I see Santa's image in the cloud? :)
2022-06-30 20:26:26 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-06-30 20:26:27 +0200 <int-e> (They flip back and front. The left/right flip is psychological: we identify with our mirror image.)
2022-06-30 20:27:01 +0200 <EvanR> yeah it doesn't flip left right at all
2022-06-30 20:27:23 +0200 <geekosaur> we just expect it to because someone facoing us is turned around relative to us
2022-06-30 20:27:27 +0200 <geekosaur> *facing
2022-06-30 20:27:33 +0200 <EvanR> as evidenced by text written on glass shown in the mirror
2022-06-30 20:27:46 +0200 <monochrom> Yeah you rotate yourself about a vertical axis to face the mirror.
2022-06-30 20:29:19 +0200BusConscious(~martin@ip5f5bdf0d.dynamic.kabel-deutschland.de)
2022-06-30 20:30:47 +0200 <BusConscious> hello everyone my exitcode-stdio test suite is just freezing and does not print anything
2022-06-30 20:31:05 +0200 <BusConscious> I use defaultMain from Test.Framework
2022-06-30 20:31:53 +0200 <BusConscious> it doesn't even react to print statements in the IO actions I bind into defaultMain, but maybe this is because of lazyness
2022-06-30 20:32:14 +0200 <dolio> int-e: That always strikes me as one of the most poorly explained simple topics in physics.
2022-06-30 20:32:25 +0200 <geekosaur> print is normally strict, and in fact is what usually forces lazy expressions if nothing else does
2022-06-30 20:32:37 +0200 <BusConscious> when I don't bind to defaultMain, it doesn 't freeze, but obvs also isn't running the tests
2022-06-30 20:34:14 +0200 <monochrom> Perhaps you really have an infinite-loop bug.
2022-06-30 20:36:22 +0200wenjie(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.5)
2022-06-30 20:36:40 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 248 seconds)
2022-06-30 20:37:02 +0200 <BusConscious> mhm I'm not doing anything too special inside of these tests: https://paste.tomsmeding.com/jgchpHBQ
2022-06-30 20:37:39 +0200 <BusConscious> fizbin: I'm working off of your example https://github.com/fizbin/cabal-demo-backflip/blob/master/test/BackflipShellTests.hs
2022-06-30 20:38:07 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-30 20:38:51 +0200 <BusConscious> ah I may have an idea
2022-06-30 20:39:31 +0200 <BusConscious> ah the issue is in runTest.s
2022-06-30 20:39:36 +0200 <BusConscious> runTest.sh
2022-06-30 20:40:29 +0200 <int-e> BusConscious: ah, so the first "print" worked?
2022-06-30 20:40:51 +0200 <int-e> (line 15)
2022-06-30 20:40:58 +0200 <BusConscious> nope
2022-06-30 20:41:00 +0200 <BusConscious> nothing
2022-06-30 20:41:02 +0200 <int-e> huh
2022-06-30 20:41:33 +0200 <BusConscious> but when I run runTest.sh without any arguments it waits for the $? and hangs itself up
2022-06-30 20:41:48 +0200 <int-e> I guess it depends on how this is being run... stdout might be intercepted
2022-06-30 20:42:06 +0200 <BusConscious> so this is why I now assueme, that it is the scripts fault
2022-06-30 20:42:09 +0200slack1256(~slack1256@191.125.227.211)
2022-06-30 20:42:15 +0200 <BusConscious> int-e: what do you mean?
2022-06-30 20:43:06 +0200 <BusConscious> for good measure this is the script: https://paste.tomsmeding.com/2mnw6Km7
2022-06-30 20:43:10 +0200 <int-e> AIUI, the program, as is, should definitely print that list of scripts. But that doesn't necessarily mean that you get to see that output.
2022-06-30 20:43:42 +0200 <shiraeeshi[m]> there is a latin word "reflexio" that means something like "coming back"
2022-06-30 20:44:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 20:44:34 +0200 <BusConscious> ah I see it reads stdout from a pipe and waits until it is closed i.e. the test terminated
2022-06-30 20:44:37 +0200 <BusConscious> interesting
2022-06-30 20:44:52 +0200 <int-e> BusConscious: $1 > bash.stdout 2> kell.errout <-- should be bash.errout?
2022-06-30 20:45:08 +0200atwm(~atwm@81.28.193.19)
2022-06-30 20:45:19 +0200 <shiraeeshi[m]> so "reflexio" means "applying something to oneself", for example "thinking about oneself"
2022-06-30 20:45:31 +0200 <slack1256> is `ghc -ddump-stranal -o example example.hs` supposed to print something? I am using ghc 9.2.2 but I don't see any output. Can anyone check on their end?
2022-06-30 20:45:42 +0200 <int-e> BusConscious: but you're better equipped to figure out what's wrong with the script
2022-06-30 20:45:49 +0200 <int-e> (if anything)
2022-06-30 20:46:05 +0200 <BusConscious> int-e: aah
2022-06-30 20:46:12 +0200 <slack1256> As a test case, you can use this file https://fixpt.de/blog/2017-12-04-strictness-analysis-part-1.html .
2022-06-30 20:46:13 +0200 <BusConscious> thanks
2022-06-30 20:46:16 +0200 <BusConscious> this did it
2022-06-30 20:46:25 +0200 <shiraeeshi[m]> so in Java, when a program manipulates itself, it's called "reflection"
2022-06-30 20:46:49 +0200 <BusConscious> I just assumed it work with an argument
2022-06-30 20:46:53 +0200 <shiraeeshi[m]> not in an optical sense, but in the "coming back" sense
2022-06-30 20:48:22 +0200 <monochrom> slack1256: Yeah interesting, it doesn't output what I thought it would, neither stdout nor stderr nor a file.
2022-06-30 20:48:47 +0200 <slack1256> monochrom: So I am not crazy!
2022-06-30 20:49:05 +0200 <slack1256> -ddump-str-signatures doesn't work also.
2022-06-30 20:49:06 +0200 <dolio> slack1256: Was it already compiled before? You might have to -fforce-recomp.
2022-06-30 20:49:11 +0200 <monochrom> Ah need -O
2022-06-30 20:49:28 +0200 <slack1256> Oh yeah, on the real example I used `-fforce-recomp`.
2022-06-30 20:49:56 +0200 <monochrom> Upon reflection I guess without optimization there is no point doing any analysis :)
2022-06-30 20:50:27 +0200 <slack1256> monochrom: Oh good point
2022-06-30 20:50:28 +0200 <int-e> no need to be strict!
2022-06-30 20:50:41 +0200 <slack1256> I thought that by default ghc compiled with -O1.
2022-06-30 20:50:50 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-06-30 20:50:51 +0200 <slack1256> monochrom: Thank you.
2022-06-30 20:51:04 +0200 <monochrom> -O1 is cabal's default
2022-06-30 20:51:15 +0200 <slack1256> Oh, that explains it.
2022-06-30 20:51:42 +0200 <yin> why is -O1 the default?
2022-06-30 20:52:34 +0200 <Clint> because it's the best one
2022-06-30 20:52:43 +0200pavonia(~user@user/siracusa)
2022-06-30 20:52:48 +0200 <geekosaur[m]> Because -O2 is unreliable optimizations that can make things worse
2022-06-30 20:52:58 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-30 20:53:01 +0200 <slack1256> And -O0 is "no demand analysis done"
2022-06-30 20:53:04 +0200 <int-e> And -O0 makes most programs much slower and memory hungry.
2022-06-30 20:53:09 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-30 20:53:42 +0200 <dolio> I don't think O2 makes things worse to a degree that would be worrying. It just takes a lot longer for no tangible benefit in most cases.
2022-06-30 20:54:07 +0200 <int-e> I think the main issue with -O2 is that compilation time increases quite significantly.
2022-06-30 20:55:15 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-30 20:55:16 +0200 <int-e> ...as you said.
2022-06-30 20:55:37 +0200 <yin> i sometimes get significant opt from O1 to O2
2022-06-30 20:56:12 +0200 <yin> but yeah comp time
2022-06-30 20:56:13 +0200 <monochrom> Yes, but it's probably best left to a case-by-case conscious decision.
2022-06-30 20:56:21 +0200 <dolio> Sometimes you can tell cabal to do -O2.
2022-06-30 20:56:40 +0200gascOwn(~Gascown@151.16.46.212) (Quit: Leaving)
2022-06-30 20:57:07 +0200 <yin> well, only way to know is to try it so...
2022-06-30 20:57:31 +0200 <monochrom> http://www.vex.net/~trebla/haskell/cabal-cabal.xhtml#O2
2022-06-30 20:58:18 +0200shapr(~user@2600:4040:2d31:7100:3ad0:84b6:f5f:d1d0) (Remote host closed the connection)
2022-06-30 20:58:23 +0200 <Clint> monochrom: and do you?
2022-06-30 20:58:36 +0200 <monochrom> I don't.
2022-06-30 20:59:54 +0200 <geekosaur[m]> I build my xmonad configuration with -O2 but it's tiny
2022-06-30 21:00:03 +0200 <monochrom> No Haskell Weekly News yet :(
2022-06-30 21:00:22 +0200 <slack1256> The demand analysis is neat a optimization pass. It also gives you a neat heuristic to give people to make their programs faster: expose your program as a bunch of small pipelines. On each one provide a "good consumer" so the demands are clear and let "lazy eval/deman driven evaluation" do the rest.
2022-06-30 21:01:17 +0200atwm(~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-30 21:01:40 +0200 <slack1256> For example: using `put` on a state monad is a bad consumer. That is apparent from the output of this pass. You better force before putting a value on there because you don't know when is it gonna be demanded.
2022-06-30 21:02:17 +0200atwm(~atwm@81.28.193.19)
2022-06-30 21:04:10 +0200Pickchea(~private@user/pickchea)
2022-06-30 21:05:39 +0200 <Haskelytic> "One thing we notice about this type is that the type param-
2022-06-30 21:05:40 +0200 <Haskelytic> eter 𝑏 is a phantom type. It has no corresponding witness at
2022-06-30 21:05:40 +0200 <Haskelytic> the value/term level."
2022-06-30 21:05:47 +0200 <Haskelytic> what is this thing called "witness"
2022-06-30 21:06:34 +0200 <Haskelytic> the type in question is `newtype Constant a b = Constant a`
2022-06-30 21:07:11 +0200 <geekosaur> imo that's bad phrasing
2022-06-30 21:07:15 +0200 <slack1256> `Constant (3 :: Int)` is a term/witness/proof that the type `Constant Int b` is inhabited.
2022-06-30 21:07:21 +0200 <monochrom> You can safely delete "witness at the" for now.
2022-06-30 21:08:30 +0200 <monochrom> Eventually when you look at things like the Curry-Howard correspondence, you see why it can make sense to say that a value is a "witness".
2022-06-30 21:08:52 +0200 <yrlnry> Earlier I had an issue with wanting to turn Vector.! from a `Vector a -> Int -> a` into a `Vector a -> Maybe Int -> Maybe a`, and various things were suggested. But in the larger context (which I didn't explain) I found a better solution, which was to write my whole function, including the troublesome application of (!), as a do-block running in the Maybe monad.
2022-06-30 21:08:57 +0200 <BusConscious> can I specificy the binary folder in cabal?
2022-06-30 21:08:59 +0200 <dolio> Haskelytic: It's kind of sloppy use of terminology. It's probably derived from speaking about proofs of propositions. When you prove `∃x. P x`, the chosen value of `x` for which `P` holds is the 'witness' given in the proof.
2022-06-30 21:09:49 +0200 <geekosaur> yrlnry, that was suggested by several of us, although we said use (>>😃 instead (which is what do blocks turn into)
2022-06-30 21:09:52 +0200 <geekosaur> er
2022-06-30 21:09:54 +0200 <monochrom> But yeah the Curry-Howard correspondence is not necessary everyday, and even when it's necessary, saying "witness" is not always necessary either.
2022-06-30 21:09:59 +0200 <BusConscious> because rn it builds to dist-newstyle/build/$buildhost/ghc-$ghcversion/kell-$kellversion/kell/build/kell
2022-06-30 21:10:16 +0200 <Haskelytic> I've heard of this Curry-Howard (proofs as types) idea before and kind of have an intuitive feel for it but I was thrown off by the phrasing
2022-06-30 21:10:17 +0200 <BusConscious> and I don't want to find out all of these variables in CI
2022-06-30 21:10:22 +0200 <Haskelytic> Thanks guys
2022-06-30 21:10:34 +0200 <monochrom> Is this from the Haskell Wiki? I can see how over-enthusiastic authors add distracting advanced information there, since they do it all the time.
2022-06-30 21:10:37 +0200 <yrlnry> geekosaur: I realize that now, but I didn't understand the suggestion at the time, and I think I said so.
2022-06-30 21:10:38 +0200 <geekosaur> BusConscious, that looks like you did cabal build. for a binary, cabal install names sense, and you can specify a directory other than the default ~/.cabal/bin
2022-06-30 21:10:48 +0200 <geekosaur> *makes sense
2022-06-30 21:10:49 +0200 <Haskelytic> monochrom: this is from the "haskell from first principles" book
2022-06-30 21:10:54 +0200 <dolio> Or you could expand things to say that a term construction like `(w, p)` "witnesses" the truth of `∃ x. P x` when `p` is a proof of `P w`.
2022-06-30 21:11:04 +0200 <Haskelytic> honestly it's a decent book but I wish the authors would not introduce terms without definition
2022-06-30 21:11:06 +0200 <Haskelytic> :)
2022-06-30 21:11:21 +0200 <BusConscious> geekosaur: Can I cabal install in githubs CI?
2022-06-30 21:11:21 +0200 <monochrom> Well, I guess Chris Allen also adds distracting advanced information all the time...
2022-06-30 21:11:30 +0200 <BusConscious> well I guess I will have to try
2022-06-30 21:12:04 +0200 <monochrom> Bit by bit my belief of his care for pedogogy is wearing off.
2022-06-30 21:12:06 +0200 <Haskelytic> dolio: honestly, i'm not advanced enough to see why that would matter to a non-logician :)
2022-06-30 21:12:09 +0200 <geekosaur> use --installdir to specify where to install it. you probably also want --install-method=copy and maybe --overwrite-policy=always
2022-06-30 21:12:14 +0200 <monochrom> perhaps s/ of / in /
2022-06-30 21:12:36 +0200haskell_apprenti(~haskell_a@d-216-189-180-13.fl.cpe.atlanticbb.net)
2022-06-30 21:12:42 +0200 <Haskelytic> monochrom: speaking of pedagogy, the Haskell community has a serious problem with it :)
2022-06-30 21:12:43 +0200 <dolio> It's just jargon.
2022-06-30 21:12:53 +0200 <yrlnry> I am not complaining. I feel like we had a good outcome. I am always grateful for your advice and guidance, which is so courteously given.
2022-06-30 21:12:59 +0200 <geekosaur> Haskelytic, eventually it will make sense. it just doesn't belong in a book for beginners
2022-06-30 21:13:23 +0200 <monochrom> I don't even think it's necessary, even when it makes sense.
2022-06-30 21:13:38 +0200 <geekosaur> (the practical meaning of a witness is that it's a proof that something is not bottom/nontermination)
2022-06-30 21:13:49 +0200slac33932(~slack1256@191.126.99.75)
2022-06-30 21:14:01 +0200 <haskell_apprenti> question - I'm having some trouble importing a module from a file in an other directory, is there an easy way to do that in VSCode?
2022-06-30 21:14:42 +0200 <monochrom> This is why Unpopular Opinion: Enthusiasm is the anti-thesis to pedagogy.
2022-06-30 21:15:18 +0200 <monochrom> To properly teaching, you keep calm and do the cold calculation of what you don't need to tell the students.
2022-06-30 21:15:19 +0200 <haskell_apprenti> DirA/fileA DirB/fileB, ModuleB is in fileB. I tried "import DirB.ModuleB", but it didn't work
2022-06-30 21:15:31 +0200mikoto-chan(~mikoto-ch@62.237.32.210)
2022-06-30 21:15:49 +0200 <haskell_apprenti> trying to import to ModuleA
2022-06-30 21:15:50 +0200 <monochrom> Not excited and "oh btw I want to tell you about 2-categories too!"
2022-06-30 21:15:56 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-06-30 21:16:18 +0200slack1256(~slack1256@191.125.227.211) (Ping timeout: 264 seconds)
2022-06-30 21:16:39 +0200 <Haskelytic> monochrom: I faced one too many enthusiastic teachers before so I swore not to perpetuate the suffering :)
2022-06-30 21:16:56 +0200 <Haskelytic> by not teaching anyone ;)
2022-06-30 21:17:08 +0200 <shiraeeshi[m]> actually, I think Java programs can't manipulate themselves, even with reflection. They can just inspect themselves, lifting themselves to the meta-level by doing that. "Programs manipulating themselves" - that's in the Lisp department.
2022-06-30 21:17:26 +0200 <EvanR> proposition (problem) 2 from euclid, from given point A place a straight line equal (in length) to given straight line BC. A picture of doing this would be a witness (that that problem can be solved)
2022-06-30 21:19:04 +0200 <geekosaur> haskell_apprenti, that would work if it were DirA/DirB instead of DirA and DirB being on the same level. you need to change the `src` stanza in your stack.yaml or cabal.project for the other way to work
2022-06-30 21:19:12 +0200 <dolio> Seems like that depends on what "manipulate themselves" means.
2022-06-30 21:19:35 +0200 <Haskelytic> EvanR: I have always found geometry a bit of the uncanny valley because, unlike symbolic formalisms, you kind of need to make appeals to intuition or previously established results transitively derived from said intuition
2022-06-30 21:19:54 +0200 <Haskelytic> Maybe that's why I always sucked at geometry and found myself drooling on Haskell :)
2022-06-30 21:20:07 +0200 <Haskelytic> but thanks for that example
2022-06-30 21:20:10 +0200 <EvanR> later axiomatic formulations of geometry made it like you said, purely symbolic
2022-06-30 21:20:17 +0200 <dolio> I don'
2022-06-30 21:20:20 +0200 <EvanR> and something was lost xD
2022-06-30 21:20:28 +0200 <dolio> Er. I don't know. I don't really like geometry, either.
2022-06-30 21:20:30 +0200mikoto-chan(~mikoto-ch@62.237.32.210) (Ping timeout: 264 seconds)
2022-06-30 21:20:35 +0200 <haskell_apprenti> Thanks geekosaur - this isn't in a stack or cabal project yet though, just loose haskell files - I guess I need to build a project for it to work though?
2022-06-30 21:20:50 +0200 <monochrom> I used Java reflection to load students' *.class files into some kind of API sandbox, so for example they couldn't do I/O.
2022-06-30 21:20:52 +0200 <geekosaur> ghc isn't smart enough to do what you want by itself
2022-06-30 21:20:54 +0200 <Haskelytic> EvanR: the way I see it, if you shift to pure symbols for geometric arguments, nobody besides those in your well-informed clique will ever make heads or tails of it :)
2022-06-30 21:21:04 +0200 <EvanR> correct
2022-06-30 21:21:08 +0200 <Haskelytic> so do you really have knowledge XD
2022-06-30 21:21:09 +0200 <dolio> That's my peeve with a lot of mathematicians. They always start going, "let me show you this geometric thing."
2022-06-30 21:21:34 +0200 <dolio> But when you show me geometry, I don't trust you.
2022-06-30 21:21:41 +0200 <geekosaur> well, there are ways to specify source directories, I think
2022-06-30 21:21:53 +0200 <EvanR> hey that's how I feel about set theory! xD
2022-06-30 21:21:56 +0200 <int-e> dolio: right, when it comes to rigor, you gotta draw the line somewhere
2022-06-30 21:21:58 +0200 <Haskelytic> dolio: high school geometry must have been fun for you eh
2022-06-30 21:22:27 +0200cyanide3dinner(~cyanide4d@106.201.249.151)
2022-06-30 21:22:31 +0200 <monochrom> Haha that's a great pun.
2022-06-30 21:22:38 +0200 <haskell_apprenti> Im not sure what magic VSCode is doing to say i can or can't import things if its not in a project
2022-06-30 21:22:42 +0200 <monochrom> (Did you intend it? :) )
2022-06-30 21:22:43 +0200 <geekosaur> haskell_apprenti, try ghc -i../DirB
2022-06-30 21:22:44 +0200mikoto-chan(~mikoto-ch@62.237.32.210)
2022-06-30 21:22:53 +0200 <EvanR> punintended
2022-06-30 21:23:03 +0200 <geekosaur> sorry, I think that might be -i..
2022-06-30 21:23:07 +0200 <int-e> monochrom: will it be funnier if I feign ignorance?
2022-06-30 21:23:48 +0200 <monochrom> I think it's equally funny either way, no worries.
2022-06-30 21:23:52 +0200 <dolio> Haskelytic: I don't recall enjoying it as much. But I think it actually might have been the most rigorous proof-y stuff in high school. Because it was actually deductive proofs with inference rules.
2022-06-30 21:24:30 +0200 <EvanR> which has been the point of geometry education since the elements, teaching logic
2022-06-30 21:24:30 +0200 <dolio> What I don't trust in geometry are pictures. But in school you had to use inference rules about the pictures to actually prove stuff.
2022-06-30 21:24:38 +0200 <Haskelytic> int-e: thanks for that pun got a good chuckle!
2022-06-30 21:25:08 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-06-30 21:26:18 +0200 <haskell_apprenti> so far i haven't need to compile it - i've just been loading scripts with :l
2022-06-30 21:26:19 +0200 <EvanR> I just found a constructive version of euclid which doesn't involve classical logic, and so you could hypothetically compute the constructions, in the sense of displaying them on screen from their steps
2022-06-30 21:26:46 +0200 <haskell_apprenti> While in ghci. does that also compile under the hood?
2022-06-30 21:26:53 +0200 <EvanR> it uses a small number of possible moves, less than euclid used
2022-06-30 21:26:57 +0200 <geekosaur> to bytecode, yes
2022-06-30 21:27:06 +0200 <Haskelytic> EvanR: oh nice! a link?
2022-06-30 21:27:13 +0200 <geekosaur> although if you pass -fobject-code it will compile to native code
2022-06-30 21:27:17 +0200 <EvanR> it's gets a bit hairy near the end for reasons
2022-06-30 21:27:26 +0200 <dolio> Also, I haven't done a lot of geometry, since I don't like it. So mathematicians telling me to think about geometric stuff doesn't actually help most of the time.
2022-06-30 21:27:30 +0200 <EvanR> but seems technically right
2022-06-30 21:27:39 +0200 <EvanR> http://www.michaelbeeson.com/research/papers/ConstructiveGeometryFinalPreprintVersion.pdf
2022-06-30 21:27:52 +0200haskell_apprenti(~haskell_a@d-216-189-180-13.fl.cpe.atlanticbb.net) (Quit: Client closed)
2022-06-30 21:28:10 +0200mikoto-chan(~mikoto-ch@62.237.32.210) (Ping timeout: 268 seconds)
2022-06-30 21:28:22 +0200yax__(~yax__@user/yax/x-9576643)
2022-06-30 21:28:52 +0200 <yax__> how do i not make cabal build put the executable in a really obscure dir?
2022-06-30 21:29:20 +0200 <geekosaur> you don't. you run cabal install to install it to a public dir
2022-06-30 21:29:24 +0200 <shiraeeshi[m]> "programs manipulating themselves - that's in the Lisp department", oh, JavaScript too
2022-06-30 21:29:44 +0200 <geekosaur> [30 19:12:09] <geekosaur> use --installdir to specify where to install it. you probably also want --install-method=copy and maybe --overwrite-policy=always
2022-06-30 21:30:01 +0200mikoto-chan(~mikoto-ch@85-76-4-157-nat.elisa-mobile.fi)
2022-06-30 21:30:04 +0200 <yax__> mhm so no other way but cabal install, aight
2022-06-30 21:30:08 +0200pleo(~pleo@user/pleo)
2022-06-30 21:30:12 +0200ARJ0019(~arj0019@162.218.254.7)
2022-06-30 21:30:19 +0200 <yax__> thanks
2022-06-30 21:30:21 +0200 <geekosaur> there's also cabal list-bin to get the path, then do whatever with it
2022-06-30 21:31:03 +0200stef204(~stef204@user/stef204) (Quit: WeeChat 3.5)
2022-06-30 21:31:20 +0200 <yax__> oh
2022-06-30 21:31:39 +0200renzhi(~xp@2607:fa49:6500:b100::b399)
2022-06-30 21:32:32 +0200 <EvanR> Haskelytic, also I lied, the real witness would be a motivating picture and then a proof that it actually solves the problem as stated
2022-06-30 21:34:19 +0200 <dolio> The picture would be the witness in the first sense I wrote.
2022-06-30 21:34:41 +0200 <dolio> It's one of many possible pictures you could draw that satisfy the condition.
2022-06-30 21:35:16 +0200 <EvanR> oh ok
2022-06-30 21:35:19 +0200 <yax__> just write it in a lisp
2022-06-30 21:36:07 +0200 <dolio> The whole proof is the picture together with the proof that the picture has the desired property.
2022-06-30 21:36:09 +0200 <EvanR> yes the proof is about that picture, and we're identifying the picture with the first component of the pair
2022-06-30 21:36:22 +0200 <EvanR> calling that the witness
2022-06-30 21:36:38 +0200 <yax__> comes with a copy of category theory for programmers
2022-06-30 21:38:30 +0200mikoto-chan(~mikoto-ch@85-76-4-157-nat.elisa-mobile.fi) (Ping timeout: 264 seconds)
2022-06-30 21:39:28 +0200mikoto-chan(~mikoto-ch@85-76-4-157-nat.elisa-mobile.fi)
2022-06-30 21:40:00 +0200 <Haskelytic> https://paste.tomsmeding.com/pwEeZyhi
2022-06-30 21:40:26 +0200 <Haskelytic> I was trying to understand a GHC error message by attempting to find out what it must have deduced from the bad definition above
2022-06-30 21:40:40 +0200 <Haskelytic> is this roughly accurate?
2022-06-30 21:42:22 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-06-30 21:45:33 +0200 <EvanR> fmap f (Wrap fa) = Wrap (fmap f fa) ?
2022-06-30 21:46:27 +0200 <EvanR> f fa means a = f a
2022-06-30 21:46:47 +0200 <EvanR> so many different f's xD
2022-06-30 21:47:59 +0200 <geekosaur> the analysis looked reasonably correct to me, although highlighting the alpha-rename of one of the fs to g would have made things a little clearer
2022-06-30 21:48:03 +0200 <Haskelytic> haha sorry i lost track of variables haha
2022-06-30 21:49:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 21:49:15 +0200 <Haskelytic> geekosaur: yeah i'll definitely do that before dumping here next time :)
2022-06-30 21:49:18 +0200 <EvanR> to play inference engine, you can introduce fresh "unknown" variables names for types like a1, a2, etc
2022-06-30 21:49:57 +0200kimjetwav(~user@2607:fea8:2340:da00:efc1:2d50:b0df:6b8b)
2022-06-30 21:50:09 +0200 <Haskelytic> EvanR: thanks for the tip!
2022-06-30 21:50:29 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-06-30 21:50:45 +0200 <Haskelytic> The GHC typechecker feels like magic to me so I thought I'll try to reverse engineer it myself on simple cases
2022-06-30 21:51:53 +0200 <geekosaur> it's really not magic, at least until you start getting into type families or functional dependencies
2022-06-30 21:53:38 +0200BusConscious(~martin@ip5f5bdf0d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2022-06-30 21:54:04 +0200 <EvanR> I'm still not 100% sure how it does just basic type classes xD
2022-06-30 21:55:04 +0200mikoto-chan(~mikoto-ch@85-76-4-157-nat.elisa-mobile.fi) (Ping timeout: 248 seconds)
2022-06-30 21:55:35 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-06-30 22:00:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 22:01:02 +0200 <Haskelytic> wow this book is kind of crazy :)
2022-06-30 22:01:08 +0200 <Haskelytic> I just learned about rank N types
2022-06-30 22:01:10 +0200 <yax__> which
2022-06-30 22:01:28 +0200 <Haskelytic> `type Nat f g = forall a. f a -> g a`
2022-06-30 22:01:37 +0200 <Haskelytic> yax__: haskell from first principles
2022-06-30 22:01:55 +0200 <Haskelytic> the authors just threw that in there in a chapter on functors
2022-06-30 22:03:25 +0200onosendi(sid552923@user/onosendi)
2022-06-30 22:03:37 +0200onosendi(sid552923@user/onosendi) (WeeChat 3.4.1)
2022-06-30 22:04:03 +0200 <Haskelytic> natural transformations something something :)
2022-06-30 22:04:08 +0200 <Haskelytic> is this another category theory term
2022-06-30 22:04:54 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2022-06-30 22:08:29 +0200slack1256(~slack1256@191.126.227.81)
2022-06-30 22:08:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-30 22:09:34 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-30 22:09:47 +0200 <EvanR> yeah
2022-06-30 22:10:14 +0200 <EvanR> morphisms are a thing between objects, functors are a thing between categories, natural transformations are a thing between functors
2022-06-30 22:10:30 +0200slac33932(~slack1256@191.126.99.75) (Ping timeout: 246 seconds)
2022-06-30 22:11:20 +0200 <EvanR> ok, to make that seem cooler, functors are a thing between morphisms (in the source and target category)
2022-06-30 22:11:43 +0200 <yax__> functors are morphisms between morphisms
2022-06-30 22:11:53 +0200 <EvanR> also that
2022-06-30 22:14:17 +0200Unhammer(~Unhammer@user/unhammer) (Ping timeout: 255 seconds)
2022-06-30 22:14:20 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2022-06-30 22:20:16 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-06-30 22:25:56 +0200Vajb(~Vajb@2001:999:48c:99ca:b00c:585c:3999:aa8b)
2022-06-30 22:28:51 +0200Unhammer(~Unhammer@user/unhammer)
2022-06-30 22:30:39 +0200elkcl_(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
2022-06-30 22:31:19 +0200elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 256 seconds)
2022-06-30 22:31:20 +0200elkcl_elkcl
2022-06-30 22:33:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-30 22:33:32 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-30 22:33:33 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-06-30 22:34:53 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-30 22:36:24 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-06-30 22:39:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-06-30 22:43:08 +0200 <yrlnry> I have this monad pipeline: `getIndex k m >>= vec V.! >>= Just . snd`. The `>>= Just . snd` there is bugging me, I feel like something is redundant. Is there a law that lets us rewrite expressions of the form `>>= (f . g)`?
2022-06-30 22:44:29 +0200 <geekosaur> not sure of that but I think that's <$> snd
2022-06-30 22:44:54 +0200 <geekosaur> hm, no,m that's flipped
2022-06-30 22:45:09 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
2022-06-30 22:45:14 +0200 <geekosaur> >>= pure . foo is fmap foo
2022-06-30 22:46:20 +0200 <yrlnry> Is there a flipped version of fmap?
2022-06-30 22:46:36 +0200 <yrlnry> (And thanks, that is is the answer I was looking for.)
2022-06-30 22:46:50 +0200 <geekosaur> % :info <$>
2022-06-30 22:46:50 +0200 <yahb2> (<$>) :: Functor f => (a -> b) -> f a -> f b ; -- Defined in ‘Data.Functor’ ; infixl 4 <$>
2022-06-30 22:46:59 +0200 <geekosaur> % :info >>=
2022-06-30 22:46:59 +0200 <yahb2> type Monad :: (* -> *) -> Constraint ; class Applicative m => Monad m where ; (>>=) :: m a -> (a -> m b) -> m b ; ... ; -- Defined in ‘GHC.Base’ ; infixl 1 >>=
2022-06-30 22:47:15 +0200 <geekosaur> snd <$> getIndex …
2022-06-30 22:49:17 +0200jargon(~jargon@184.101.186.108) (Remote host closed the connection)
2022-06-30 22:49:44 +0200 <geekosaur> does have the downside that it switches order, so flip fmap would fit "pipeline" better
2022-06-30 22:50:33 +0200 <geekosaur> @hoogle Functor f => f a -> (a -> b) -> f b
2022-06-30 22:50:34 +0200 <lambdabot> Data.Functor (<&>) :: Functor f => f a -> (a -> b) -> f b
2022-06-30 22:50:34 +0200 <lambdabot> Control.Lens.Lens (<&>) :: Functor f => f a -> (a -> b) -> f b
2022-06-30 22:50:34 +0200 <lambdabot> Control.Lens.Operators (<&>) :: Functor f => f a -> (a -> b) -> f b
2022-06-30 22:50:46 +0200 <geekosaur> there you go, <&>
2022-06-30 22:50:52 +0200 <yrlnry> Thanks!
2022-06-30 22:51:26 +0200 <yrlnry> Ugh, I did the Hoogle a couple minutes ago but got the f's in the wrong place >:-(
2022-06-30 22:54:04 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-06-30 22:58:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-30 23:00:45 +0200nate4(~nate@98.45.169.16)
2022-06-30 23:03:10 +0200slac89545(~slack1256@191.125.99.87)
2022-06-30 23:03:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 23:05:25 +0200slack1256(~slack1256@191.126.227.81) (Ping timeout: 260 seconds)
2022-06-30 23:05:48 +0200nate4(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-06-30 23:07:26 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds)
2022-06-30 23:07:35 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-30 23:07:51 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-06-30 23:08:36 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-30 23:08:46 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-30 23:13:35 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-06-30 23:13:51 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-06-30 23:14:41 +0200 <Haskelytic> What is a sufficient condition for a type to have a Functor instance?
2022-06-30 23:15:10 +0200 <Haskelytic> I think that the (partially-applied) type constructor must have kind `* -> *`
2022-06-30 23:15:15 +0200slac89545slack1256
2022-06-30 23:15:21 +0200 <Haskelytic> That alone should be enough
2022-06-30 23:15:28 +0200 <Haskelytic> I'm trying to think of counter-examples
2022-06-30 23:16:34 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-06-30 23:16:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-30 23:17:19 +0200yax__(~yax__@user/yax/x-9576643) (Ping timeout: 268 seconds)
2022-06-30 23:17:22 +0200 <glguy> Haskelytic: that and you have to be able to write an fmap implementation for the type
2022-06-30 23:17:45 +0200 <Haskelytic> glguy: haha I forgot the obvious XD
2022-06-30 23:18:18 +0200 <EvanR> one counter example is the container type Data.Set
2022-06-30 23:18:48 +0200 <EvanR> which you probably want a Functor instance for, but can't have it
2022-06-30 23:19:04 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-30 23:20:05 +0200 <Haskelytic> EvanR: oh wow okay let me check that out
2022-06-30 23:24:32 +0200Surobaki(~surobaki@43.84-2-80.static.virginmediabusiness.co.uk)
2022-06-30 23:27:10 +0200jargon(~jargon@184.101.186.108)
2022-06-30 23:27:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-30 23:29:02 +0200Surobaki(~surobaki@43.84-2-80.static.virginmediabusiness.co.uk) (Ping timeout: 268 seconds)
2022-06-30 23:29:08 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-06-30 23:33:06 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 264 seconds)
2022-06-30 23:35:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-06-30 23:38:49 +0200pierrot(~pi@user/pierrot) (Read error: Connection reset by peer)
2022-06-30 23:38:55 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-30 23:39:14 +0200ARJ0019(~arj0019@162.218.254.7) (Leaving)
2022-06-30 23:39:46 +0200 <dsal> Yeah, Set can't be a functor for a reason that I don't usually care about when I want it. But it's good to respect the laws.
2022-06-30 23:40:40 +0200pierrot(~pi@user/pierrot)
2022-06-30 23:40:50 +0200 <DigitalKiwi> law abiding haskell citizen
2022-06-30 23:42:06 +0200 <geekosaur> arguably the compiler becoming chaotic evil when you violate laws is more effective than police
2022-06-30 23:42:34 +0200 <Haskelytic> geekosaur: XD
2022-06-30 23:42:51 +0200 <Haskelytic> Statically typed legal system when :)
2022-06-30 23:44:15 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2022-06-30 23:44:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-30 23:47:02 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 255 seconds)
2022-06-30 23:47:14 +0200pleo(~pleo@user/pleo)
2022-06-30 23:50:49 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-30 23:50:57 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 246 seconds)
2022-06-30 23:51:05 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-06-30 23:51:13 +0200 <monochrom> "newtype X a = MkX (a -> Bool)" cannot be made a non-bottom Functor instance.
2022-06-30 23:52:07 +0200 <monochrom> In this case the kind of X is laughably unhelpful.
2022-06-30 23:52:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-06-30 23:53:39 +0200 <monochrom> Instead, if you reason about variance, e.g., "a -> Bool" is contravariant in "a", "Bool -> a" is covariant in "a", that can get you somewhere.
2022-06-30 23:56:30 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:6c20:6100:5fd0:a681) (Ping timeout: 264 seconds)
2022-06-30 23:57:51 +0200slack1092(~slack1256@191.125.99.70)