Home freenode/#haskell: Logs Calendar

Logs on 2021-04-27 (freenode/#haskell)

00:00:05 × xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection)
00:02:54 × kiweun quits (~kiweun@2607:fea8:2a62:9600:94a4:7355:214:11fd) (Ping timeout: 245 seconds)
00:04:12 xsperry joins (~as@unaffiliated/xsperry)
00:13:21 × tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 268 seconds)
00:14:06 ADG1089 joins (~aditya@171.76.29.233)
00:15:08 tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com)
00:15:14 × chateau quits (~chateau@71.215.110.96) (Quit: Leaving)
00:16:47 × chimera quits (~chimera@168-182-134-95.pool.ukrtel.net) (Quit: Konversation terminated!)
00:24:49 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
00:25:02 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
00:25:05 × ADG1089 quits (~aditya@171.76.29.233) (Quit: Konversation terminated!)
00:26:38 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
00:26:52 ddellac__ joins (~ddellacos@86.106.143.151)
00:27:11 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
00:27:18 × philderbeast quits (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:28:29 notzmv joins (~zmv@unaffiliated/zmv)
00:31:28 × ddellac__ quits (~ddellacos@86.106.143.151) (Ping timeout: 252 seconds)
00:32:28 Guest6509 joins (~laudiacay@45.162.228.190)
00:34:11 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
00:37:56 stree joins (~stree@68.36.8.116)
00:38:19 zmijunkie1 joins (~Adium@87.123.60.135)
00:38:37 × bennofs_ quits (~quassel@dynamic-089-012-155-245.89.12.pool.telefonica.de) (Ping timeout: 252 seconds)
00:38:53 bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de)
00:40:16 × zmijunkie quits (~Adium@87.123.51.242) (Ping timeout: 252 seconds)
00:43:02 × bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Read error: Connection reset by peer)
00:43:23 bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de)
00:46:45 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
00:46:45 Sarcarean joins (4582bfd4@h69-130-191-212.bendor.broadband.dynamic.tds.net)
00:47:25 × proofofkeags quits (~proofofke@205.209.28.54) (Ping timeout: 252 seconds)
00:47:58 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-hhxgnaqpkeoleenq) (Quit: Connection closed for inactivity)
00:57:48 × HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: https://www.oglaf.com/archive/)
00:58:37 × Benzi-Junior quits (~BenziJuni@88-149-64-251.du.xdsl.is) (Quit: gone)
00:59:40 × hendursa1 quits (~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1)
01:00:09 hendursaga joins (~weechat@gateway/tor-sasl/hendursaga)
01:00:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:00:30 Benzi-Junior joins (~BenziJuni@dsl-149-64-251.hive.is)
01:03:07 ddellac__ joins (~ddellacos@86.106.143.229)
01:04:26 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
01:07:46 × ddellac__ quits (~ddellacos@86.106.143.229) (Ping timeout: 252 seconds)
01:09:42 esp387228 joins (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127)
01:10:24 × esp32_prog quits (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) (Read error: Connection reset by peer)
01:11:06 kiweun joins (~kiweun@2607:fea8:2a62:9600:fd3a:4f7b:345d:8677)
01:11:26 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
01:11:27 × whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
01:12:35 whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:13:11 jgt joins (~jgt@78.162.43.217)
01:13:41 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
01:14:49 rajivr joins (uid269651@gateway/web/irccloud.com/x-oslfpzkstfgdrfpu)
01:15:54 × jacks2 quits (~bc8134e3@217.29.117.252) (Quit: QUIT)
01:16:34 × solidus-river quits (~mike@174.127.249.180) (Remote host closed the connection)
01:18:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:18:46 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 252 seconds)
01:20:55 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
01:22:15 × epicte7us quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Quit: Leaving)
01:23:00 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
01:24:30 Q8IoXhexAi joins (~Q8IoXhexA@c-73-88-253-11.hsd1.tn.comcast.net)
01:25:18 vdukhovni joins (64022765@100.2.39.101)
01:28:50 × nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 265 seconds)
01:28:54 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:31:39 drbean_ joins (~drbean@TC210-63-209-69.static.apol.com.tw)
01:34:01 nineonine joins (~nineonine@50.216.62.2)
01:34:29 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) (Remote host closed the connection)
01:34:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
01:35:13 nicholasbulka joins (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c)
01:38:12 ddellac__ joins (~ddellacos@86.106.143.112)
01:39:58 slack1256 joins (~slack1256@200-112-79-167.baf.movistar.cl)
01:40:01 × vdukhovni quits (64022765@100.2.39.101) (Quit: Connection closed)
01:40:24 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) (Ping timeout: 245 seconds)
01:42:24 <slack1256> What is the current advice for testing effects on a MTL framework? I currently have a code base paramitriced on monad class, but a method is a call to a graphql server. Mocking that function seems burdersome.
01:42:26 × ddellac__ quits (~ddellacos@86.106.143.112) (Ping timeout: 246 seconds)
01:44:47 × xff0x quits (~xff0x@2001:1a81:53aa:e600:aedf:66c8:4911:fe15) (Ping timeout: 260 seconds)
01:46:30 xff0x joins (~xff0x@2001:1a81:53e0:9b00:13c7:4d:b9c2:a94a)
01:48:36 × Q8IoXhexAi quits (~Q8IoXhexA@c-73-88-253-11.hsd1.tn.comcast.net) (Quit: Terminated!)
01:51:11 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
01:51:57 vdukhovni joins (64022765@100.2.39.101)
01:53:50 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
01:54:32 dastomate joins (~dastomate@0543f40b.skybroadband.com)
01:56:35 slac52336 joins (~slack1256@201-223-250-53.baf.movistar.cl)
01:56:55 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:8bd4:3e0a:68:465c) (Ping timeout: 260 seconds)
01:57:42 proofofkeags joins (~proofofke@97-118-239-55.hlrn.qwest.net)
01:57:42 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
01:58:46 × kiweun quits (~kiweun@2607:fea8:2a62:9600:fd3a:4f7b:345d:8677) (Remote host closed the connection)
01:58:55 × slack1256 quits (~slack1256@200-112-79-167.baf.movistar.cl) (Ping timeout: 252 seconds)
02:03:40 <__minoru__shirae> slack1256: if it's open-source, can you post a link to the project?
02:04:51 <slac52336> __minoru__shirae: it is not :-/
02:06:54 Kaiepi joins (~Kaiepi@47.54.252.148)
02:08:35 <__minoru__shirae> slac52336: too bad, wanted to see an example of industrial haskell
02:08:58 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:bd49:f20f:3581:6a35)
02:10:39 slac52336 is now known as slack1256
02:10:52 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:11:04 <slack1256> It's the same. You just don't feel for using `lens`.
02:11:18 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-rcsvshxqwuthdgbo) ()
02:11:20 <slack1256> feel bad
02:12:29 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
02:13:14 × CrazyPyt_ quits (~crazypyth@98.122.164.118) (Read error: Connection reset by peer)
02:14:11 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:bd49:f20f:3581:6a35) (Ping timeout: 260 seconds)
02:16:31 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
02:17:05 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
02:17:57 kiweun joins (~kiweun@2607:fea8:2a62:9600:4145:a684:2dd9:7c27)
02:19:21 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:23:44 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 245 seconds)
02:25:52 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 252 seconds)
02:26:53 × stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
02:29:26 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:32:29 × theDon quits (~td@muedsl-82-207-238-220.citykom.de) (Ping timeout: 246 seconds)
02:34:09 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
02:34:20 theDon joins (~td@muedsl-82-207-238-198.citykom.de)
02:39:43 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
02:39:43 finn_elija is now known as Guest21444
02:39:43 FinnElija is now known as finn_elija
02:42:21 × Guest21444 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
02:45:07 ram19890 joins (~ram@49.205.84.253)
02:46:13 × stree quits (~stree@68.36.8.116) (Ping timeout: 252 seconds)
02:48:13 × Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 252 seconds)
02:48:34 × datajerk quits (~datajerk@sense.net) (Remote host closed the connection)
02:49:02 datajerk joins (~datajerk@sense.net)
02:50:11 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
02:50:49 ddellac__ joins (~ddellacos@86.106.143.190)
02:55:32 × ddellac__ quits (~ddellacos@86.106.143.190) (Ping timeout: 268 seconds)
02:55:41 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
02:57:41 × horatiohb quits (~horatiohb@159.65.170.201) (Ping timeout: 246 seconds)
02:58:31 × kiweun quits (~kiweun@2607:fea8:2a62:9600:4145:a684:2dd9:7c27) (Remote host closed the connection)
02:58:31 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
02:58:47 stree joins (~stree@68.36.8.116)
02:59:55 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
03:02:07 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
03:03:39 aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
03:06:44 carlomagno joins (~cararell@148.87.23.12)
03:08:04 Guest6509 joins (~laudiacay@45.162.228.190)
03:08:49 × MrMobius quits (~MrMobius@208.58.206.154) (Read error: Connection reset by peer)
03:11:42 × __minoru__shirae quits (~shiraeesh@109.166.59.124) (Ping timeout: 260 seconds)
03:12:12 MrMobius joins (~MrMobius@208.58.206.154)
03:12:12 × Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 240 seconds)
03:17:59 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
03:21:25 × P_B1 quits (~P_B@139.28.218.148) (Remote host closed the connection)
03:23:38 <Axman6> slack1256: so true
03:23:54 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
03:24:26 × esp387228 quits (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) (Ping timeout: 240 seconds)
03:26:39 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 245 seconds)
03:26:57 <justsomeguy> What is the Reader monad?
03:27:27 <Axman6> it's a way to pass around some data that various parts of your application needs, without needing to explicitly pass it as function arguments
03:28:02 <justsomeguy> So, a named closure that shows up in type signatures?
03:28:14 aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
03:29:10 <shachaf> Well, a closure closes over some existing value. "Reader" means a thing is parameterized.
03:29:17 × carlomagno quits (~cararell@148.87.23.12) (Quit: Leaving.)
03:29:26 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
03:29:26 aplainze1akind is now known as aplainzetakind
03:29:28 <Axman6> so, it's commonly used to pass around settings your application was passed when it launched, from command line arguments, config files, etc.
03:29:52 <shachaf> But "Reader r a" is just a function, "r -> a".
03:31:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:31:34 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
03:32:35 <justsomeguy> Thank you, that helps a lot.
03:32:42 × _xor quits (~xor@74.215.46.133) (Quit: brb)
03:33:50 nineonine joins (~nineonine@50.216.62.2)
03:34:20 <Axman6> You'll often see apps using a monad stack which has ReaderT Config SomeOtherMonad so they can access things like database connection strings/objects, logging level
03:35:46 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
03:35:48 <gnumonic> It's pretty common to use ReaderT with a mutable variable of some sort (TVar, etc) for concurrency since you can't do concurrency with a state monad. (I think?)
03:36:27 <Axman6> sure, that could form part of your config if you wanted it to
03:37:25 kirb joins (~kirb@185.163.110.100)
03:38:25 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
03:39:43 <wroathe> Yo dawg, I put a reader in your reader so you can reader while you reader
03:40:10 systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net)
03:40:12 <Axman6> :t fix Reader
03:40:14 <lambdabot> error:
03:40:14 <lambdabot> • Data constructor not in scope: Reader :: a -> a
03:40:14 <lambdabot> • Perhaps you meant one of these:
03:40:39 × jeet quits (~jeet@183.83.214.10) (Quit: WeeChat 3.1)
03:40:44 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
03:40:58 <gnumonic> er yeah I guess my comment didn't really add anything. I'm just so used to writing 'ReaderT (TVar Something)" and thinking "ConcurrentState Something" that I forget that's not the only thing it's for :p
03:42:16 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
03:42:46 × systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection)
03:45:23 × thc202 quits (~thc202@unaffiliated/thc202) (Read error: Connection reset by peer)
03:45:30 _xor joins (~xor@74.215.46.133)
03:46:16 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
03:49:32 × slack1256 quits (~slack1256@201-223-250-53.baf.movistar.cl) (Remote host closed the connection)
03:50:37 <Axman6> slack1256: At #previousEmployer, we had a pattern of mocking various MTL style effects, which I always wanted to write a TH library for which would could pass in a type class and it'd spit out the record of fields which represented each call for each class method, which would be passed in lists of expected arguments and return values, and IIRC we would make that a ReaderT'd value with an instance for the class we were mocking... it was still
03:50:37 <Axman6> burdensome but that would have made it less so
03:50:43 <Axman6> oh they left :'(
03:50:51 <Axman6> @tell slack1256 At #previousEmployer, we had a pattern of mocking various MTL style effects, which I always wanted to write a TH library for which would could pass in a type class and it'd spit out the record of fields which represented each call for each class method, which would be passed in lists of expected arguments and return values, and IIRC we would make that a ReaderT'd value with an instance for the class we were mocking... it was s
03:50:52 <lambdabot> Consider it noted.
03:50:52 <Axman6> till burdensome but that would have made it less so
03:50:55 <Axman6> <3
03:53:26 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
03:56:52 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
03:57:00 Tario joins (~Tario@201.192.165.173)
03:57:04 dastomaten joins (~dastomate@0543f40b.skybroadband.com)
03:57:09 × ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
03:59:15 <mniip> is there a cute name for a free category from a quiver?
04:00:54 × dastomate quits (~dastomate@0543f40b.skybroadband.com) (Ping timeout: 268 seconds)
04:01:49 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
04:02:51 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
04:03:29 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
04:04:52 × zmijunkie1 quits (~Adium@87.123.60.135) (Ping timeout: 240 seconds)
04:04:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
04:05:06 <gnumonic> would performance be very bad with a sum type that had, uh, i dunno, like ten thousand nullary constructors?
04:05:14 × xlei quits (znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in)
04:05:50 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:05:53 <Axman6> I thought there were limits to the number you could use
04:06:04 zmijunkie joins (~Adium@87.122.222.91)
04:06:11 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
04:06:23 <Axman6> ifit were me I'd newtype Word or something, and then make pattern synonyms, but I'm not sure if that's necessary
04:07:21 × dmwit quits (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
04:08:15 dmwit joins (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net)
04:08:29 <gnumonic> it's for some type level stuff, i'm just looking for something that i can singletonize/generate incrementally/has an eq instance/isn't a peano number
04:08:57 xlei joins (znc@unaffiliated/xlei)
04:09:26 <Axman6> that sounds like it will make for some very unhappy compile times, but shouldn't affect runtime since they'll all have gone away
04:10:22 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
04:12:27 × bgamari quits (~bgamari@72.65.101.132) (Quit: ZNC 1.8.1 - https://znc.in)
04:12:47 bgamari joins (~bgamari@2001:470:e438::1)
04:13:23 guest7682358928 joins (c9dbea7b@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.123)
04:13:33 × xkapastel quits (uid17782@gateway/web/irccloud.com/x-sgigdjanpsamlbkh) (Quit: Connection closed for inactivity)
04:14:27 kiweun joins (~kiweun@2607:fea8:2a62:9600:9131:c747:1288:d3be)
04:15:10 <gnumonic> actually since i don't need to do induction i guess I could do something like: data SWord16 = SSword16 Bool Bool Bool (...) etc
04:16:17 sh9 joins (~sh9@softbank060116136158.bbtec.net)
04:18:44 × kiweun quits (~kiweun@2607:fea8:2a62:9600:9131:c747:1288:d3be) (Ping timeout: 245 seconds)
04:19:05 × vdukhovni quits (64022765@100.2.39.101) (Quit: Connection closed)
04:21:10 × untakenstupidnic quits (~user@5.114.130.12) (Read error: Connection reset by peer)
04:21:42 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
04:22:18 nineonine joins (~nineonine@50.216.62.2)
04:23:41 untakenstupidnic joins (~user@5.114.130.12)
04:31:59 × Sgeo quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Ping timeout: 252 seconds)
04:32:16 Sgeo joins (~Sgeo@ool-18b9875e.dyn.optonline.net)
04:42:49 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 252 seconds)
04:43:27 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:47:01 <Axman6> gnumonic: do you know how many you actually need?
04:47:54 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
04:49:08 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:50:23 nineonine joins (~nineonine@50.216.62.2)
04:52:17 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
04:52:39 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
04:55:31 <gnumonic> I don't know the precise number but not more than a few thousand (and that's including a pretty big safety margin for exceptional situations)
04:55:52 <gnumonic> i.e. if i could just singletonize a word16 straightforwardly i'd do that
04:56:15 <Axman6> Ah I was assuming it was soe category of known values, and if it were, you could break it down into its prime factors and reduce the overhead of the binary representation somewhat :P
05:02:53 sqrt2_ joins (~ben@unaffiliated/sqrt2)
05:03:07 × sqrt2 quits (~ben@unaffiliated/sqrt2) (Ping timeout: 260 seconds)
05:04:43 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
05:06:43 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:8cfe:e2c:fb24:3adc) (Ping timeout: 250 seconds)
05:06:50 × stree quits (~stree@68.36.8.116) (Ping timeout: 246 seconds)
05:11:52 <gnumonic> Nah. It's more or less just a unique identifier for some objects. It doesn't even have to be a number really, but it's not like Symbols are any better than GHC.TypeLits Nats when you need a singleton you can stash inside a data structure... Actually I dunno why I'm doing a binary representation at all. I might as well do 'data IDSym = A | B | (etc)' and 'data ID = IDSym IDSym IDSym (etc)'.
05:13:54 <gnumonic> actually i don't even need the last (etc). note to self, think more before starting to code
05:16:01 dastomate joins (~dastomate@0543f40b.skybroadband.com)
05:19:17 ericsagn1 joins (~ericsagne@2405:6580:0:5100:ed88:b772:a9fc:1e72)
05:19:50 × dastomaten quits (~dastomate@0543f40b.skybroadband.com) (Ping timeout: 268 seconds)
05:20:04 stree joins (~stree@68.36.8.116)
05:20:26 sord937 joins (~sord937@gateway/tor-sasl/sord937)
05:23:27 × kirb quits (~kirb@185.163.110.100) (Remote host closed the connection)
05:24:11 × dastomate quits (~dastomate@0543f40b.skybroadband.com) (Ping timeout: 240 seconds)
05:26:40 michalz joins (~user@185.246.204.123)
05:28:10 Tario joins (~Tario@201.192.165.173)
05:30:05 kiweun joins (~kiweun@2607:fea8:2a62:9600:e172:7d45:5cbc:afbd)
05:32:07 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
05:33:09 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
05:33:10 frozenErebus joins (~frozenEre@37.231.244.249)
05:34:08 LKoen joins (~LKoen@22.249.88.92.rev.sfr.net)
05:34:34 × kiweun quits (~kiweun@2607:fea8:2a62:9600:e172:7d45:5cbc:afbd) (Ping timeout: 245 seconds)
05:34:41 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
05:35:59 sord937 joins (~sord937@gateway/tor-sasl/sord937)
05:37:14 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
05:37:41 arturh joins (~arturh@93.176.180.48)
05:38:28 Tario joins (~Tario@201.192.165.173)
05:39:16 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
05:41:39 plutoniix joins (~q@cm-119-76-33-123.revip17.asianet.co.th)
05:49:21 × jao quits (~jao@pdpc/supporter/professional/jao) (Ping timeout: 252 seconds)
05:51:34 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds)
05:53:52 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
05:59:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:01:32 × forell quits (~forell@unaffiliated/forell) (Ping timeout: 240 seconds)
06:01:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:04:23 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
06:05:10 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
06:09:05 × waleee-cl quits (uid373333@gateway/web/irccloud.com/x-rvemkovqaoswbohn) (Quit: Connection closed for inactivity)
06:10:12 × mounty quits (~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 240 seconds)
06:12:53 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
06:22:06 Synthetica joins (uid199651@gateway/web/irccloud.com/x-jzozwncadkywrjny)
06:22:16 zmijunkie1 joins (~Adium@109.90.32.89)
06:22:33 × xff0x quits (~xff0x@2001:1a81:53e0:9b00:13c7:4d:b9c2:a94a) (Ping timeout: 250 seconds)
06:23:09 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
06:23:41 xff0x joins (~xff0x@2001:1a81:53e0:9b00:7bc7:e0fa:939f:81c6)
06:23:44 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 245 seconds)
06:24:12 × zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 246 seconds)
06:24:47 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:25:19 johannes_ joins (~johannes@b2b-37-24-119-190.unitymedia.biz)
06:29:31 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
06:30:58 zmijunkie joins (~Adium@87.122.222.91)
06:31:15 × gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Quit: Leaving)
06:31:45 × howdoi quits (uid224@gateway/web/irccloud.com/x-trxxyompkioojjhk) (Quit: Connection closed for inactivity)
06:31:46 Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
06:32:49 × zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 252 seconds)
06:35:46 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
06:35:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
06:37:22 wonko7 joins (~wonko7@62.115.229.50)
06:38:04 forell joins (~forell@unaffiliated/forell)
06:40:25 jgt joins (~jgt@78.162.43.217)
06:43:53 Pickchea joins (~private@unaffiliated/pickchea)
06:45:53 kiweun joins (~kiweun@2607:fea8:2a62:9600:f8f8:39af:49d9:69f2)
06:46:37 othe1 joins (~othe@195.140.213.38)
06:46:51 Varis joins (~Tadas@unaffiliated/varis)
06:48:50 unlink2 joins (~unlink2@p200300ebcf12ad00ad652fa1ddae7806.dip0.t-ipconnect.de)
06:50:43 × kiweun quits (~kiweun@2607:fea8:2a62:9600:f8f8:39af:49d9:69f2) (Ping timeout: 250 seconds)
06:53:31 whosit joins (~whosit@109-252-94-126.nat.spd-mgts.ru)
07:00:36 v01d4lph4 joins (~v01d4lph4@27.57.103.213)
07:01:15 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
07:01:35 Lycurgus joins (~niemand@98.4.118.65)
07:02:20 frozenErebus joins (~frozenEre@37.231.244.249)
07:04:56 dyeplexer joins (~lol@unaffiliated/terpin)
07:05:11 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
07:05:14 zmijunkie1 joins (~Adium@109.90.32.89)
07:05:26 × v01d4lph4 quits (~v01d4lph4@27.57.103.213) (Ping timeout: 260 seconds)
07:05:30 Kaiepi joins (~Kaiepi@47.54.252.148)
07:05:50 × zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 246 seconds)
07:10:21 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
07:10:41 bitmagie joins (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de)
07:10:57 zmijunkie joins (~Adium@87.122.222.91)
07:13:21 × zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 260 seconds)
07:13:32 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds)
07:14:07 × sqrt2_ quits (~ben@unaffiliated/sqrt2) (Ping timeout: 250 seconds)
07:14:17 sqrt2 joins (~ben@unaffiliated/sqrt2)
07:15:23 vgtw_ joins (~vgtw@gateway/tor-sasl/vgtw)
07:15:26 Aquazi joins (uid312403@gateway/web/irccloud.com/x-eryhzfeygpvphsjr)
07:15:51 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
07:15:52 vgtw_ is now known as vgtw
07:16:04 ddella___ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
07:16:18 × bitmagie quits (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de) (Quit: bitmagie)
07:16:35 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:16:37 × proofofkeags quits (~proofofke@97-118-239-55.hlrn.qwest.net) (Ping timeout: 252 seconds)
07:17:54 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 245 seconds)
07:18:27 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
07:18:38 × bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Read error: Connection reset by peer)
07:18:55 bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de)
07:21:11 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:24:05 × danso quits (~dan@modemcable156.91-20-96.mc.videotron.ca) (Ping timeout: 265 seconds)
07:27:08 × coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
07:27:21 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:4afc:980e:3b22:8734)
07:27:37 zmijunkie1 joins (~Adium@109.90.32.89)
07:28:26 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
07:29:32 × zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 240 seconds)
07:30:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:30:37 jgt joins (~jgt@78.162.43.217)
07:34:09 zmijunkie joins (~Adium@87.122.222.91)
07:35:12 × tsaka_ quits (~torstein@athedsl-4519432.home.otenet.gr) (Ping timeout: 240 seconds)
07:35:34 nicholasbulka joins (~nicholasb@2601:900:4301:da0:5440:6bb8:f181:7832)
07:36:03 × zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 252 seconds)
07:36:53 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
07:38:06 × wonko7 quits (~wonko7@62.115.229.50) (Quit: See You Space Cowboy..)
07:39:41 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:5440:6bb8:f181:7832) (Ping timeout: 250 seconds)
07:41:26 stree joins (~stree@68.36.8.116)
07:42:53 alexander joins (~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d)
07:43:21 alexander is now known as Guest85960
07:44:40 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
07:45:27 × tionos- quits (~tionos@2a0b:b7c4:1:731::1) (Quit: leaving)
07:45:41 tionos joins (~tionos@2a0b:b7c4:1:731::1)
07:46:08 × Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt)
07:46:35 malumore joins (~malumore@151.62.126.111)
07:47:04 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:ed88:b772:a9fc:1e72) (Ping timeout: 245 seconds)
07:47:42 × Sgeo quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
07:48:31 danso joins (~dan@modemcable156.91-20-96.mc.videotron.ca)
07:48:48 malumore_ joins (~malumore@151.62.126.111)
07:51:41 × malumore quits (~malumore@151.62.126.111) (Ping timeout: 260 seconds)
07:55:30 __minoru__shirae joins (~shiraeesh@109.166.59.124)
07:56:05 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
07:56:26 cfricke joins (~cfricke@unaffiliated/cfricke)
07:57:34 is_null joins (~jpic@pdpc/supporter/professional/is-null)
07:59:16 ericsagn1 joins (~ericsagne@2405:6580:0:5100:9b9f:be30:ff0e:2bc)
08:02:23 wonko7 joins (~wonko7@62.115.229.50)
08:03:17 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
08:04:00 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
08:10:45 × hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
08:13:23 zmijunkie1 joins (~Adium@109.90.32.89)
08:14:15 hendursaga joins (~weechat@gateway/tor-sasl/hendursaga)
08:14:34 × zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 252 seconds)
08:14:39 sz0 joins (uid110435@gateway/web/irccloud.com/x-bwiuonpskoznguoq)
08:15:27 sh9 joins (~sh9@softbank060116136158.bbtec.net)
08:20:08 thc202 joins (~thc202@unaffiliated/thc202)
08:20:32 × danso quits (~dan@modemcable156.91-20-96.mc.videotron.ca) (Quit: WeeChat 3.0)
08:20:52 × Arahael quits (~arahael@123-243-38-74.tpgi.com.au) (Ping timeout: 240 seconds)
08:24:13 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
08:24:55 kuribas joins (~user@ptr-25vy0i7u5k5fyxhyy6l.18120a2.ip6.access.telenet.be)
08:26:58 frozenErebus joins (~frozenEre@37.231.244.249)
08:28:14 fendor joins (~fendor@178.115.131.177.wireless.dyn.drei.com)
08:31:01 pbgc joins (~pbgc@a89-152-234-147.cpe.netcabo.pt)
08:31:52 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
08:33:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
08:36:39 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:38:16 dhil joins (~dhil@80.208.56.181)
08:38:50 acidjnk_new joins (~acidjnk@p200300d0c72b95883ddaf449c9d144e9.dip0.t-ipconnect.de)
08:41:30 × drbean_ quits (~drbean@TC210-63-209-69.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
08:43:41 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
08:46:44 kiweun joins (~kiweun@2607:fea8:2a62:9600:7098:46df:517a:426)
08:48:26 Arahael joins (~arahael@123-243-38-74.tpgi.com.au)
08:51:11 × kiweun quits (~kiweun@2607:fea8:2a62:9600:7098:46df:517a:426) (Ping timeout: 250 seconds)
08:55:18 Pickchea joins (~private@unaffiliated/pickchea)
08:55:26 × rdd quits (~rdd@c-407ce255.012-81-73746f39.cust.ownit.se) (Ping timeout: 240 seconds)
08:58:16 jess joins (jess@freenode/staff/jess)
08:59:09 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 245 seconds)
09:00:48 DavidEichmann joins (~david@147.136.46.217.dyn.plus.net)
09:00:59 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:01:17 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
09:03:26 × __minoru__shirae quits (~shiraeesh@109.166.59.124) (Ping timeout: 260 seconds)
09:03:38 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:04:22 ech joins (~user@gateway/tor-sasl/ech)
09:04:54 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:08:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:12:58 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
09:13:32 __minoru__shirae joins (~shiraeesh@109.166.59.124)
09:18:59 dvdp73 joins (59736826@38.104.115.89.rev.vodafone.pt)
09:24:26 × plutoniix quits (~q@cm-119-76-33-123.revip17.asianet.co.th) (Quit: Leaving)
09:24:54 plutoniix joins (~q@cm-119-76-33-123.revip17.asianet.co.th)
09:25:18 esp32_prog joins (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127)
09:27:06 idhugo joins (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net)
09:28:19 mmfood joins (~mmfood@94.234.53.15)
09:34:57 daboss joins (31c7371a@gateway/web/cgi-irc/kiwiirc.com/ip.49.199.55.26)
09:35:30 × Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
09:35:57 Chai-T-Rex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
09:36:37 <daboss> hi everyone just wondering if something like this is code smell pseudo code classA { string user, classB admin } classB { construction(classA blah) }
09:37:07 <daboss> basically classA contains classB and classB refrences classA
09:37:23 <lortabac> daboss: what language is this?
09:37:42 <daboss> just psuedo code
09:37:53 <lortabac> what do you mean by "contains classB"?
09:38:00 <daboss> as a variable
09:38:18 × frozenErebus quits (~frozenEre@37.231.244.249) (Remote host closed the connection)
09:38:55 <nitrix> If you think it's a code smell, then OOP would classify as code smell then. You just described inheritance.
09:39:41 <daboss> its not inheritence just classA contains and instance of classB but classB refrences classA
09:39:47 <daboss> an*
09:40:11 <nitrix> You're doing composition, but then you circle back with a reference, that's literally inheritance.
09:40:24 <daboss> thought i'd ask here since haskell programmers are usually pretty good :)
09:40:44 <daboss> didn't see it that way
09:40:53 × tempate quits (~tempate@unaffiliated/tempate) (Ping timeout: 246 seconds)
09:41:42 <daboss> do you think its bad/
09:42:20 <daboss> i think its not good design a good design would be classC that holds class A and classB
09:42:21 <lortabac> oh ok so "class" is not in the Haskell sense of "type class"?
09:42:35 <daboss> yeah like a class in C#
09:43:25 <nitrix> Bad at what/for what? What are we judging and by what metric?
09:44:41 <daboss> just a matter of opinion that's why I'm asking if you think its bad to have a circilar refrence
09:45:02 <daboss> if it indicates bad design
09:45:35 <nitrix> It indicates _a_ design. I don't know whether the design is useful or not. What problem is it solving?
09:46:57 × Axman6 quits (~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection)
09:46:59 <daboss> it's a server and one of the polling for data methods is classB and classA is the server
09:47:13 Axman6 joins (~Axman6@pdpc/supporter/student/Axman6)
09:47:43 × esp32_prog quits (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) (Remote host closed the connection)
09:49:02 <nitrix> So Server is just the base server, while PollableServer is capable of more (of being polled?) But somehow Server knows that it's within a PollableServer? Why?
09:49:44 × stree quits (~stree@68.36.8.116) (Ping timeout: 252 seconds)
09:50:51 <daboss> server starts and stops the poll but the poll needs most of the variables in server to complete tasks so server is passed as a variable to poll does that make sense?
09:52:49 <nitrix> I'd decouple the twos. Instead of the server starting/stopping the poll, it should emit events/have callbacks that can be registered to run at key moments.
09:53:12 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
09:53:35 <nitrix> Then your pollable server can have the server as its member, and configure it properly to do specific things at specific times, here, calling on of its own methods.
09:53:57 <nitrix> Think higher-order.
09:54:28 <daboss> thanks for the idea
09:55:37 <nitrix> I think breaking that cycle should be the priority. Seems strange for that server to know about polling. You went through the trouble of splitting the two concepts, but they haven't entirely been made independent yet.
09:55:37 × LKoen quits (~LKoen@22.249.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
09:55:50 malumore__ joins (~malumore@151.62.126.111)
09:56:33 <daboss> yeah that's what has been bugging me but finding it hard to come up with a better design
09:56:49 LKoen joins (~LKoen@22.249.88.92.rev.sfr.net)
09:56:56 <nitrix> daboss, This talk is unrelated, but the beginning goes into a similiar scenario and could help you: https://www.youtube.com/watch?v=49dMGC1hM1o
09:57:17 <daboss> I'll check it out thanks
09:57:18 <nitrix> daboss, OOP-like code is plagued full of that. Have a look at let me know :P
09:58:29 × malumore__ quits (~malumore@151.62.126.111) (Remote host closed the connection)
09:58:51 × malumore_ quits (~malumore@151.62.126.111) (Ping timeout: 260 seconds)
09:59:43 malumore joins (~malumore@151.62.126.111)
10:00:32 Rudd0 joins (~Rudd0@185.189.115.103)
10:01:46 unlink_ joins (~unlink2@p57b85a36.dip0.t-ipconnect.de)
10:02:19 stree joins (~stree@68.36.8.116)
10:02:22 kiweun joins (~kiweun@2607:fea8:2a62:9600:4:66e1:4442:741b)
10:02:41 × unlink2 quits (~unlink2@p200300ebcf12ad00ad652fa1ddae7806.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
10:04:31 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:05:51 × Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
10:07:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
10:07:04 × kiweun quits (~kiweun@2607:fea8:2a62:9600:4:66e1:4442:741b) (Ping timeout: 245 seconds)
10:07:08 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
10:07:44 __monty__ joins (~toonn@unaffiliated/toonn)
10:07:56 × unlink_ quits (~unlink2@p57b85a36.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
10:08:58 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
10:09:03 unlink2 joins (~unlink2@p200300ebcf20460060204d274f2fcc0b.dip0.t-ipconnect.de)
10:12:32 unlink_ joins (~unlink2@p200300ebcf20460001326b711b7f17ac.dip0.t-ipconnect.de)
10:12:40 philderbeast joins (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
10:13:23 × unlink2 quits (~unlink2@p200300ebcf20460060204d274f2fcc0b.dip0.t-ipconnect.de) (Remote host closed the connection)
10:13:25 Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
10:13:33 × mmfood quits (~mmfood@94.234.53.15) (Read error: Connection reset by peer)
10:18:35 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
10:20:27 frozenErebus joins (~frozenEre@37.231.244.249)
10:21:30 × thunderrd quits (~thunderrd@183.182.110.191) (Ping timeout: 268 seconds)
10:26:11 × daboss quits (31c7371a@gateway/web/cgi-irc/kiwiirc.com/ip.49.199.55.26) (Quit: Connection closed)
10:31:31 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 252 seconds)
10:32:23 ekrion joins (~ffx1@181.58.39.182)
10:33:04 idhugo_ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
10:34:50 × o1lo01ol1o quits (~o1lo01ol1@bl11-109-140.dsl.telepac.pt) (Remote host closed the connection)
10:36:11 × idhugo quits (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds)
10:38:32 kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49)
10:40:18 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
10:40:45 × michalz quits (~user@185.246.204.123) (Ping timeout: 246 seconds)
10:50:21 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
11:00:25 michalz joins (~user@185.246.204.107)
11:00:35 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:9b9f:be30:ff0e:2bc) (Ping timeout: 260 seconds)
11:01:33 × hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
11:02:10 aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
11:02:57 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
11:03:01 sagax joins (~sagax_nb@213.138.71.146)
11:03:56 hendursaga joins (~weechat@gateway/tor-sasl/hendursaga)
11:07:50 tsaka_ joins (~torstein@athedsl-4519432.home.otenet.gr)
11:12:39 × unlink_ quits (~unlink2@p200300ebcf20460001326b711b7f17ac.dip0.t-ipconnect.de) (Quit: Leaving)
11:13:36 ericsagn1 joins (~ericsagne@2405:6580:0:5100:d754:fcc4:a1d2:1fa1)
11:18:15 kiweun joins (~kiweun@2607:fea8:2a62:9600:d814:7795:cc03:c11e)
11:22:51 × kiweun quits (~kiweun@2607:fea8:2a62:9600:d814:7795:cc03:c11e) (Ping timeout: 250 seconds)
11:25:24 × tsaka_ quits (~torstein@athedsl-4519432.home.otenet.gr) (Quit: Konversation terminated!)
11:28:53 × Feuermagier quits (~Feuermagi@213.178.26.41) (Ping timeout: 252 seconds)
11:29:41 is_null joins (~jpic@pdpc/supporter/professional/is-null)
11:36:24 × plutoniix quits (~q@cm-119-76-33-123.revip17.asianet.co.th) (Quit: Leaving)
11:38:15 × davl quits (~davl@207.154.228.18) (Quit: ...)
11:38:16 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
11:38:38 davl joins (~davl@207.154.228.18)
11:38:49 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
11:44:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: back to writing)
11:49:09 _bin joins (~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net)
11:49:17 × _bin_ quits (~bin@2600:1700:10a1:38d0:219a:3dd:429e:7909) (Ping timeout: 250 seconds)
11:50:48 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
11:51:05 knupfer joins (~Thunderbi@mue-88-130-62-083.dsl.tropolys.de)
11:52:02 mmfood joins (~mmfood@94.234.53.15)
11:52:08 idhugo__ joins (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net)
11:54:45 × idhugo_ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
12:00:04 × pie_ quits (~pie_bnc]@unaffiliated/pie-/x-0787662) (Quit: pie_)
12:02:31 pie_ joins (~pie_bnc]@unaffiliated/pie-/x-0787662)
12:02:46 drbean_ joins (~drbean@TC210-63-209-217.static.apol.com.tw)
12:04:12 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:05:54 malumore_ joins (~malumore@151.62.126.111)
12:06:11 × ekrion quits (~ffx1@181.58.39.182) (Remote host closed the connection)
12:08:32 × knupfer quits (~Thunderbi@mue-88-130-62-083.dsl.tropolys.de) (Ping timeout: 240 seconds)
12:08:42 × malumore quits (~malumore@151.62.126.111) (Ping timeout: 268 seconds)
12:10:06 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
12:17:35 bitmagie joins (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de)
12:18:00 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
12:19:11 × tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 268 seconds)
12:21:43 enoq joins (~textual@194-208-146-143.lampert.tv)
12:22:43 stree joins (~stree@68.36.8.116)
12:26:29 × johannes_ quits (~johannes@b2b-37-24-119-190.unitymedia.biz) (Quit: leaving)
12:27:01 ulidtko joins (~ulidtko@194.54.80.38)
12:27:23 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-mteqqlxhxtokcodc)
12:27:37 carlomagno joins (~cararell@148.87.23.13)
12:28:47 × simplegauss quits (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 260 seconds)
12:29:48 × pbgc quits (~pbgc@a89-152-234-147.cpe.netcabo.pt) (Quit: Computer has gone to sleep.)
12:30:43 × thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 248 seconds)
12:31:06 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
12:33:03 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds)
12:38:16 pbgc joins (~pbgc@a89-152-234-147.cpe.netcabo.pt)
12:40:33 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
12:40:52 <maerwald> brave to come in here and ask OOP questions :p
12:44:11 × ddella___ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
12:45:01 simplegauss joins (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f)
12:45:10 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
12:45:25 × domenkozar[m] quits (domenkozar@gateway/shell/matrix.org/x-rrfutzikoxlnrwmv) (Changing host)
12:45:25 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
12:48:08 nicholasbulka joins (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c)
12:48:09 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 268 seconds)
12:48:15 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
12:49:11 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
12:51:18 Tario joins (~Tario@201.192.165.173)
12:52:45 tmciver joins (~tmciver@cpe-172-101-46-34.maine.res.rr.com)
12:55:33 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
12:56:08 thonkpod joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
12:56:56 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Remote host closed the connection)
12:57:14 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
12:58:42 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
12:59:04 knupfer joins (~Thunderbi@dynamic-046-114-150-151.46.114.pool.telefonica.de)
12:59:11 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
12:59:29 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
13:01:27 × simplegauss quits (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 260 seconds)
13:01:37 × knupfer quits (~Thunderbi@dynamic-046-114-150-151.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
13:02:23 × thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 260 seconds)
13:06:07 × mmfood quits (~mmfood@94.234.53.15) (Ping timeout: 240 seconds)
13:06:23 urodna joins (~urodna@unaffiliated/urodna)
13:10:20 mmfood joins (~mmfood@185.176.246.69)
13:12:15 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
13:12:31 mmfood_1 joins (~mmfood@185.176.246.118)
13:15:29 × mmfood quits (~mmfood@185.176.246.69) (Ping timeout: 265 seconds)
13:16:52 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
13:18:55 kiweun joins (~kiweun@2607:fea8:2a62:9600:5cb2:e875:5c51:8e43)
13:20:59 simplegauss joins (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f)
13:22:58 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
13:23:45 × kiweun quits (~kiweun@2607:fea8:2a62:9600:5cb2:e875:5c51:8e43) (Ping timeout: 250 seconds)
13:27:06 thonkpod joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
13:28:30 frozenErebus joins (~frozenEre@37.231.244.249)
13:33:51 gaff joins (~user@49.207.195.160)
13:34:45 xkapastel joins (uid17782@gateway/web/irccloud.com/x-wfrommuaxtjqnxrn)
13:34:52 mnrmnaugh is now known as awk
13:34:57 <ulidtko> what's the way to install a package in both .a and .so versions?
13:35:08 <ulidtko> I keep forgetting the incantation for that
13:35:23 <ulidtko> -static -dynamic-too flag to GHC or what?
13:35:26 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
13:36:20 <gaff> i want to call a polymorphic function, say f :: Ord a => [a] -> [a] -> [a] with different type annotations in the same code (like let result :: [Int] = f [1..3] [5..10] in .... is there a way to do it?
13:37:08 <ulidtko> gaff, yes, use {-# LANGUAGE ScopedTypeVariables #-} then you use type specialization in any subexpression
13:37:34 <ulidtko> let result = f [1..3] [5..10] :: [Int] would work
13:37:47 <gaff> ulidtko: what i mean is that i want to call f with [Int], then [Char], etc.
13:37:53 <ulidtko> yes understood
13:38:16 Lycurgus joins (~niemand@98.4.118.65)
13:38:54 <gaff> the problem i found is that once assign a type annotation, the compiler infers that type. you can change the type in the next call to f.
13:39:16 <gaff> you can not change the type anymore
13:39:28 <ulidtko> you can
13:39:34 <ulidtko> let me show, just a sec
13:39:39 <gaff> ok
13:39:44 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 260 seconds)
13:39:57 Valion joins (~Valion@api.ivido.nl)
13:41:24 <ulidtko> gaff, https://i.imgur.com/QjBQRy1.png
13:41:28 <gaff> ok
13:43:52 <gaff> ok, thank you. i remember trying the same thing but for some reason the comiler growled. let me try it out again with your idea.
13:44:12 tanuki joins (~quassel@173.168.178.1)
13:44:13 <gaff> ulidtko: thanks. i will get back if i see any more issues.
13:44:48 proofofkeags joins (~proofofke@97-118-239-55.hlrn.qwest.net)
13:45:37 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
13:46:17 wavemode joins (~wavemode@097-070-075-143.res.spectrum.com)
13:46:20 awk is now known as mnrmnaugh
13:46:24 × wavemode quits (~wavemode@097-070-075-143.res.spectrum.com) (Remote host closed the connection)
13:46:39 timCF joins (~i.tkachuk@254-149-20-81.sta.estpak.ee)
13:47:52 Sgeo joins (~Sgeo@ool-18b9875e.dyn.optonline.net)
13:49:20 × drbean_ quits (~drbean@TC210-63-209-217.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
13:49:26 <pjb> Hey I have an idea! Wouldn't it be simplier if the function f could take sequences of any type? (defun f (x y) (concatenate 'list x y)) (list (f '(1 2 3) '(4 5 6)) (f '(1.1 2.2 3.3) '(4.4 5.5 6.6))) #| --> ((1 2 3 4 5 6) (1.1 2.2 3.3 4.4 5.5 6.6)) |# /just asking
13:49:48 <timCF> Hello! Does anybody know "eager" equivalent of `ExceptT e m a` which will not stop computation in case of Left, but will continue accumulating errors in some sort of monoid. Basically I want transformer like `Semigroup e => ValidationT e m a`
13:51:04 <ulidtko> WriterT?..
13:51:33 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
13:52:24 × bitmagie quits (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de) (Quit: bitmagie)
13:53:25 <geekosaur> http://hackage.haskell.org/package/monad-chronicle ?
13:54:36 <maerwald> yes, chronicle/These
13:54:58 zmijunkie joins (~Adium@87.122.222.91)
13:55:50 <timCF> geekosaur: maerwald: thanks a lot guys! This kind of stuff I was not able to learn from "Learn You a Haskell" :)
13:56:12 × zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 240 seconds)
13:56:45 <xsperry> > let f = (<>) in (f [1, 2, 3] [4, 5, 6], f [1.1, 2.2, 3.3] [4.4, 5.5, 6.6]) -- pjb
13:56:47 <lambdabot> ([1,2,3,4,5,6],[1.1,2.2,3.3,4.4,5.5,6.6])
13:57:14 <gaff> ulidtko: can you type annotate the function itself? i mean do something like this: g (f :: [Int] -> [Int]), and then within g, you have g f = q f. likewise, do g (f :: [Char] -> [Char]), g f = q f. here q passes the right type of data to f based on its type. this does not seem possible.
13:57:15 <pjb> Ah nice. Then you don't need to specify the type.
13:58:31 <ulidtko> gaff, you can't pattern-match on types in haskell. your [Int] -> [Int] or [Char] -> [Char] must go into f's *signature*, not implementation.
13:59:04 <gaff> ulidtko: i see.
13:59:33 <ulidtko> perhaps if you uncovered what you're trying to achieve, there could be a way
13:59:50 HannaM joins (~quassel@p54849510.dip0.t-ipconnect.de)
14:00:02 thblt joins (~thblt@unaffiliated/thblt)
14:00:43 <gaff> basiccally, i am running quickcheck on a sort function, and i want to sort different types that are instances of Ord, like Char, Int, etc
14:01:35 <ulidtko> you'd need to list out all the types you want to test on explicitly
14:01:53 <gaff> right now i am just sort [Int]. of course i can manually go in there type a different type annotation, but that is pain. i was wondering if there was a way to do it for different types.
14:03:21 <xsperry> pjb, it can be also used with Maybe a, where a is a semigroup
14:03:29 <xsperry> > Just "foo" <> Just "bar"
14:03:31 <lambdabot> Just "foobar"
14:03:37 <xsperry> or even with functions that return Semigroup, ie:
14:04:10 <gaff> ulidtko: when you say you can't pattern match on type signatures -- is that because types are determined at compile time?
14:04:11 <xsperry> > sortBy (comparing length <> comparing id) (words "a aa b bb c cc z")
14:04:13 <lambdabot> ["a","b","c","z","aa","bb","cc"]
14:04:41 zardoz2 joins (~bc8134e3@217.29.117.252)
14:05:12 jao joins (~jao@pdpc/supporter/professional/jao)
14:05:36 <thblt> I have a (finite) bunch of objects that link to each other (let's say books and their authors). Is it reasonable/idiomatic to store the objects in some sort of indexed container (eg `Map Int Object`) and have those links represented as indexes? Eg newtype ObjectId = Int; data Book = Book { author :: Int, title :: String}? (The actual model is more complex, just wanted to know if it makes sense)
14:06:01 × kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
14:07:44 <gaff> ulidtko: i see (on your earlier comment that i need to list out all the types i need to test out explicitly)
14:08:44 Sheilong joins (uid293653@gateway/web/irccloud.com/x-wmcvcprqxoaligba)
14:08:47 × immae quits (immaematri@gateway/shell/matrix.org/x-dzpquvhgzhzvsdfa) (Quit: issued !quit command)
14:09:35 <ulidtko> gaff, correct. for the same reason it's not easy (to my knowledge) to have a magic_generator :: Ord a => Gen a which'd spew out generators of various types with Arbitrary and Ord instances. Might be doable, but not easy. Definitely harder than listing those types you care about the most -- and trusting parametric polymorphism to not produce behaviors dependent on specific types.
14:10:48 <ulidtko> in other words, if your sorting function under test is parametric in Ord a, than ensuring it works for Ints will ensure it works for any other type
14:11:45 immae joins (~immae@2a01:4f8:141:53e7::)
14:12:03 <gaff> ulidtko: coorect, absolutely. so you are saying there is no need to test for other types, if things work well for say Int?
14:12:51 <gaff> sort function i am testing is parametric in Ord a, by the way.
14:13:01 acidjnk_new2 joins (~acidjnk@p200300d0c72b9524d9e45372e00f3038.dip0.t-ipconnect.de)
14:13:07 <ulidtko> that's a so-called "free theorem" I think. f :: Ord a => [a] -> [a] -> [a] *isn't allowed* to know what a is.
14:13:20 <gaff> i see
14:13:24 <ulidtko> so if it works on Int, it must work on anything else. yeah
14:13:41 <gaff> ulidtko: great. i am relieved.
14:14:20 <ulidtko> gaff, nice, glad to help!
14:14:33 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
14:14:34 × acidjnk_new quits (~acidjnk@p200300d0c72b95883ddaf449c9d144e9.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
14:14:37 × proofofkeags quits (~proofofke@97-118-239-55.hlrn.qwest.net) (Ping timeout: 252 seconds)
14:16:36 waleee-cl joins (uid373333@gateway/web/irccloud.com/x-yppqkxzvcrpccgyz)
14:16:58 <gaff> also, one clarification: when you say you can't match on types, what exactly are you implying? are you saying that something like this can not be done, for example: Case x of {A -> g (f :: [Int] -> [Int]), B -> g (f :: [Char] -> [Char]) }. this can not be done.
14:17:33 × timCF quits (~i.tkachuk@254-149-20-81.sta.estpak.ee) (Ping timeout: 252 seconds)
14:18:09 <ulidtko> this usage isn't pattern-matching on f
14:18:46 <gaff> ulidtko: but the usage i describe will not compile
14:18:55 <ulidtko> yes
14:19:04 <ulidtko> oh wait it could
14:19:12 <ulidtko> but it inspects x -- which must be the same type in both case arms
14:19:27 <ulidtko> I guess what I'm saying is, not a good example
14:20:31 ystael joins (~ystael@209.6.50.55)
14:20:31 <gaff> ulidtko: yeah, because it isn't the same type on both arms, it won't compile. and it doesn't.
14:20:53 × mmfood_1 quits (~mmfood@185.176.246.118) (Quit: Leaving)
14:21:16 <gaff> i can not imagine any other way to do it.
14:21:18 rj joins (~x@gateway/tor-sasl/rj)
14:21:43 <ulidtko> you can use type-families to "conceptually" pattern-match on types. that wouldn't look like a case {} expression though
14:22:06 <gaff> i see
14:23:36 <gaff> so as i understood from what you said earlier, the example i have described is not exactly pattern matching on types?
14:24:14 × Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt)
14:28:48 <ulidtko> that's right. it's pattern-match on variable x, of sum-type with constructors A and B
14:29:14 <ulidtko> (not on two functions named f with different signatures)
14:29:55 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
14:30:32 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
14:31:00 <ulidtko> (you could as well say, two different specializations of polymorphic f)
14:34:45 kiweun joins (~kiweun@2607:fea8:2a62:9600:8cec:67b2:253b:dec)
14:34:46 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:35:49 <gaff> ulidtko: i see
14:36:18 pengjiz joins (~user@2601:547:902:6d00::2)
14:36:54 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-mteqqlxhxtokcodc) (Quit: Connection closed for inactivity)
14:37:18 <dexterfoo> geekosaur: I tried it and it doesn't work :/
14:37:24 <gaff> ulidtko: and that can be done (the case business) because the types in both arms of the case do not match.
14:37:55 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
14:38:19 <gaff> sorry, i meant, that can not be done.
14:39:09 × kiweun quits (~kiweun@2607:fea8:2a62:9600:8cec:67b2:253b:dec) (Ping timeout: 250 seconds)
14:39:43 Berndt joins (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de)
14:39:53 × Berndt quits (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de) (Quit: WeeChat 3.1)
14:40:10 Berndt joins (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de)
14:42:25 Berndt parts (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de) ()
14:42:53 slack1256 joins (~slack1256@200-112-79-247.baf.movistar.cl)
14:43:54 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
14:44:13 stree joins (~stree@68.36.8.116)
14:44:18 <ulidtko> gaff, well... not exactly. You _can_ have different types in case arms, e.g. main = case bool_variable of {True -> print 3.14; False -> print ([1..4] :: [Int])}. You cannot have different _return types_ so to say, the expressions in case arms must unify; this won't work: print (case bool_variable of {True -> 3.14; False -> ([1..4] :: [Int])})
14:44:27 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
14:44:41 <slack1256> My failing HLS terminates on emacs with the following message: "exited with status exit(check corresponding stderr buffer for details" but I don't see any emacs buffer with info. Does anyone have any idea where to find it?
14:45:05 <slack1256> Nevermind, found it.
14:50:00 <gaff> ulidtko: correct. what confuses me is in the example i described -- g (f :: [Int] -> [Int]), g (f :: [Char] -> [Char]), g is polymorphic, having the type signature g :: Ord a => ([a] -> [a}) -> IO (), yet the compiler complains, even though both arms of the case statement return IO (). i couldn't understand that.
14:51:03 <ulidtko> gaff, can you post a self-contained example? i think that usage should be fine, it's likely you're missing something
14:51:15 <gaff> ok
14:52:12 × idhugo__ quits (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
14:52:46 <joel135> I was looking at some purescript docs and saw "setPersonPostcode pc p = p { address { postCode = pc } }". First question: Does haskell have the same syntax feature? Second question: Now imagine that there are more clauses after address and after postCode. Can this be achieved with a haskell lens library?
14:53:39 <ulidtko> joel135, yes and yes. see "record update syntax", lens can do it in a different way
14:59:23 <geekosaur> dexterfoo, sorry, what is the context of this? I've lost it
15:00:14 <nicholasbulka> how might I write a function that requires subtracting 1 on every second iteration?
15:00:17 <nicholasbulka> for example
15:00:34 <nicholasbulka> next y n = reverse $ transpose (chunks n $ concat $ tail y)
15:01:12 <nicholasbulka> next (next (next (next (next (next (next y 4 ) 3 ) 3 ) 2) 2 ) 1) 1
15:02:03 <nicholasbulka> I'm basically flipping rotating a matrix to deconstruct it in a spiral fashion.
15:02:40 <joel135> ulidtko: I can't find how the syntax works recursively https://paste.tomsmeding.com/UkviUQv0
15:03:19 <joel135> For the lens approach, could you show me / link to an example like that?
15:05:35 × bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Read error: Connection reset by peer)
15:05:56 bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de)
15:06:59 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:4afc:980e:3b22:8734) (Ping timeout: 260 seconds)
15:08:40 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
15:09:57 zmijunkie1 joins (~Adium@109.90.32.89)
15:11:50 × zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 268 seconds)
15:13:35 × jespada quits (~jespada@87.74.37.248) (Quit: Leaving)
15:14:32 ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
15:15:09 <gaff> ulidtko: see https://pastebin.com/SXSDri7q for an example
15:17:31 × enoq quits (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
15:20:47 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds)
15:21:29 idhugo__ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
15:21:29 jgt joins (~jgt@78.162.43.217)
15:21:56 aerona joins (~aerona@2600:6c54:4600:f300:79a1:e32c:5e1f:ee48)
15:24:34 <gaff> that code i pasted doesn't compile.
15:24:43 <gaff> i am not exactly clear why
15:25:36 <gaff> also, i there anyother way to rewrite it?
15:25:50 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
15:26:02 <gaff> is there any other way to rewrite it?
15:26:49 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
15:28:56 Deide joins (~Deide@217.155.19.23)
15:30:25 × Sarcarean quits (4582bfd4@h69-130-191-212.bendor.broadband.dynamic.tds.net) (Quit: Connection closed)
15:31:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:31:28 <gaff> ulidtko: the stuff i pasted at https://pastebin.com/SXSDri7q pretty much simulates the problem i have described earlier.
15:32:46 <joel135> gaff: I may be wrong, but isn't this a Rank-N types issue?
15:33:39 zmijunkie joins (~Adium@87.122.222.91)
15:33:42 <gaff> joel135: i am not sure what you are saying.
15:34:11 <joel135> let me see if i can solve it with that idea, hold on
15:35:16 <gaff> basically, once the type is set in one case branch, the compiler doesn't allow another type annotation in a different branch of the case expression, although both branches return IO ().
15:35:40 × zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 252 seconds)
15:36:11 <ulidtko> indeed Rank-N types, I can't seem to solve it... "GHC doesn't yet support impredicative polymorphism"
15:36:36 <gaff> ulidtko: what does it mean really?
15:37:19 <ulidtko> gaff, would should be the type for this value? [(0,f),(1,h)]
15:37:35 <ulidtko> it's a heterogeneous list, see
15:38:04 <gaff> f and h have same type signatures
15:38:09 nineonine joins (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net)
15:38:38 <ulidtko> you're right, but the compiler disagrees... hmmm
15:38:57 × nineonine quits (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) (Remote host closed the connection)
15:39:37 nineonine joins (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789)
15:39:40 <gaff> strange situation, really
15:39:46 × nineonine quits (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) (Remote host closed the connection)
15:40:00 nineonine joins (~nineonine@2604:3d08:7785:9600:8da3:57c2:b9e6:3845)
15:40:02 <ulidtko> am indeed puzzled
15:40:36 <joel135> Rank-N types here means that while f and h have the same type signatures, the type variable 'a' is instantiated at the point where f and h are used as input. That is, the function which accepts f and h does not get to choose a internally.
15:41:04 <gaff> ulidtko: here is why the compiler disagrees. the compiler infers the type from the first branch, and then it says the second branch doesn't match.
15:41:14 <joel135> ^
15:41:30 <ulidtko> yea, some appropriately-placed forall's should get this working
15:41:43 <joel135> yes i think so too
15:42:35 <gaff> forall placed where? i am not sure ...
15:44:02 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
15:44:09 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:d754:fcc4:a1d2:1fa1) (Ping timeout: 245 seconds)
15:44:12 <gaff> ulidtko: i think it has something to do with this stuff being within mapM_?
15:44:39 <joel135> i am getting "GHC doesn't yet support impredicative polymorphism" too now :(
15:45:06 <ulidtko> yes the g and h must get packed into a single homogeneous list (implying same types)
15:45:35 <gaff> i am using ghc 8.10.4. no such error for me.
15:45:41 <joel135> (I tried this way of analysing the problem https://paste.tomsmeding.com/HNa0DhEb)
15:46:44 × othe1 quits (~othe@195.140.213.38) (Remote host closed the connection)
15:46:46 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
15:46:51 <joel135> related https://stackoverflow.com/questions/56448814/why-is-impredicative-polymorphism-allowed-only-for-functions-in-haskell
15:47:04 × acidjnk_new2 quits (~acidjnk@p200300d0c72b9524d9e45372e00f3038.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
15:48:08 <ulidtko> moving those to a top-level binding inputs = [(0, f), (1, h)] + NoMonomorphismRestriction moves to the next error
15:48:09 <nicholasbulka> I can't seem to figure out how to get exhaustive patterns for this recursion definition:
15:48:22 <nicholasbulka> spiral [] = []
15:48:22 <nicholasbulka> spiral (x:xs) = x ++ spiral(reverse $ Lst.transpose (chunks (length xs) $ concat xs))
15:48:30 <nicholasbulka> takes a [[Int]] -> [Int}
15:48:32 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds)
15:48:41 <c_wraith> joel135: note that the version of GHC currently in pre-release testing makes ImpredicativePolymorphism actually work better
15:49:03 × nineonine quits (~nineonine@2604:3d08:7785:9600:8da3:57c2:b9e6:3845) (Remote host closed the connection)
15:49:11 × landonf quits (landonf@mac68k.info) (Excess Flood)
15:49:15 <joel135> i see, i am only using 8.8.4
15:49:28 <gaff> joel135: i think what you are referrring to is another type of problem, where the forall is not placed outermost in the type signature.
15:49:43 <joel135> isn't it the same problem?
15:50:24 kiweun joins (~kiweun@2607:fea8:2a62:9600:85b6:a1c5:df8:4090)
15:50:46 <nut> Is it feasible to create wrappers of the entire Lapack, Blas, gsl etc. with inline-c ? If so, we can create a Pandas-like lib in Haskell, wouldn't it be nice?
15:50:56 landonf joins (landonf@mac68k.info)
15:51:10 <gaff> no, as i understand it, f :: forall a. Ord a => [a] -> [a] is different from f :: [forall a. Ord a => a -> a]
15:51:31 <ulidtko> it is different
15:51:31 <joel135> yes that's true
15:51:45 <geekosaur> nicholasbulka, what pattern does it claim isn't covered?
15:51:50 <joel135> the stackoverflow link also says so, i see
15:51:59 frozenErebus joins (~frozenEre@37.231.244.249)
15:53:09 <nicholasbulka> where could I find that in ghci
15:53:21 <nicholasbulka> I don't know is the short of it
15:53:48 <geekosaur> if you are getting an inexhaustive patterns warning it should also say which patterns it thinks aren't included
15:54:03 <geekosaur> oh, ghci
15:54:20 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:54:20 <geekosaur> you need to put both definitions on the same line, separated by a semicolon
15:54:34 <geekosaur> otherwise ghci doesn't know they go together
15:54:45 <monochrom> In the long run you should use an editor, a filename, and :load
15:54:59 × kiweun quits (~kiweun@2607:fea8:2a62:9600:85b6:a1c5:df8:4090) (Ping timeout: 245 seconds)
15:55:12 <nicholasbulka> right
15:55:13 <nicholasbulka> ok
15:55:24 <ulidtko> or use the :{ :} multiline braces
15:55:30 <monochrom> By the time you have 3 lines of code and after entering the 3rd line you realize you need to change the 1st line you've lost.
15:55:46 <monochrom> This is why I refuse to bring up the :{ :} feature.
15:56:00 <monochrom> It encourages the wrong habits.
15:56:09 <joel135> ulidtko gaff: solved it https://paste.tomsmeding.com/qkTRpcFx
15:56:10 <ulidtko> fair enough, it's a crappy workaround
15:56:11 <monochrom> Entering your 100-line program at the prompt?
15:56:17 <c_wraith> yeah, if you use semicolons you are still on the same line and can edit it. :P
15:56:32 <c_wraith> and only 100? you're quitting so early!
15:56:33 <ulidtko> joel135, ahhh yes. nice!
15:56:48 <joel135> the stackoverflow link had the answer
15:56:53 <monochrom> Do people enter shell scripts at the shell prompt just because they can?
15:57:06 <c_wraith> sometimes, when it's appropriate
15:57:11 ericsagn1 joins (~ericsagne@2405:6580:0:5100:7b81:a13d:7f4a:d3e9)
15:57:20 <geekosaur> ^
15:58:28 <ulidtko> joel135, so the trick is to make it clear where the dictionary packing & unpacking happens. instructive, TIL
15:58:42 knupfer joins (~Thunderbi@200116b82b9c4f0069e2a2a836aa8e3f.dip.versatel-1u1.de)
15:58:45 <nicholasbulka> that worked; thank you ;)
15:58:58 <monochrom> Well, I am using the fuzzy divide that, e.g., when I enter a for-loop and the body is one short command, e.g., "for i in * ; do rm $i.c; done", it doesn't count as a script, it's just a long command.
15:59:07 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
15:59:44 <gaff> joel135: it works ...
16:00:10 ChrisMarquardt joins (~ChrisMarq@185.204.1.185)
16:00:12 <joel135> You have to modularize your code, it's a feature! :-)
16:00:21 <gaff> but i think there might be a cleaner way, though i am not sure
16:00:26 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
16:00:34 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:00:46 <DigitalKiwi> surely i'm not the only person who regularly writes 1 line bash scripts that end up being 15 after refactoring
16:00:58 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
16:01:14 <geekosaur> no, but I also know how to use history to retrieve that line or so into a file to flesh it out
16:01:23 <gaff> joel135: thanks much, by the way.
16:01:33 <joel135> i learned as well :)
16:01:40 <DigitalKiwi> yeah that's what i do
16:01:49 <gaff> yeah
16:02:15 <ulidtko> monochrom, you could also set EDITOR and use alt-e in fish/zsh, ^Xe in bash, and so edit the multi-line command "on the fly" without touching a file
16:02:22 <c_wraith> I tend to write a lot of code specifically to test my answers for questions. A lot of the time I can get away with long single lines in ghci to verify the parts I want to double-check
16:03:08 <monochrom> I do that too.
16:03:16 <ulidtko> occasionally useful, isn't it
16:03:44 <c_wraith> anything I want to *use* I keep in a file. But sometimes that's not what I'm doing. :)
16:03:51 proofofkeags joins (~proofofke@205.209.28.54)
16:05:19 <ulidtko> joel135, getting back to your record syntax inquiry. u{b=Baz{c=44}} -- this works, you've missed an '='
16:05:36 <joel135> oh i'll try that, thanks
16:06:34 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
16:06:44 <ulidtko> there's lens-tutorial package with plenty examples, also many recorded talks, I don't know any better materials for lens. Too dumb yet for that profunctor stuff :(
16:07:09 <joel135> `w = u {b = {c = 44}}' has a parse error
16:07:21 <joel135> oh i got it
16:08:47 <joel135> now i get this https://paste.tomsmeding.com/rXWA9fs4
16:09:02 <joel135> maybe haskell doesn't support it after all?
16:09:28 <nicholasbulka> I'm closer now, with the following function:
16:09:37 <geekosaur> it doesn't support the shorthand there
16:09:56 <nicholasbulka> spiral [] = [] ; spiral (x:xs) = x ++ spiral(reverse $ transpose (chunks (length (xs !! 0) ) $ concat xs))
16:10:06 <nicholasbulka> but now I am getting this error
16:10:08 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
16:10:21 <nicholasbulka> spiral [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
16:10:21 <nicholasbulka> [1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10*** Exception: Prelude.!!: index too large
16:10:50 <joel135> i think i'll look into lens-tutorial
16:11:02 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
16:11:02 <ulidtko> joel135, I'll refer to SO, the accepted answer covers pretty well https://stackoverflow.com/questions/7365425/is-there-a-haskell-idiom-for-updating-a-nested-data-structure
16:11:09 zaquest joins (~notzaques@5.128.210.178)
16:11:23 <nicholasbulka> it is seemingly doing the right thing but fails when indexing that xs !! 0 I believe ... I can't seem to get the pattern matching right for the degenerate case
16:11:24 <ulidtko> though I'm worried if GADTs play well with lens
16:11:51 <c_wraith> in general they don't
16:12:10 <c_wraith> in the same way record accessors don't play well with GADTs
16:13:13 <nicholasbulka> trying to add ; spiral (x:[]) = [] gives me a pattern redundancy error
16:13:41 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
16:13:50 <geekosaur> move that before the spiral x:xs case
16:14:01 <joel135> i see
16:14:01 <nicholasbulka> ah yes
16:14:11 <nicholasbulka> perfect! thanks a lot
16:17:04 × gaff quits (~user@49.207.195.160) (Ping timeout: 245 seconds)
16:19:06 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com)
16:19:06 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
16:19:06 dibblego joins (~dibblego@haskell/developer/dibblego)
16:19:15 jgt joins (~jgt@78.162.43.217)
16:21:03 paravida joins (~mychateau@71.215.110.96)
16:21:58 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:b8c4:49ae:2ce4:1808)
16:22:00 × MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
16:22:34 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:22:40 MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru)
16:25:11 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds)
16:25:41 nineonine joins (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789)
16:28:48 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
16:29:28 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
16:32:15 × nineonine quits (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) (Ping timeout: 250 seconds)
16:33:08 Guest_22 joins (4bb93e3c@cpe-75-185-62-60.columbus.res.rr.com)
16:33:24 gitgood joins (~gitgood@80-44-9-246.dynamic.dsl.as9105.com)
16:34:34 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
16:38:25 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:40:28 howdoi joins (uid224@gateway/web/irccloud.com/x-yrhcwqdqfhhzcxcx)
16:45:01 nineonine joins (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789)
16:47:46 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:47:55 letmein joins (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1)
16:48:12 × guest7682358928 quits (c9dbea7b@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.123) (Quit: Ping timeout (120 seconds))
16:48:43 <jonathanx> is it possible to use mixins in stack? I want to use Relude, and would prefer not to switch to cabal
16:49:23 <carbolymer> What's mixin?
16:50:06 <yushyin> jonathanx: mixins are the reason I switched back to cabal
16:51:04 <yushyin> carbolymer: https://cabal.readthedocs.io/en/3.4/cabal-package.html?#pkg-field-mixins
16:51:34 <monochrom> aka backpack
16:52:27 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
16:54:31 <monochrom> I learned backpack from the backpack thesis: https://github.com/ezyang/thesis/releases
16:54:49 <monochrom> Wait I helped him fix typoes?!
16:55:15 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
16:55:29 jgt joins (~jgt@78.162.43.217)
16:57:46 <lechner> Hi, I realize Purescript isn't Haskell but I use both and have a question about Applicative fuctors. Why please can the code in the link not be written as port <- parseInt $ fromMaybe "8080" $ lookupEnv "PORT" ? Is it only because I am already in the Effect monad? Sorry about the newbie question, and thanks!
16:57:48 <lechner> https://github.com/purescript-express/purescript-express/blob/master/examples/src/ToDoServer.purs#L179
16:57:57 <lechner> functors
16:58:57 <Uniaika> lechner: yes, <$> is fmap
16:59:16 <Uniaika> and the value you want to operate on (with fromMaybe, parseInt), is wrapped in a functor
16:59:29 <monochrom> <<< is function composition, "."
16:59:35 <Uniaika> and do you apply functions to values that are in Functors… ? with fmap :)
17:00:22 × bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Ping timeout: 252 seconds)
17:00:22 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 268 seconds)
17:00:45 <monochrom> Generally you have to respect types as a minimum requirement.
17:01:30 <monochrom> If you have f::X->Y and m :: Effect X, then "f m" makes no sense, no matter how intuitive it is to you.
17:01:35 <int-e> . o O ( "That is *Sir* Type to you, scumbag!" )
17:01:43 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
17:02:04 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
17:02:25 × Guest_22 quits (4bb93e3c@cpe-75-185-62-60.columbus.res.rr.com) (Quit: Connection closed)
17:02:27 <monochrom> "fmap f m" is legal. Still, I would encourage you to ask yourself do you really know that it does what you want.
17:03:35 bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de)
17:03:57 <monochrom> In this particular example, I can be talked into not using fmap aka <$>.
17:04:13 <monochrom> portString <- lookupEnv "PORT"
17:04:37 <monochrom> let port = parseInt (fromMaybe "8080" portString)
17:04:44 <monochrom> I can be talked into that.
17:05:02 <monochrom> But I will not be talked into $ $ $ $ $
17:05:27 stree joins (~stree@68.36.8.116)
17:05:30 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
17:05:43 <lechner> <- lifts the Effect, so we can use the more basic operators, right?
17:06:00 jgt joins (~jgt@78.162.43.217)
17:06:07 <monochrom> I don't know what "lift" means for this. Especially for this.
17:06:12 kiweun joins (~kiweun@2607:fea8:2a62:9600:d8d7:245f:2a72:5f1b)
17:06:23 × kuribas quits (~user@ptr-25vy0i7u5k5fyxhyy6l.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
17:06:45 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
17:06:47 <monochrom> But I understand: lookupEnv "PORT" >>= \portString -> ...
17:07:00 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
17:07:22 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
17:08:17 <monochrom> Even for "fmap f m", I wouldn't say "lift".
17:08:51 <monochrom> I know lots of people say "lift". I think it's because they're too lazy to really ask themselve what it would mean.
17:09:16 <lechner> what does it mean, please?
17:09:49 <monochrom> Why is "Effect X" higher than "X", such that fmap is "lifting" from X to "Effect X"? Why isn't it demoting?
17:09:58 <monochrom> or lateral side-moving?
17:10:49 × kiweun quits (~kiweun@2607:fea8:2a62:9600:d8d7:245f:2a72:5f1b) (Ping timeout: 245 seconds)
17:10:51 <monochrom> "fmap f m" has the same effectful behaviour as "m", but the answer it gives is transformed by f.
17:10:51 <lechner> fwiw, i actually mant "lift off" in the sense that it leaves X
17:11:19 <lechner> is there a way I could use an integer port as default (which would require parseString to pass through a Maybe)?
17:15:16 <monochrom> Yes but it requires knowing that Maybe is a Functor instance too, that it also has its fmap.
17:15:39 <monochrom> So now you have two fmap's, one for Effect, the other for Maybe. I don't know whether it's cute or annoying to you.
17:15:45 vaibhavsagar joins (vaibhavsag@gateway/shell/matrix.org/x-nutshnhfgisxgkne)
17:15:46 <monochrom> But it can go like this:
17:17:35 × idhugo__ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds)
17:19:15 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
17:19:24 <lechner> i still like your first alternative the best. with <<< being function composition, could it also have been written as let port = (parseInt . fromMaybe) "8080" portString ?
17:19:34 <monochrom> fmap (fromMaybe 8080 . fmap parseInt) lookupEnv "PORT"
17:19:39 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
17:19:56 <monochrom> err
17:20:00 <monochrom> fmap (fromMaybe 8080 . fmap parseInt) (lookupEnv "PORT")
17:20:34 <lechner> that's getting a bit too complicated for me
17:21:03 obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl)
17:21:11 nickmt joins (5b0624c1@p5b0624c1.dip0.t-ipconnect.de)
17:21:23 ubert joins (~Thunderbi@91.141.3.200.wireless.dyn.drei.com)
17:22:41 <lechner> i think i meant to write that instead just now let port = (parseInt . fromMaybe "8080") portString ?
17:23:25 <monochrom> What does algebra say which one it is?
17:23:41 <monochrom> Not intuition. Algebra.
17:23:45 ADG1089 joins (~aditya@171.76.29.233)
17:23:55 × ADG1089 quits (~aditya@171.76.29.233) (Client Quit)
17:24:01 <nickmt> If f and g are functors I find it natural to think that `fmap (fmap id) x == id` for some `x :: g (f a)`. I'd like to prove but it seems so obvious that i don't know how start. Any hints?
17:24:19 <monochrom> fmap id = id.
17:25:07 × bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Ping timeout: 260 seconds)
17:27:02 × ubert quits (~Thunderbi@91.141.3.200.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
17:28:16 <nickmt> if  `x` is a concrete value, it's easy, e.g. `fmap (fmap id) [Just 3]` then I have `[fmap id (Just 3)]` and then [Just (id 3)] and finally [Just 3]. But I don't know how to do it if I don't know anything about the inner structure of `x` .
17:29:20 <monochrom> fmap id = id.
17:30:35 <nut> my cabal project depends on a c header file inside the cabal folder. How can I add it in the cabal file?
17:31:04 <monochrom> Some field along the line of "c-sources"?
17:31:15 <monochrom> Do you know the URL to the cabal user's guide?
17:31:16 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
17:31:19 <nut> c-sources: can't add header file
17:31:51 <monochrom> What is "the cabal folder"?
17:32:18 Varis joins (~Tadas@unaffiliated/varis)
17:32:19 <nut> It's the cabal project folder
17:32:30 <nickmt> @monochrom I see. Because f is a functor and the first law holds I can reduce `fmap (fmap id)` to `fmap id` and then do the same thing again because g is also a functor so `fmap id = id` . Is that it?
17:32:30 <lambdabot> Unknown command, try @list
17:32:35 <monochrom> The source code of Cabal itself?
17:32:48 <monochrom> Yes nickmt
17:33:01 <nut> I am using the inline-c package for my project and i put all c code inside a c header file
17:33:02 <nickmt> thank you
17:33:21 <lechner> monochrom: thanks here also!
17:33:33 <sclv> nut: take a look at the bytestring cabal file for a good example of how to do this stuff
17:33:33 <sclv> https://hackage.haskell.org/package/bytestring-0.11.1.0/bytestring.cabal
17:34:03 <sclv> note include-dirs, includes, and install-includes
17:34:23 <nut> sclv: great!
17:34:28 <nut> found it
17:34:38 <monochrom> So no one wants to see the user's guidee.
17:34:42 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) (Remote host closed the connection)
17:35:35 <sclv> that would be another way to find this info yes: https://cabal.readthedocs.io/en/3.4/search.html?q=header&check_keywords=yes&area=default#
17:35:49 <sclv> i find working by example and then checking docs to ensure i understand things to be more comfortable personally
17:36:06 <enikar> monochrom: Indeed. The cabal users guide is the place to look for this question ;)
17:36:11 × coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 260 seconds)
17:37:42 <monochrom> Most people stop after "by example" before "checking docs".
17:37:50 <monochrom> John Searle would be proud.
17:39:28 <slack1256> On `wreq` is there any option so that "301 moved permanently" are followed automatically? I am using `head_`.
17:39:49 <enikar> monochrom: bad.
17:40:14 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
17:41:26 <maerwald> who is responsible for haskell.org?
17:42:12 <nut> monochrom: I did checked the doc. I'm a bit confused why cabal don't recompile after I made changes to the header files
17:42:42 <nut> That isn't explained in the Cabal docs I think
17:43:08 <sclv> maerwald: responsible for what aspect of it?
17:43:24 <maerwald> website
17:44:14 <sclv> oh right you're still following up on that. sigh. its the committee, which is chaired by tikhon at the moment.
17:44:32 <sclv> let me try to work a side channel for you
17:45:33 solidus-river joins (~mike@174.127.249.180)
17:45:48 kalia joins (4c72abd3@c-76-114-171-211.hsd1.md.comcast.net)
17:46:39 pgib joins (textual@lmms/pgib)
17:50:22 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
17:50:27 juuandyy joins (~juuandyy@90.106.228.121)
17:51:42 × kalia quits (4c72abd3@c-76-114-171-211.hsd1.md.comcast.net) (Quit: Connection closed)
17:52:30 <maerwald> Yes, I sent the committee an email
17:53:42 × nickmt quits (5b0624c1@p5b0624c1.dip0.t-ipconnect.de) (Quit: Connection closed)
17:55:28 bor0 joins (~boro@unaffiliated/boro/x-000000001)
17:55:58 × conal quits (~conal@192.145.118.178) (Quit: Computer has gone to sleep.)
17:56:15 chimera joins (~chimera@168-182-134-95.pool.ukrtel.net)
17:58:30 M0b10s joins (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254)
18:00:53 <maerwald> at worst, we'll make another haskell.org fork *chuckle*
18:01:14 vicfred joins (~vicfred@unaffiliated/vicfred)
18:01:49 <carbolymer> YES, HAVE MY FORK -----E
18:01:58 danso joins (~dan@modemcable156.91-20-96.mc.videotron.ca)
18:03:15 <monochrom> Responsible parents wait after fork.
18:03:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
18:03:44 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Quit: WeeChat 3.0.1)
18:04:14 <catern> apropos of nothing, if anyone has any contributions to my cursed PL iceberg let me know http://catern.com/iceberg.html
18:04:43 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
18:05:16 <ski> joel135 : "Does haskell have the same syntax feature?" -- no
18:06:03 <joel135> ok
18:09:25 × Valion quits (~Valion@api.ivido.nl) (Quit: leaving)
18:09:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:13:42 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
18:13:42 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:14:05 Pickchea joins (~private@unaffiliated/pickchea)
18:19:14 × thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202)
18:19:43 <ggVGc> I really love <<loop>>
18:19:45 <ggVGc> great
18:19:51 <ggVGc> it's like practical joke
18:20:08 flx joins (flux@coffee.modeemi.fi)
18:20:22 koankeeper_ joins (sid216950@gateway/web/irccloud.com/x-nzolrgtzcrofgnoi)
18:21:11 skewerr joins (~spoonm@tokyo.spoonm.org)
18:21:46 × M0b10s quits (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254) (Ping timeout: 240 seconds)
18:21:48 towel_ joins (~towel@unaffiliated/towel)
18:22:01 kiweun joins (~kiweun@2607:fea8:2a62:9600:94f:fe7:3fff:f880)
18:23:32 × DavidEichmann quits (~david@147.136.46.217.dyn.plus.net) (Remote host closed the connection)
18:23:33 LambdaDuck joins (~anka@ksit.fixme.fi)
18:24:04 sdressel_ joins (~sdressel@pwning.de)
18:24:38 jameekim2 joins (~jameekim@mx.nodaplife.me)
18:26:39 × kiweun quits (~kiweun@2607:fea8:2a62:9600:94f:fe7:3fff:f880) (Ping timeout: 250 seconds)
18:26:44 blackdog_ joins (~blackdog@198.211.112.85)
18:26:58 sarahzrf_ joins (~sarahzrf_@sarahzrf.com)
18:27:06 rawles_ joins (~r@unaffiliated/rawles)
18:27:18 nemesit|znc_ joins (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1)
18:27:51 frozenErebus joins (~frozenEre@37.231.244.249)
18:28:10 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
18:28:25 × nemesit|znc quits (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) (Ping timeout: 276 seconds)
18:28:25 × maralorn quits (maralornma@gateway/shell/matrix.org/x-taapglyfnhcaxlmi) (Ping timeout: 276 seconds)
18:28:26 × Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-bxrewprkpipuxfei) (Ping timeout: 276 seconds)
18:28:27 × Poyo[m] quits (stikynotha@gateway/shell/matrix.org/x-haknbvkyasqevnme) (Ping timeout: 276 seconds)
18:28:27 × jchia[m] quits (jchiamatri@gateway/shell/matrix.org/x-fgjdezivvdirebvi) (Ping timeout: 276 seconds)
18:28:27 × unclechu quits (unclechuma@gateway/shell/matrix.org/x-jmbbnkztqlxjmyvi) (Ping timeout: 276 seconds)
18:28:28 × my_name_is_not_j quits (mynameisno@gateway/shell/matrix.org/x-quxbbosdnjtwvvrg) (Ping timeout: 276 seconds)
18:28:28 × johnnyv[m] quits (badwolf256@gateway/shell/matrix.org/x-bcoxopkiysbcffjg) (Ping timeout: 276 seconds)
18:28:28 × joe[m] quits (joemonoida@gateway/shell/matrix.org/x-jfvswnrdjcctvmmo) (Ping timeout: 276 seconds)
18:28:28 × pnotequalnp[m] quits (pnotequaln@gateway/shell/matrix.org/x-xqilkgqxymngrblq) (Ping timeout: 276 seconds)
18:28:28 × srid quits (sridmatrix@gateway/shell/matrix.org/x-lhoqaotzxhrdesxm) (Ping timeout: 276 seconds)
18:28:28 × Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-dvljatkbrkzyoabl) (Ping timeout: 276 seconds)
18:28:28 × arcontethegreat[ quits (arcontethe@gateway/shell/matrix.org/x-utbxuwqpnhgrncfm) (Ping timeout: 276 seconds)
18:28:29 × loyon quits (loyonmatri@gateway/shell/matrix.org/x-dbuybsdaqolfjfvf) (Ping timeout: 276 seconds)
18:28:29 × mrus[m] quits (mrusmatrix@gateway/shell/matrix.org/x-bnwtzopjealuvtun) (Ping timeout: 276 seconds)
18:28:29 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Ping timeout: 276 seconds)
18:28:29 × tabaqui quits (~tabaqui@2604:a880:800:c1::21b:3001) (Ping timeout: 276 seconds)
18:28:29 × mflux quits (flux@coffee.modeemi.fi) (Ping timeout: 276 seconds)
18:28:29 × koankeeper quits (sid216950@gateway/web/irccloud.com/x-lympprcqrveoixtt) (Ping timeout: 276 seconds)
18:28:30 × Guillaum quits (guiboumatr@gateway/shell/matrix.org/x-kecnvcmuhfwgrytn) (Ping timeout: 276 seconds)
18:28:30 × dominicusin[m] quits (dominicusi@gateway/shell/matrix.org/x-aykukrinfrererxn) (Ping timeout: 276 seconds)
18:28:31 × spoonm quits (~spoonm@tokyo.spoonm.org) (Ping timeout: 276 seconds)
18:28:31 × towel quits (~towel@unaffiliated/towel) (Ping timeout: 276 seconds)
18:28:32 × rawles quits (~r@unaffiliated/rawles) (Ping timeout: 276 seconds)
18:28:32 × sarahzrf quits (~sarahzrf_@2604:a880:400:d0::b4a:4001) (Ping timeout: 276 seconds)
18:28:32 × lemald quits (~eddie@capybara.lemald.org) (Ping timeout: 276 seconds)
18:28:32 × blackdog quits (~blackdog@198.211.112.85) (Ping timeout: 276 seconds)
18:28:32 × LambdaDu1k quits (~anka@ksit.fixme.fi) (Ping timeout: 276 seconds)
18:28:33 × jameekim1 quits (~jameekim@mx.nodaplife.me) (Ping timeout: 276 seconds)
18:28:33 × sdressel quits (~sdressel@pwning.de) (Ping timeout: 276 seconds)
18:28:33 blackdog_ is now known as blackdog
18:28:33 koankeeper_ is now known as koankeeper
18:28:33 flx is now known as mflux
18:29:29 tabaqui joins (~tabaqui@2604:a880:800:c1::21b:3001)
18:29:38 lemald joins (~eddie@capybara.lemald.org)
18:30:06 Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-wxxbvetrqrsqljor)
18:30:19 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
18:30:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:31:02 maralorn joins (maralornma@gateway/shell/matrix.org/x-ivwnbdnfszfjiwdc)
18:31:10 <int-e> > fix error -- just a joke
18:31:12 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
18:31:12 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex...
18:31:41 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
18:31:55 my_name_is_not_j joins (mynameisno@gateway/shell/matrix.org/x-fwedgmzpwbugciod)
18:31:57 joe[m] joins (joemonoida@gateway/shell/matrix.org/x-txxheijowbbsqnjc)
18:31:58 loyon joins (loyonmatri@gateway/shell/matrix.org/x-icwodrnwhydizuwp)
18:32:02 unclechu joins (unclechuma@gateway/shell/matrix.org/x-lbufgcxgrsflmxsh)
18:32:02 Poyo[m] joins (stikynotha@gateway/shell/matrix.org/x-piujbocybdsttosy)
18:32:03 jchia[m] joins (jchiamatri@gateway/shell/matrix.org/x-gvltsihrvsoaugcv)
18:32:04 Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-ibycjhwgzkgwsirp)
18:32:04 pnotequalnp[m] joins (pnotequaln@gateway/shell/matrix.org/x-dnjftlngoflvunfh)
18:32:05 johnnyv[m] joins (badwolf256@gateway/shell/matrix.org/x-iuvqvpqyjtjrwaqm)
18:32:07 srid joins (sridmatrix@gateway/shell/matrix.org/x-aznuekqvxhshtmnc)
18:32:10 mrus[m] joins (mrusmatrix@gateway/shell/matrix.org/x-wnductunmdfidxwz)
18:32:34 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
18:32:36 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
18:33:15 arcontethegreat[ joins (arcontethe@gateway/shell/matrix.org/x-fjqjpveupdddtlmd)
18:33:37 Guillaum joins (guiboumatr@gateway/shell/matrix.org/x-mcmztbazvtqulzjx)
18:35:04 nicholasbulka joins (~nicholasb@2601:900:4301:da0:b0db:882b:fd7b:c02e)
18:35:27 dominicusin[m] joins (dominicusi@gateway/shell/matrix.org/x-efcppjwqmhnnaznp)
18:37:27 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:b8c4:49ae:2ce4:1808) (Ping timeout: 260 seconds)
18:38:15 coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
18:38:34 <joel135> :t error
18:38:36 <lambdabot> [Char] -> a
18:38:45 <solidus-river> i'm doing an hsetbuffering noBuffering in all my forked threads but still getting interleaved io on the console
18:39:03 <solidus-river> do i need to synchronize with an mvar?
18:40:02 <joel135> Doesn't buffering increase interleaving?
18:40:18 <monochrom> My thought too.
18:40:51 <joel135> Actually I meant the opposite.
18:40:51 <monochrom> Err did you word it right?
18:40:56 <monochrom> Yeah, that.
18:42:21 <geekosaur> console has exactly one output position, I'd recommend using a separate thread for output fed by a Chan
18:42:39 <geekosaur> LineBuffering might help with interleaving to some extend
18:42:42 <geekosaur> *extent
18:42:59 <solidus-river> kk, i'll experiment, i misunderstood what noBuffering solved
18:43:07 <solidus-river> :X
18:43:48 <solidus-river> thanks as always :)
18:43:50 jespada joins (~jespada@87.74.37.248)
18:43:51 <monochrom> Also I thought hSetBuffering was a per-Handle setting, not a per-thread setting.
18:44:27 <solidus-river> i'm definitely redundantly setting it then
18:44:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
18:44:54 <solidus-river> i think what i wanted out of it was just a call to flush at the end of the program
18:45:21 <geekosaur> so just hFlush at the end of the program. but it'll also flush when the output buffer is full
18:45:27 M0b10s joins (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254)
18:45:29 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
18:45:40 <geekosaur> note that multiple threads outputting to the same Handle will stilll interleave within the buffer
18:45:55 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
18:46:25 Varis joins (~Tadas@unaffiliated/varis)
18:46:28 <int-e> String-based I/O is inherently character oriented, since putStr ('a':'b':undefined) is supposed to output a and b before triggering the bottom.
18:46:44 <int-e> buffering doesn't really change that
18:46:56 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
18:47:38 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:47:48 <solidus-river> i should be sending these all to the same place and printing there, i was doing that but i'm trying to hack in some debug prints to figure out whats going wrong over the wire
18:48:15 <solidus-river> maybe trace is a better tool but it seems like it would run into the same buffering issue unless its using some non putStrLn for its messaging under the hood
18:48:31 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.1)
18:49:08 jpds joins (~jpds@gateway/tor-sasl/jpds)
18:49:09 faustind joins (~faustin@240b:12:43e1:7b00:e63d:e924:3cc7:4546)
18:49:30 Copperis joins (~Tadas@unaffiliated/varis)
18:49:56 Guest6509 joins (~laudiacay@45.162.228.190)
18:50:00 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:d72c:c07:3040:2376)
18:50:07 <int-e> oh, traceIO does something better, actually
18:50:39 timCF joins (~i.tkachuk@m91-129-104-226.cust.tele2.ee)
18:51:02 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:51:06 × Copperis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
18:52:11 <int-e> Well, better in terms of interleaving or not. It looks far worse in terms of dealing with encodings.
18:52:30 Copperis joins (~Tadas@unaffiliated/varis)
18:52:43 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
18:52:57 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
18:53:07 × M0b10s quits (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254) (Ping timeout: 252 seconds)
18:53:13 × Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 268 seconds)
18:53:18 <int-e> (it packs the message into a C string, and passes that to the RTS's debugBelch() function which presumably writes it to stderr in one chunk)
18:54:30 <solidus-river> nice! switching :) I think i need to finally read that book that you guys recommended a month in a half ago too, gonna crack that open
18:55:58 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
18:56:21 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
18:56:42 sm joins (~user@li229-222.members.linode.com)
18:57:23 DavidEichmann joins (~david@147.136.46.217.dyn.plus.net)
18:58:23 <DigitalKiwi> what book was recommended?
19:00:53 × Copperis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
19:02:00 Varis joins (~Tadas@unaffiliated/varis)
19:02:49 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.1)
19:03:03 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:04:03 notzmv joins (~zmv@unaffiliated/zmv)
19:07:15 <slack1256> On the ConstrainsKinds extension, is there a type level function that lets me take the product of two constrains? ie : Read a x Text a = (Read a, Text a) ?
19:09:07 × fendor quits (~fendor@178.115.131.177.wireless.dyn.drei.com) (Remote host closed the connection)
19:10:05 <faustind> Hello @all. I am looking for examples of the use of GHC rewrite rules. Could you point me to some.
19:10:58 fendor joins (~fendor@178.115.131.177.wireless.dyn.drei.com)
19:11:16 <slack1256> Read on Data.List and the `vector` library.
19:11:55 <monochrom> I wonder if it's as simple as "type X c1 c2 a = (c1 a, c2 a)"
19:11:57 Guest70260 is now known as sm[m]
19:12:24 <monochrom> But if you want to use it as "X Read Text" without "a", I don't know.
19:13:12 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
19:14:26 <DigitalKiwi> .glirclogs/#haskell/2021-03-15.log:[22:47:52] <koz_> solidus-river: https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/pt02.html
19:14:38 Qwerky joins (~qwerky@37.173.171.170)
19:14:50 <DigitalKiwi> found the answer to my question ^
19:15:05 <koz_> DigitalKiwi: Happy to be of service rofl?
19:16:32 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection)
19:16:33 <monochrom> haha
19:18:12 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Remote host closed the connection)
19:19:40 dmytrish joins (~mitra@2a02:8084:a82:d900:6010:2869:d10:372c)
19:20:20 <slack1256> monochrom: Yeah, I thought there was a standard type family already defined
19:20:35 epicte7us joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
19:23:44 × ep1ctetus quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 245 seconds)
19:24:20 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
19:25:37 × dmytrish quits (~mitra@2a02:8084:a82:d900:6010:2869:d10:372c) (Quit: Konversation terminated!)
19:25:50 <mniip> monochrom, class (c1 a, c2 a) => X c1 c2 a; instance (c1 a, c2 a) => X c1 c2 a
19:25:54 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 268 seconds)
19:27:06 stree joins (~stree@68.36.8.116)
19:27:16 dmytrish joins (~mitra@2a02:8084:a82:d900:6df4:a206:6bd4:dc59)
19:29:08 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
19:30:26 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer)
19:31:56 ntqz joins (ntqz@gateway/vpn/protonvpn/ntqz)
19:32:02 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
19:32:16 × juuandyy quits (~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
19:33:35 bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de)
19:35:01 <shapr> does tommy thorn show up here?
19:35:13 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:35:39 minoru_shiraeesh joins (~shiraeesh@109.166.56.250)
19:35:42 × __minoru__shirae quits (~shiraeesh@109.166.59.124) (Ping timeout: 240 seconds)
19:35:55 <shapr> I vaguely recall reading that the reduceron graph reduction CPU needs more memory bandwidth than the bog standard von neumann CPU, does anyone have references in mind?
19:36:57 × supercoven_ quits (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Read error: Connection reset by peer)
19:37:39 kiweun joins (~kiweun@2607:fea8:2a62:9600:3d14:16a1:a9f1:c29c)
19:38:25 <slack1256> What is the extension that makes * be called Type also?
19:39:40 <monochrom> No extension needed. But you have to import "Type" from Data.Kind (or GHC.Exts or ...)
19:40:05 <slack1256> Ooh, right
19:40:11 <slack1256> Thank monochrom.
19:40:19 <monochrom> Likewise for "Constraint".
19:42:08 StOnE joins (~StOnE@231.154.61.94.rev.vodafone.pt)
19:42:46 × kiweun quits (~kiweun@2607:fea8:2a62:9600:3d14:16a1:a9f1:c29c) (Ping timeout: 276 seconds)
19:43:15 × knupfer quits (~Thunderbi@200116b82b9c4f0069e2a2a836aa8e3f.dip.versatel-1u1.de) (Remote host closed the connection)
19:43:45 StOnE parts (~StOnE@231.154.61.94.rev.vodafone.pt) ()
19:44:13 knupfer joins (~Thunderbi@200116b82b9c4f00f9c2991c9c527ef0.dip.versatel-1u1.de)
19:46:05 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 252 seconds)
19:49:33 × ech quits (~user@gateway/tor-sasl/ech) (Remote host closed the connection)
19:49:47 ech joins (~user@gateway/tor-sasl/ech)
19:54:16 <carbolymer> in the profiler output there's "entries" and "individual allocation", I'm looking for places with high memory usage, should I multiply entries * individual alloc in order to find which place had the biggest contribution to memory usage?
19:55:14 <carbolymer> I have also a heap profile but converting 2G .hp file to .ps file takes a lot of time
19:55:17 <carbolymer> ...
19:58:26 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
19:58:54 × bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
20:03:45 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
20:03:52 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
20:03:54 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer)
20:04:08 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
20:04:09 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
20:04:09 neiluj joins (~jco@unaffiliated/neiluj)
20:04:51 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds)
20:05:14 Lord_of_Life_ is now known as Lord_of_Life
20:05:27 × letmein quits (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) (Ping timeout: 250 seconds)
20:05:59 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 268 seconds)
20:06:36 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
20:07:34 letmein joins (~letmein@c-71-59-221-7.hsd1.wa.comcast.net)
20:07:43 petersen joins (~petersen@redhat/juhp)
20:08:36 × stree quits (~stree@68.36.8.116) (Quit: Caught exception)
20:08:46 × Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 276 seconds)
20:09:01 stree joins (~stree@68.36.8.116)
20:10:52 conal joins (~conal@64.71.133.70)
20:16:41 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:17:02 × danso quits (~dan@modemcable156.91-20-96.mc.videotron.ca) (Quit: WeeChat 3.0)
20:19:00 × Qwerky quits (~qwerky@37.173.171.170) (Remote host closed the connection)
20:19:18 Qwerky joins (~qwerky@37.173.171.170)
20:20:02 × Qwerky quits (~qwerky@37.173.171.170) (Remote host closed the connection)
20:22:30 <lechner> Hi, does anyone else feel that affinity with SQL? It's been spooking around my head since I discovered Haskell. http://thoughts.davisjeff.com/2011/09/25/sql-the-successful-cousin-of-haskell/
20:23:53 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
20:26:51 Qwerky joins (~qwerky@37.173.171.170)
20:28:42 <int-e> cousin?!
20:30:19 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
20:30:27 <sm[m]> "the tough problems that haskell would solve are already solved in so many cases" - I don't think so. But it's an interesting post all the same
20:31:09 <int-e> I mean, I do see a certain amount of declarativity and/or purity allowing all sorts of crazy optimizations of queries. That's where the analogies stop to my mind.
20:32:19 <sm[m]> the tough relational data querying problems.. yes maybe that
20:32:39 <int-e> SQL doesn't really shine in the area of abstraction
20:32:55 dinciorip joins (~dincio@5.171.80.13)
20:33:50 <dinciorip> This is probably a very stupid question, but is there a shorter alternative to `m | m == foo || m == bar -> foo'`?
20:34:09 <dinciorip> That snippet being used as a pattern in pattern matching
20:34:28 <ski> m | m `elem` [foo,bar] -> foo'
20:35:23 <ski> ((`elem` [foo,bar]) -> True) -> foo'
20:35:53 aa111 joins (3e1d4484@62.29.68.132)
20:35:54 <ski> if we had disjunctive / or- patterns, then those could be appropriate here, if `foo' and `bar' were approprate to use as patterns
20:36:58 <dinciorip> well those are certainly an improvement, thanks! Don't quite understand the second one though... `foo` and `bar` are usable as patterns in my case
20:37:10 <aa111> hello, im trying to construct a binary tree from a list looks like this [0[1,2],[0,4,7,8]], what is the best way to parse this input
20:37:31 <ski> the second is using the `ViewPatterns' extension
20:37:37 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds)
20:37:48 <ski> but i'd probably prefer the first one, over the second, here
20:38:10 <ski> aa111 : is that first `0' a typo ?
20:38:14 <dinciorip> yeah me too tbh. Still will look into that extension when I have time
20:38:26 <aa111> Nope it is not
20:38:37 <dinciorip> You were saying that there was an easier alternative for when `foo` and `bar` are patterns?
20:38:40 <aa111> Yeah it is ...
20:38:40 × alx741 quits (~alx741@181.196.69.35) (Ping timeout: 268 seconds)
20:38:40 <ski> then that's malformed Haskell
20:38:46 <aa111> Let me fix it sorry
20:39:05 <ski> dinciorip : *if* "we had disjunctive / or- patterns". we don't, unfortunately
20:39:09 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
20:39:13 <dinciorip> Oh got it
20:39:15 × coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
20:39:21 <aa111> [[0],[1,2,3],[0,5,6]] looks like this actually
20:39:27 <dinciorip> Thanks anyway everyone
20:39:50 <ski> what information does this list of lists describe ?
20:40:02 <aa111> Nodes and leaves
20:40:02 <ski> iow, how would it correspond to a binary tree ?
20:40:19 <ski> what would be the corresponding binary tree, for this example ?
20:40:44 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:40:47 <aa111> let me give a full example then
20:40:52 <aa111> [[0],[0,0],[0,2,4,5],[1,3,0,0,0,0,0,0]]
20:40:55 <aa111> Node 15 (Node 6 (Node 4 (Leaf 1) (Leaf 3)) (Leaf 2)) (Node 9 (Leaf 4) (Leaf 5))
20:41:48 <ski> it seems the `0's have some special meaning, but i can't decipher which
20:42:23 <aa111> you sum the leaves of the node to replace 0's
20:42:24 <ski> apparently the element at an internal node is to be the sum of all the leaves beneath it
20:42:34 <int-e> so, guessing... those are levels of the tree; 0 are internal and absent nodes, and internal nodes gat annotated with the sum of the descendants?
20:42:49 <int-e> and the i-th list has 2^i elements
20:42:56 <int-e> (starting at i=0)
20:43:01 <aa111> yes thats the case
20:43:03 <ski> that looks consistent
20:43:36 horatiohb joins (~horatiohb@159.65.163.65)
20:43:48 <aa111> i've been struggling for this for two days. Could not parse it any logical way
20:43:59 <ski> a function which given a list splits it into the first and second half, could probably be useful
20:44:29 <ski> (or two functions, one for each part, if you prefer)
20:44:33 <int-e> . o O ( unzip, splitAt, zipWith, iterate )
20:44:53 <cheater> hi
20:46:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:46:08 <cheater> i'm using stack supplied ghc and when i compile something that uses llvm-hs i get "error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory" even though that file is in a subdir of ~/.stack. how do i resolve this issue?
20:46:27 <int-e> aa111: More fundamentally, think about how [[0],[0,0],[0,2,4,5],[1,3,0,0,0,0,0,0]] relates to the type of node (internal), and left and right subtree in the same list format.
20:46:47 <ski> aa111 : do you want to validate that the input is a proper representation of a tree, or do you just want to assume this ?
20:47:14 <aa111> I will assume
20:47:45 <aa111> int-e yes im trying to, but still didnt get your point :/
20:48:08 <ski> aa111 : what are the two subtrees of `Node 15 (Node 6 (Node 4 (Leaf 1) (Leaf 3)) (Leaf 2)) (Node 9 (Leaf 4) (Leaf 5))' ?
20:48:24 <ski> aa111 : which lists of lists do those subtrees correspond to ?
20:48:41 <ski> aa111 : how do those two lists of lists relate to the original list of lists ?
20:49:27 <ski> (direct subtrees)
20:49:36 <aa111> ski: forgive me if i explained it wrong. There are no subtrees, with the given list i need to crate the following tree
20:49:58 <ski> clearly the tree `Node 15 (Node 6 (Node 4 (Leaf 1) (Leaf 3)) (Leaf 2)) (Node 9 (Leaf 4) (Leaf 5))' has subtrees
20:51:40 <ski> i'm not talking about what you (directly) should do, at the moment, to process the input. i'm asking you to attempt to survey the whole process (it still being a bit undetermined, in flux so to speak), to some extent. specifically asking you to consider the desired result tree, for the given list of lists, and how it's built up from subtrees
20:51:57 <int-e> (we could maybe start with a simpler tree description like [[0],[1,0],[0,0,2,3]])
20:52:37 alx741 joins (~alx741@181.196.68.118)
20:53:15 <aa111> ski: Yes i see your point,
20:53:29 kiweun joins (~kiweun@2607:fea8:2a62:9600:51c0:6989:ff0b:33af)
20:56:31 <aa111> I got an idea, thank you for pointing me in right perspective
20:58:49 × kiweun quits (~kiweun@2607:fea8:2a62:9600:51c0:6989:ff0b:33af) (Ping timeout: 276 seconds)
20:59:12 × Lowl3v3l quits (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Remote host closed the connection)
21:02:22 × michalz quits (~user@185.246.204.107) (Remote host closed the connection)
21:05:39 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 252 seconds)
21:06:11 × kav quits (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Ping timeout: 240 seconds)
21:07:15 × aa111 quits (3e1d4484@62.29.68.132) (Quit: Connection closed)
21:07:53 jpds joins (~jpds@gateway/tor-sasl/jpds)
21:08:13 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
21:08:50 × fendor quits (~fendor@178.115.131.177.wireless.dyn.drei.com) (Read error: Connection reset by peer)
21:13:13 fendor joins (~fendor@178.115.131.177.wireless.dyn.drei.com)
21:17:29 × knupfer quits (~Thunderbi@200116b82b9c4f00f9c2991c9c527ef0.dip.versatel-1u1.de) (Ping timeout: 245 seconds)
21:21:22 tempate joins (~tempate@7.pool85-60-109.dynamic.orange.es)
21:21:23 × tempate quits (~tempate@7.pool85-60-109.dynamic.orange.es) (Changing host)
21:21:23 tempate joins (~tempate@unaffiliated/tempate)
21:22:00 × LKoen quits (~LKoen@22.249.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
21:22:50 <cheater> any clues on libffi?
21:23:27 × bor0 quits (~boro@unaffiliated/boro/x-000000001) (Quit: Leaving)
21:23:30 acidjnk_new2 joins (~acidjnk@p200300d0c72b9524d9e45372e00f3038.dip0.t-ipconnect.de)
21:24:48 × ram19890 quits (~ram@49.205.84.253) (Remote host closed the connection)
21:24:55 × SquidDev quits (~SquidDev@autoclave.squiddev.cc) (Ping timeout: 268 seconds)
21:25:06 SquidDev joins (~SquidDev@autoclave.squiddev.cc)
21:25:14 ram19890 joins (~ram@49.205.84.253)
21:26:13 × Qwerky quits (~qwerky@37.173.171.170) (Remote host closed the connection)
21:27:46 × jgt quits (~jgt@78.162.43.217) (Ping timeout: 260 seconds)
21:31:14 mounty joins (~mounty@236.216.214.218.sta.wbroadband.net.au)
21:33:02 kav joins (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi)
21:33:04 mikoto-chan joins (~anass@213.177.155.250)
21:35:53 × DavidEichmann quits (~david@147.136.46.217.dyn.plus.net) (Remote host closed the connection)
21:37:53 × Guest8109 quits (~textual@mskresolve-a.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:42:54 × ystael quits (~ystael@209.6.50.55) (Read error: Connection reset by peer)
21:43:18 ystael joins (~ystael@209.6.50.55)
21:44:10 notzmv joins (~zmv@unaffiliated/zmv)
21:45:08 <cheater> hmm my system's ghc comes with libffi.so.7 so i just symlinked it into path and i guess that works
21:45:21 <cheater> LD_PATH or whatever
21:45:31 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
21:45:44 <cheater> tomsmeding: could you check gitter when you're around :)
21:47:30 × mikoto-chan quits (~anass@213.177.155.250) (Quit: mikoto-chan)
21:47:47 mikoto-chan joins (~anass@213.177.155.250)
21:48:55 × fendor quits (~fendor@178.115.131.177.wireless.dyn.drei.com) (Remote host closed the connection)
21:49:32 × mikoto-chan quits (~anass@213.177.155.250) (Client Quit)
21:50:58 × pbgc quits (~pbgc@a89-152-234-147.cpe.netcabo.pt) (Quit: Computer has gone to sleep.)
21:52:43 <lechner> Hi, I am a noobie who bit off too much. I would like to rewrite a Node.js website in Purescript but have some serious type confusion. any hinters would be appreciated. line 78 from the error is line 115 in the paste https://dpaste.org/T9bg
21:53:32 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
21:54:19 <lechner> send returns HandlerM but the database query just before it messes everything up
21:54:37 × slack1256 quits (~slack1256@200-112-79-247.baf.movistar.cl) (Ping timeout: 252 seconds)
21:55:10 <monochrom> Is there a purescript channel so you can talk to better matching people?
21:55:45 <monochrom> Or is my favourite correlation true again?
21:56:42 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
21:57:04 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
21:57:27 <geekosaur> I see 38 people and a logger in #purescript
21:58:12 <lechner> yes I am over there too, but it's a third-party module they do not know, and I have a Haskell problem. plus, it's for a good purpose :)
21:58:29 <monochrom> math channel : "I can't find accounting help on IRC" :: haskell channel : "I can't find purescript help on IRC"
21:59:13 <lechner> that's the first unfriendly response i have seen here, but thanks!
21:59:48 <monochrom> No, I am talking about a negative correlation between channel membership and job opportunities.
22:00:41 Alleria joins (~textual@2603-7000-3040-0000-b547-c3a9-933c-ab1d.res6.spectrum.com)
22:00:54 <Rembane> lechner: That's not Haskell, that's Purescript. There is an excellent Purescript channel on the functional programming Slack. I recommend asking your question there instead.
22:01:06 Alleria is now known as Guest25703
22:01:20 × zardoz2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
22:02:16 <lechner> unfortunately, my browser does not support Slack but I'll ask on IRC
22:02:33 <lechner> monochrom: i see, sorry i am a volunteer myself
22:03:45 <lechner> to be honest, i was a bit embarrassed to ask elementary questions (if there is such a thing in haskell) over there
22:06:25 <lechner> if i were you folks, though, i would adopt PureScript as the ugly duckling. on a node server, which has been called the next PHP, the type safety it provides is a category killer hands down
22:07:20 <monochrom> But I don't use a node server.
22:07:21 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:08:17 <lechner> your clients may but they can't refactor safely on any project with more tha 500 lines
22:09:13 <c_wraith> purescript is a different language with different semantics.
22:09:17 kiweun joins (~kiweun@2607:fea8:2a62:9600:c1b6:8c92:c92d:e10a)
22:09:21 <c_wraith> Using it is more like using javascript than haskell
22:09:48 <c_wraith> (because you can never forget it is javascript underneath)
22:09:52 <monochrom> For now, I speak for my clients, too.
22:10:12 <monochrom> But I am not closed to future possibilities whatsoever.
22:10:16 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-lwoslwzxzqzjzamu) (Quit: Connection closed for inactivity)
22:10:28 <yushyin> lechner: https://www.purescript.org/ see 'Community' down below
22:11:07 × dinciorip quits (~dincio@5.171.80.13) (Quit: WeeChat 3.1)
22:11:10 pavonia joins (~user@unaffiliated/siracusa)
22:11:24 <monochrom> I don't think I can find the line of code that the error message refers to.
22:12:04 <lechner> monochrom: it's 115 but i got your message https://dpaste.org/T9bg#L115
22:12:24 × dhil quits (~dhil@80.208.56.181) (Quit: Leaving)
22:12:50 <monochrom> The error message mentions "discard". I can't find "discard".
22:13:01 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
22:13:44 × kiweun quits (~kiweun@2607:fea8:2a62:9600:c1b6:8c92:c92d:e10a) (Ping timeout: 245 seconds)
22:14:13 <lechner> i think that's the query result. it probably is too hard with a module you do not know https://pursuit.purescript.org/packages/purescript-postgresql-client/3.0.2 https://github.com/rightfold/purescript-postgresql-client
22:14:31 <lechner> there are too many types you are not familiar with. i get it
22:14:38 <monochrom> Well, I don't know how to bridge between HandlerM and ExceptT PGError Aff anyway.
22:14:45 <lechner> in fact, i have the same problem
22:15:01 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
22:15:09 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:16:51 <lechner> no, the problem is that i added lines 111-114 that brought in the monad from line 64. without them everything works, except there is no SQL query :(
22:16:52 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
22:18:02 <lechner> i really should talk to the Purescript folks. i did not mean to impose and would rather preserve my goodwill here
22:18:23 <monochrom> Actually, is this simply a matter of doing your "send" outside "withConnection"?
22:18:47 <lechner> i think so
22:19:03 <monochrom> Or outside "withTransaction", I don't know which.
22:21:02 <lechner> i can scrap the transaction for now. the idea came from here (one page down) https://github.com/rightfold/purescript-postgresql-client#usage
22:21:10 × malumore_ quits (~malumore@151.62.126.111) (Remote host closed the connection)
22:21:23 malumore_ joins (~malumore@151.62.126.111)
22:21:30 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
22:21:45 <lechner> the other issue with #purescript was that server-side Purescript is officialy not supported, but i think that's the big future for them
22:23:06 <monochrom> Indeed I would think that updating or outputting a web page shouldn't happen until after a DB transaction finishes (so you know it is a success and you are not in the middle of possible retries, rollbacks, race conditions.
22:24:05 clathomas joins (ad4839b3@pool-173-72-57-179.cmdnnj.fios.verizon.net)
22:24:29 <clathomas> Hello! I have a quick noob-level efficiency question.
22:24:49 <clathomas> Why does ` foldl' (+) 0 [1..n] ` not use a constant amount of memory (in ghci) ? Everything I read says that foldl' should evaluate as it goes down the list, so the only space needed should be for the sum. But memory increases (according to `:set +s` in ghci) as n increases.
22:24:52 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds)
22:25:06 <lechner> monochrom: it's just a simple SELECT, and can put it in later. my issue is i am completely in over my head rewriting my little website lintian.debian.net in haskell and purescript.
22:25:11 <monochrom> Note: "after the transaction finishes" ≠ "the last task inside the transaction"
22:25:38 × letmein quits (~letmein@c-71-59-221-7.hsd1.wa.comcast.net) (Ping timeout: 246 seconds)
22:26:06 <lechner> i just discovered haskell six months ago, and that math major heart jumped
22:26:18 <int-e> clathomas: +s reports allocations, not memory residency.
22:26:50 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
22:27:14 <int-e> clathomas: and without optimizations, the list and its elements are allocated... and consumed by foldl' as the sum is computed, so all that stuff becomes garbage immediately.
22:27:21 <clathomas> int-e: got it, thanks! What is a good way to see "memory residency" ? (Is that the technical term to google for?)
22:27:42 <int-e> clathomas: with optimizations, ghc will (usually) eliminate the allocations as well
22:27:43 <monochrom> I run htop to watch memory residency.
22:28:44 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:29:17 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
22:29:22 <int-e> clathomas: I don't know of a convenient way for ghci (monochrom's suggestion may well be the best way). there's +RTS -s which reports "maximum residency" for compiled programs but really doesn't work well for ghci.
22:29:35 safinaskar joins (~user@109-252-90-136.nat.spd-mgts.ru)
22:30:02 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:30:04 <monochrom> Sometimes I compile to exe and use "+RTS -s" too, but it only does sampling, not complete monitoring. OK my htop trick gives even fewer samples.
22:30:26 stree joins (~stree@68.36.8.116)
22:31:05 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:31:22 <int-e> Right, we may miss a brief spike in residency with +RTS -s.
22:31:46 <monochrom> Then again, "+RTS -s" gives its report after normal termination only. For a long-running program I go htop.
22:32:49 <monochrom> You can use "+RTS -s" on ghci, which measures ghci itself, which is 1% your own code and 99% ghci's own startup cost, which is still something, but you have to quit before you see the report.
22:33:54 <int-e> for giggles you can try `ghc +RTS -S`
22:35:14 <clathomas> thanks! Looking into both options. Is there an option for making ghci optimize your files ? `-O2` didn't seem to work (at least with `stack ghci`)
22:35:32 <monochrom> No.
22:36:08 <geekosaur> ghci is an interpreter, what good would optimization do?
22:36:09 <monochrom> Yes but very long story, virtually like no.
22:36:45 <monochrom> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#loading-compiled-code is the long story.
22:37:04 <geekosaur> I suppose there is -fobject-code -O2 but then you lose most of the point of ghci
22:37:26 <clathomas> geekosaur: I am running monte-carlo type simulations based on (fairly simple) combinations of library functions I've written.
22:38:10 jrm2 joins (~jrm@freebsd/developer/jrm)
22:38:24 <clathomas> I suppose I want to package up my library so I can optimize and then import ?
22:38:40 <geekosaur> probably
22:39:32 <solidus-river> DigitalKiwi: sorry I had to run earlier, thats the book :)
22:39:37 <monochrom> Oh and the doc there still has this omission. -c is not enough, you need -dynamic too.
22:42:41 × jrm2 quits (~jrm@freebsd/developer/jrm) (Client Quit)
22:43:04 jrm2 joins (~jrm@freebsd/developer/jrm)
22:44:02 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:45:06 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:45:49 <monochrom> There was a time my idea of personal library was -i/home/me/my-cool-haskell-files too :)
22:47:50 safinaskar parts (~user@109-252-90-136.nat.spd-mgts.ru) ()
22:47:53 safinaskar joins (~user@109-252-90-136.nat.spd-mgts.ru)
22:48:32 <safinaskar> is there some way to get this datatype transformations automatically: https://paste.debian.net/1195441/ ?
22:48:37 <clathomas> monochrom: haha indeed. I am changing / debugging the library a lot, so I do think ghci has advantages! But probably I do need to do something more official
22:49:11 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
22:51:58 × sdrodge_ quits (~sdrodge@unaffiliated/sdrodge) (Quit: WeeChat 3.1)
22:52:44 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
22:54:50 jrm2 is now known as jrm
22:57:21 pbgc joins (~pbgc@a89-152-234-147.cpe.netcabo.pt)
22:57:22 sdrodge joins (~sdrodge@unaffiliated/sdrodge)
22:57:31 <monochrom> I may delete "Expr" and "Term" altogether. I have never needed to "remember" user explicit parenthesizing by the time I output an AST.
22:57:55 × pbgc quits (~pbgc@a89-152-234-147.cpe.netcabo.pt) (Client Quit)
22:59:15 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:d72c:c07:3040:2376) (Ping timeout: 260 seconds)
22:59:32 <monochrom> While a parser needs to take input parentheses into account, it can throw away that information very quickly.
22:59:49 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
23:01:09 <safinaskar> monochrom: yes. but i am writing my own parser, and it always output full parse tree
23:02:07 <safinaskar> monochrom: also, i am going to write both parser and printer. and thus i need transformations in both ways between parse tree and ast
23:02:14 × clathomas quits (ad4839b3@pool-173-72-57-179.cmdnnj.fios.verizon.net) (Quit: Connection closed)
23:02:40 <monochrom> Then delete AST?
23:07:38 ep1ctetus_ joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
23:08:06 <DigitalKiwi> monochrom: what if your parser is used in an text editor
23:08:47 DigitalKiwi hands monochrom, monochrom hands a different one back
23:08:56 geekosaur tempted to point to ghc-exactprint
23:09:02 <DigitalKiwi> ... + words
23:09:25 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:10:08 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
23:10:14 × ChrisMarquardt quits (~ChrisMarq@185.204.1.185) (Remote host closed the connection)
23:10:31 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds)
23:10:41 × epicte7us quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 240 seconds)
23:11:26 Tario joins (~Tario@200.119.186.99)
23:11:28 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:97a:c563:cb11:fbc)
23:15:05 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
23:15:44 × Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
23:17:07 <safinaskar> monochrom: well, in fact eventually i want to write prover. ast will be typechecked then
23:19:14 <safinaskar> geekosaur: ghc-exactprint - this was to me?
23:19:29 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
23:19:30 <geekosaur> yes
23:19:48 <geekosaur> it uses information in GHC's AST to regenerate the source that led to the AST
23:20:06 <geekosaur> although I guess actually it was to monochrom
23:21:11 letmein joins (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1)
23:24:07 × sarahzrf_ quits (~sarahzrf_@sarahzrf.com) (Quit: bye)
23:24:22 sarahzrf joins (~sarahzrf_@sarahzrf.com)
23:25:04 kiweun joins (~kiweun@2607:fea8:2a62:9600:bc5b:4bb6:fff:c736)
23:26:20 xPaw1 joins (~xPaw@185.204.1.185)
23:27:24 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:28:11 × Guest85960 quits (~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d) (Ping timeout: 260 seconds)
23:28:31 <monochrom> /nick MrSpeaker
23:29:08 <monochrom> (refereence to British-style parliaments)
23:30:16 × kiweun quits (~kiweun@2607:fea8:2a62:9600:bc5b:4bb6:fff:c736) (Ping timeout: 276 seconds)
23:32:08 <monochrom> Data.Data is what I have heard for auto-coding of catamorphisms, but I have never learned it.
23:32:31 <monochrom> and the DeriveData extension.
23:33:11 × Tario quits (~Tario@200.119.186.99) (Ping timeout: 240 seconds)
23:33:21 <monochrom> The conversions between Expr+Term and AST look like catamorphisms respectively.
23:36:56 × Synthetica quits (uid199651@gateway/web/irccloud.com/x-jzozwncadkywrjny) (Quit: Connection closed for inactivity)
23:37:21 <safinaskar> geekosaur: ghc-exactprint parses and prints haskell. i am writing parser for any cfg-based language
23:40:43 conal joins (~conal@64.71.133.70)
23:45:23 × conal quits (~conal@64.71.133.70) (Client Quit)
23:46:53 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:49:01 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 252 seconds)
23:49:59 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
23:50:26 × chimera quits (~chimera@168-182-134-95.pool.ukrtel.net) (Quit: Konversation terminated!)
23:51:13 Tario joins (~Tario@201.192.165.173)
23:54:12 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
23:54:33 dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net)
23:54:43 <safinaskar> ok, thanks
23:54:46 safinaskar parts (~user@109-252-90-136.nat.spd-mgts.ru) ()
23:55:56 × malumore_ quits (~malumore@151.62.126.111) (Ping timeout: 260 seconds)
23:56:46 × dcoutts_ quits (~dcoutts@unaffiliated/dcoutts) (Ping timeout: 240 seconds)
23:57:10 × dcoutts quits (~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 260 seconds)
23:58:00 dcoutts joins (~dcoutts@unaffiliated/dcoutts)
23:58:45 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds)

All times are in UTC on 2021-04-27.