2021/01/24

2021-01-24 00:00:05 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2021-01-24 00:00:40 +0100sheb(~sheb@31.223.228.71)
2021-01-24 00:00:57 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-24 00:03:08 +0100alx741(~alx741@186.178.110.72)
2021-01-24 00:04:12 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 260 seconds)
2021-01-24 00:05:58 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 260 seconds)
2021-01-24 00:06:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 00:06:22 +0100Jackk_Doe(~jackk@205.178.111.134) (Quit: Going offline, see ya! (www.adiirc.com))
2021-01-24 00:07:30 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 00:08:04 +0100LKoen(~LKoen@57.174.9.109.rev.sfr.net) (Remote host closed the connection)
2021-01-24 00:08:17 +0100kw(d4662d5d@212.102.45.93) (Quit: Ping timeout (120 seconds))
2021-01-24 00:08:35 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-01-24 00:09:58 +0100 <itai33[m]> what is the best way to handle commandline arguments?
2021-01-24 00:10:37 +0100hackagepandoc 2.11.4 - Conversion between markup formats https://hackage.haskell.org/package/pandoc-2.11.4 (JohnMacFarlane)
2021-01-24 00:12:15 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-24 00:12:54 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 00:12:57 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Quit: hyiltiz)
2021-01-24 00:14:38 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-01-24 00:16:43 +0100nly(~user@unaffiliated/nly) (Ping timeout: 260 seconds)
2021-01-24 00:17:05 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2021-01-24 00:17:52 +0100mmkarakaya(~mmkarakay@176.33.226.136)
2021-01-24 00:20:09 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 265 seconds)
2021-01-24 00:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 00:20:34 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 00:21:19 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-24 00:21:57 +0100 <koz_> itai33[m]: optparse-applicative is a favourite around these parts.
2021-01-24 00:23:03 +0100 <sm[m]> or cmdargs
2021-01-24 00:23:03 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 00:23:21 +0100zx(637ce278@99-124-226-120.lightspeed.rcsntx.sbcglobal.net)
2021-01-24 00:24:15 +0100LKoen(~LKoen@57.174.9.109.rev.sfr.net)
2021-01-24 00:24:36 +0100 <itai33[m]> thanks for the suggestions
2021-01-24 00:25:38 +0100neiluj(~jco@unaffiliated/neiluj) (Remote host closed the connection)
2021-01-24 00:25:38 +0100neiluj_(~jco@91-167-203-101.subs.proxad.net) (Remote host closed the connection)
2021-01-24 00:26:45 +0100zx(637ce278@99-124-226-120.lightspeed.rcsntx.sbcglobal.net) (Client Quit)
2021-01-24 00:27:14 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-01-24 00:27:17 +0100LKoen(~LKoen@57.174.9.109.rev.sfr.net) (Client Quit)
2021-01-24 00:27:33 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2021-01-24 00:30:04 +0100EIB(~EIB@pool-72-79-28-139.nwrknj.east.verizon.net)
2021-01-24 00:30:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-24 00:31:56 +0100spiderbubble(uid17704@gateway/web/irccloud.com/x-avlejttdzwsyjzui) (Quit: Connection closed for inactivity)
2021-01-24 00:33:40 +0100Tario(~Tario@200.119.184.222)
2021-01-24 00:34:45 +0100EIB(~EIB@pool-72-79-28-139.nwrknj.east.verizon.net) ("Leaving")
2021-01-24 00:36:05 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 240 seconds)
2021-01-24 00:37:27 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 00:38:20 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 00:39:28 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Quit: WeeChat 2.9)
2021-01-24 00:40:08 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2021-01-24 00:40:41 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 00:43:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 264 seconds)
2021-01-24 00:49:44 +0100Tario(~Tario@200.119.184.222) (Read error: Connection reset by peer)
2021-01-24 00:50:14 +0100conal(~conal@198.8.81.74) (Quit: Computer has gone to sleep.)
2021-01-24 00:50:37 +0100Tario(~Tario@201.192.165.173)
2021-01-24 00:51:10 +0100notzmv(~user@unaffiliated/zmv)
2021-01-24 00:52:43 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-01-24 00:53:01 +0100conal(~conal@192.145.117.135)
2021-01-24 00:53:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 00:55:57 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-vztaiqdgaaagdemu) (Quit: Connection closed for inactivity)
2021-01-24 00:56:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 00:57:52 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net)
2021-01-24 01:09:03 +0100mirrorbird(~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0)
2021-01-24 01:10:15 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-24 01:10:19 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 264 seconds)
2021-01-24 01:10:20 +0100poljar1(~poljar@93-139-54-120.adsl.net.t-com.hr)
2021-01-24 01:13:05 +0100poljar(~poljar@93-139-54-120.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
2021-01-24 01:19:26 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 01:20:12 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 01:20:34 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 01:22:27 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-01-24 01:22:45 +0100 <ezzieyguywuf> optparse-applicative is quite nice
2021-01-24 01:23:33 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net)
2021-01-24 01:23:43 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 246 seconds)
2021-01-24 01:24:02 +0100gzc[m](gzcmatrixo@gateway/shell/matrix.org/x-aaxylewkawpexjut) ("User left")
2021-01-24 01:25:26 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb) (Quit: Leaving)
2021-01-24 01:26:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 01:26:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 01:26:44 +0100Tops21(~Tobias@dyndsl-095-033-016-051.ewe-ip-backbone.de)
2021-01-24 01:26:57 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 01:27:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-24 01:30:05 +0100Tops2(~Tobias@dyndsl-095-033-016-051.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2021-01-24 01:31:29 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 01:31:55 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-24 01:32:53 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-01-24 01:34:01 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net)
2021-01-24 01:35:47 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 260 seconds)
2021-01-24 01:38:57 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Quit: Leaving.)
2021-01-24 01:41:09 +0100byzgen(427395e3@66.115.149.227)
2021-01-24 01:43:56 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb)
2021-01-24 01:44:16 +0100ulidtko|kk(~ulidtko@193.111.48.79) (Ping timeout: 272 seconds)
2021-01-24 01:45:39 +0100Tario(~Tario@201.192.165.173)
2021-01-24 01:46:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-24 01:47:20 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb) (Remote host closed the connection)
2021-01-24 01:48:01 +0100byzgen71(6b4de6a8@mobile-107-77-230-168.mobile.att.net)
2021-01-24 01:48:33 +0100byzgen(427395e3@66.115.149.227) (Ping timeout: 248 seconds)
2021-01-24 01:49:34 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
2021-01-24 01:49:42 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 01:50:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 01:50:47 +0100conal(~conal@192.145.117.135) (Quit: Computer has gone to sleep.)
2021-01-24 01:51:05 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb)
2021-01-24 01:51:21 +0100conal(~conal@192.145.117.135)
2021-01-24 01:51:32 +0100conal(~conal@192.145.117.135) (Client Quit)
2021-01-24 01:53:31 +0100conal(~conal@192.145.117.135)
2021-01-24 01:55:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-24 01:56:17 +0100 <ezzieyguywuf> is reflex-backend-socket and reflex-backend-wai deprecated? They both depend on reflex-basic-host, which is clearly deprecated (per hackage)
2021-01-24 01:56:23 +0100conal(~conal@192.145.117.135) (Client Quit)
2021-01-24 01:57:02 +0100conal(~conal@192.145.117.135)
2021-01-24 01:57:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds)
2021-01-24 01:57:18 +0100alx741(~alx741@186.178.110.72) (Quit: alx741)
2021-01-24 01:57:35 +0100alx741(~alx741@186.178.110.72)
2021-01-24 01:58:42 +0100steven2(~steven@139.28.218.148) (Remote host closed the connection)
2021-01-24 02:02:11 +0100viluon(uid453725@gateway/web/irccloud.com/x-bmmqtddhvrpxqftw) (Quit: Connection closed for inactivity)
2021-01-24 02:03:32 +0100conal(~conal@192.145.117.135) (Quit: Computer has gone to sleep.)
2021-01-24 02:04:15 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-01-24 02:05:00 +0100conal(~conal@192.145.117.135)
2021-01-24 02:06:25 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-01-24 02:07:58 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-01-24 02:07:58 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-01-24 02:07:58 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-24 02:08:25 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-01-24 02:10:30 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 02:10:35 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-24 02:14:05 +0100bcremer(~bcremer@185.204.1.185)
2021-01-24 02:15:13 +0100conal(~conal@192.145.117.135) (Quit: Computer has gone to sleep.)
2021-01-24 02:15:53 +0100conal(~conal@192.145.117.135)
2021-01-24 02:19:23 +0100Guest81775(~textual@2603-7000-3040-0000-c9ad-d200-ba76-775e.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-24 02:19:50 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 02:19:52 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-24 02:20:11 +0100Tario(~Tario@201.192.165.173)
2021-01-24 02:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 02:20:15 +0100conal(~conal@192.145.117.135) (Ping timeout: 256 seconds)
2021-01-24 02:20:34 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 02:21:11 +0100dlbh^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-01-24 02:21:30 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 02:22:19 +0100conal(~conal@66.115.157.135)
2021-01-24 02:30:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 02:32:57 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 02:33:19 +0100rajivr(uid269651@gateway/web/irccloud.com/x-dbiyulzuylwqsfrt)
2021-01-24 02:33:40 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 02:35:36 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 02:35:36 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 02:36:40 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 02:38:23 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 02:38:39 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 02:41:49 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-01-24 02:43:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-01-24 02:46:03 +0100conal(~conal@66.115.157.135) (Quit: Computer has gone to sleep.)
2021-01-24 02:46:41 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 02:47:00 +0100conal(~conal@66.115.157.135)
2021-01-24 02:51:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-01-24 02:51:38 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 02:52:00 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-24 02:53:50 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 02:55:05 +0100conal(~conal@66.115.157.135) (Quit: Computer has gone to sleep.)
2021-01-24 02:57:08 +0100conal(~conal@192.145.117.143)
2021-01-24 02:57:13 +0100conal(~conal@192.145.117.143) (Client Quit)
2021-01-24 02:57:27 +0100 <zebrag> `data X a = X a b`, is a relevant inductive type definition? It is rejected with "not in scope type variable b". What is the minimum to have it accepted?
2021-01-24 03:01:23 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-24 03:02:10 +0100conal(~conal@66.115.157.106)
2021-01-24 03:03:21 +0100 <zebrag> What confuses me is several extensions are providing `forall`, and I don't know which to chose.
2021-01-24 03:04:49 +0100byzgen71(6b4de6a8@mobile-107-77-230-168.mobile.att.net) (Ping timeout: 248 seconds)
2021-01-24 03:05:37 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 03:05:38 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-24 03:06:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-24 03:07:22 +0100 <zebrag> I did `{-# LANGUAGE GADTs, RankNTypes #-}`, as suggested there: https://rcalsaverini.github.io/blog/2018-02-12-type-safe-records/
2021-01-24 03:08:24 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 03:11:03 +0100conal(~conal@66.115.157.106) (Quit: Computer has gone to sleep.)
2021-01-24 03:15:24 +0100conal(~conal@66.115.157.106)
2021-01-24 03:16:18 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Quit: oisdk)
2021-01-24 03:16:52 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 03:17:19 +0100 <monochrom> Depends on why you have that extra "b".
2021-01-24 03:20:12 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 03:20:19 +0100conal(~conal@66.115.157.106) (Quit: Computer has gone to sleep.)
2021-01-24 03:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 03:23:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 03:24:26 +0100conal(~conal@66.115.157.106)
2021-01-24 03:25:19 +0100Benzi-Junior(~BenziJuni@88-149-65-135.du.xdsl.is) (Quit: gone)
2021-01-24 03:25:21 +0100 <zebrag> Yes, yes, the cited page above is quite well written. For instance now I have `xs = [X 1 'a', X 2 2]`. Imagine I had a function returning the second field of the head of the list. That function would have an interesting type. Still reading...
2021-01-24 03:26:43 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 265 seconds)
2021-01-24 03:27:06 +0100conal(~conal@66.115.157.106) (Client Quit)
2021-01-24 03:27:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 03:27:13 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 03:28:10 +0100sgibber2018(d055ed90@208.85.237.144)
2021-01-24 03:29:04 +0100 <zebrag> Really I'm reading p. 9 of https://arxiv.org/pdf/1403.0749.pdf "free applicative functors", and I already have enough on my plate, but I think, a must understand what the `forall` is for in that circumstance
2021-01-24 03:30:49 +0100conal(~conal@192.145.116.161)
2021-01-24 03:31:12 +0100Benzi-Junior(~BenziJuni@88-149-65-135.du.xdsl.is)
2021-01-24 03:31:21 +0100 <hololeap> someone in here suggested using haskell-language-server and ALE, and i have both installed, but i don't really understand how to use them. anyone familiar with this setup?
2021-01-24 03:31:25 +0100conal_(~conal@192.145.117.129)
2021-01-24 03:31:41 +0100 <zebrag> I hope the forall of the tutorial is related to the forall of the article. But in any case the tutorial is interesting
2021-01-24 03:32:16 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 240 seconds)
2021-01-24 03:34:11 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 03:34:48 +0100Benzi-Junior(~BenziJuni@88-149-65-135.du.xdsl.is) (Client Quit)
2021-01-24 03:35:20 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 03:35:31 +0100conal(~conal@192.145.116.161) (Ping timeout: 264 seconds)
2021-01-24 03:35:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 03:38:31 +0100Benzi-Junior(~BenziJuni@dsl-149-65-135.hive.is)
2021-01-24 03:40:13 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-24 03:42:07 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Remote host closed the connection)
2021-01-24 03:42:21 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-24 03:43:09 +0100xff0x(~xff0x@2001:1a81:52f5:9400:43b:dce9:5389:7818) (Ping timeout: 265 seconds)
2021-01-24 03:43:32 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 03:44:04 +0100notzmv(~user@unaffiliated/zmv) (Ping timeout: 246 seconds)
2021-01-24 03:44:42 +0100xff0x(~xff0x@2001:1a81:532d:4a00:cdd6:7cbf:2c73:b840)
2021-01-24 03:45:04 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 03:45:15 +0100 <shachaf> zebrag: The forall in that article is an existential.
2021-01-24 03:45:26 +0100 <shachaf> Or, it's used to make that type existential, I mean. forall is forall.
2021-01-24 03:45:45 +0100 <shachaf> It's a bit confusing that Haskell uses it like this, but I think it makes sense.
2021-01-24 03:46:37 +0100 <shachaf> You can think of it like this: data A = B Int means that, if x :: Int, then B x :: A
2021-01-24 03:46:59 +0100 <shachaf> data A = forall t. B t means that, for any type t, if x :: t, then B x :: A
2021-01-24 03:48:02 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-01-24 03:48:48 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-24 03:51:42 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 03:51:58 +0100conal_(~conal@192.145.117.129) (Quit: Computer has gone to sleep.)
2021-01-24 03:52:17 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-01-24 03:52:38 +0100conal(~conal@192.145.117.129)
2021-01-24 03:52:42 +0100conal(~conal@192.145.117.129) (Client Quit)
2021-01-24 03:54:58 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 03:55:57 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 03:56:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 03:58:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-01-24 03:59:48 +0100conal(~conal@209.58.133.168)
2021-01-24 04:00:18 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 268 seconds)
2021-01-24 04:01:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 260 seconds)
2021-01-24 04:01:42 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-24 04:03:23 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-01-24 04:04:50 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 04:05:32 +0100 <zebrag> monochrom: :set -XGADTs -XRankNTypes; data X a = forall b . X a b; xs = [X 1 'a', X 2 2]; { f :: forall b . b -> Int; f b = 3}; { fs [] = 2; fs (X a b : _) = f b }; fs xs -- returns 3. It suits well with the existential elimination p. 5 of https://courses.cs.washington.edu/courses/cse321/10wi/natural-deduction.pdf
2021-01-24 04:07:14 +0100 <zebrag> I'm quite happy with that explanation, even though there are several versions of the existential elimination rule, and I'd like to know the specific name of the one in the last link p. 5
2021-01-24 04:07:33 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 04:09:24 +0100xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu)
2021-01-24 04:09:48 +0100 <shachaf> That code looks a bit like it's confusing things, though I'm not sure.
2021-01-24 04:11:18 +0100Tops21(~Tobias@dyndsl-095-033-016-051.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-01-24 04:11:34 +0100 <shachaf> Maybe not and I'm just not seeing what it's trying to do.
2021-01-24 04:14:27 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 04:15:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-01-24 04:16:59 +0100darjeeling_(~darjeelin@115.215.41.174) (Ping timeout: 265 seconds)
2021-01-24 04:17:23 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 04:20:09 +0100conal(~conal@209.58.133.168) (Quit: Computer has gone to sleep.)
2021-01-24 04:20:22 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2021-01-24 04:20:44 +0100conal(~conal@209.58.133.168)
2021-01-24 04:20:50 +0100conal(~conal@209.58.133.168) (Client Quit)
2021-01-24 04:21:35 +0100 <zebrag> shachaf: it shows a function that makes use of the second field of the data constructor `X`, whose type is nevertheless not allowed to "escape its scope". Which we have been able to use on a list whose elements are of any possible type `[X 1 'a', X 2 2]`. I personally find it amazing. And IMO it follows the pattern of the existential elimination rule in sequent calculus NJ.
2021-01-24 04:22:22 +0100 <shachaf> Sure, that's true. f is just a constant function here, though, it doesn't really use the value.
2021-01-24 04:22:27 +0100 <shachaf> You can do something like this:
2021-01-24 04:22:40 +0100 <shachaf> @let data T = forall x. T x (x -> Int)
2021-01-24 04:22:41 +0100 <lambdabot> Defined.
2021-01-24 04:23:02 +0100conal(~conal@209.58.133.168)
2021-01-24 04:23:18 +0100 <shachaf> > let f :: T -> Int; f (T x f) = f x in f (T 'a' ord)
2021-01-24 04:23:20 +0100 <lambdabot> 97
2021-01-24 04:23:33 +0100 <zebrag> Yes, yes, I see
2021-01-24 04:23:36 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds)
2021-01-24 04:23:50 +0100 <shachaf> Even this is kind of useless, of course, because you'd rather f just take an Int argument directly.
2021-01-24 04:24:07 +0100 <zebrag> A wee bit smarter, if you really want to make use of that field ;)
2021-01-24 04:25:02 +0100drbean(~drbean@TC210-63-209-17.static.apol.com.tw)
2021-01-24 04:25:07 +0100 <shachaf> A more interesting example is, I don't know, a type like data Nat = forall x. Nat x (x -> Maybe x)
2021-01-24 04:25:24 +0100 <zebrag> But, that it follows the pattern of existential elimination would explain, IMO, why, it's called "existential type"
2021-01-24 04:26:25 +0100 <zebrag> Yes, yes, I see your example, it is the usual one, if I remember correctly
2021-01-24 04:27:22 +0100 <shachaf> Well, sure, it's existential for the same reason the term is used in logic.
2021-01-24 04:27:36 +0100 <shachaf> You could also write it with an existential quantifier directly, if Haskell supported it, which it doesn't.
2021-01-24 04:27:43 +0100alx741(~alx741@186.178.110.72) (Quit: alx741)
2021-01-24 04:28:14 +0100conal(~conal@209.58.133.168) (Quit: Computer has gone to sleep.)
2021-01-24 04:31:31 +0100conal(~conal@209.58.133.168)
2021-01-24 04:32:43 +0100theDon(~td@94.134.91.217) (Ping timeout: 246 seconds)
2021-01-24 04:32:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 04:34:49 +0100theDon(~td@muedsl-82-207-238-092.citykom.de)
2021-01-24 04:34:59 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 04:35:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 04:38:05 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Remote host closed the connection)
2021-01-24 04:39:02 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-01-24 04:39:09 +0100 <zebrag> We have a parametrized "proposition=type" object, which we are assured is true, but we don't know for which value or type of the parameter, and we have to make the best of it. `X 1 'a'` is a proof of `X Int`, but the `'a'` is "existential", cannot escape. Well I think I understand "something", and I better stop before I get confused.
2021-01-24 04:39:22 +0100 <zebrag> shachaf: thanks for the help
2021-01-24 04:40:13 +0100 <zebrag> Plus I must go back to Free applicative functors
2021-01-24 04:40:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 264 seconds)
2021-01-24 04:41:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 04:44:42 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 04:44:51 +0100darjeeling_(~darjeelin@115.215.41.174)
2021-01-24 04:45:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 04:47:50 +0100lagothrixGuest92438
2021-01-24 04:47:50 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2021-01-24 04:47:51 +0100Guest92438(~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services)))
2021-01-24 04:47:51 +0100xirhtogallagothrix
2021-01-24 04:50:05 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-01-24 04:54:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 04:57:17 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 04:59:09 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-24 04:59:12 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-01-24 04:59:25 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-01-24 04:59:44 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-01-24 05:00:10 +0100Alleria(~textual@2603-7000-3040-0000-c9ad-d200-ba76-775e.res6.spectrum.com)
2021-01-24 05:00:28 +0100AlleriaGuest69298
2021-01-24 05:01:13 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 05:04:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 260 seconds)
2021-01-24 05:04:50 +0100Guest69298(~textual@2603-7000-3040-0000-c9ad-d200-ba76-775e.res6.spectrum.com) (Ping timeout: 264 seconds)
2021-01-24 05:04:54 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 05:05:42 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 05:06:17 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-24 05:06:40 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 246 seconds)
2021-01-24 05:07:31 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25)
2021-01-24 05:07:36 +0100sgibber2018(d055ed90@208.85.237.144) (Quit: Connection closed)
2021-01-24 05:10:37 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 272 seconds)
2021-01-24 05:15:17 +0100 <ski> zebrag : the formulation of existential elimination in those notes look strange
2021-01-24 05:15:38 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-24 05:16:01 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2021-01-24 05:16:16 +0100juri_(~juri@178.63.35.222) (Ping timeout: 240 seconds)
2021-01-24 05:16:18 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2021-01-24 05:17:26 +0100 <ezzieyguywuf> is there an, er, 'easy' way to find the latest version of a package (including revisions) on hackage given the package name programatically?
2021-01-24 05:18:29 +0100 <Squarism> What do you call a sumtype where no constructor takes an argument? If there is a name for them?
2021-01-24 05:18:38 +0100 <ski> "enumeration type" ?
2021-01-24 05:20:12 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 05:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 05:21:07 +0100 <zebrag> ski: "formulation of existential elimination in those notes" you mean the courses.cs.washington.edu thing?
2021-01-24 05:21:19 +0100 <Squarism> ski, thanks.
2021-01-24 05:22:06 +0100 <ski> yes
2021-01-24 05:22:56 +0100darjeeling_(~darjeelin@115.215.41.174) (Ping timeout: 240 seconds)
2021-01-24 05:23:09 +0100 <ski> i think it should say just `P', not `P[t/x]'
2021-01-24 05:23:15 +0100 <zebrag> ski: well, it's the way they've been taught to me. So I was specifically looking for that. And then of course it doesn't look strange to me.
2021-01-24 05:23:31 +0100juri_(~juri@178.63.35.222)
2021-01-24 05:23:37 +0100 <zebrag> hang on, checking
2021-01-24 05:24:03 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-01-24 05:24:23 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-24 05:24:41 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-24 05:25:55 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 256 seconds)
2021-01-24 05:26:38 +0100 <zebrag> ski: I was referring to the ugly small characters on p. 5 "existential-elimination". As for P[t/x] the line above, well it is introduction
2021-01-24 05:28:27 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 05:29:58 +0100 <ski> no, i'm talking about the `P[t/x]' in the paragraph starting "In English: [..]"
2021-01-24 05:30:21 +0100 <Squarism> I want to create a function foo :: SomeClass a => Proxy a -> [Attribute]. In my program, "a" can be Int, Bool, String, Enum a and 2-3 time representations. Basic types. Furthermore, "a" can ALSO be data Optional a = Known a | Unknown. And "a" can also be all previous mentioned types wrapped in Maybe. How could I write a function that collects all type info of the value passed to foo? if data Attribute = ABasicType String | AIsOptional |
2021-01-24 05:30:21 +0100 <Squarism> AIsMaybe ?
2021-01-24 05:31:11 +0100jathan(~jathan@69.61.93.38) (Quit: WeeChat 2.3)
2021-01-24 05:31:11 +0100 <Squarism> i was thinking Generics + some type classes. But Does Generics play well with proxies? Doesnt seem so?
2021-01-24 05:33:03 +0100 <ski> make `foo' a method of `SomeClass' ?
2021-01-24 05:33:13 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 260 seconds)
2021-01-24 05:34:28 +0100 <Squarism> ski, right. But how do I avoid needing to create 3 x num of "basic" types?
2021-01-24 05:34:40 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 05:34:58 +0100 <ski> what do you mean by "needing to create 3 x num of \"basic\" types" ?
2021-01-24 05:36:44 +0100 <Squarism> lets say the set of "basic types" are Int, Bool and String for ease of explanation.
2021-01-24 05:37:26 +0100 <ski> instance SomeClass Int
2021-01-24 05:37:28 +0100 <ski> where
2021-01-24 05:37:34 +0100 <ski> foo _ = [ABasicType]
2021-01-24 05:37:39 +0100 <ski> something like that ?
2021-01-24 05:38:50 +0100 <zebrag> ski: if we can deduce `exists x.P` from `Gamma`, and we can deduce `Q` from `P[t/x], then we can deduce `Q` from `Gamma`. I agree with that NatDed formulation, which seems also similar to what we see page 13 of https://www.cs.cmu.edu/~fp/courses/atp/handouts/ch2-natded.pdf
2021-01-24 05:39:15 +0100 <Squarism> I feel I need to implement SomeClass for all basic types, for all variants of Optional applied to the basic types and for all variants of Maybe Optional applied to all basic types
2021-01-24 05:39:21 +0100 <Squarism> ski, ^
2021-01-24 05:39:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 264 seconds)
2021-01-24 05:39:39 +0100 <zebrag> p 14*
2021-01-24 05:39:44 +0100 <zebrag> not 13
2021-01-24 05:39:49 +0100 <Squarism> just because "a" is a Proxy
2021-01-24 05:40:08 +0100 <Squarism> or i mean, the argument to foo is "Proxy a"
2021-01-24 05:40:14 +0100 <ski> zebrag : which term is `t' ?
2021-01-24 05:40:48 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2021-01-24 05:40:49 +0100 <ski> Squarism : what about `Maybe (Maybe Int)', should it be an instance of `SomeClass' ?
2021-01-24 05:41:40 +0100 <ski> zebrag : the rule in that other handout is different. `a' there is a parameter/constant, not an arbitrary term
2021-01-24 05:41:53 +0100 <zebrag> ski: if `even 2` is true then you can deduce `exists x. even x` is true. `t` is `2`.
2021-01-24 05:42:23 +0100 <ski> zebrag : yes, but that's existential introduction. i was talking about the existential elimination rule
2021-01-24 05:43:27 +0100 <Squarism> ski, no, it wont. Maybe (Optional Int), Maybe Int, Optional Int and Int should all be though.
2021-01-24 05:43:28 +0100 <zebrag> yes, on the top of the page
2021-01-24 05:43:40 +0100 <zebrag> well a is a term like `2`
2021-01-24 05:43:58 +0100 <ski> Squarism : and `Optional (Maybe Int)
2021-01-24 05:43:58 +0100 <zebrag> but it's on the negative part of an implication
2021-01-24 05:43:59 +0100 <ski> ' ?
2021-01-24 05:44:13 +0100 <Squarism> ski, nope. That shouldnt be allowed.
2021-01-24 05:44:15 +0100 <ski> "well a is a term like `2`" -- no, it's not
2021-01-24 05:44:34 +0100 <zebrag> hang on
2021-01-24 05:45:17 +0100 <ski> Squarism : `Optional (Optional Int)' ?
2021-01-24 05:45:36 +0100 <Squarism> nope, not that either. =D
2021-01-24 05:46:00 +0100 <ski> Squarism : it does sound like you'd need to either list each one explicitly, or maybe write some TH to generate the instance you want
2021-01-24 05:46:13 +0100 <Squarism> ah ok
2021-01-24 05:46:30 +0100 <jollygood2> :i Optional
2021-01-24 05:46:38 +0100 <MarcelineVQ> Squarism: why do you need this?
2021-01-24 05:46:43 +0100 <Squarism> ski, thanks for your insight. Much appreciated.
2021-01-24 05:47:04 +0100 <Squarism> MarcelineVQ, its for a DSL that describe form fields.
2021-01-24 05:48:08 +0100 <ski> zebrag : compare with the universal introduction rule
2021-01-24 05:48:41 +0100 <zebrag> ski: you might be right, it might be a mistake in the lecture notes p. 4 (cs.washington.edu). On my initial posts I was referring to the formulation p.5, which is, different.
2021-01-24 05:48:43 +0100 <ski> jollygood2 : Squarism defined it (as `data Optional a = Known a | Unknown')
2021-01-24 05:49:13 +0100 <zebrag> ski: I mean I completely agree with you
2021-01-24 05:50:00 +0100 <zebrag> But I'm not going to write the author about it
2021-01-24 05:50:14 +0100 <ski> zebrag : also, i think it's questionable to not mention Gamma in the side premisses of some rules (like existential elimination, e.g.) (talking about the <courses.cs.washington.edu> one)
2021-01-24 05:51:04 +0100 <zebrag> I was just looking for a lecture with the rules p. 5.
2021-01-24 05:51:18 +0100 <ski> (the alternative formulation on page five mentions it, for all the proper rules)
2021-01-24 05:52:16 +0100 <ski> (although, it's strange that it doesn't seem to mention either weakening/thinning/dilution, or else have Gamma mentioned in the rules with no premisses)
2021-01-24 05:52:43 +0100 <zebrag> yeah, probably too much Gamma rays
2021-01-24 05:53:00 +0100 <ski> :p
2021-01-24 05:53:13 +0100sgibber2018(d055ed90@208.85.237.144)
2021-01-24 05:53:14 +0100raym(~ray@45.64.220.55)
2021-01-24 05:53:21 +0100darjeeling_(~darjeelin@115.215.41.174)
2021-01-24 05:54:28 +0100 <ezzieyguywuf> are all the dots in this function the normal `func1 . func2` (what's it called - function application?) that I'm used to, or some sort of language extension? https://github.com/gentoo-haskell/hackport/blob/master/Portage/EBuild.hs#L114
2021-01-24 05:54:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 05:55:34 +0100 <Squarism> ski, I was thinking GADTs could be helpful, but i guess proxies makes it hard?
2021-01-24 05:56:25 +0100 <ski> ezzieyguywuf : yes, except `L.nub'. (function composition)
2021-01-24 05:56:25 +0100 <shachaf> Function composition. Looks like it.
2021-01-24 05:56:34 +0100 <MarcelineVQ> ezzieyguywuf: composition, normal
2021-01-24 05:56:56 +0100 <shachaf> It's a slightly unusual use of composition.
2021-01-24 05:56:57 +0100 <ezzieyguywuf> what is the L.nub?
2021-01-24 05:57:02 +0100 <ezzieyguywuf> yea I found it quite weird
2021-01-24 05:57:08 +0100 <MarcelineVQ> import qualified Data.List as L
2021-01-24 05:57:13 +0100 <ski> `L' is `Data.List'
2021-01-24 05:57:19 +0100 <Squarism> ...long ago I tried out GADTs, so dont feel at home with them.
2021-01-24 05:57:28 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-01-24 05:57:38 +0100oisdk(~oisdk@2001:bb6:3329:d100:ccad:148:353e:8c25) (Ping timeout: 264 seconds)
2021-01-24 05:57:43 +0100 <MarcelineVQ> Squarism: gadts are the truth and the path
2021-01-24 05:57:49 +0100 <ski> i would have put whitespace before each of those `.'s
2021-01-24 05:58:07 +0100 <ski> (and move the ones at end-of-line to the next line)
2021-01-24 05:58:24 +0100 <ski> it's basically using `ShowS'
2021-01-24 05:59:07 +0100 <Squarism> MarcelineVQ, Ha.. you hare just pulling my leg. I just feel there are all these wonderful tools and I sense if I throw a hammer or saw on the problem it will solve itself =D
2021-01-24 05:59:51 +0100 <ezzieyguywuf> ahb
2021-01-24 06:00:08 +0100 <ezzieyguywuf> lol sorry
2021-01-24 06:00:19 +0100 <ezzieyguywuf> so Data.List.nub is a function itself, got it
2021-01-24 06:00:24 +0100HarveyPwca(~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving)
2021-01-24 06:00:41 +0100 <ski> (well, if you also include the `where'-part, there's `L.intercalate',`LS.splitOn',`TC.formatTime',`TC.defaultTimeLocale' in there .. and some dots in `String' literals)
2021-01-24 06:01:01 +0100 <ski> yes
2021-01-24 06:02:09 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-24 06:02:13 +0100 <MarcelineVQ> Squarism: Nearby is a sprwaling forest of quiet and shaded brush, deep in those woods is a clearing with a small house, just beyond its inviting threshold is a room, inside the room is a rustic but solid door, softly pulsing golden light shines through its keyhole. gadts are the key to that door
2021-01-24 06:03:04 +0100 <Squarism> Neat!
2021-01-24 06:04:16 +0100 <ezzieyguywuf> if it's regular function composition, I don't understand how `nl . nl` is a thing - nl is just a DString from what I can tell, and DString is String -> String, so `nl . nl` is... `String -> String -> String`?
2021-01-24 06:05:25 +0100dandart1(~Thunderbi@home.dandart.co.uk)
2021-01-24 06:05:27 +0100 <MarcelineVQ> :t (.)
2021-01-24 06:05:29 +0100 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2021-01-24 06:06:13 +0100 <ski> @type let nl = showChar '\n' in nl . nl
2021-01-24 06:06:14 +0100 <lambdabot> String -> String
2021-01-24 06:06:16 +0100dandart(~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds)
2021-01-24 06:06:16 +0100dandart1dandart
2021-01-24 06:06:16 +0100 <ski> @type let nl = showChar '\n' in nl . nl :: ShowS
2021-01-24 06:06:18 +0100 <lambdabot> ShowS
2021-01-24 06:07:00 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 06:08:43 +0100 <ski> (ah, it even mentions `showChar',`showString')
2021-01-24 06:10:16 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Read error: Connection reset by peer)
2021-01-24 06:10:17 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-24 06:10:52 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
2021-01-24 06:11:05 +0100Tario(~Tario@201.192.165.173)
2021-01-24 06:11:09 +0100 <ski> .. and it has some redundant brackets, in places :(
2021-01-24 06:14:36 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 06:16:19 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-wuizivshumzbfwsj)
2021-01-24 06:17:26 +0100bcremer(~bcremer@185.204.1.185) (Remote host closed the connection)
2021-01-24 06:18:30 +0100conal(~conal@209.58.133.168) (Quit: Computer has gone to sleep.)
2021-01-24 06:18:46 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 246 seconds)
2021-01-24 06:20:27 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 260 seconds)
2021-01-24 06:20:27 +0100walrus_man(~walrus_ma@209.65.35.103)
2021-01-24 06:20:38 +0100walrus_man(~walrus_ma@209.65.35.103) ()
2021-01-24 06:21:39 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 272 seconds)
2021-01-24 06:22:13 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-01-24 06:26:22 +0100feb1(~feb@185.244.214.217)
2021-01-24 06:28:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-24 06:30:20 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-01-24 06:31:06 +0100ixaxaar(~ixaxaar@49.207.210.215)
2021-01-24 06:31:22 +0100andrei(~user@c-66-31-23-28.hsd1.ma.comcast.net)
2021-01-24 06:32:46 +0100 <andrei> I'm trying to set up a custom compiler in a snapshot.yaml file. I can specify the compiler I want, but how do I specify which repo stack should pull the compiler from? The compiler-repository field, which I would normally put in a package.yaml file, isn't recognized with this error "Unrecognized fields in Snapshot: compiler-repository"
2021-01-24 06:38:05 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2021-01-24 06:38:05 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-hmarbgwdztdwlimf) (Quit: Connection closed for inactivity)
2021-01-24 06:40:15 +0100unlink2(~unlink2@p200300ebcf14c6000228288353cacf99.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-01-24 06:40:44 +0100dlbh^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-01-24 06:41:24 +0100 <Squarism> ha, Data.Reflection can look a types of proxies. Ugly but might solve my problem.
2021-01-24 06:48:22 +0100 <Squarism> i mean Type.Reflection
2021-01-24 06:49:38 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net)
2021-01-24 06:49:58 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds)
2021-01-24 06:52:26 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2021-01-24 06:53:31 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 264 seconds)
2021-01-24 06:54:22 +0100threestrikes(~haskell@24.243.229.2)
2021-01-24 06:59:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 07:01:19 +0100mirrorbird(~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0) (Ping timeout: 265 seconds)
2021-01-24 07:02:28 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net) (Ping timeout: 260 seconds)
2021-01-24 07:04:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-24 07:08:24 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-24 07:12:12 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 07:14:04 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2021-01-24 07:14:13 +0100dandart(~Thunderbi@home.dandart.co.uk) (Quit: dandart)
2021-01-24 07:15:46 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 07:17:45 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Ping timeout: 256 seconds)
2021-01-24 07:19:45 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-24 07:20:19 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-24 07:28:36 +0100threestrikes(~haskell@24.243.229.2) (Ping timeout: 240 seconds)
2021-01-24 07:28:44 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 07:30:58 +0100sgibber2018(d055ed90@208.85.237.144) (Quit: Connection closed)
2021-01-24 07:32:58 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 246 seconds)
2021-01-24 07:34:10 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-24 07:36:12 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Remote host closed the connection)
2021-01-24 07:36:21 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-24 07:38:27 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-01-24 07:46:23 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-24 07:50:05 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 240 seconds)
2021-01-24 07:51:21 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-24 07:52:22 +0100Nikotiini(~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) (Ping timeout: 256 seconds)
2021-01-24 07:57:04 +0100brown121407(~brown1214@fsf/member/brown121407) ("ERC (IRC client for Emacs 27.1)")
2021-01-24 07:59:59 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-24 08:00:04 +0100Alleria(~textual@2603-7000-3040-0000-c9ad-d200-ba76-775e.res6.spectrum.com)
2021-01-24 08:00:27 +0100AlleriaGuest74258
2021-01-24 08:00:44 +0100darjeeling_(~darjeelin@115.215.41.174) (Quit: WeeChat 2.9)
2021-01-24 08:02:26 +0100darjeeling_(~darjeelin@115.215.41.174)
2021-01-24 08:04:50 +0100Guest74258(~textual@2603-7000-3040-0000-c9ad-d200-ba76-775e.res6.spectrum.com) (Ping timeout: 264 seconds)
2021-01-24 08:06:00 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-24 08:07:21 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-24 08:09:08 +0100hackageversions 4.0.2 - Types and parsers for software version numbers. https://hackage.haskell.org/package/versions-4.0.2 (fosskers)
2021-01-24 08:11:00 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-24 08:11:12 +0100Tario(~Tario@201.192.165.173)
2021-01-24 08:14:13 +0100xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-24 08:14:39 +0100mirrorbird(~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0)
2021-01-24 08:15:16 +0100mirrorbird(~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0) (Client Quit)
2021-01-24 08:18:07 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 246 seconds)
2021-01-24 08:20:37 +0100Nikotiini(~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com)
2021-01-24 08:20:42 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 256 seconds)
2021-01-24 08:25:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 08:25:50 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-01-24 08:26:17 +0100noop_noob(b816787b@184.22.120.123)
2021-01-24 08:26:53 +0100maier(~maier@i59F67BFA.versanet.de)
2021-01-24 08:26:58 +0100noop_noob(b816787b@184.22.120.123) (Client Quit)
2021-01-24 08:37:58 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-24 08:39:09 +0100kupi(uid212005@gateway/web/irccloud.com/x-nkefntpavhwhxfim) (Quit: Connection closed for inactivity)
2021-01-24 08:40:16 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-24 08:41:05 +0100petersen(~petersen@redhat/juhp)
2021-01-24 08:43:40 +0100unlink2(~unlink2@p5b08845b.dip0.t-ipconnect.de)
2021-01-24 08:47:55 +0100knupfer(~Thunderbi@i5E86B422.versanet.de)
2021-01-24 08:49:08 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-24 08:50:03 +0100clarity(~clarity@90.221.74.173) (Ping timeout: 260 seconds)
2021-01-24 08:51:19 +0100unlink2(~unlink2@p5b08845b.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-01-24 08:52:00 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net)
2021-01-24 08:52:31 +0100unlink2(~unlink2@p5b08845b.dip0.t-ipconnect.de)
2021-01-24 08:54:05 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 08:54:07 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Read error: Connection reset by peer)
2021-01-24 08:54:23 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 08:55:48 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 08:56:18 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 08:57:07 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net) (Ping timeout: 264 seconds)
2021-01-24 08:58:07 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 08:58:34 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de)
2021-01-24 08:59:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-24 09:00:10 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-24 09:00:33 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 09:02:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 265 seconds)
2021-01-24 09:02:45 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 240 seconds)
2021-01-24 09:02:58 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2021-01-24 09:02:58 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-01-24 09:03:29 +0100xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu)
2021-01-24 09:04:07 +0100zaquest(~notzaques@5.128.210.178)
2021-01-24 09:04:53 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-24 09:05:47 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-24 09:08:15 +0100xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu) (Client Quit)
2021-01-24 09:09:05 +0100romanix(~romanix@staticline10864.toya.net.pl)
2021-01-24 09:09:48 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-01-24 09:10:11 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-01-24 09:15:08 +0100nly(~user@unaffiliated/nly)
2021-01-24 09:15:22 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net)
2021-01-24 09:17:21 +0100idhugo_(~idhugo@130.225.16.16)
2021-01-24 09:19:08 +0100Glyde(~glyde@90.221.74.173)
2021-01-24 09:19:35 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net) (Ping timeout: 256 seconds)
2021-01-24 09:19:36 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-01-24 09:20:57 +0100totoro2022(~t@unaffiliated/totoro2021)
2021-01-24 09:22:38 +0100hackagehspec-meta 2.7.8 - A version of Hspec which is used to test Hspec itself https://hackage.haskell.org/package/hspec-meta-2.7.8 (SimonHengel)
2021-01-24 09:23:02 +0100totoro2021(~t@unaffiliated/totoro2021) (Ping timeout: 256 seconds)
2021-01-24 09:23:26 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 272 seconds)
2021-01-24 09:23:37 +0100nly(~user@unaffiliated/nly) ("ERC (IRC client for Emacs 27.1)")
2021-01-24 09:24:34 +0100idhugo_(~idhugo@130.225.16.16) (Read error: Connection reset by peer)
2021-01-24 09:25:52 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-wuizivshumzbfwsj) (Quit: Connection closed for inactivity)
2021-01-24 09:26:19 +0100idhugo_(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-24 09:29:00 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 09:29:50 +0100bow_(~nordlys@128-76-227-69-cable.dk.customer.tdc.net)
2021-01-24 09:32:04 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 09:32:21 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 09:32:30 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-24 09:33:43 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-24 09:34:09 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 09:36:04 +0100idhugo_(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2021-01-24 09:36:31 +0100jluttine(~jluttine@87-95-146-110.bb.dnainternet.fi) (Read error: Connection reset by peer)
2021-01-24 09:38:28 +0100jluttine(~jluttine@87-95-146-110.bb.dnainternet.fi)
2021-01-24 09:38:28 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Remote host closed the connection)
2021-01-24 09:38:42 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-24 09:42:18 +0100bow_(~nordlys@128-76-227-69-cable.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2021-01-24 09:44:38 +0100maier(~maier@i59F67BFA.versanet.de) (Ping timeout: 260 seconds)
2021-01-24 09:47:48 +0100maier(~maier@i59F67BFA.versanet.de)
2021-01-24 09:54:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-24 10:05:51 +0100idhugo_(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-24 10:07:14 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net)
2021-01-24 10:07:27 +0100feb1(~feb@185.244.214.217) (Remote host closed the connection)
2021-01-24 10:07:34 +0100arcd(~arcd@c-73-129-22-35.hsd1.md.comcast.net) (Client Quit)
2021-01-24 10:09:40 +0100drbean(~drbean@TC210-63-209-17.static.apol.com.tw) (Ping timeout: 272 seconds)
2021-01-24 10:12:39 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 10:13:37 +0100johncylee(~johncylee@185.204.1.185)
2021-01-24 10:13:48 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-24 10:14:52 +0100 <idnar> @hoogle Monad m => Bool -> m () -> m ()
2021-01-24 10:14:53 +0100 <lambdabot> XMonad.Util.PureX when' :: (Monad m, Monoid a) => Bool -> m a -> m a
2021-01-24 10:14:53 +0100 <lambdabot> Control.Conditional when :: (ToBool bool, Monad m) => bool -> m () -> m ()
2021-01-24 10:14:53 +0100 <lambdabot> Control.Monad when :: Applicative f => Bool -> f () -> f ()
2021-01-24 10:15:38 +0100 <idnar> @hoogle Monad m => (a -> Bool) -> (a -> m ()) -> a -> m ()
2021-01-24 10:15:40 +0100 <lambdabot> No results found
2021-01-24 10:16:07 +0100 <idnar> hmm
2021-01-24 10:16:27 +0100hannah(546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl)
2021-01-24 10:17:47 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 272 seconds)
2021-01-24 10:18:29 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-01-24 10:18:43 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 10:21:51 +0100 <idnar> @type \p f -> traverseOf (filtered p) f
2021-01-24 10:21:52 +0100 <lambdabot> Applicative f => (s -> Bool) -> (s -> f s) -> s -> f s
2021-01-24 10:22:24 +0100 <idnar> is that too silly?
2021-01-24 10:23:04 +0100 <idnar> @pl \p f -> traverseOf (filtered p) f
2021-01-24 10:23:04 +0100 <lambdabot> traverseOf . filtered
2021-01-24 10:23:12 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 10:23:14 +0100 <idnar> ah duh
2021-01-24 10:24:27 +0100 <idnar> @type traverseOf_ . filtered
2021-01-24 10:24:29 +0100 <lambdabot> Applicative f => (s -> Bool) -> (s -> f r) -> s -> f ()
2021-01-24 10:24:57 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 10:25:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 10:28:51 +0100pera(~pera@unaffiliated/pera)
2021-01-24 10:28:55 +0100 <idnar> well, that makes the code longer, so probably
2021-01-24 10:30:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 244 seconds)
2021-01-24 10:37:51 +0100hannah(546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Quit: Ping timeout (120 seconds))
2021-01-24 10:38:21 +0100 <siraben> @type (.) . (.)
2021-01-24 10:38:22 +0100 <lambdabot> (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
2021-01-24 10:39:38 +0100cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 264 seconds)
2021-01-24 10:41:54 +0100sgibber2018(d055ed90@208.85.237.144)
2021-01-24 10:42:02 +0100L29Ah(~L29Ah@unaffiliated/l29ah) (Quit: Gateway shutdown)
2021-01-24 10:46:32 +0100Jackk_Doe(~jackk@205.178.111.134)
2021-01-24 10:46:53 +0100jollygood2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-01-24 10:49:11 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-01-24 10:52:23 +0100hannah(546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl)
2021-01-24 10:52:49 +0100idhugo_(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds)
2021-01-24 10:53:33 +0100fendor(~fendor@178.165.130.159.wireless.dyn.drei.com)
2021-01-24 10:54:36 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-01-24 10:54:37 +0100hackageunliftio 0.2.14 - The MonadUnliftIO typeclass for unlifting monads to IO (batteries included) https://hackage.haskell.org/package/unliftio-0.2.14 (MichaelSnoyman)
2021-01-24 10:55:16 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: Leaving)
2021-01-24 10:55:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 10:58:34 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 256 seconds)
2021-01-24 10:59:21 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 10:59:40 +0100L29Ah(~L29Ah@unaffiliated/l29ah)
2021-01-24 11:00:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-24 11:01:30 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 11:05:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-24 11:05:53 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 265 seconds)
2021-01-24 11:06:24 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-24 11:06:37 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-24 11:06:56 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 11:07:43 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-01-24 11:09:30 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-01-24 11:12:02 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-01-24 11:12:23 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-24 11:15:14 +0100hannah(546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Quit: hannah)
2021-01-24 11:16:43 +0100Alleria(~textual@zrcout.mskcc.org)
2021-01-24 11:17:07 +0100AlleriaGuest31086
2021-01-24 11:17:27 +0100adeene(~adeene@181.131.0.191) (Ping timeout: 256 seconds)
2021-01-24 11:20:27 +0100ambiso9(~ambiso@209.182.239.205) (Quit: The Lounge - https://thelounge.chat)
2021-01-24 11:21:36 +0100mapperr(~mapperr@vmi389916.contaboserver.net) (Remote host closed the connection)
2021-01-24 11:21:36 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 11:22:02 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-johbzescvymnvzni) (Quit: Connection closed for inactivity)
2021-01-24 11:22:34 +0100mapperr(~mapperr@vmi389916.contaboserver.net)
2021-01-24 11:23:51 +0100ambiso9(~ambiso@209.182.239.205)
2021-01-24 11:30:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-24 11:32:05 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net)
2021-01-24 11:33:53 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 272 seconds)
2021-01-24 11:34:34 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 11:34:56 +0100son0p(~son0p@181.58.39.182)
2021-01-24 11:39:42 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-24 11:39:45 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-01-24 11:42:16 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-01-24 11:43:29 +0100Rudd0(~Rudd0@185.189.115.103)
2021-01-24 11:45:36 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-cbkoqfmvmesgsxmv)
2021-01-24 11:47:30 +0100robotmay(~beepboop@2001:8b0:7af0:2580:b9a7:9e38:86ee:d4de) (Remote host closed the connection)
2021-01-24 11:48:48 +0100robotmay(~beepboop@2001:8b0:7af0:2580:6014:55a2:696d:bf8c)
2021-01-24 11:59:09 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 12:01:07 +0100cawfee(chiya@2406:3003:2077:2341::babe) (Ping timeout: 260 seconds)
2021-01-24 12:03:00 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2021-01-24 12:04:23 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-24 12:05:52 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2021-01-24 12:06:32 +0100mdunnio(~mdunnio@172.97.43.112)
2021-01-24 12:06:38 +0100noj_(~noj@ip-84-119-33-154.unity-media.net)
2021-01-24 12:07:12 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-24 12:07:48 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 12:08:23 +0100kuribas(~user@ptr-25vy0i9x8mwpkg3g0kf.18120a2.ip6.access.telenet.be)
2021-01-24 12:09:16 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 12:10:42 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-24 12:10:52 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-24 12:11:03 +0100mdunnio(~mdunnio@172.97.43.112) (Ping timeout: 260 seconds)
2021-01-24 12:11:59 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-24 12:13:41 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-01-24 12:14:49 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) ()
2021-01-24 12:15:09 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 12:16:11 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 12:16:56 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-24 12:19:47 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-01-24 12:19:48 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-01-24 12:21:11 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-24 12:23:39 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 12:23:49 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 12:29:41 +0100sgibber2018(d055ed90@208.85.237.144) (Quit: Connection closed)
2021-01-24 12:30:06 +0100 <kuribas> good new, I am porting my hasqlator-mysql library to postgresql :-)
2021-01-24 12:30:07 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-24 12:30:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 12:30:32 +0100 <kuribas> Or rather, I am providing a stub, so that anyone else could do the work :-)
2021-01-24 12:30:37 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-24 12:32:39 +0100ricree(~ricree@2601:249:1580:4540:c9b3:d24f:2fb9:9782)
2021-01-24 12:32:52 +0100ricree(~ricree@2601:249:1580:4540:c9b3:d24f:2fb9:9782) (Client Quit)
2021-01-24 12:33:21 +0100 <kuribas> I am also taking my vacation time to document and publish my library...
2021-01-24 12:34:19 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 12:34:53 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 12:34:54 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-24 12:35:07 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 12:35:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 12:39:56 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-01-24 12:41:23 +0100maier(~maier@i59F67BFA.versanet.de) (Ping timeout: 256 seconds)
2021-01-24 12:41:43 +0100juuandyy(~juuandyy@90.106.228.121)
2021-01-24 12:44:05 +0100maier(~maier@i59F67BFA.versanet.de)
2021-01-24 12:44:46 +0100maier(~maier@i59F67BFA.versanet.de) (Client Quit)
2021-01-24 12:44:51 +0100sgibber2018(d055ed90@208.85.237.144)
2021-01-24 12:48:22 +0100leah2(~leah@vuxu.org) (Ping timeout: 260 seconds)
2021-01-24 12:50:56 +0100bow_(~nordlys@128-76-227-69-cable.dk.customer.tdc.net)
2021-01-24 12:51:49 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 12:52:11 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 12:56:35 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-24 12:57:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-24 12:59:48 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-24 13:00:54 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 244 seconds)
2021-01-24 13:01:52 +0100leah2(~leah@vuxu.org)
2021-01-24 13:03:05 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 13:06:06 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-24 13:06:19 +0100concept25(~concept2@unaffiliated/tubo)
2021-01-24 13:06:51 +0100concept2(~concept2@unaffiliated/tubo) (Ping timeout: 246 seconds)
2021-01-24 13:06:52 +0100concept25concept2
2021-01-24 13:07:45 +0100JuanDaugherty(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-24 13:08:01 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-01-24 13:08:01 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-01-24 13:08:01 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-24 13:09:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 264 seconds)
2021-01-24 13:09:25 +0100p7lpa1ugixavugu(~atomic@2800:810:514:e7:441:86ab:9b24:7a9f) (Ping timeout: 272 seconds)
2021-01-24 13:10:00 +0100JuanDaugherty(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Client Quit)
2021-01-24 13:10:07 +0100hackagereq 3.9.0 - Easy-to-use, type-safe, expandable, high-level HTTP client library https://hackage.haskell.org/package/req-3.9.0 (mrkkrp)
2021-01-24 13:10:25 +0100JuanDaugherty(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-24 13:10:26 +0100JuanDaugherty(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Remote host closed the connection)
2021-01-24 13:13:32 +0100bow_(~nordlys@128-76-227-69-cable.dk.customer.tdc.net) (Quit: Cheerio.)
2021-01-24 13:14:17 +0100__monty__(~toonn@unaffiliated/toonn)
2021-01-24 13:17:14 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 13:17:46 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 13:18:42 +0100juuandyy(~juuandyy@90.106.228.121) (Ping timeout: 264 seconds)
2021-01-24 13:21:01 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-01-24 13:21:36 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
2021-01-24 13:22:13 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 260 seconds)
2021-01-24 13:23:40 +0100pera(~pera@unaffiliated/pera) (Remote host closed the connection)
2021-01-24 13:24:46 +0100juuandyy(~juuandyy@90.106.228.121)
2021-01-24 13:25:13 +0100fendor_(~fendor@77.119.130.58.wireless.dyn.drei.com)
2021-01-24 13:25:57 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 13:27:53 +0100fendor(~fendor@178.165.130.159.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2021-01-24 13:29:26 +0100xff0x(~xff0x@2001:1a81:532d:4a00:cdd6:7cbf:2c73:b840) (Ping timeout: 264 seconds)
2021-01-24 13:29:54 +0100xff0x(~xff0x@2001:1a81:532d:4a00:c038:76cb:6123:7d2f)
2021-01-24 13:32:40 +0100juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-01-24 13:36:09 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-01-24 13:36:23 +0100p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
2021-01-24 13:37:56 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 13:42:42 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-24 13:42:58 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 13:44:13 +0100drbean(~drbean@TC210-63-209-76.static.apol.com.tw)
2021-01-24 13:44:57 +0100 <maerwald> excellent
2021-01-24 13:45:33 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-01-24 13:49:50 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 13:50:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 13:51:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 13:51:46 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 13:55:04 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-cbkoqfmvmesgsxmv) (Quit: Connection closed for inactivity)
2021-01-24 13:55:54 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-24 13:58:49 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 272 seconds)
2021-01-24 13:58:53 +0100concept2(~concept2@unaffiliated/tubo) (Quit: See ya later!)
2021-01-24 14:00:50 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 14:01:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 14:06:35 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-24 14:07:50 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 14:09:47 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 14:12:56 +0100notzmv(~user@unaffiliated/zmv)
2021-01-24 14:16:27 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 14:17:56 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2021-01-24 14:18:44 +0100sayantan(~sayantan@115.187.62.144)
2021-01-24 14:18:54 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 14:18:54 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 14:19:49 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 14:20:39 +0100sayantan(~sayantan@115.187.62.144) (Remote host closed the connection)
2021-01-24 14:20:46 +0100stree_(~stree@50-108-110-177.adr01.mskg.mi.frontiernet.net)
2021-01-24 14:22:18 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Ping timeout: 264 seconds)
2021-01-24 14:22:19 +0100jmchael(~jmchael@87.112.235.234)
2021-01-24 14:23:53 +0100concept2(~concept2@unaffiliated/tubo)
2021-01-24 14:24:47 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 265 seconds)
2021-01-24 14:25:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 240 seconds)
2021-01-24 14:28:46 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 14:29:04 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2021-01-24 14:29:21 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-24 14:30:54 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-24 14:32:16 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 14:35:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 14:35:44 +0100 <kuribas> https://hackage.haskell.org/package/postgresql-libpq-0.9.4.3/docs/Database-PostgreSQL-LibPQ.html#v…
2021-01-24 14:35:52 +0100 <kuribas> why is parameters a maybe value?
2021-01-24 14:35:57 +0100 <kuribas> for NULL fields?
2021-01-24 14:36:46 +0100fionnan(~fionnan@109.255.20.201)
2021-01-24 14:36:47 +0100 <kuribas> hmm, it seems so, since there is no Oid for null.
2021-01-24 14:36:59 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-wnweiphxkokvcjwq)
2021-01-24 14:37:02 +0100son0p(~son0p@181.136.122.143)
2021-01-24 14:37:05 +0100 <kuribas> I suppose a null pointer in the underlying c library.
2021-01-24 14:37:40 +0100Jackk_Doe(~jackk@205.178.111.134) (Quit: Going offline, see ya! (www.adiirc.com))
2021-01-24 14:38:01 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 14:38:12 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds)
2021-01-24 14:38:12 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2021-01-24 14:38:16 +0100cheater(~user@unaffiliated/cheater) (Remote host closed the connection)
2021-01-24 14:39:40 +0100cheater(~user@unaffiliated/cheater)
2021-01-24 14:41:19 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 14:41:25 +0100drbean(~drbean@TC210-63-209-76.static.apol.com.tw) (Ping timeout: 240 seconds)
2021-01-24 14:42:46 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-01-24 14:44:26 +0100robotmay(~beepboop@2001:8b0:7af0:2580:6014:55a2:696d:bf8c) (Ping timeout: 264 seconds)
2021-01-24 14:44:38 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-24 14:44:55 +0100robotmay(~beepboop@80.172.187.81.in-addr.arpa)
2021-01-24 14:45:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 14:48:16 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-24 14:50:38 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 14:51:53 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 14:53:17 +0100sheb(~sheb@31.223.228.71) (Quit: Leaving)
2021-01-24 14:54:18 +0100sheb(~sheb@31.223.228.71)
2021-01-24 14:54:23 +0100sheb_(~sheb@31.223.228.71)
2021-01-24 14:54:42 +0100sheb(~sheb@31.223.228.71) (Remote host closed the connection)
2021-01-24 14:54:42 +0100sheb_(~sheb@31.223.228.71) (Remote host closed the connection)
2021-01-24 14:55:57 +0100vicfred(~vicfred@unaffiliated/vicfred) (Remote host closed the connection)
2021-01-24 14:56:57 +0100Jackk_Doe(~jackk@205.178.111.134)
2021-01-24 14:57:24 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 265 seconds)
2021-01-24 14:59:44 +0100bitmagie(~Thunderbi@200116b80681b700c1de5ab1a5161a12.dip.versatel-1u1.de)
2021-01-24 15:00:00 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 15:00:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 15:00:22 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 15:00:55 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-01-24 15:01:11 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-24 15:02:38 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 256 seconds)
2021-01-24 15:04:49 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2021-01-24 15:05:07 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-01-24 15:05:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-24 15:06:41 +0100bitmagie(~Thunderbi@200116b80681b700c1de5ab1a5161a12.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-24 15:07:14 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 15:08:54 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-01-24 15:09:20 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 15:11:00 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-01-24 15:11:07 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2021-01-24 15:11:21 +0100rcdilorenzo(~rcdiloren@45.152.180.20)
2021-01-24 15:12:24 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-24 15:12:46 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-01-24 15:13:13 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-24 15:15:38 +0100rcdilorenzo(~rcdiloren@45.152.180.20) (Client Quit)
2021-01-24 15:15:55 +0100rcdilorenzo(~rcdiloren@45.152.180.20)
2021-01-24 15:16:05 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 272 seconds)
2021-01-24 15:19:28 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 260 seconds)
2021-01-24 15:22:37 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 15:24:30 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 15:25:00 +0100igghibu(~igghibu@91.193.5.10)
2021-01-24 15:25:08 +0100igghibu(~igghibu@91.193.5.10) (Client Quit)
2021-01-24 15:27:11 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-24 15:28:07 +0100sheb(~sheb@31.223.228.71)
2021-01-24 15:29:22 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 15:30:07 +0100LKoen_(~LKoen@19.175.9.109.rev.sfr.net)
2021-01-24 15:30:52 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 15:31:01 +0100sheb(~sheb@31.223.228.71) (Client Quit)
2021-01-24 15:32:22 +0100poorlyknitmonad(2edfa393@HSI-KBW-46-223-163-147.hsi.kabel-badenwuerttemberg.de)
2021-01-24 15:32:40 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net) (Ping timeout: 272 seconds)
2021-01-24 15:35:47 +0100Deide(~Deide@217.155.19.23)
2021-01-24 15:38:07 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 15:39:40 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 15:39:56 +0100notzmv(~user@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-01-24 15:43:14 +0100 <poorlyknitmonad> Does anyone have any tips for deploying Haskell software to environments that don't have GHC/cabal-install/stack installed? I basically want CI to generate an executable that I can run on a Debian/Ubuntu server. I don't mind dynamic linking against libc and the likes.
2021-01-24 15:43:46 +0100 <merijn> poorlyknitmonad: Eh, that's easy
2021-01-24 15:43:53 +0100 <poorlyknitmonad> Good to hear :D
2021-01-24 15:43:54 +0100 <maerwald> static linking
2021-01-24 15:43:56 +0100 <merijn> poorlyknitmonad: That's basically the default output of cabal :p
2021-01-24 15:44:06 +0100 <merijn> poorlyknitmonad: Well, depending on other C dependencies or not
2021-01-24 15:44:47 +0100 <poorlyknitmonad> So I should be fine just dropping the executable generated by stack (which uses the Cabal library iirc) onto the server?
2021-01-24 15:44:50 +0100 <merijn> poorlyknitmonad: But the default behaviour is to link all Haskell libraries statically, so unless you're using some additional C libraries "only depends on libc" is what you get
2021-01-24 15:44:58 +0100 <poorlyknitmonad> Perfect!
2021-01-24 15:45:14 +0100 <poorlyknitmonad> That's exactly what I needed to know :) Very helpful!
2021-01-24 15:45:30 +0100 <merijn> poorlyknitmonad: If you have some external C dependencies you obviously need to take care of those, but that's easy enough to discover with ldd
2021-01-24 15:46:23 +0100 <merijn> poorlyknitmonad: maerwald has some stuff on how to build executables entirely static using musl instead of glibc in which case you basically only depend on the kernel API of linux
2021-01-24 15:46:48 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-24 15:47:07 +0100 <poorlyknitmonad> No, I don't. I was just wondering about the default "style" of stack/Cabal building Haskell binaries and wanted some quick tips. I couldn't find any concise guides on this which is why I asked you guys.
2021-01-24 15:47:09 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 15:47:16 +0100 <hpc> poorlyknitmonad: you may also want to take a look at how existing haskell .deb packages are built
2021-01-24 15:47:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 15:47:42 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 15:47:47 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-24 15:47:58 +0100 <maerwald> poorlyknitmonad: https://gist.github.com/hasufell/f0893abfbba63ac4ea40feb0520946ee#file-dockerfile-L21
2021-01-24 15:47:58 +0100 <merijn> poorlyknitmonad: Also, you probably wanna enable --split-sections in cabal and strip the resulting executable. That should reduce executable size by an order of magnitude or more
2021-01-24 15:48:26 +0100 <poorlyknitmonad> Yea I thought that building a deb and deploying it using dpkg would probably a good idea but it's kind of a hassle for the project in question (which is a ~100 line spock server)
2021-01-24 15:49:43 +0100 <poorlyknitmonad> @maerwald thank you very much!
2021-01-24 15:49:43 +0100 <lambdabot> Unknown command, try @list
2021-01-24 15:50:03 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 15:51:05 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
2021-01-24 15:51:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 15:51:50 +0100 <poorlyknitmonad> maerwald: your Dockerfile is used to build haskell-code-explorer?
2021-01-24 15:51:59 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-24 15:52:07 +0100 <maerwald> that's just an example, yeah
2021-01-24 15:52:08 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 260 seconds)
2021-01-24 15:53:27 +0100 <poorlyknitmonad> Very useful indeed, thank you for the pointers.
2021-01-24 15:53:44 +0100 <poorlyknitmonad> Also thank merijn and hpc :) Have a great day!
2021-01-24 15:54:14 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-01-24 15:54:48 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net)
2021-01-24 15:55:26 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-01-24 15:57:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 15:58:22 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-24 15:58:53 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 16:00:19 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 16:00:49 +0100dedede(~david@81.61.242.182.dyn.user.ono.com)
2021-01-24 16:01:10 +0100jackk_(~jackk@205.185.193.11)
2021-01-24 16:01:42 +0100rcdilorenzo(~rcdiloren@45.152.180.20) (Read error: Connection reset by peer)
2021-01-24 16:04:11 +0100Jackk_Doe(~jackk@205.178.111.134) (Ping timeout: 256 seconds)
2021-01-24 16:05:29 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:9b97:771f:9a63:bf52) (Ping timeout: 272 seconds)
2021-01-24 16:05:55 +0100rcdilorenzo(~rcdiloren@45.152.180.20)
2021-01-24 16:06:41 +0100argento(~argent0@168.227.96.51)
2021-01-24 16:06:56 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 240 seconds)
2021-01-24 16:07:13 +0100poorlyknitmonad(2edfa393@HSI-KBW-46-223-163-147.hsi.kabel-badenwuerttemberg.de) (Ping timeout: 248 seconds)
2021-01-24 16:10:03 +0100mmkarakaya(~mmkarakay@176.33.226.136) (Quit: Quit)
2021-01-24 16:10:09 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 16:10:59 +0100argento(~argent0@168.227.96.51) (Client Quit)
2021-01-24 16:13:17 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 16:13:31 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-24 16:15:33 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-24 16:16:38 +0100dedede(~david@81.61.242.182.dyn.user.ono.com) ("Leaving")
2021-01-24 16:17:12 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 16:17:49 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:2674:77a1:134b:dae9)
2021-01-24 16:19:07 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-01-24 16:19:30 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 16:21:24 +0100noj_nojster
2021-01-24 16:21:32 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 268 seconds)
2021-01-24 16:22:52 +0100nojster(~noj@ip-84-119-33-154.unity-media.net) (Quit: [BX] Abort Retry Fail)
2021-01-24 16:23:35 +0100mmkarakaya(b021e288@176.33.226.136)
2021-01-24 16:25:37 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 16:26:32 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 244 seconds)
2021-01-24 16:28:31 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-01-24 16:28:54 +0100alx741(~alx741@186.178.110.72)
2021-01-24 16:29:25 +0100centril(~centril@213-66-146-92-no250.tbcn.telia.com) (Ping timeout: 240 seconds)
2021-01-24 16:29:25 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 16:29:27 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-24 16:30:23 +0100p7lpa1ugixavugu(~atomic@2800:810:514:e7:cc6f:93b6:dad0:41ef)
2021-01-24 16:30:45 +0100 <DigitalKiwi> thank you merijn and hpc
2021-01-24 16:32:55 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Client Quit)
2021-01-24 16:34:13 +0100 <kuribas> how do you send multiple values (insert) using postgresql-libpq?
2021-01-24 16:34:19 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 265 seconds)
2021-01-24 16:34:27 +0100 <kuribas> execParams only accepts a single list
2021-01-24 16:35:52 +0100berberman_(~berberman@unaffiliated/berberman)
2021-01-24 16:36:02 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-24 16:36:29 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com)
2021-01-24 16:37:50 +0100fnordmeister(~user@unaffiliated/shadowdaemon) (Ping timeout: 264 seconds)
2021-01-24 16:39:10 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-24 16:39:16 +0100elcaro(~anonymous@45.32.191.75) (Quit: Lost terminal)
2021-01-24 16:39:25 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-24 16:39:54 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Remote host closed the connection)
2021-01-24 16:39:55 +0100Guest31086(~textual@zrcout.mskcc.org) (Quit: Textual IRC Client: www.textualapp.com)
2021-01-24 16:41:32 +0100aveltras(uid364989@gateway/web/irccloud.com/x-yzwdoakplczfwzde)
2021-01-24 16:42:01 +0100 <kuribas> ah wait, I just concatenate all arguments, right?
2021-01-24 16:44:08 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 16:44:12 +0100 <aveltras> does "mysteriousFunction" have a standard name here ? im trying to reduce the amount of typing
2021-01-24 16:44:17 +0100 <aveltras> https://www.irccloud.com/pastebin/I7qYPYZO/
2021-01-24 16:44:31 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 16:45:38 +0100 <merijn> aveltras: Sadly, no
2021-01-24 16:46:05 +0100 <aveltras> ok, i'll define it then, thanks
2021-01-24 16:46:10 +0100 <merijn> aveltras: I have been wanting to add it to base, but so far that idea keeps getting stuck on name bikeshedding :p
2021-01-24 16:46:23 +0100 <merijn> aveltras: I usually call it mif, mwhen, or something along those lines
2021-01-24 16:46:49 +0100 <hpc> when i don't know what to name a variable, i name it greg
2021-01-24 16:47:03 +0100 <kuribas> I called it whenMono
2021-01-24 16:47:35 +0100 <kuribas> merijn: mif is pretty bad IMO ...
2021-01-24 16:48:06 +0100 <kuribas> mwhen is better IMO
2021-01-24 16:48:12 +0100 <kuribas> or mWhen
2021-01-24 16:48:13 +0100 <aveltras> there arent any "standard suffix" for monoid as there is for monads i guess (M) ?
2021-01-24 16:48:35 +0100 <kuribas> there is mconcat
2021-01-24 16:48:55 +0100 <kuribas> but it's more like "when" then like "if"
2021-01-24 16:49:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-24 16:49:19 +0100 <aveltras> l'll go with a "m" prefix
2021-01-24 16:50:34 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 16:50:47 +0100Feuermagier(~Feuermagi@213.178.26.41)
2021-01-24 16:52:23 +0100urodna(~urodna@unaffiliated/urodna)
2021-01-24 16:52:44 +0100 <merijn> How is it "more" like when then if
2021-01-24 16:53:28 +0100 <aveltras> ye, not sure about the difference between if and when since both expect a boolean, but i think when sounds nicer
2021-01-24 16:53:38 +0100 <aveltras> better than "mgreg" anyway
2021-01-24 16:53:48 +0100 <merijn> mgreg is clearly best
2021-01-24 16:54:07 +0100 <aveltras> it's some kind of code obfuscating magic
2021-01-24 16:54:08 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 16:57:27 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 16:58:00 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-01-24 16:58:03 +0100leah2(~leah@vuxu.org) (Ping timeout: 244 seconds)
2021-01-24 16:58:31 +0100Tario(~Tario@201.192.165.173)
2021-01-24 16:59:18 +0100leah2(~leah@vuxu.org)
2021-01-24 16:59:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 16:59:53 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-nbhyzqgjbgeousfo)
2021-01-24 16:59:57 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:01:27 +0100Rudd0(~Rudd0@185.189.115.103)
2021-01-24 17:03:41 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-24 17:03:46 +0100 <kuribas> merijn: see what happens when you apply it over (Ap m ())
2021-01-24 17:04:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-01-24 17:04:29 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 17:04:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 17:05:50 +0100knupfer1(~Thunderbi@i59F7FF7F.versanet.de)
2021-01-24 17:06:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 17:06:28 +0100 <kuribas> :t let mwhen True m = m; mwhen False _ = mempty; in \t -> getAp . mwhen t . Ap
2021-01-24 17:06:30 +0100 <lambdabot> forall k (f :: k -> *) (a :: k). Monoid (Ap f a) => Bool -> f a -> f a
2021-01-24 17:06:36 +0100knupfer(~Thunderbi@i5E86B422.versanet.de) (Ping timeout: 246 seconds)
2021-01-24 17:06:36 +0100knupfer1knupfer
2021-01-24 17:06:56 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 265 seconds)
2021-01-24 17:07:17 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 17:08:04 +0100jackk_(~jackk@205.185.193.11) (Quit: Going offline, see ya! (www.adiirc.com))
2021-01-24 17:08:19 +0100 <kuribas> at least it works for IO
2021-01-24 17:09:05 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:09:18 +0100hosseinfakhari(05755307@5.117.83.7)
2021-01-24 17:11:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 240 seconds)
2021-01-24 17:12:53 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 17:13:57 +0100 <ephemient> :t flip $ bool mempty
2021-01-24 17:13:58 +0100 <lambdabot> Monoid c => Bool -> c -> c
2021-01-24 17:14:56 +0100 <kuribas> ephemient: I am not convinced that is clearer
2021-01-24 17:15:06 +0100 <kuribas> it's more golfy...
2021-01-24 17:15:35 +0100 <ephemient> it's not, I was just thinking through how to make it work for other empty-ish things too
2021-01-24 17:16:02 +0100 <aveltras> i've defined
2021-01-24 17:16:04 +0100 <aveltras> https://www.irccloud.com/pastebin/wyhuCbCd/
2021-01-24 17:16:07 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 17:16:13 +0100 <kuribas> I don't like bool, because you don't see which is the False and which the True case
2021-01-24 17:16:26 +0100 <kuribas> I've never used it, nor found a use for it.
2021-01-24 17:16:34 +0100 <Uniaika> same ^
2021-01-24 17:16:41 +0100 <Uniaika> I'd rather use an inline if/then/else
2021-01-24 17:16:42 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-01-24 17:16:45 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 17:17:33 +0100 <ephemient> :t flip $ bool mzero -- e.g. this, but probably useless
2021-01-24 17:17:34 +0100 <lambdabot> MonadPlus m => Bool -> m a -> m a
2021-01-24 17:17:57 +0100 <ephemient> close enough to `when` that I don't see a use for it, anyway
2021-01-24 17:18:05 +0100jackk__(~jackk@205-185-193-10.wlvpn.com)
2021-01-24 17:18:07 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:19:02 +0100 <ephemient> I do wish the m- prefix in Monoid and the m- prefix in MonadPlus were different letters, I still get mzero/mempty mixed up pretty often
2021-01-24 17:20:14 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 17:20:37 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 17:20:56 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 17:21:04 +0100viluon(uid453725@gateway/web/irccloud.com/x-yyjvswofzlbbkrkm)
2021-01-24 17:21:48 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-01-24 17:22:42 +0100 <ephemient> I think the order of bool's arguments makes sense - cf. either and maybe, first argument operates on first branch, second argument operates on second branch
2021-01-24 17:22:45 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-01-24 17:23:05 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-01-24 17:23:55 +0100 <ephemient> and False comes before True so that fromEnum 0 :: Bool is False
2021-01-24 17:24:15 +0100 <ephemient> but yeah it's pretty golfy to use in practice
2021-01-24 17:24:24 +0100 <viluon> hi, stupid question: is there a way to make Stack use the GHC installations managed by ghcup, or does it always install its own?
2021-01-24 17:24:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 240 seconds)
2021-01-24 17:24:52 +0100 <merijn> viluon: "the goes entirely against stack's intended use, so not really"
2021-01-24 17:25:01 +0100 <ephemient> https://docs.haskellstack.org/en/stable/yaml_configuration/#system-ghc
2021-01-24 17:25:05 +0100 <tomsmeding> ephemient: if you switch up the arguments to 'either' or 'maybe', you usually get a type error; not so for 'bool'
2021-01-24 17:25:32 +0100 <ephemient> true, no disagreement from me
2021-01-24 17:25:35 +0100 <merijn> viluon: Stack wants to manage everything per project, including the compiler. You can specify a systemwide compiler, but it's not something stack supports well
2021-01-24 17:25:51 +0100 <viluon> merijn: that is very sad
2021-01-24 17:26:04 +0100 <maerwald> viluon: yes
2021-01-24 17:26:04 +0100 <viluon> ephemient: thanks for the link!
2021-01-24 17:26:06 +0100 <maerwald> very easily
2021-01-24 17:26:14 +0100 <maerwald> and it's perfectly valid
2021-01-24 17:26:35 +0100 <maerwald> (e.g. because stack supports less unix platforms)
2021-01-24 17:26:54 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-24 17:27:11 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-24 17:27:14 +0100 <maerwald> I don't think there are any problems with it either
2021-01-24 17:27:15 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:27:49 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 17:28:05 +0100 <merijn> tbh, I'd argue that if you want a systemwide/global GHC, you probably don't want stack in the first place
2021-01-24 17:28:32 +0100 <maerwald> I don't see why
2021-01-24 17:28:41 +0100xff0x(~xff0x@2001:1a81:532d:4a00:c038:76cb:6123:7d2f) (Ping timeout: 265 seconds)
2021-01-24 17:29:04 +0100 <maerwald> you can set system-wide ghc and still set a specific ghc version
2021-01-24 17:29:05 +0100 <ephemient> stack's primary stated purpose is for reproducible builds, depending on unmanaged system state runs counter to that
2021-01-24 17:29:07 +0100xff0x(~xff0x@2001:1a81:532d:4a00:5b04:4936:8850:6534)
2021-01-24 17:30:11 +0100 <merijn> ephemient: Not really reproducible builds, tbh, just "curated dependency sets", with some air quotes around "curated" :p
2021-01-24 17:30:12 +0100kuribas(~user@ptr-25vy0i9x8mwpkg3g0kf.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-01-24 17:30:25 +0100hosseinfakhari(05755307@5.117.83.7) (Quit: Connection closed)
2021-01-24 17:30:34 +0100 <maerwald> stack isn't reproducible in the first place and a different GHC doesn't change that
2021-01-24 17:30:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-24 17:30:43 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-24 17:30:53 +0100 <ephemient> https://docs.haskellstack.org/en/stable/GUIDE/ "The primary stack design point is reproducible builds."
2021-01-24 17:31:04 +0100 <ephemient> well, maybe theory and practice don't exactly align
2021-01-24 17:31:37 +0100johncylee(~johncylee@185.204.1.185) (Remote host closed the connection)
2021-01-24 17:31:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-24 17:31:42 +0100 <maerwald> they don't
2021-01-24 17:31:53 +0100 <merijn> ephemient: What *the* mean by reproducible is "exact build plan", which is not what *I* would call reproducible build
2021-01-24 17:32:08 +0100 <merijn> (Which would be an exactly identical binary)
2021-01-24 17:32:19 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 17:32:21 +0100 <ephemient> is that possible with GHC at this point?
2021-01-24 17:32:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-24 17:33:04 +0100 <ephemient> doing a quick search, https://gitlab.haskell.org/ghc/ghc/-/issues/4012 is still open
2021-01-24 17:33:09 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 256 seconds)
2021-01-24 17:33:20 +0100 <merijn> No, afaik. Anyway you can get reproducible build-plans just fine with cabal-install
2021-01-24 17:33:42 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 244 seconds)
2021-01-24 17:33:59 +0100niekvand_(~niekvande@89.205.141.125)
2021-01-24 17:34:02 +0100 <Franciman> maerwald, I forgot, if you'd need vabal's code, and there are license issues, I'm ready to make it free-er
2021-01-24 17:34:02 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-01-24 17:34:27 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Client Quit)
2021-01-24 17:34:48 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-01-24 17:35:51 +0100 <maerwald> Franciman: except i can't code because i have repetitive strain injury :p
2021-01-24 17:35:52 +0100ndcroos(5bb212d6@91.178.18.214)
2021-01-24 17:36:00 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 17:36:03 +0100 <Franciman> welcome to the team
2021-01-24 17:36:05 +0100 <Franciman> I'm there too :P
2021-01-24 17:36:07 +0100 <Franciman> sorry to hear that
2021-01-24 17:36:17 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:36:36 +0100 <Uniaika> maerwald: :( hope you'll get better
2021-01-24 17:36:44 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-24 17:36:49 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 17:36:59 +0100 <maerwald> merijn can take over :p
2021-01-24 17:37:17 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 17:37:18 +0100 <Franciman> are you doing something for it?
2021-01-24 17:37:20 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 17:37:21 +0100arybczak(~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c)
2021-01-24 17:37:40 +0100 <maerwald> for what?
2021-01-24 17:37:42 +0100 <Franciman> for RSI
2021-01-24 17:37:47 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 17:37:47 +0100 <maerwald> CBD lol
2021-01-24 17:38:08 +0100 <Franciman> I had shock waves and doing postural gym
2021-01-24 17:38:10 +0100 <sm[m]> g'day all!
2021-01-24 17:38:17 +0100 <Franciman> mezieres stuff
2021-01-24 17:38:21 +0100 <Franciman> getting better
2021-01-24 17:38:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 17:38:33 +0100 <sm[m]> what's the problem with using system GHC with stack ? It provides a bunch of flags for that use case
2021-01-24 17:38:37 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 17:38:48 +0100 <maerwald> Franciman: cool
2021-01-24 17:38:58 +0100 <Franciman> I really suggest mezieres
2021-01-24 17:39:08 +0100 <Franciman> but don't know if it suits your case
2021-01-24 17:39:16 +0100 <maerwald> Franciman: I crashed after my shoulder surgery last year, which probably made all my incorruct postures worse :D
2021-01-24 17:39:21 +0100 <sm[m]> and I don't mean to make maerwald type, hope he's got voice dictation working
2021-01-24 17:39:33 +0100 <Franciman> I see :/
2021-01-24 17:39:41 +0100 <Franciman> that's totally possible
2021-01-24 17:39:47 +0100 <maerwald> sm[m]: yeah but it doesn't work very well
2021-01-24 17:40:11 +0100 <maerwald> I use dragonfly with kaldi
2021-01-24 17:40:18 +0100 <Franciman> mezieres i cool for getting back harmony of the shoulders, and torso and all the back
2021-01-24 17:40:37 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-01-24 17:40:43 +0100 <Franciman> enough with #haskell-med
2021-01-24 17:40:45 +0100 <Franciman> :P
2021-01-24 17:40:47 +0100 <maerwald> speech recognition on linux is a sad story
2021-01-24 17:40:49 +0100 <Franciman> hope you get well soon!
2021-01-24 17:40:59 +0100 <sm[m]> health tips are good! :)
2021-01-24 17:41:12 +0100 <maerwald> tip 1: don't code :D
2021-01-24 17:41:32 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 17:41:51 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-24 17:42:33 +0100 <maerwald> sm[m]: i also think stack is fine with system wide ghc
2021-01-24 17:42:44 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 240 seconds)
2021-01-24 17:43:01 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 272 seconds)
2021-01-24 17:43:27 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 17:43:32 +0100 <sm[m]> viluon: so another answer to your original question: see stack --help or the user guide for a bunch of flags for using system ghc, it normally works well
2021-01-24 17:44:37 +0100 <viluon> sm[m]: thanks, it looks like it's fine but I have to manually sync the resolver and the selected ghcup GHC, which is a shame
2021-01-24 17:44:58 +0100 <merijn> maerwald: Take over what? :p
2021-01-24 17:45:17 +0100 <maerwald> merijn: everything
2021-01-24 17:45:23 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:45:26 +0100 <ephemient> in my experience, being warm lets me type for longer without strain than being cold
2021-01-24 17:45:26 +0100 <sm[m]> viluon: yes, perhaps a little script to pick the right resolver based on ghc --version
2021-01-24 17:45:48 +0100 <ephemient> e.g. office environment is bad unless I bundle up
2021-01-24 17:45:59 +0100 <merijn> maerwald: It can go right to the bottom to the indefinitely "maybe once my thesis is done" list :p
2021-01-24 17:46:07 +0100 <merijn> maerwald: Which already has months of work :p
2021-01-24 17:47:01 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 17:47:54 +0100 <merijn> In related news: What's the plural of analysis? >.>
2021-01-24 17:48:05 +0100 <sm[m]> +1 on warmth, a medical infrared lamp is great
2021-01-24 17:48:14 +0100 <maerwald> ephemient: and avoid coffee, it decreases your vitamin B in your body
2021-01-24 17:48:16 +0100 <merijn> I recommend a cat :p
2021-01-24 17:48:21 +0100 <maerwald> (which is used to restore tendon tissue)
2021-01-24 17:48:24 +0100daim2k5(~daim2k5@s91904426.blix.com)
2021-01-24 17:48:34 +0100 <sm[m]> more regular movement/cardio/strength exercises/breaks/meditation/destressing helped my RSI
2021-01-24 17:48:38 +0100 <maerwald> this is also a good pointer: https://www.jeremytunnell.com/2017/12/10/rsi-supplements/
2021-01-24 17:49:20 +0100 <sm[m]> (I'm sure you know all those perfectly well, but just in case you forgot something)
2021-01-24 17:49:27 +0100 <sm[m]> cat++!
2021-01-24 17:49:44 +0100 <merijn> Cats are excellent heating elements :p
2021-01-24 17:49:47 +0100 <maerwald> sm[m]: true, since it's inflammatory, stress makes it worse
2021-01-24 17:49:48 +0100 <merijn> Guinea pigs too :p
2021-01-24 17:50:15 +0100 <geekosaur> merijn, analyses
2021-01-24 17:50:19 +0100 <merijn> olympic/power lifting :p
2021-01-24 17:50:21 +0100 <geekosaur> damn Greek
2021-01-24 17:50:36 +0100 <sm[m]> stress really was the main factor for me I'm sure
2021-01-24 17:50:41 +0100 <merijn> That's has succesfully reduced/eliminated a lot of RSI symptoms for me
2021-01-24 17:50:58 +0100 <maerwald> merijn: what, analyses?
2021-01-24 17:51:04 +0100 <merijn> And being unable to go to the gym is messing with my tendons >.>
2021-01-24 17:51:13 +0100 <merijn> maerwald: No, lifting
2021-01-24 17:51:24 +0100 <maerwald> merijn: can't do that, I had 2 hernias :D
2021-01-24 17:51:44 +0100 <maerwald> if I want my guts spilled out, then sure
2021-01-24 17:51:56 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 240 seconds)
2021-01-24 17:52:01 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-01-24 17:52:09 +0100 <merijn> sm[m]: Fortunately I have none of that! >.>
2021-01-24 17:52:14 +0100tricklynch(~tricklync@216-180-94-57.starry-inc.net)
2021-01-24 17:52:26 +0100 <merijn> I wonder what it'd feel like to be unstressed >.>
2021-01-24 17:52:33 +0100 <maerwald> sm[m]: how to work in industry without stress? lol
2021-01-24 17:52:40 +0100 <merijn> maerwald: Oh, that's easy
2021-01-24 17:52:48 +0100 <sm[m]> easier said than done, I know
2021-01-24 17:52:49 +0100 <merijn> Just don't care too much about your work/employer!
2021-01-24 17:53:19 +0100 <merijn> sm[m]: I figure there's a simple 1 step processes for reducing my stress by about 80-90% >.>
2021-01-24 17:53:23 +0100 <sm[m]> but even small improvements help, there's always some little thing we can do
2021-01-24 17:53:28 +0100 <sm[m]> or stop doing
2021-01-24 17:53:33 +0100 <merijn> Execution of said step is problematic, though xD
2021-01-24 17:53:49 +0100 <maerwald> quit IRC?
2021-01-24 17:54:22 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-24 17:54:31 +0100 <sm[m]> quite possible.. or a regular one-day fast
2021-01-24 17:54:34 +0100 <merijn> maerwald: Finish my damn thesis ;) 7 more chapters to proofread and fix :p
2021-01-24 17:54:35 +0100 <sm[m]> remember all the time we had as kids ??
2021-01-24 17:54:51 +0100 <sm[m]> (I mean IRC fast)
2021-01-24 17:55:01 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 17:55:15 +0100tricklynch(~tricklync@216-180-94-57.starry-inc.net) (Client Quit)
2021-01-24 17:57:39 +0100 <sm[m]> more powerful tools: good therapist, professional/support groups, positive friend/family time
2021-01-24 17:57:57 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-01-24 17:58:08 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 256 seconds)
2021-01-24 17:58:35 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-24 17:58:35 +0100 <maerwald> programmers being positive... well, next suggestion :D
2021-01-24 17:58:44 +0100 <sm[m]> but hey, we're in #haskell! Got those covered :-)
2021-01-24 17:58:58 +0100 <merijn> sm[m]: ...and cats ;)
2021-01-24 17:59:17 +0100 <maerwald> Oxytocin yeah
2021-01-24 17:59:19 +0100 <sm[m]> cats are clearly at the top. If you've got one of those, you're fine :)
2021-01-24 17:59:36 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-01-24 18:00:10 +0100 <viluon> I asked in #ghc but you folks may have an answer too, anyone hacking on GHC with VS Code and the Haskell Language Server? My setup crashes with every encounter of an `#include` in a Haskell source file, complaining that it can't find the included header. Is there a way to configure the include path of the language server?
2021-01-24 18:00:49 +0100Lord_of_Life_Lord_of_Life
2021-01-24 18:01:10 +0100 <sm[m]> also (I ramble on): find a way to be of service to someone - instant destresser
2021-01-24 18:01:53 +0100 <sm[m]> viluon: #haskell-ide-engine would know best
2021-01-24 18:02:18 +0100 <sm[m]> or maybe it's in the hls issue tracker
2021-01-24 18:02:26 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 264 seconds)
2021-01-24 18:05:30 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 18:07:24 +0100 <viluon> sm[m]: thanks! I'll ask in that channel too
2021-01-24 18:07:40 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 18:09:10 +0100rajivr(uid269651@gateway/web/irccloud.com/x-dbiyulzuylwqsfrt) (Quit: Connection closed for inactivity)
2021-01-24 18:11:25 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 18:11:56 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 240 seconds)
2021-01-24 18:13:12 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 18:14:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 18:15:33 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 18:19:07 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 260 seconds)
2021-01-24 18:19:15 +0100DamienCassou(damiencass@gateway/shell/matrix.org/x-qtejztrrfkbzhyxa)
2021-01-24 18:19:52 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 18:20:52 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 18:21:03 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 18:21:12 +0100 <DamienCassou> hi
2021-01-24 18:21:43 +0100 <DamienCassou> I learning haskell again after forgetting everything about it for 10 years. Should I start with hunit to write unit tests?
2021-01-24 18:22:02 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 18:22:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 18:22:14 +0100 <maerwald> if you think that's exciting
2021-01-24 18:22:22 +0100 <maerwald> because i don't think so
2021-01-24 18:22:41 +0100 <maerwald> just write something cool
2021-01-24 18:23:06 +0100 <DamienCassou> I really like writing tests for any code I write. My question is which testing framework should I start with?
2021-01-24 18:23:33 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-24 18:23:52 +0100 <maerwald> @hackage tasty
2021-01-24 18:23:52 +0100 <lambdabot> https://hackage.haskell.org/package/tasty
2021-01-24 18:24:14 +0100 <maerwald> @hackage hspec
2021-01-24 18:24:14 +0100 <lambdabot> https://hackage.haskell.org/package/hspec
2021-01-24 18:24:22 +0100 <maerwald> those are the two major ones
2021-01-24 18:24:31 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b)
2021-01-24 18:24:56 +0100 <DamienCassou> thank you
2021-01-24 18:26:05 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-24 18:27:05 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 18:27:06 +0100niekvand_(~niekvande@89.205.141.125) (Read error: Connection reset by peer)
2021-01-24 18:28:20 +0100oisdk_(~oisdk@2001:bb6:3329:d100:390b:34c5:624a:58a3)
2021-01-24 18:29:37 +0100oisdk(~oisdk@2001:bb6:3329:d100:3da4:b38d:aa7:fd3b) (Ping timeout: 260 seconds)
2021-01-24 18:30:16 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2021-01-24 18:30:30 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net)
2021-01-24 18:33:14 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-mxncuhjhaxdyvhdb)
2021-01-24 18:33:51 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-01-24 18:33:55 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer)
2021-01-24 18:34:05 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 240 seconds)
2021-01-24 18:34:10 +0100invaser(~Thunderbi@91.226.34.136)
2021-01-24 18:34:26 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-24 18:35:30 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-01-24 18:36:26 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-24 18:40:01 +0100hiroaki(~hiroaki@2a02:908:4b18:8c40:30cf:fb21:315b:387d) (Ping timeout: 272 seconds)
2021-01-24 18:41:12 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 18:41:18 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-24 18:41:30 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 18:41:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 18:42:06 +0100d3od(~nickmeno3@93-137-152-230.adsl.net.t-com.hr)
2021-01-24 18:42:42 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2021-01-24 18:42:57 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 18:43:37 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 18:44:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-24 18:45:09 +0100ndcroos(5bb212d6@91.178.18.214) (Quit: Connection closed)
2021-01-24 18:45:50 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 18:46:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-24 18:47:32 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 18:48:06 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 244 seconds)
2021-01-24 18:51:01 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-24 18:53:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-24 18:54:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-24 18:56:05 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 18:57:54 +0100 <sm[m]> hi Damien Cassou , there's also https://hackage.haskell.org/package/doctest (slower to run, quicker to write)
2021-01-24 18:57:57 +0100charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-01-24 18:58:39 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-24 19:00:40 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-24 19:00:51 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Remote host closed the connection)
2021-01-24 19:01:24 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-24 19:02:05 +0100flatheap(~quassel@pool-74-104-136-149.bstnma.fios.verizon.net)
2021-01-24 19:03:16 +0100vappend_(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-24 19:05:21 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 19:05:30 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-24 19:06:02 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-01-24 19:07:12 +0100cheater(~user@unaffiliated/cheater)
2021-01-24 19:11:51 +0100Deide(~Deide@217.155.19.23)
2021-01-24 19:11:59 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz)
2021-01-24 19:12:28 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-01-24 19:12:41 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-24 19:13:26 +0100adeene(~adeene@181.131.0.191)
2021-01-24 19:14:22 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-24 19:15:07 +0100 <DamienCassou> sm the world is small :-). Thanks for the link
2021-01-24 19:15:37 +0100 <__monty__> DamienCassou: Also definitely look into property testing, whether it be quickcheck, hedgehog or smallcheck.
2021-01-24 19:16:12 +0100romanix(~romanix@staticline10864.toya.net.pl) (Remote host closed the connection)
2021-01-24 19:16:57 +0100 <DamienCassou> Ok __monty__
2021-01-24 19:16:59 +0100 <DamienCassou> Thank you
2021-01-24 19:22:22 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 19:24:42 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 264 seconds)
2021-01-24 19:27:53 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 244 seconds)
2021-01-24 19:32:09 +0100d3o(~nickmeno3@93-137-152-230.adsl.net.t-com.hr)
2021-01-24 19:32:21 +0100d3od(~nickmeno3@93-137-152-230.adsl.net.t-com.hr) (Remote host closed the connection)
2021-01-24 19:32:32 +0100d3oGuest53963
2021-01-24 19:34:24 +0100binq(uid773@gateway/web/irccloud.com/x-avxqklnqzemogbgf)
2021-01-24 19:36:47 +0100conal(~conal@66.115.157.159)
2021-01-24 19:38:56 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
2021-01-24 19:39:27 +0100Guest53963d3od
2021-01-24 19:41:59 +0100 <binq> Anybody testing out GHC 9?
2021-01-24 19:42:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 19:42:48 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 256 seconds)
2021-01-24 19:43:57 +0100 <binq> I was able to get it compiled, but can’t get cabal-install to compile due to dependency requirements.
2021-01-24 19:44:23 +0100 <binq> Wondering if anybody has a Dockerfile?
2021-01-24 19:44:32 +0100xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu)
2021-01-24 19:46:32 +0100 <merijn> binq: 9.0 requires cabal-install 3.4
2021-01-24 19:46:35 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-24 19:46:53 +0100 <merijn> binq: Which is unreleased to avoid issues if a bug is discovered with GHC 9.0 release candidates
2021-01-24 19:47:08 +0100 <merijn> So you need to build cabal-install 3.4/HEAD from source first
2021-01-24 19:47:16 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-01-24 19:47:42 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-24 19:47:56 +0100oisdk_(~oisdk@2001:bb6:3329:d100:390b:34c5:624a:58a3) (Ping timeout: 240 seconds)
2021-01-24 19:49:29 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-01-24 19:49:36 +0100oisdk(~oisdk@2001:bb6:3329:d100:7c85:369d:a23d:1ffc)
2021-01-24 19:50:23 +0100 <binq> yup chasing that down I got: cabal-install -> async -> hashable -> base (>=4.4 && <4.12)
2021-01-24 19:52:04 +0100 <merijn> binq: That's intentional, you have to go get cabal-install from github
2021-01-24 19:52:12 +0100 <binq> GHC 9 seems to have a base versioned 4.15
2021-01-24 19:52:19 +0100 <merijn> binq: Ah, wait
2021-01-24 19:52:40 +0100 <merijn> binq: You probably want head.hackage (someone in #ghc probably nows where the docs about that are)
2021-01-24 19:52:43 +0100 <binq> i did I downloaded cabal-install from github
2021-01-24 19:53:11 +0100 <merijn> binq: Basically, head.hackage is a collection to fix hackage packages to work with not yet released versions of GHC
2021-01-24 19:53:13 +0100 <binq> tagged cabal-install-3.4.0.0-rc7
2021-01-24 19:53:27 +0100 <binq> oh nice!
2021-01-24 19:53:37 +0100 <merijn> I don't really know how to set it up, but the problem is probably that the cabal-install dependencies on hackage don't support GHC 9 yet either
2021-01-24 19:53:38 +0100 <binq> i’ll try head.hackage
2021-01-24 19:54:04 +0100 <merijn> People in #ghc should have more experience using it, since they need it to the test the dev version of GHC :p
2021-01-24 19:54:27 +0100 <binq> ok I’ll try that channel thanks!
2021-01-24 19:54:35 +0100 <merijn> Alternatively, you can try using --allow-newer when building cabal-install 3.4 to ignore the upperbounds
2021-01-24 19:54:54 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 19:55:15 +0100 <binq> ok I’ll try that first then
2021-01-24 20:01:17 +0100aveltras(uid364989@gateway/web/irccloud.com/x-yzwdoakplczfwzde) (Quit: Connection closed for inactivity)
2021-01-24 20:03:16 +0100pavonia(~user@unaffiliated/siracusa)
2021-01-24 20:03:31 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-24 20:04:14 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-24 20:05:19 +0100ulidtko|kk(~ulidtko@193.111.48.79)
2021-01-24 20:05:19 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-24 20:05:29 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43)
2021-01-24 20:05:55 +0100fendor_(~fendor@77.119.130.58.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-24 20:07:10 +0100fendor(~fendor@77.119.130.58.wireless.dyn.drei.com)
2021-01-24 20:08:23 +0100fendor(~fendor@77.119.130.58.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-24 20:09:05 +0100 <zzz> I'm trying to understand contravariance. Is there any way I can simplify it for my understanding? https://gist.github.com/jrvieira/d7ce271dfbfd092004a67362a9ff7a8c
2021-01-24 20:10:15 +0100fendor(~fendor@77.119.130.58.wireless.dyn.drei.com)
2021-01-24 20:11:30 +0100 <sclv> zzz: looks reasonable?
2021-01-24 20:11:41 +0100 <merijn> zzz: A simpler datatype might help? Like "data Foo a = Foo (a -> Int)"? and then try to implement Functor and Contravariant for that type
2021-01-24 20:11:57 +0100 <sclv> merijn's example is good
2021-01-24 20:12:07 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 20:12:10 +0100 <sclv> think about particular instances -- "sinks" which land in a concrete type
2021-01-24 20:12:18 +0100 <sclv> predicates of the form a -> Bool might be the easiest
2021-01-24 20:12:29 +0100 <sclv> and then contravariance is naturally how such predicates compose
2021-01-24 20:12:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 20:13:13 +0100 <zzz> hum ok
2021-01-24 20:13:30 +0100 <DamienCassou> I have started a new project with `stack new` and added `Tasty` and `Tasty-HUnit` as dependencies. My test/Spec.hs can be ran fine with `stack test`. How can I open a REPL in which I would be able to get information about HUnit functions?
2021-01-24 20:13:30 +0100fendor(~fendor@77.119.130.58.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-24 20:18:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 264 seconds)
2021-01-24 20:24:43 +0100cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 244 seconds)
2021-01-24 20:24:55 +0100 <mmaruseacph2> `stack repl`?
2021-01-24 20:27:28 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2021-01-24 20:28:28 +0100xff0x(~xff0x@2001:1a81:532d:4a00:5b04:4936:8850:6534) (Ping timeout: 265 seconds)
2021-01-24 20:29:05 +0100sgibber2018(d055ed90@208.85.237.144) (Ping timeout: 248 seconds)
2021-01-24 20:29:20 +0100xff0x(~xff0x@2001:1a81:532d:4a00:f501:2477:75f6:35af)
2021-01-24 20:30:34 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-01-24 20:32:00 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Read error: Connection reset by peer)
2021-01-24 20:33:08 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-01-24 20:35:51 +0100 <DamienCassou> mmaruseacph2: thank you, but I don't know how to load Tasty.HUnit in the repl so that I can get information on hunit functions
2021-01-24 20:37:11 +0100 <sm[m]> The stack manual has some info about how to choose a component (eg, tests), I always forget
2021-01-24 20:38:10 +0100 <sm[m]> stack repl mypkg:test:suitename or some such
2021-01-24 20:43:12 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 20:43:17 +0100 <DamienCassou> sm: `stack repl :<project-name>-test` worked, thank you
2021-01-24 20:45:26 +0100xff0x(~xff0x@2001:1a81:532d:4a00:f501:2477:75f6:35af) (Ping timeout: 240 seconds)
2021-01-24 20:47:25 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-01-24 20:47:33 +0100xff0x(xff0x@gateway/vpn/mullvad/xff0x)
2021-01-24 20:47:45 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Quit: Leaving)
2021-01-24 20:48:32 +0100conal(~conal@66.115.157.159) (Quit: Computer has gone to sleep.)
2021-01-24 20:49:01 +0100conal(~conal@66.115.157.159)
2021-01-24 20:49:06 +0100fendor(~fendor@77.119.130.58.wireless.dyn.drei.com)
2021-01-24 20:49:21 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 20:49:34 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-nbhyzqgjbgeousfo) (Quit: Connection closed for inactivity)
2021-01-24 20:51:32 +0100hiroaki(~hiroaki@2a02:908:4b18:8c40::ee4f)
2021-01-24 20:53:50 +0100conal_(~conal@192.145.117.129)
2021-01-24 20:53:52 +0100conal(~conal@66.115.157.159) (Ping timeout: 265 seconds)
2021-01-24 20:54:06 +0100xff0x(xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 264 seconds)
2021-01-24 20:55:46 +0100xff0x(~xff0x@2001:1a81:532d:4a00:f501:2477:75f6:35af)
2021-01-24 20:56:59 +0100centril(~centril@213-66-146-92-no250.tbcn.telia.com)
2021-01-24 20:57:25 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 20:57:26 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-rhajwcirdmfvcsre)
2021-01-24 20:59:11 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds)
2021-01-24 21:00:53 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 21:00:54 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-01-24 21:01:52 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Ping timeout: 260 seconds)
2021-01-24 21:02:39 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-24 21:03:05 +0100ixaxaar(~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds)
2021-01-24 21:04:18 +0100conal_(~conal@192.145.117.129) (Ping timeout: 264 seconds)
2021-01-24 21:05:46 +0100oisdk(~oisdk@2001:bb6:3329:d100:7c85:369d:a23d:1ffc) (Quit: oisdk)
2021-01-24 21:06:21 +0100matryoshka(~matryoshk@184.75.223.227) (Ping timeout: 246 seconds)
2021-01-24 21:11:54 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 21:13:28 +0100 <shinobi__> Is there a guideline on how to order function parameters? I'm finding that I should have set them up differently because I want to curry them later. :/
2021-01-24 21:14:12 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-24 21:14:16 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-24 21:15:05 +0100 <merijn> shinobi__: The guideline is "whatever you expect will be useful to partially apply" :p
2021-01-24 21:15:45 +0100conal(~conal@192.145.117.129)
2021-01-24 21:15:48 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 21:15:55 +0100 <zzz> i'm usually partial to a -> b -> a whenever I can for that same reason, but sometimes it might feel more natural the other way around. we always have flip so...
2021-01-24 21:17:00 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 21:17:02 +0100conal(~conal@192.145.117.129) (Client Quit)
2021-01-24 21:17:36 +0100 <shinobi__> let me check flip out
2021-01-24 21:18:15 +0100conal(~conal@192.145.117.129)
2021-01-24 21:18:24 +0100 <zzz> :t flip
2021-01-24 21:18:25 +0100 <lambdabot> (a -> b -> c) -> b -> a -> c
2021-01-24 21:19:15 +0100 <ski> shinobi__ : arguments that are less likely to vary tend to be better to take early. sometimes "making the type look pretty" pays off (e.g. `map')
2021-01-24 21:19:23 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-24 21:19:42 +0100 <shinobi__> that makes sense
2021-01-24 21:19:46 +0100 <ski> map :: ( a -> b )
2021-01-24 21:19:57 +0100 <ski> -> ([a] -> [b])
2021-01-24 21:20:12 +0100 <ski> example of what i meant by "make look pretty"
2021-01-24 21:20:17 +0100 <ski> this enables
2021-01-24 21:20:21 +0100 <ski> @type map . map
2021-01-24 21:20:23 +0100 <lambdabot> (a -> b) -> [[a]] -> [[b]]
2021-01-24 21:20:35 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Remote host closed the connection)
2021-01-24 21:20:39 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 21:20:45 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-24 21:20:49 +0100 <ski> > (map . map) (^ 2) [[],[0],[1,2],[3,4,5],[6,7,8,9]]
2021-01-24 21:20:51 +0100 <lambdabot> [[],[0],[1,4],[9,16,25],[36,49,64,81]]
2021-01-24 21:20:56 +0100 <ski> if it had been
2021-01-24 21:21:03 +0100 <ski> map :: (a -> b,[a]) -> [b]
2021-01-24 21:21:04 +0100 <ski> or
2021-01-24 21:21:12 +0100 <ski> map :: [a] -> (a -> b) -> [b]
2021-01-24 21:21:19 +0100 <ski> then doing that would be more awkward
2021-01-24 21:22:19 +0100 <zzz> when it makes sense, i usually also consider foldr vs foldl. if i expect to foldr then a -> b -> b, otherwise a -> b -> a
2021-01-24 21:22:58 +0100 <ski> `foldr' can work with infinite lists, can be incremental. `foldl' can't
2021-01-24 21:24:14 +0100 <shinobi__> That's good to know. I usually foldl out of habit from learning some Scala prevously.
2021-01-24 21:24:33 +0100 <ski> (btw, of course you could also say `map (map f) xss', instead of `(map . map) f xss'. that's a matter of taste/style. but with an alternate type, taking parameters differently, neither would be as neat)
2021-01-24 21:25:20 +0100 <zzz> shinobi_: mind that you probably want to foldl' instead of foldl, which is strict
2021-01-24 21:25:40 +0100 <zzz> foldl' is strict, that is
2021-01-24 21:25:47 +0100 <ski> commonly, you'll know whether you expect/want to be able to work with infinite lists (unless you're writing generic code). however, being able to be incremental, rather than bulky, can be important, also for large-but-finite lists
2021-01-24 21:28:27 +0100 <ski> @type let fold_left :: (s -> a -> s) -> (s -> [a] -> s); fold_left = foldl in fold_left . fold_left -- note that `foldl' can be self-composed like this, too
2021-01-24 21:28:29 +0100 <lambdabot> (s -> a -> s) -> s -> [[a]] -> s
2021-01-24 21:28:29 +0100vappend_(~ezrakilty@75-172-109-5.tukw.qwest.net) (Remote host closed the connection)
2021-01-24 21:28:32 +0100 <EvanR> foldl (no prime) is very often just not smart
2021-01-24 21:28:39 +0100 <EvanR> if think about it operationally
2021-01-24 21:28:54 +0100 <ski> unfortunately, `foldr', can't, because of wrong way of taking parameters
2021-01-24 21:29:20 +0100 <ski> (in OCaml, both `fold_left' and `fold_right' can be self-composed like that)
2021-01-24 21:29:45 +0100 <ski> @type foldr . flip . foldr -- with the Haskell one, you have to do this, which is awkward
2021-01-24 21:29:46 +0100 <lambdabot> (Foldable t1, Foldable t2) => (a -> b -> b) -> b -> t1 (t2 a) -> b
2021-01-24 21:30:29 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 268 seconds)
2021-01-24 21:30:52 +0100 <ski> @type (appEndo .) . foldMap . (Endo .)
2021-01-24 21:30:54 +0100 <lambdabot> Foldable t => (a1 -> a2 -> a2) -> t a1 -> a2 -> a2
2021-01-24 21:31:03 +0100 <ski> @type foldMap
2021-01-24 21:31:04 +0100 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
2021-01-24 21:31:42 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 21:31:57 +0100 <zzz> ski, i've been meaning to thank you for a step by step explanation of binary tree traversal that after your introduction, solving it by myself blew my mind (this was maybe 2 years ago). i'm rarely here so I'm doing it now. thanks ;)
2021-01-24 21:32:05 +0100 <zzz> this beauty btw https://gist.githubusercontent.com/jrvieira/c7ee50f9a6272fd98dae0ac04a0dfad2/raw/a2f6cb0c8ae21bd2f…
2021-01-24 21:32:31 +0100 <ski> here `m' becaome `a2 -> a2'. if we for each element can update a state, then we can compose those updates from every element in the list, getting an overall state update for the whole list (or whetever `Foldable' data structure you have)
2021-01-24 21:33:38 +0100 <ski> zzz : ah, nice :)
2021-01-24 21:33:39 +0100 <ski> yw
2021-01-24 21:34:21 +0100Tops2(~Tobias@dyndsl-091-249-082-187.ewe-ip-backbone.de)
2021-01-24 21:34:41 +0100 <ski> that's using a "difference list" (in FP, not LP, sense). which is basically what `Endo' above does as well. and `type ShowS = String -> String' is about the same thing
2021-01-24 21:35:59 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-24 21:36:08 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-24 21:36:10 +0100 <ski> (it's also related to CPS (including `Codensity'))
2021-01-24 21:38:47 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 21:39:41 +0100deviantfero(~deviantfe@190.150.27.58)
2021-01-24 21:40:23 +0100keltono(~keltono@x-160-94-179-178.acm.umn.edu) (Ping timeout: 260 seconds)
2021-01-24 21:40:36 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-01-24 21:40:51 +0100keltono(~keltono@x-160-94-179-178.acm.umn.edu)
2021-01-24 21:43:51 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 21:45:45 +0100deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
2021-01-24 21:47:01 +0100deviantfero(~deviantfe@190.150.27.58)
2021-01-24 21:49:46 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-24 21:50:10 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 21:50:33 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 21:50:43 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 21:51:39 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-iwrpmhfrxccscdss) (Quit: Connection closed for inactivity)
2021-01-24 21:51:44 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-24 21:54:37 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 21:55:44 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-24 22:02:51 +0100conal(~conal@192.145.117.129) (Quit: Computer has gone to sleep.)
2021-01-24 22:03:15 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 22:04:12 +0100theothornhill(~user@161.80-203-66.nextgentel.com)
2021-01-24 22:04:13 +0100conal(~conal@192.145.117.129)
2021-01-24 22:04:22 +0100conal(~conal@192.145.117.129) (Client Quit)
2021-01-24 22:04:35 +0100ADG1089__(~aditya@122.163.160.223)
2021-01-24 22:06:42 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 264 seconds)
2021-01-24 22:10:47 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-24 22:11:31 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 22:11:38 +0100rcdilorenzo(~rcdiloren@45.152.180.20) (Read error: Connection reset by peer)
2021-01-24 22:12:11 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-01-24 22:12:32 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-24 22:13:05 +0100oisdk(~oisdk@2001:bb6:3329:d100:7c85:369d:a23d:1ffc)
2021-01-24 22:13:51 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 22:14:07 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 22:14:18 +0100conal(~conal@198.8.81.208)
2021-01-24 22:15:38 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-01-24 22:15:56 +0100rcdilorenzo(~rcdiloren@45.152.180.20)
2021-01-24 22:15:56 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 22:16:24 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-24 22:17:18 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-mxncuhjhaxdyvhdb) ()
2021-01-24 22:17:36 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 22:18:21 +0100 <zzz> ha... i found something curious
2021-01-24 22:18:58 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c) (Remote host closed the connection)
2021-01-24 22:19:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:d432:dfde:d2e0:ad7c)
2021-01-24 22:20:13 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-24 22:20:41 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 22:20:53 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-24 22:21:02 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-24 22:21:45 +0100 <zzz> if i have a function (f) inside a class declaration, and then declare multiple instances of that class, if I declare some (g = f), (g) doesn't become polymorphic unless I explicitly declare its type with a class constraint
2021-01-24 22:22:09 +0100 <ski> that's DMR for you
2021-01-24 22:22:20 +0100 <ski> try `g x = f x'
2021-01-24 22:22:54 +0100 <zzz> DMR?
2021-01-24 22:23:04 +0100invaser(~Thunderbi@91.226.34.136) (Ping timeout: 272 seconds)
2021-01-24 22:23:06 +0100 <ski> the Dreaded Monomorphism Restriction
2021-01-24 22:23:24 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 22:23:50 +0100 <zzz> where can i learn more about it?
2021-01-24 22:23:52 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-01-24 22:24:07 +0100 <zzz> yup (g x = f x) works
2021-01-24 22:24:28 +0100 <zzz> weird
2021-01-24 22:24:54 +0100 <ski> adding `{-# LANGUAGE NoMomomorphismRestriction #-}' to the top of the file (alternatively using command line switch `-XNoMomomorphismRestriction') will also work
2021-01-24 22:24:58 +0100son0p(~son0p@181.136.122.143)
2021-01-24 22:25:13 +0100 <ski> you want an explanation for what's going on ?
2021-01-24 22:25:22 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Connection closed)
2021-01-24 22:26:05 +0100adeene(~adeene@181.131.0.191) (Ping timeout: 240 seconds)
2021-01-24 22:26:37 +0100 <zzz> what are the downsides of using that extension? in order words, why is the restriction useful?
2021-01-24 22:26:52 +0100 <zzz> yes, i'm curious!
2021-01-24 22:27:02 +0100brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net)
2021-01-24 22:27:15 +0100 <zzz> *other words
2021-01-24 22:27:21 +0100 <ski> well, Haskell uses non-strict reduction/evaluation
2021-01-24 22:27:48 +0100conal(~conal@198.8.81.208) (Quit: Computer has gone to sleep.)
2021-01-24 22:28:21 +0100conal(~conal@198.8.81.208)
2021-01-24 22:28:28 +0100 <ski> in practice, implementations tend to use (call-)-by-need / lazy evaluation specifically. meaning that the value of an expression will be cached so that next time you refer to it, you'll reuse the value, rather than recomputing from scratch
2021-01-24 22:28:44 +0100 <zzz> right
2021-01-24 22:29:14 +0100 <ski> so if you do `let x = 2 + 3 in x * x', then the addition will only be performed once. and the same thing, if you do `let f x = x * x in f (2 + 3)'
2021-01-24 22:30:01 +0100 <ski> however, function calls are *not* memoized. if you compute `f 3', then it won't remember the result. next time you call `f' on `3', it'll recompute from scratch
2021-01-24 22:30:48 +0100 <ski> (if you do `let x = f 3 in ..x..', then only the first time you refer to `x' will perform the `f' call, later times will reuse the result of the expression `f 3')
2021-01-24 22:30:57 +0100 <ski> that's all clear, okay ?
2021-01-24 22:31:32 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-01-24 22:31:46 +0100 <ski> (to clarify, in `let x = f 3 in x * x', `f' will only be called once. in `f 3 * f 3', `f' will be called twice)
2021-01-24 22:32:57 +0100conal(~conal@198.8.81.208) (Ping timeout: 265 seconds)
2021-01-24 22:33:47 +0100binq(uid773@gateway/web/irccloud.com/x-avxqklnqzemogbgf) (Quit: Connection closed for inactivity)
2021-01-24 22:33:49 +0100skilooks at zzz
2021-01-24 22:34:03 +0100 <zzz> i see
2021-01-24 22:34:15 +0100 <ski> (should i continue ?)
2021-01-24 22:34:48 +0100 <zzz> please
2021-01-24 22:35:29 +0100 <ski> ok. so when you give a name to an expression (like `x = 2 + 3' or `x = f 3'), you expect that lazy evaluation will cause it to be computed at most once
2021-01-24 22:35:43 +0100 <zzz> i know this, am just trying to understand what's the implication here
2021-01-24 22:36:11 +0100gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-01-24 22:36:25 +0100ADG1089__(~aditya@122.163.160.223) (Remote host closed the connection)
2021-01-24 22:36:39 +0100 <zzz> im starting to get it
2021-01-24 22:36:43 +0100 <ski> (the same happens if you pass an expression as a parameter to a function, even if that function doesn't directly give a name to the parameter, but rather instead pattern-matches on it. so `concat xss' in `map f (concat xss)' will be computed at most once, even though `map' looks like `map f [] = ...; map f (x:xs) = ...')
2021-01-24 22:37:03 +0100 <ski> yea .. so, if you define something like e.g.
2021-01-24 22:37:05 +0100conal(~conal@198.8.81.228)
2021-01-24 22:37:16 +0100 <ski> fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
2021-01-24 22:37:30 +0100 <ski> > let fibs = 0 : 1 : zipWith (+) fibs (tail fibs) in take 13 fibs
2021-01-24 22:37:32 +0100 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144]
2021-01-24 22:38:00 +0100 <ski> you expect that `fibs' won't be recomputed each time you refer to it. instead, you expect it'll cache the elements of the list that you've looked at
2021-01-24 22:38:01 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 256 seconds)
2021-01-24 22:38:23 +0100 <ski> agree ?
2021-01-24 22:38:33 +0100 <zzz> agree
2021-01-24 22:38:45 +0100 <ski> now, what do you think the type of `fibs' here is ?
2021-01-24 22:39:01 +0100hvr(~hvr@haskell/developer/hvr)
2021-01-24 22:39:04 +0100 <ski> @type (+)
2021-01-24 22:39:06 +0100 <lambdabot> Num a => a -> a -> a
2021-01-24 22:39:22 +0100 <zzz> Num a => [a]
2021-01-24 22:39:26 +0100 <ski> yea
2021-01-24 22:39:41 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-01-24 22:41:18 +0100 <ski> and now, the way implementations tend to implement constrained polymorphism like this is by the "dictionary-passing translation". translating it to `fibs :: NumDict a -> [a]; fibs numDict = fromInteger numDict (0 :: Integer) : fromInteger numDict (1 :: Integer) : zipWith ((+) numDict) (fibs numDict) (tail (fibs numDict))'
2021-01-24 22:41:38 +0100 <ski> where `data NumDict a = MkNumDict {(+) :: a -> a -> a,...}'
2021-01-24 22:41:52 +0100 <zzz> makes sense
2021-01-24 22:42:09 +0100LKoen_(~LKoen@19.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-01-24 22:42:21 +0100 <ski> so, `fibs' actually here gets translated to a function, that's passed a dictionary of the method implementations for the `Num a' instance (for whatever `a' the user/caller of `fibs' wants to use)
2021-01-24 22:42:41 +0100 <ski> the consequence of this is that `fibs' will *not* be cached !
2021-01-24 22:42:57 +0100 <zzz> what
2021-01-24 22:43:04 +0100 <ski> even though the source code definition for it *looks* like it would be cached
2021-01-24 22:43:16 +0100 <zzz> oh no
2021-01-24 22:43:28 +0100 <zzz> that's not good
2021-01-24 22:43:31 +0100 <ski> remember that functions do not automatically remember which outputs have been previously computed for inputs passed to them
2021-01-24 22:43:47 +0100 <ski> so .. this was deemed to be confusing behaviour
2021-01-24 22:43:55 +0100 <ski> especially to newbies, but also sometimes to non-newbies
2021-01-24 22:44:28 +0100 <ski> so, the monomorphism restriction was invented, to avoid this confusing kind of situation
2021-01-24 22:45:38 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-01-24 22:45:49 +0100 <zzz> i'm thinking the correct approach would be to prevent literals from being ambiguous
2021-01-24 22:45:59 +0100 <ski> if you have (a) a "value definition", a definition with no explicit parameters to the left of the `=', with (b) no explicit type signature, then DMR forbids your definition to be *constrained* polymorphic (since that's the situation in which an implicit dictionary argument would be introduced)
2021-01-24 22:46:41 +0100 <ski> so, what it'll actually do is try to pick some default type for the type variable `a' in `Num a => [a]', in the hope of being able to do away with the `Num a' constraint
2021-01-24 22:46:58 +0100 <ski> (there is a `default' keyword that can be used to specify which types it'll try)
2021-01-24 22:48:02 +0100 <ski> so, it will in fact try `a = Integer', and since there is an instance `Num Integer', the type signature `fibs :: Num Integer => [Integer]' can be simplified to just `fibs :: [Integer]', hardwiring the `Integer' instance into `fibs', rather than implicitly passing it as a parameter
2021-01-24 22:48:29 +0100 <ski> so, with DMR, you'll infer not `fibs :: Num a => [a]', but instead `fibs :: [Integer]'
2021-01-24 22:48:46 +0100 <ski> and `fibs' will now be cached again, so all is well
2021-01-24 22:49:06 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-24 22:49:08 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-24 22:49:26 +0100 <ski> .. or, at least, we avoid this confusion. but now we have the other confusion that we may have expected `fibs' to be polymorphic, but we actually defined a monomorphic `fibs' here
2021-01-24 22:50:20 +0100 <zzz> i suspect this has made many people angry and has been widely regarded as a bad move
2021-01-24 22:50:47 +0100 <ski> also, in other cases, e.g. if you define `done = return ()', then it would like to infer `done :: Monad m => m ()', but because of DMR it isn't allowed so, so it'll try to default `m' to some specific type. but unless you write `default Maybe' or something into your file, there's no standard default it will pick. instead, it will complain about the definition being ambiguous
2021-01-24 22:51:15 +0100 <ski> so, DMR causes either constrained polymorphism to be monomorphized (using defaulting), or, failing that, to give an ambiguity error
2021-01-24 22:51:27 +0100 <ski> yea. we've traded one confusion for another
2021-01-24 22:51:32 +0100 <ski> (hence "Dreaded")
2021-01-24 22:51:46 +0100 <ski> anyway, there's three ways in which one can avoid DMR
2021-01-24 22:51:51 +0100 <zzz> that's what hinted me
2021-01-24 22:52:06 +0100 <ski> note that i said it only applies to "value definitions"
2021-01-24 22:52:31 +0100 <ski> consider e.g. `squareAll = map (^2)'
2021-01-24 22:52:38 +0100 <ski> this is a case where DMR would apply
2021-01-24 22:52:54 +0100 <ski> there are no *explicit* function parameters, to the left of the `=' here
2021-01-24 22:53:44 +0100 <zzz> squareAll x = map (^2) x
2021-01-24 22:53:47 +0100 <ski> but, in fact, `squareAll' is still a function here. so, we can change the definition to `squareAll ns = map (^2) ns' (which is equivalent to the former, by "function extensionality", which is closely related to "eta conversion")
2021-01-24 22:53:51 +0100 <ski> yep
2021-01-24 22:53:58 +0100 <zzz> :/
2021-01-24 22:54:20 +0100 <ski> because, if you see explicit parameters to the left of the `=', you're expected to know that you won't get sharing anyway. so this defuses DMR
2021-01-24 22:54:59 +0100 <ski> the second way is the one you discovered : simply put an explicit type signature on the definition, with the constraint(s) you'd like
2021-01-24 22:55:35 +0100 <ski> since then it should also be obvious (if you know about the dictionary-passing translation implementation of constrained polymorphism) that you won't get sharing
2021-01-24 22:55:51 +0100 <ski> the third way is to disable DMR, using `NoMonomorphismRestriction'
2021-01-24 22:57:05 +0100 <ski> zzz : ok, that's basically it
2021-01-24 22:57:39 +0100 <zzz> thanks
2021-01-24 22:57:46 +0100 <zzz> this made me sad
2021-01-24 22:58:16 +0100 <zzz> but glad to have learned
2021-01-24 22:59:06 +0100 <zzz> it normally wouldn't been a problem because I make sure i give all my functions type definitions
2021-01-24 22:59:47 +0100 <ski> btw, the MLs (SML,OCaml,F#,Alice ML,..) have a somewhat similar restriction, called the "value restriction", which inhibits a definition from being polymorphic (although there's no type class constraints there). the reason for its presence there is to avoid being able to define `unsafeCoerce :: a -> b', in the presence of side-effect. that's not a problem, for Haskell (unless you cheat by using
2021-01-24 22:59:53 +0100 <ski> `unsafePerformIO :: IO a -> a'. then you can define `unsafeCoerce' in the same way, using a polymorphic mutable reference (`IORef'))
2021-01-24 23:00:04 +0100 <zzz> however in this case I was defining an operator, like <$> is to fmap
2021-01-24 23:00:11 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-01-24 23:01:12 +0100 <ski> (the MLs, being strict, don't have the sharing issue anyway. however, it's annoying, if you're defining e.g. parser actions, that you can't make a polymorphic one, unless you make it a function-returning-an-action, introducing some dummy parameter)
2021-01-24 23:01:54 +0100mmkarakaya(b021e288@176.33.226.136) (Quit: Connection closed)
2021-01-24 23:01:56 +0100 <ski> yea. giving an explicit type signature is usually the nicest way to avoid the issue
2021-01-24 23:03:59 +0100 <dolio> In my experience, it isn't a real problem.
2021-01-24 23:05:31 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-sfvlzmosuaecvhtq)
2021-01-24 23:06:05 +0100conal(~conal@198.8.81.228) (Ping timeout: 240 seconds)
2021-01-24 23:06:53 +0100sm2n_sm2n
2021-01-24 23:07:57 +0100desophos(~desophos@2601:249:1680:a570:b098:51c3:875c:3cdf)
2021-01-24 23:08:09 +0100daim2k5(~daim2k5@s91904426.blix.com) (Remote host closed the connection)
2021-01-24 23:08:14 +0100 <ski> as long as you're aware of it (loss of sharing, with constrained polymorphism), it's rarely something you stumble on, yea
2021-01-24 23:08:33 +0100 <dolio> I mean having the monomorphism restriction on isn't a real problem.
2021-01-24 23:08:46 +0100 <zzz> it's a pain to debug if you don't, I'll tell you that
2021-01-24 23:09:02 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90)
2021-01-24 23:10:13 +0100 <merijn> zzz: If you definition doesn't "look like a value" (i.e. arguments left of =) then you won't trigger MMR either
2021-01-24 23:10:45 +0100ph88(~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb)
2021-01-24 23:10:59 +0100 <zzz> yea
2021-01-24 23:11:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-24 23:11:37 +0100hackagecryptohash-sha256 0.11.102.0 - Fast, pure and practical SHA-256 implementation https://hackage.haskell.org/package/cryptohash-sha256-0.11.102.0 (HerbertValerioRiedel)
2021-01-24 23:12:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-24 23:12:38 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 23:14:18 +0100chindy(~quassel@51.15.63.78) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-01-24 23:15:08 +0100chindy(~quassel@51.15.63.78)
2021-01-24 23:16:38 +0100 <dolio> If 95% of your code is typed into REPLs, or trimmed to look as simple as possible to a university student, I could understand 'dreading' it, but for someone trying to write software in Haskell using typical style recommendations, it's an occasional minor annoyance.
2021-01-24 23:17:19 +0100 <merijn> I've never encountered the MMR since my first 3 months of learning Haskell :p
2021-01-24 23:17:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-24 23:18:41 +0100 <dolio> Also if you have to explain it to university students every time it happens.
2021-01-24 23:19:16 +0100pong(chiya@2406:3003:2077:2341::babe)
2021-01-24 23:19:57 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2021-01-24 23:22:12 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:22:19 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:22:37 +0100 <zzz> next time someone asks, i can answer ;)
2021-01-24 23:22:52 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:23:19 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:23:34 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:23:35 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:23:38 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-24 23:23:43 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-24 23:23:54 +0100howdoi(uid224@gateway/web/irccloud.com/x-logrrugzsdwspzft)
2021-01-24 23:24:12 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:24:46 +0100mjevans-(~mjevans-@185.204.1.185)
2021-01-24 23:25:05 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-24 23:25:37 +0100fendor(~fendor@77.119.130.58.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-01-24 23:26:07 +0100enoq(~bernhard@2a02:8388:6ac1:c780:140:318f:2327:47a3)
2021-01-24 23:26:23 +0100theothornhill(~user@161.80-203-66.nextgentel.com) (Ping timeout: 272 seconds)
2021-01-24 23:26:30 +0100 <enoq> hi, what would you name a function that applies itself again and again to a given value until it reaches n applications
2021-01-24 23:26:44 +0100 <enoq> for instance: double value 3 9 times
2021-01-24 23:26:57 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-01-24 23:27:04 +0100 <merijn> :t iterate -- ?
2021-01-24 23:27:05 +0100 <lambdabot> (a -> a) -> a -> [a]
2021-01-24 23:27:24 +0100 <enoq> that produces a list, I want a value
2021-01-24 23:27:24 +0100 <merijn> Or wait, there was another with with a Int argument
2021-01-24 23:28:06 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-01-24 23:28:08 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:28:24 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:28:25 +0100 <enoq> a doesn't have to be an Int
2021-01-24 23:28:28 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:28:36 +0100 <enoq> I have to implement basic arithmetics for a custom type
2021-01-24 23:28:48 +0100 <enoq> and there are special rules for halving/doubling
2021-01-24 23:29:03 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:29:45 +0100 <enoq> I came up with this https://dpaste.org/rMF3 but I'm unsure if repeat is a good name
2021-01-24 23:30:15 +0100 <enoq> using it like this: repeat((bulk) => bulk.double(), 5, bulk)
2021-01-24 23:30:51 +0100 <enoq> I'm sure there's a function in haskell that does roughly what that function dooes
2021-01-24 23:31:46 +0100 <zzz> Util.nTimes ?
2021-01-24 23:32:09 +0100 <merijn> enoq: I mean, you could just do "head . drop n . iterate" :p
2021-01-24 23:32:27 +0100 <enoq> merijn: still would need to name it xD
2021-01-24 23:33:10 +0100 <zzz> enoq: nTimes from Util
2021-01-24 23:33:15 +0100 <enoq> thanks
2021-01-24 23:33:42 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds)
2021-01-24 23:37:55 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 256 seconds)
2021-01-24 23:45:49 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:45:53 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:47:54 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:49:02 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-24 23:51:13 +0100 <justsomeguy> applyNTimes?
2021-01-24 23:52:42 +0100 <enoq> justsomeguy: yep, that's exactly what I went with
2021-01-24 23:53:36 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-01-24 23:53:42 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:53:55 +0100 <koz_> Does anyone know of any type that is a Category, a Profunctor, and a Choice?
2021-01-24 23:53:55 +0100jackk__(~jackk@205-185-193-10.wlvpn.com) (Quit: Going offline, see ya! (www.adiirc.com))
2021-01-24 23:53:56 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:54:02 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:55:07 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:55:11 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-24 23:55:47 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-24 23:55:48 +0100 <dolio> (->)
2021-01-24 23:56:05 +0100 <koz_> LOL
2021-01-24 23:56:15 +0100 <koz_> Shoulda guessed.
2021-01-24 23:56:36 +0100conal_(~conal@64.71.133.70)
2021-01-24 23:56:45 +0100 <Uniaika> (unsurprisingly :P)
2021-01-24 23:57:20 +0100alx741(~alx741@186.178.110.72) (Quit: alx741)
2021-01-24 23:57:22 +0100 <koz_> Also (Monad f) => Star f, but that's just Kleisli and we all knew this.
2021-01-24 23:58:16 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)