2020/09/30

2020-09-30 00:00:21 +0200simony(sid226116@gateway/web/irccloud.com/x-dmnnvhhbweuqxcvx)
2020-09-30 00:00:27 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds)
2020-09-30 00:01:25 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 00:01:40 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 00:02:16 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 00:02:22 +0200gluegadget(sid22336@gateway/web/irccloud.com/x-xozlpymtatjtbivu)
2020-09-30 00:03:02 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-09-30 00:03:30 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 00:03:47 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1912:3cad:d0f5:3993) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 00:04:39 +0200Tritlo(sid58727@gateway/web/irccloud.com/x-vuffzyrxnybrguux)
2020-09-30 00:05:44 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving)
2020-09-30 00:05:58 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 246 seconds)
2020-09-30 00:06:04 +0200bitmagie(~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de)
2020-09-30 00:07:11 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 00:07:17 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 00:07:26 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 00:07:28 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 00:07:47 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 00:08:22 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 00:08:47 +0200fendor(~fendor@77.119.130.118.wireless.dyn.drei.com) (Remote host closed the connection)
2020-09-30 00:10:13 +0200xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 00:11:46 +0200mu__(~mu@unaffiliated/mu) (Ping timeout: 265 seconds)
2020-09-30 00:11:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-09-30 00:13:57 +0200bitmagie(~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) (Quit: bitmagie)
2020-09-30 00:15:40 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 00:16:49 +0200notzmv`notzmv
2020-09-30 00:16:57 +0200notzmv(~user@179.100.115.46) (Changing host)
2020-09-30 00:16:57 +0200notzmv(~user@unaffiliated/zmv)
2020-09-30 00:17:28 +0200constR(uid58205@gateway/web/irccloud.com/x-szdnojhbzltywegh) (Quit: Connection closed for inactivity)
2020-09-30 00:17:28 +0200hackagefree-categories 0.2.0.1 - free categories https://hackage.haskell.org/package/free-categories-0.2.0.1 (echatav)
2020-09-30 00:18:25 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 00:19:46 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 00:22:27 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-30 00:22:29 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 00:22:47 +0200o1lo01ol_(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer)
2020-09-30 00:26:40 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 00:31:38 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-09-30 00:31:45 +0200sagax(~sagax_nb@213.138.71.146) (Remote host closed the connection)
2020-09-30 00:32:01 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-09-30 00:32:29 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-09-30 00:35:26 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2020-09-30 00:37:43 +0200mu_(~mu@unaffiliated/mu) (Ping timeout: 260 seconds)
2020-09-30 00:40:10 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 00:41:18 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-09-30 00:42:24 +0200abdullah__(~LeghariK@37.111.129.221) (Quit: Leaving)
2020-09-30 00:46:11 +0200son0p(~son0p@181.136.122.143) (Remote host closed the connection)
2020-09-30 00:46:21 +0200ces(~ces@52d3ce3c.dynamic-ip.k-net.dk)
2020-09-30 00:47:03 +0200somek(b55ebc21@181.94.188.33)
2020-09-30 00:47:12 +0200 <somek> hello
2020-09-30 00:48:07 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 00:48:53 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 00:48:53 +0200 <ski> hello
2020-09-30 00:49:32 +0200 <koz_> hello
2020-09-30 00:49:41 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-09-30 00:50:11 +0200ransom(~c4264035@undergraduate-jvossen-9690.mines.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 00:50:46 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-30 00:50:46 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 246 seconds)
2020-09-30 00:51:37 +0200skilooks at somek
2020-09-30 00:52:12 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 00:52:54 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2020-09-30 00:53:35 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-30 00:55:08 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 00:55:20 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 00:56:11 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-09-30 00:57:42 +0200koz_looks at somek
2020-09-30 00:59:06 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 00:59:16 +0200int-e(~noone@int-e.eu) (Remote host closed the connection)
2020-09-30 01:00:18 +0200int-e(~noone@int-e.eu)
2020-09-30 01:01:26 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2020-09-30 01:04:22 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Ping timeout: 260 seconds)
2020-09-30 01:04:47 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-30 01:04:49 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 01:04:52 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
2020-09-30 01:05:12 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 01:05:21 +0200lambdabot(~lambdabot@silicon.int-e.eu)
2020-09-30 01:05:21 +0200lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2020-09-30 01:05:21 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2020-09-30 01:05:25 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 240 seconds)
2020-09-30 01:05:42 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 272 seconds)
2020-09-30 01:09:05 +0200somek(b55ebc21@181.94.188.33) (Remote host closed the connection)
2020-09-30 01:10:44 +0200isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Read error: Connection reset by peer)
2020-09-30 01:10:49 +0200isovector1_(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-09-30 01:11:52 +0200carter01(47b896d8@pool-71-184-150-216.bstnma.fios.verizon.net)
2020-09-30 01:12:46 +0200 <carter01> Hello! Does anyone use Coc with the haskell language server? I can get codelenses to appear but I don't know how to apply them. Does anyone know how? Is there another vim setting that allows this?
2020-09-30 01:13:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-09-30 01:16:27 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 01:16:40 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 01:20:56 +0200mtae(uid179115@gateway/web/irccloud.com/x-cumufbtgommkesrd) (Quit: Connection closed for inactivity)
2020-09-30 01:24:28 +0200hackagefree-categories 0.2.0.2 - free categories https://hackage.haskell.org/package/free-categories-0.2.0.2 (echatav)
2020-09-30 01:24:32 +0200xff0x(~fox@2001:1a81:53b0:3c00:3d6a:e40e:1e13:6b86) (Ping timeout: 260 seconds)
2020-09-30 01:24:52 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-30 01:24:52 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 01:25:12 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 01:25:44 +0200xff0x(~fox@2001:1a81:53b0:3c00:e98b:1e53:4e8a:cb9b)
2020-09-30 01:29:51 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-09-30 01:31:56 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-09-30 01:32:00 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2020-09-30 01:32:39 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-30 01:32:56 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds)
2020-09-30 01:33:12 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-30 01:33:18 +0200sfvm(~sfvm@37.228.215.148)
2020-09-30 01:33:52 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 260 seconds)
2020-09-30 01:34:35 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
2020-09-30 01:34:47 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 01:35:12 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 01:35:42 +0200fweht(uid404746@gateway/web/irccloud.com/x-tjcgtmdwgfjwwrvb) (Quit: Connection closed for inactivity)
2020-09-30 01:37:07 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-09-30 01:37:27 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de)
2020-09-30 01:38:50 +0200xerox_(~xerox@unaffiliated/xerox)
2020-09-30 01:40:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 01:40:39 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 01:42:00 +0200Wuzzy(~Wuzzy@p5790e6f5.dip0.t-ipconnect.de) (Quit: Wuzzy)
2020-09-30 01:44:11 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-09-30 01:45:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-09-30 01:45:52 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 01:46:04 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 01:46:14 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds)
2020-09-30 01:47:43 +0200mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 258 seconds)
2020-09-30 01:48:07 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds)
2020-09-30 01:53:11 +0200mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-30 01:53:49 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-30 01:54:04 +0200carter01(47b896d8@pool-71-184-150-216.bstnma.fios.verizon.net) (Remote host closed the connection)
2020-09-30 01:54:09 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-30 01:55:36 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 01:56:29 +0200glguy_(x@freenode/staff/haskell.developer.glguy)
2020-09-30 01:56:29 +0200glguyGuest84590
2020-09-30 01:56:29 +0200Guest84590(x@freenode/staff/haskell.developer.glguy) (Killed (weber.freenode.net (Nickname regained by services)))
2020-09-30 01:56:29 +0200glguy_glguy
2020-09-30 01:57:03 +0200mu__(~mu@unaffiliated/mu) (Ping timeout: 260 seconds)
2020-09-30 01:57:47 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-09-30 02:00:02 +0200priyesh(~priyesh@84.39.117.57) ()
2020-09-30 02:00:45 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 258 seconds)
2020-09-30 02:01:12 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 02:01:18 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-30 02:02:58 +0200hackageaeson-schemas 1.3.2 - Easily consume JSON data on-demand with type-safety https://hackage.haskell.org/package/aeson-schemas-1.3.2 (leapyear)
2020-09-30 02:04:56 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 02:05:11 +0200wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 02:05:11 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 02:05:37 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-09-30 02:06:50 +0200xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu)
2020-09-30 02:07:33 +0200wroathe_wroathe
2020-09-30 02:09:09 +0200isovector1_(~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Quit: Leaving)
2020-09-30 02:11:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 02:12:53 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9)
2020-09-30 02:12:54 +0200alexm_(~alexm_@161.8.233.138) ()
2020-09-30 02:13:01 +0200mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 246 seconds)
2020-09-30 02:13:59 +0200pjb(~t@2a01cb04063ec50051c09997d608b3a3.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-09-30 02:14:50 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 02:15:12 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 02:15:52 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-09-30 02:16:43 +0200wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 260 seconds)
2020-09-30 02:18:14 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 02:18:49 +0200jedws(~jedws@121.209.139.222)
2020-09-30 02:18:49 +0200wwwww(~wwwww@unaffiliated/wwwww)
2020-09-30 02:20:23 +0200catkiki(~catkiki@m90-134-157-227.cust.tele2.hr) (Ping timeout: 260 seconds)
2020-09-30 02:22:33 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-09-30 02:23:01 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
2020-09-30 02:24:18 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 02:26:03 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 02:26:13 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 02:26:38 +0200LKoen(~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-09-30 02:27:05 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-09-30 02:27:57 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1975:ad5b:4777:bf80)
2020-09-30 02:33:15 +0200sagax(~sagax_nb@213.138.71.146)
2020-09-30 02:37:06 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 02:37:23 +0200mu__(~mu@unaffiliated/mu) (Ping timeout: 240 seconds)
2020-09-30 02:40:28 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 02:41:19 +0200fog(a18146ab@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.171)
2020-09-30 02:41:48 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-30 02:43:06 +0200 <fog> hc: i was thinking about what you said about the presentation of structured concurrency starting from the dijkstra "goto considered harmful" and the corresponding "go statement considered harmful" and the parallels between the development of imperative programing and the corresponding containerised threading
2020-09-30 02:43:54 +0200 <fog> it seems like the progression was away from the turing tape style of jumping around within programs, to top down imperative style - and then to OOP and finally to functional programming
2020-09-30 02:44:42 +0200 <fog> basically the key part is not from "goto style" programing with explicit line numberings like "basic" to imperative, but from imperative to OOP and functional
2020-09-30 02:45:38 +0200 <fog> basically, this gives the "syntax tree" order of evaluation, where referencing functions or methods replaces imperative or goto style for calling different sub-parts of a piece of code / program
2020-09-30 02:46:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-09-30 02:46:58 +0200 <fog> then, "structured concurrency" is similar to this - that instead of parallel threads, in the shape of a list of lists, with order of evaluation in imperative style - from top to bottom in code - that instead, the "subprocess tree" is built into syntax referencing trees
2020-09-30 02:48:05 +0200 <fog> it seems then that lambda calculus, as an alternative way of ordering subcomponents of a program - has a duality with "structure concurrency" when supported by a similar syntax tree organising and referencing
2020-09-30 02:48:06 +0200ces(~ces@52d3ce3c.dynamic-ip.k-net.dk) (Quit: WeeChat 2.9)
2020-09-30 02:48:13 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 02:48:43 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 02:49:08 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 02:49:09 +0200 <fog> the presentation of structured concurrency then seems natural to occur within kotlin, where they have power over the syntax of the language as part of the language (arguably the key component of kotlin)
2020-09-30 02:50:06 +0200 <fog> and the natural question to ask then, is what support do we have for structured concurrency - or the syntax tree of concurrent subthreading - do we have in haskell
2020-09-30 02:51:05 +0200 <fog> and similarly, what relation does structured concurrency have to lambda calculus - wrt to syntax trees, and how can this fit into the study of formal languages, particularly regarding type systems
2020-09-30 02:52:10 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 02:53:41 +0200zacts(~zacts@dragora/developer/zacts) (Ping timeout: 265 seconds)
2020-09-30 02:53:47 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-09-30 02:54:11 +0200obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-30 02:54:41 +0200SRV_DW20(~SRV_DW20@188.126.89.194)
2020-09-30 02:57:23 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-09-30 02:58:59 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 03:01:36 +0200fog(a18146ab@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.171) (Quit: Connection closed)
2020-09-30 03:01:56 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-09-30 03:02:20 +0200reallymemorable(~quassel@ip68-9-215-56.ri.ri.cox.net)
2020-09-30 03:02:39 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-30 03:04:27 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-09-30 03:05:17 +0200jwynn6(~jwynn6@050-088-122-078.res.spectrum.com) (Ping timeout: 265 seconds)
2020-09-30 03:06:09 +0200woxip0(~dixon@190.75.138.21)
2020-09-30 03:11:21 +0200obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2020-09-30 03:16:55 +0200nineonine(~nineonine@216.81.48.202) (Remote host closed the connection)
2020-09-30 03:19:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 03:20:08 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 03:22:00 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-09-30 03:22:47 +0200fiQ-(~fiQ@mirkk.ninja)
2020-09-30 03:22:52 +0200Fernando-Basso[m(fernando-b@gateway/shell/matrix.org/x-bzveclrqdjopevvi) (Ping timeout: 244 seconds)
2020-09-30 03:22:53 +0200PotatoHatsue(berbermanp@gateway/shell/matrix.org/x-rhnnqgshpzwteayn) (Ping timeout: 244 seconds)
2020-09-30 03:22:53 +0200lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-gkitpxsfpbgapswi) (Ping timeout: 244 seconds)
2020-09-30 03:22:55 +0200rednaZ[m](r3dnazmatr@gateway/shell/matrix.org/x-pxthlvwirdzkfldr) (Ping timeout: 240 seconds)
2020-09-30 03:22:56 +0200DavSanchez[m]1(davsanchez@gateway/shell/matrix.org/x-intvmspuzeodooky) (Ping timeout: 240 seconds)
2020-09-30 03:22:58 +0200mikr[m](mikrdavral@gateway/shell/matrix.org/x-hwalopiqxtzxmuln) (Ping timeout: 240 seconds)
2020-09-30 03:22:58 +0200gcoakes[m](gcoakesmat@gateway/shell/matrix.org/x-oqmnilbkbiprwtsk) (Ping timeout: 240 seconds)
2020-09-30 03:22:59 +0200jtojnar(jtojnarmat@gateway/shell/matrix.org/x-mzqqgajmshcqybbf) (Ping timeout: 240 seconds)
2020-09-30 03:22:59 +0200kbse[m](kbsematrix@gateway/shell/matrix.org/x-sculxxdsyrrjjfti) (Ping timeout: 240 seconds)
2020-09-30 03:23:00 +0200Tristan-(~tristan@luna.whatbox.ca)
2020-09-30 03:23:16 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2020-09-30 03:23:22 +0200johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-srnthwvxcuzhennq) (Ping timeout: 244 seconds)
2020-09-30 03:23:23 +0200ciderpunx[m](ciderpunxm@gateway/shell/matrix.org/x-ohxhmeveghuoordm) (Ping timeout: 244 seconds)
2020-09-30 03:23:24 +0200nihilazo(nihilazoma@gateway/shell/matrix.org/x-wvynfrgeooaehrwj) (Ping timeout: 244 seconds)
2020-09-30 03:23:24 +0200vaibhavsagar(vaibhavsag@gateway/shell/matrix.org/x-ykpkqyigflaojgkk) (Ping timeout: 244 seconds)
2020-09-30 03:23:24 +0200Ericson2314(ericson231@gateway/shell/matrix.org/x-zonkcqyqfobqnkxa) (Ping timeout: 244 seconds)
2020-09-30 03:23:25 +0200psydruid(psydruidma@gateway/shell/matrix.org/x-txusvakrguymexoi) (Ping timeout: 240 seconds)
2020-09-30 03:23:25 +0200michaelpj1(michaelpjm@gateway/shell/matrix.org/x-zdqnoycusovyxytr) (Ping timeout: 240 seconds)
2020-09-30 03:23:25 +0200iinuwa1(iinuwamatr@gateway/shell/matrix.org/x-thwbsslmbetrqwug) (Ping timeout: 240 seconds)
2020-09-30 03:23:26 +0200Noughtmare[m](naughtmare@gateway/shell/matrix.org/x-utoajxemuakmnoxf) (Ping timeout: 240 seconds)
2020-09-30 03:23:26 +0200srid(sridmatrix@gateway/shell/matrix.org/x-czutkscoikgmnogk) (Ping timeout: 240 seconds)
2020-09-30 03:23:26 +0200domenkozar[m](domenkozar@NixOS/user/domenkozar) (Ping timeout: 240 seconds)
2020-09-30 03:23:27 +0200itai33[m](itai33matr@gateway/shell/matrix.org/x-wnrutdelscmogfwp) (Ping timeout: 244 seconds)
2020-09-30 03:23:27 +0200GuillaumeChrel[m(guillaumec@gateway/shell/matrix.org/x-kshkczvcmipqxvet) (Ping timeout: 244 seconds)
2020-09-30 03:23:27 +0200unclechu(unclechuma@gateway/shell/matrix.org/x-lntdfkrgyhbmpftv) (Ping timeout: 244 seconds)
2020-09-30 03:23:32 +0200sureyeaah(shauryab98@gateway/shell/matrix.org/x-ixgowzetgwdpalkm) (Ping timeout: 260 seconds)
2020-09-30 03:23:32 +0200io_r_us[m](commandlin@gateway/shell/matrix.org/x-qhnwvfdzptqgsudu) (Ping timeout: 260 seconds)
2020-09-30 03:23:33 +0200wangoe[m](wangoematr@gateway/shell/matrix.org/x-doccrosmfaineuhr) (Ping timeout: 260 seconds)
2020-09-30 03:23:39 +0200fiQ2(~fiQ@mirkk.ninja) (Ping timeout: 272 seconds)
2020-09-30 03:23:48 +0200Rembane(~Rembane@li346-36.members.linode.com) (Ping timeout: 260 seconds)
2020-09-30 03:23:56 +0200lambdaclan(lambdaclan@gateway/shell/matrix.org/x-ndsjwyfusbpfxije) (Ping timeout: 240 seconds)
2020-09-30 03:23:56 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-dmnemwizldkhcqnq) (Ping timeout: 240 seconds)
2020-09-30 03:24:07 +0200acidjnk_new(~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-09-30 03:24:07 +0200alexfmpe(alexfmpema@gateway/shell/matrix.org/x-qdsezkyvjisttceh) (Ping timeout: 260 seconds)
2020-09-30 03:24:07 +0200chreekat[m](chreekatma@gateway/shell/matrix.org/x-linhirjvdrhofayv) (Ping timeout: 260 seconds)
2020-09-30 03:24:07 +0200jabruen[m](jabruenmat@gateway/shell/matrix.org/x-jrbozatdhjtmoeer) (Ping timeout: 260 seconds)
2020-09-30 03:24:07 +0200sajith[m](sajithmatr@gateway/shell/matrix.org/x-jadbtjneiqrtbrpb) (Ping timeout: 260 seconds)
2020-09-30 03:24:07 +0200theduke(thedukem1@gateway/shell/matrix.org/x-lcbmhqyekohotgxa) (Ping timeout: 260 seconds)
2020-09-30 03:24:08 +0200drozdziak1(drozdziak1@gateway/shell/matrix.org/x-iagswoydzgfqnthb) (Ping timeout: 260 seconds)
2020-09-30 03:24:17 +0200maralorn(maralornma@gateway/shell/matrix.org/x-jcjdlorwwncednaz) (Ping timeout: 272 seconds)
2020-09-30 03:25:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-09-30 03:25:15 +0200Rembane(~Rembane@li346-36.members.linode.com)
2020-09-30 03:25:37 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-09-30 03:25:44 +0200_Tristan_(~tristan@luna.whatbox.ca) (Ping timeout: 246 seconds)
2020-09-30 03:26:07 +0200DavSanchez[m]1(davsanchez@gateway/shell/matrix.org/x-oppjybenvaexbwaj)
2020-09-30 03:27:18 +0200io_r_us[m](commandlin@gateway/shell/matrix.org/x-kjrwesnzoyenqgzx)
2020-09-30 03:27:48 +0200lambdaclan(lambdaclan@gateway/shell/matrix.org/x-rosqvrjyauthsfym)
2020-09-30 03:28:08 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-zchkdzekdlwvohec)
2020-09-30 03:29:06 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-09-30 03:29:06 +0200drozdziak1(drozdziak1@gateway/shell/matrix.org/x-sjsrnouamiaxipfm)
2020-09-30 03:30:43 +0200chreekat[m](chreekatma@gateway/shell/matrix.org/x-umxlgtkybcwevjvb)
2020-09-30 03:31:25 +0200jabruen[m](jabruenmat@gateway/shell/matrix.org/x-mkrzwfdeygwnehax)
2020-09-30 03:31:27 +0200alexfmpe(alexfmpema@gateway/shell/matrix.org/x-svcqerpqtkauzjui)
2020-09-30 03:31:29 +0200sajith[m](sajithmatr@gateway/shell/matrix.org/x-mvrgbpjqisezmtze)
2020-09-30 03:31:42 +0200alp(~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c) (Remote host closed the connection)
2020-09-30 03:31:43 +0200theduke(thedukem1@gateway/shell/matrix.org/x-tcbncmkaetcradmc)
2020-09-30 03:32:02 +0200alp(~alp@2a01:e0a:58b:4920:88a:e825:8145:b9ee)
2020-09-30 03:33:14 +0200rednaZ[m](r3dnazmatr@gateway/shell/matrix.org/x-iwlzundtzequgzee)
2020-09-30 03:33:14 +0200maralorn(maralornma@gateway/shell/matrix.org/x-aoxblgoncgxjmpkk)
2020-09-30 03:33:27 +0200Fernando-Basso[m(fernando-b@gateway/shell/matrix.org/x-qopgtqduxfsjtqbe)
2020-09-30 03:33:31 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection)
2020-09-30 03:33:45 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-09-30 03:33:50 +0200jtojnar(jtojnarmat@gateway/shell/matrix.org/x-oypragrwlxqgnchv)
2020-09-30 03:34:01 +0200lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-mgiougcltykvpgks)
2020-09-30 03:34:07 +0200kbse[m](kbsematrix@gateway/shell/matrix.org/x-aveamwrjewluqtec)
2020-09-30 03:34:16 +0200gcoakes[m](gcoakesmat@gateway/shell/matrix.org/x-flwpwnktpkouxpwp)
2020-09-30 03:34:47 +0200nihilazo(nihilazoma@gateway/shell/matrix.org/x-nhbxnzosodzhmhyx)
2020-09-30 03:35:01 +0200Ericson2314(ericson231@gateway/shell/matrix.org/x-vfqdqvnkedexzixl)
2020-09-30 03:36:26 +0200Benett(~Benett@unaffiliated/benett) (Remote host closed the connection)
2020-09-30 03:36:44 +0200johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-xczqbcixpmjhwvre)
2020-09-30 03:36:45 +0200mikr[m](mikrdavral@gateway/shell/matrix.org/x-iihzpvcobeurnjqm)
2020-09-30 03:36:46 +0200 <woxip0> leave
2020-09-30 03:37:18 +0200 <woxip0> quit
2020-09-30 03:37:20 +0200woxip0(~dixon@190.75.138.21) (Quit: WeeChat 2.3)
2020-09-30 03:37:29 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 03:37:49 +0200 <Axman6> Thanks for coming to woxip0's demotivational talk for today
2020-09-30 03:38:10 +0200Benett(~Benett@unaffiliated/benett)
2020-09-30 03:38:26 +0200psydruid(psydruidma@gateway/shell/matrix.org/x-agoyrynofjmbqrna)
2020-09-30 03:39:24 +0200drbean(~drbean@TC210-63-209-160.static.apol.com.tw)
2020-09-30 03:40:05 +0200michaelpj1(michaelpjm@gateway/shell/matrix.org/x-bmrqrkqdmdnabvkc)
2020-09-30 03:40:11 +0200ciderpunx[m](ciderpunxm@gateway/shell/matrix.org/x-tppxydebwmzeidan)
2020-09-30 03:40:41 +0200srid(sridmatrix@gateway/shell/matrix.org/x-zqttickmrfyduksr)
2020-09-30 03:41:04 +0200vaibhavsagar(vaibhavsag@gateway/shell/matrix.org/x-uujnimdcokvefwmq)
2020-09-30 03:41:07 +0200unclechu(unclechuma@gateway/shell/matrix.org/x-lokwlamfbcqzukdh)
2020-09-30 03:41:30 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-09-30 03:41:41 +0200domenkozar[m](domenkozar@NixOS/user/domenkozar)
2020-09-30 03:41:56 +0200iinuwa1(iinuwamatr@gateway/shell/matrix.org/x-vnidwkjqityvsyww)
2020-09-30 03:41:57 +0200wangoe[m](wangoematr@gateway/shell/matrix.org/x-ejdppythnrvrfopr)
2020-09-30 03:41:58 +0200sureyeaah(shauryab98@gateway/shell/matrix.org/x-kczqpmbbcugstynw)
2020-09-30 03:42:17 +0200Clough(~Cain@190.121.220.203.dial.dynamic.acc01-fenw-glg.comindico.com.au)
2020-09-30 03:42:19 +0200itai33[m](itai33matr@gateway/shell/matrix.org/x-kefkftogqwbmbqbo)
2020-09-30 03:42:19 +0200GuillaumeChrel[m(guillaumec@gateway/shell/matrix.org/x-jdchaaocbuitwfmn)
2020-09-30 03:45:27 +0200hackageservant-client-js 0.1.0.0 - A servant client for frontend JavaScript https://hackage.haskell.org/package/servant-client-js-0.1.0.0 (morganthomas)
2020-09-30 03:46:06 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 244 seconds)
2020-09-30 03:47:08 +0200alp(~alp@2a01:e0a:58b:4920:88a:e825:8145:b9ee) (Ping timeout: 244 seconds)
2020-09-30 03:47:32 +0200dyeplexer(~lol@unaffiliated/terpin)
2020-09-30 03:48:27 +0200hackageserverless-haskell 0.12.3 - Deploying Haskell code onto AWS Lambda using Serverless https://hackage.haskell.org/package/serverless-haskell-0.12.3 (AlexeyKotlyarov)
2020-09-30 03:49:53 +0200 <monochrom> Merch at https://despair.com/ :)
2020-09-30 03:51:59 +0200xff0x(~fox@2001:1a81:53b0:3c00:e98b:1e53:4e8a:cb9b) (Ping timeout: 246 seconds)
2020-09-30 03:52:22 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 03:53:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 03:53:54 +0200xff0x(~fox@2001:1a81:53e7:fb00:e98b:1e53:4e8a:cb9b)
2020-09-30 03:55:08 +0200Benzi-Junior(~BenziJuni@dsl-149-67-198.hive.is) (Ping timeout: 256 seconds)
2020-09-30 03:55:28 +0200Benzi-Junior(~BenziJuni@88-149-67-198.du.xdsl.is)
2020-09-30 03:57:19 +0200mac10688(~mac10688@c-76-115-116-76.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2020-09-30 03:57:45 +0200vivekramaswamy(~vivekrama@49.207.196.1)
2020-09-30 03:57:57 +0200mac10688(~mac10688@c-76-115-116-76.hsd1.or.comcast.net)
2020-09-30 04:09:00 +0200polyrain(~polyrain@2001:8003:e501:6901:3476:44e3:8b50:e5ca)
2020-09-30 04:09:12 +0200halogenandtoast(~halogenan@072-176-116-031.res.spectrum.com)
2020-09-30 04:09:26 +0200 <halogenandtoast> I feel like I am just tired, but does there already exist a function that does this? https://gist.github.com/halogenandtoast/bf48c58903b22b1720c297f0ca246484
2020-09-30 04:09:45 +0200 <halogenandtoast> I feel like using a fold has to be overkill here.
2020-09-30 04:10:18 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 04:12:25 +0200 <dolio> halogenandtoast: You could use First.
2020-09-30 04:12:43 +0200 <dolio> It's not going to be a lot different, though.
2020-09-30 04:13:48 +0200 <halogenandtoast> Yeah I considered using First here, but didn't, for that reason.
2020-09-30 04:13:58 +0200darjeeling_(~darjeelin@122.245.121.113) (Ping timeout: 260 seconds)
2020-09-30 04:14:57 +0200unclechu(unclechuma@gateway/shell/matrix.org/x-lokwlamfbcqzukdh) (*.net *.split)
2020-09-30 04:14:57 +0200jabruen[m](jabruenmat@gateway/shell/matrix.org/x-mkrzwfdeygwnehax) (*.net *.split)
2020-09-30 04:14:57 +0200Tristan-(~tristan@luna.whatbox.ca) (*.net *.split)
2020-09-30 04:14:57 +0200fiQ-(~fiQ@mirkk.ninja) (*.net *.split)
2020-09-30 04:14:57 +0200gluegadget(sid22336@gateway/web/irccloud.com/x-xozlpymtatjtbivu) (*.net *.split)
2020-09-30 04:14:57 +0200simony(sid226116@gateway/web/irccloud.com/x-dmnnvhhbweuqxcvx) (*.net *.split)
2020-09-30 04:14:57 +0200cemerick(sid54985@gateway/web/irccloud.com/x-latpmrffuxrdviie) (*.net *.split)
2020-09-30 04:14:57 +0200kyagrd__(sid102627@gateway/web/irccloud.com/x-ueauikqbfiitnall) (*.net *.split)
2020-09-30 04:14:57 +0200Boarders(sid425905@gateway/web/irccloud.com/x-hphcbtvbxebihmwg) (*.net *.split)
2020-09-30 04:14:57 +0200hamishmack(sid389057@gateway/web/irccloud.com/x-joqbkxseaudzewuy) (*.net *.split)
2020-09-30 04:14:57 +0200heyj(sid171370@gateway/web/irccloud.com/x-lkawpqiwbkazqhbr) (*.net *.split)
2020-09-30 04:14:57 +0200Shun131(sid377723@gateway/web/irccloud.com/x-dfpyabbpewgqppso) (*.net *.split)
2020-09-30 04:14:57 +0200nlofaro(sid258233@gateway/web/irccloud.com/x-yqtwjxxgifuvztsm) (*.net *.split)
2020-09-30 04:14:57 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-lhhtwrcyukiolswv) (*.net *.split)
2020-09-30 04:14:57 +0200xyggos(uid216035@gateway/web/irccloud.com/x-lhaarqbamcocycpv) (*.net *.split)
2020-09-30 04:14:57 +0200alunduil(alunduil@gateway/web/irccloud.com/x-upaxhaxxkezwifdm) (*.net *.split)
2020-09-30 04:14:57 +0200PoliticsII____(sid193551@gateway/web/irccloud.com/x-hownnnwfspnbpudf) (*.net *.split)
2020-09-30 04:14:57 +0200cstrahan(sid36118@gateway/web/irccloud.com/x-ceukpoxrsnzpwlkj) (*.net *.split)
2020-09-30 04:14:57 +0200albethere(sid457088@gateway/web/irccloud.com/x-kdubkdobgmtjdtxg) (*.net *.split)
2020-09-30 04:14:57 +0200kozowu(uid44796@gateway/web/irccloud.com/x-mavyewbrkcrhqppw) (*.net *.split)
2020-09-30 04:14:57 +0200glowcoil(sid3405@gateway/web/irccloud.com/x-lstfnintbamvabrb) (*.net *.split)
2020-09-30 04:14:57 +0200jetpack_joe(sid146137@gateway/web/irccloud.com/x-fcijrdwmdwvwvjor) (*.net *.split)
2020-09-30 04:14:57 +0200pent(sid313808@gateway/web/irccloud.com/x-yjtwetnkogukpzmx) (*.net *.split)
2020-09-30 04:14:57 +0200caasih(sid13241@gateway/web/irccloud.com/x-luakympvtdjyqgpe) (*.net *.split)
2020-09-30 04:14:57 +0200mpickering(sid78412@gateway/web/irccloud.com/x-gsxeeazgdrkchphy) (*.net *.split)
2020-09-30 04:14:57 +0200rann(sid175221@gateway/web/irccloud.com/x-hsipljbilyngvaij) (*.net *.split)
2020-09-30 04:14:57 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-khuknondgmnqwpfb) (*.net *.split)
2020-09-30 04:14:57 +0200Kamuela(sid111576@gateway/web/irccloud.com/x-kfraqxxakmiuotqp) (*.net *.split)
2020-09-30 04:14:57 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-cicafdvoiqgnsxlq) (*.net *.split)
2020-09-30 04:14:57 +0200unlink_(~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) (*.net *.split)
2020-09-30 04:14:57 +0200angerman(sid209936@gateway/web/irccloud.com/x-sxwsoxjbjhhdcytm) (*.net *.split)
2020-09-30 04:14:57 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-hpkxvtmaddacpkcm) (*.net *.split)
2020-09-30 04:14:57 +0200benwr__(sid372383@gateway/web/irccloud.com/x-gisfqzblfklvpltj) (*.net *.split)
2020-09-30 04:14:57 +0200teehemkay(sid14792@gateway/web/irccloud.com/x-enbnrxzqqcvacsyt) (*.net *.split)
2020-09-30 04:14:57 +0200jbetz(sid283648@gateway/web/irccloud.com/x-jpndowfutuxwtlac) (*.net *.split)
2020-09-30 04:14:57 +0200metadave(sid28102@gateway/web/irccloud.com/x-kvbjexppaeoxogva) (*.net *.split)
2020-09-30 04:14:57 +0200fiadliel(sid399568@gateway/web/irccloud.com/x-ktjqphtdpabuzhix) (*.net *.split)
2020-09-30 04:14:57 +0200jared-w(uid405292@gateway/web/irccloud.com/x-rpqfkttwgpododuy) (*.net *.split)
2020-09-30 04:14:57 +0200hololeap(~hololeap@unaffiliated/hololeap) (*.net *.split)
2020-09-30 04:14:57 +0200rizary(sid220347@gateway/web/irccloud.com/x-yircivgrzzuogmcd) (*.net *.split)
2020-09-30 04:14:57 +0200d0liver(sid363046@gateway/web/irccloud.com/x-qfnvcyeeietbneso) (*.net *.split)
2020-09-30 04:14:57 +0200lagothrix(~lagothrix@unaffiliated/lagothrix) (*.net *.split)
2020-09-30 04:14:57 +0200Amras(~Amras@unaffiliated/amras0000) (*.net *.split)
2020-09-30 04:14:57 +0200karolus(~karolus@static.32.230.217.95.clients.your-server.de) (*.net *.split)
2020-09-30 04:14:57 +0200jhuizy(~jhuizy@static.241.188.216.95.clients.your-server.de) (*.net *.split)
2020-09-30 04:14:57 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (*.net *.split)
2020-09-30 04:14:57 +0200sarahzrf(~sarahzrf_@benzrf.com) (*.net *.split)
2020-09-30 04:14:57 +0200hyiltiz-M(hyiltizkde@gateway/shell/kde/matrix/x-iqydoavyrkykkzgo) (*.net *.split)
2020-09-30 04:14:57 +0200jchia_(~jchia@58.32.37.220) (*.net *.split)
2020-09-30 04:14:57 +0200ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (*.net *.split)
2020-09-30 04:14:57 +0200aurieeeh(~aurieh@static.91.102.243.136.clients.your-server.de) (*.net *.split)
2020-09-30 04:14:57 +0200auri_(~auri_@fsf/memeber/auri-) (*.net *.split)
2020-09-30 04:14:57 +0200SolarAquarion(SolarAquar@gateway/shell/panicbnc/x-qhbkvprsewvzxtnd) (*.net *.split)
2020-09-30 04:14:57 +0200Klumben(Nsaiswatch@gateway/shell/panicbnc/x-lfgojlskrxejewoq) (*.net *.split)
2020-09-30 04:14:57 +0200dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (*.net *.split)
2020-09-30 04:14:57 +0200petersen(~petersen@redhat/juhp) (*.net *.split)
2020-09-30 04:14:57 +0200pong(chiya@2406:3003:2077:2341::babe) (*.net *.split)
2020-09-30 04:14:57 +0200dequbed_(~dequbed@yanduxian.paranoidlabs.org) (*.net *.split)
2020-09-30 04:14:57 +0200noexcept_(~noexcept@noexcept.org) (*.net *.split)
2020-09-30 04:14:57 +0200Xnuk(~xnuk@45.76.202.58) (*.net *.split)
2020-09-30 04:14:57 +0200rotty(rotty@ghost.xx.vu) (*.net *.split)
2020-09-30 04:14:57 +0200Majiir(~Majiir@2601:18c:ca00:a400:211:32ff:fe42:6eda) (*.net *.split)
2020-09-30 04:14:57 +0200tomku(~tomku@unaffiliated/tomku) (*.net *.split)
2020-09-30 04:14:57 +0200themsay[m](themsaymat@gateway/shell/matrix.org/x-mjbquguhfulgkgro) (*.net *.split)
2020-09-30 04:14:57 +0200jkaye[m](jkayematri@gateway/shell/matrix.org/x-rpmuernsphlxsxxq) (*.net *.split)
2020-09-30 04:14:57 +0200coeus(~coeus@p200300d02724ef00d20f0ecf5ac74df4.dip0.t-ipconnect.de) (*.net *.split)
2020-09-30 04:14:57 +0200magog(~wee@unaffiliated/magog) (*.net *.split)
2020-09-30 04:14:57 +0200Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split)
2020-09-30 04:14:57 +0200nopf(~frosch@static.179.17.76.144.clients.your-server.de) (*.net *.split)
2020-09-30 04:14:57 +0200M2tias(m2@seri.fi) (*.net *.split)
2020-09-30 04:15:03 +0200unlink__(~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de)
2020-09-30 04:15:06 +0200_Tristan_(~tristan@luna.whatbox.ca)
2020-09-30 04:15:07 +0200noexcept(~noexcept@2a03:b0c0:3:d0::33:9001)
2020-09-30 04:15:08 +0200sarahzrf(~sarahzrf_@benzrf.com)
2020-09-30 04:15:09 +0200nlofaro(sid258233@gateway/web/irccloud.com/x-etxlydyigzmwkiap)
2020-09-30 04:15:10 +0200benwr__(sid372383@gateway/web/irccloud.com/x-ehohzcwkyjbzpbwl)
2020-09-30 04:15:11 +0200mpickering(sid78412@gateway/web/irccloud.com/x-ugziboqyrxfitrmv)
2020-09-30 04:15:11 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2020-09-30 04:15:12 +0200simony(sid226116@gateway/web/irccloud.com/x-ebcflagagczxghjj)
2020-09-30 04:15:13 +0200teehemkay(sid14792@gateway/web/irccloud.com/x-xjwybgbmcxfolzwh)
2020-09-30 04:15:14 +0200vivekramaswamy(~vivekrama@49.207.196.1) (Quit: Sayonara. Long live Haskell)
2020-09-30 04:15:14 +0200tomku(~tomku@unaffiliated/tomku)
2020-09-30 04:15:14 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-zrkqcymdfzqfjfqv)
2020-09-30 04:15:14 +0200fiQ2(~fiQ@mirkk.ninja)
2020-09-30 04:15:14 +0200kyagrd__(sid102627@gateway/web/irccloud.com/x-cswsttltgsuxjilm)
2020-09-30 04:15:14 +0200karolus(~karolus@static.32.230.217.95.clients.your-server.de)
2020-09-30 04:15:14 +0200Xnuk(~xnuk@45.76.202.58)
2020-09-30 04:15:15 +0200Majiir(~Majiir@2601:18c:ca00:a400:211:32ff:fe42:6eda)
2020-09-30 04:15:15 +0200aurieeeh(~aurieh@static.91.102.243.136.clients.your-server.de)
2020-09-30 04:15:18 +0200jhuizy(~jhuizy@static.241.188.216.95.clients.your-server.de)
2020-09-30 04:15:18 +0200dequbed(~dequbed@yanduxian.paranoidlabs.org)
2020-09-30 04:15:18 +0200xyggos(uid216035@gateway/web/irccloud.com/x-gnlompqpniagbeqc)
2020-09-30 04:15:18 +0200cemerick(sid54985@gateway/web/irccloud.com/x-pdxhruraknqcvldm)
2020-09-30 04:15:18 +0200d0liver(sid363046@gateway/web/irccloud.com/x-jybzxemfqeasbqbs)
2020-09-30 04:15:18 +0200zopsi(~zopsi@irc.dir.ac) (Max SendQ exceeded)
2020-09-30 04:15:19 +0200jetpack_joe(sid146137@gateway/web/irccloud.com/x-zhxrcrokabwqiajh)
2020-09-30 04:15:19 +0200alunduil(alunduil@gateway/web/irccloud.com/x-armiphmmyuoonyeh)
2020-09-30 04:15:20 +0200angerman(sid209936@gateway/web/irccloud.com/x-kbnupcpypxlxxlnc)
2020-09-30 04:15:22 +0200heyj(sid171370@gateway/web/irccloud.com/x-ffzoewiykurlnmpn)
2020-09-30 04:15:22 +0200jared-w(uid405292@gateway/web/irccloud.com/x-lvabjzxurljtbtsc)
2020-09-30 04:15:23 +0200hamishmack(sid389057@gateway/web/irccloud.com/x-kmbanmfbezzgjcwy)
2020-09-30 04:15:23 +0200fiadliel(sid399568@gateway/web/irccloud.com/x-llzgoofxbcculsva)
2020-09-30 04:15:23 +0200metadave(sid28102@gateway/web/irccloud.com/x-pebkddzdcftwierd)
2020-09-30 04:15:23 +0200caasih(sid13241@gateway/web/irccloud.com/x-teuwvboxinwdshpz)
2020-09-30 04:15:23 +0200albethere(sid457088@gateway/web/irccloud.com/x-euzbwktnggxsctak)
2020-09-30 04:15:24 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-30 04:15:24 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-09-30 04:15:25 +0200hololeap(~hololeap@unaffiliated/hololeap)
2020-09-30 04:15:26 +0200PoliticsII____(sid193551@gateway/web/irccloud.com/x-nvfqluymqsvazvtl)
2020-09-30 04:15:26 +0200Boarders(sid425905@gateway/web/irccloud.com/x-xkpxetjoxpjitwjh)
2020-09-30 04:15:26 +0200rann(sid175221@gateway/web/irccloud.com/x-aedrxgorilstsgns)
2020-09-30 04:15:27 +0200glowcoil(sid3405@gateway/web/irccloud.com/x-thsriowqmdkgjing)
2020-09-30 04:15:28 +0200rizary(sid220347@gateway/web/irccloud.com/x-asbilbwnyrijqcny)
2020-09-30 04:15:30 +0200gluegadget(sid22336@gateway/web/irccloud.com/x-ujwmxysajygjgukb)
2020-09-30 04:15:31 +0200rotty(rotty@ghost.xx.vu)
2020-09-30 04:15:31 +0200pent(sid313808@gateway/web/irccloud.com/x-dxofbfnqjnwrcfkh)
2020-09-30 04:15:32 +0200cstrahan(sid36118@gateway/web/irccloud.com/x-ayxmqtejzrwtwzqi)
2020-09-30 04:15:33 +0200Kamuela(sid111576@gateway/web/irccloud.com/x-hizwwfvajxwuptvq)
2020-09-30 04:15:34 +0200jbetz(sid283648@gateway/web/irccloud.com/x-jvvvgpgxfdgnkdbf)
2020-09-30 04:15:34 +0200vivekramaswamy(~vivekrama@49.207.196.1)
2020-09-30 04:15:35 +0200dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-09-30 04:15:37 +0200kozowu(uid44796@gateway/web/irccloud.com/x-wpjivtkfdyaoqwbw)
2020-09-30 04:15:41 +0200Shun131(sid377723@gateway/web/irccloud.com/x-qfflzmcznnjkrwrn)
2020-09-30 04:15:42 +0200zopsi(zopsi@2600:3c00::f03c:91ff:fe14:551f)
2020-09-30 04:15:47 +0200auri_(~auri_@fsf/memeber/auri-)
2020-09-30 04:15:47 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-qegeokaunvltnjjt)
2020-09-30 04:15:49 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-nntthzpvnqfcnxqs)
2020-09-30 04:16:02 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 04:16:06 +0200 <Axman6> halogenandtoast: xs ?^ each . _BaseSkillOf
2020-09-30 04:16:08 +0200unclechu(unclechuma@gateway/shell/matrix.org/x-bgindqyxdmllwdai)
2020-09-30 04:16:29 +0200PotatoHatsue(berbermanp@gateway/shell/matrix.org/x-lcuapfbpkatzswxh)
2020-09-30 04:16:34 +0200 <dolio> Yeah, if you have some better building blocks it will help.
2020-09-30 04:16:54 +0200polyrain_(~polyrain@2001:8003:e501:6901:4af:ac65:fda8:8e33)
2020-09-30 04:16:57 +0200jabruen[m](jabruenmat@gateway/shell/matrix.org/x-akmaydnltwuauerf)
2020-09-30 04:17:20 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9) (Quit: Leaving)
2020-09-30 04:17:30 +0200 <halogenandtoast> Axman6: where is that lens coming from :p
2020-09-30 04:17:36 +0200 <halogenandtoast> I surely did not write it
2020-09-30 04:17:37 +0200thecoffemaker(~thecoffem@unaffiliated/thecoffemaker) (Ping timeout: 264 seconds)
2020-09-30 04:18:21 +0200jkaye[m](jkayematri@gateway/shell/matrix.org/x-xibdbttwtjjbthkv)
2020-09-30 04:18:24 +0200 <vivekramaswamy> Hello All, I came here as there is no one in the haskell beginners channel, i really have a simple question. the type constructor for a list is defined as data [] a = [] | a
2020-09-30 04:18:40 +0200rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 246 seconds)
2020-09-30 04:18:44 +0200themsay[m](themsaymat@gateway/shell/matrix.org/x-yeakmiacdwmqfqaq)
2020-09-30 04:19:18 +0200 <vivekramaswamy> Hello All, I came here as there is no one in the haskell beginners channel, i really have a simple question. the type constructor for a list is defined as data [] a = [] | a:[a] how can I construct a list with a single element using these data constructor for the list
2020-09-30 04:19:22 +0200 <ski> there are people in there. however, there was just a netsplit, so perhaps that's why it didn't seem like way
2020-09-30 04:19:32 +0200 <glguy> vivekramaswamy: this channel is fine for beginner questions
2020-09-30 04:19:46 +0200polyrain(~polyrain@2001:8003:e501:6901:3476:44e3:8b50:e5ca) (Ping timeout: 244 seconds)
2020-09-30 04:19:48 +0200 <ski> add an element to the empty list
2020-09-30 04:19:51 +0200 <halogenandtoast> vivekramaswamy: a:[] ?
2020-09-30 04:19:52 +0200rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi)
2020-09-30 04:20:11 +0200hyiltiz-M(hyiltizkde@gateway/shell/kde/matrix/session)
2020-09-30 04:20:11 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-lhhtwrcyukiolswv)
2020-09-30 04:20:11 +0200jchia_(~jchia@58.32.37.220)
2020-09-30 04:20:11 +0200ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-09-30 04:20:11 +0200pong(chiya@2406:3003:2077:2341::babe)
2020-09-30 04:20:11 +0200coeus(~coeus@p200300d02724ef00d20f0ecf5ac74df4.dip0.t-ipconnect.de)
2020-09-30 04:20:11 +0200magog(~wee@unaffiliated/magog)
2020-09-30 04:20:11 +0200Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
2020-09-30 04:20:11 +0200nopf(~frosch@static.179.17.76.144.clients.your-server.de)
2020-09-30 04:20:11 +0200M2tias(m2@seri.fi)
2020-09-30 04:20:12 +0200hyiltiz-M(hyiltizkde@gateway/shell/kde/matrix/session) (Changing host)
2020-09-30 04:20:12 +0200hyiltiz-M(hyiltizkde@gateway/shell/kde/matrix/x-gsazjbgdfcbtdfre)
2020-09-30 04:20:18 +0200 <vivekramaswamy> yeah but we dont have a data constructor like a:[]
2020-09-30 04:20:25 +0200BalterNotz(ca420871@202.66.8.113)
2020-09-30 04:20:36 +0200 <ski> so use multiple data constructors, when making a singleton list
2020-09-30 04:20:56 +0200 <halogenandtoast> vivekramaswamy: you are misreading how that constructor is working there. It's recursive (if implemented correctly)
2020-09-30 04:21:03 +0200 <glguy> vivekramaswamy: (:) and [] are the two data constructors for list
2020-09-30 04:21:08 +0200 <vivekramaswamy> But this is a sum type, I can only use one of the constructors right
2020-09-30 04:21:22 +0200 <ski> `[]' is the empty list. if `x' is an element, and `xs' is a list, then `x:xs' is the list that starts with the element `x', and continues with all the elements (possibly zero of them) in the list `xs'
2020-09-30 04:21:41 +0200 <ski> why would you think that, vivekramaswamy ?
2020-09-30 04:21:43 +0200thecoffemaker(~thecoffem@unaffiliated/thecoffemaker)
2020-09-30 04:22:10 +0200 <halogenandtoast> vivekramaswamy: you are using one of the constructors, the constructor on the right just happens to be recursive.
2020-09-30 04:22:43 +0200 <vivekramaswamy> where I am getting confused is this is a:[] == a:[a]
2020-09-30 04:22:52 +0200 <halogenandtoast> One is a value, one is a type
2020-09-30 04:23:03 +0200 <halogenandtoast> *data constructor
2020-09-30 04:23:27 +0200 <ski> vivekramaswamy : `a:[a]' in `data [a] = [] | a:[a]' is a "template". it means that if you have `x' of type `a', and `xs' of type `[a]', then `x:xs' has type `[a]'
2020-09-30 04:23:49 +0200toorevitimirp(~tooreviti@117.182.182.201)
2020-09-30 04:24:06 +0200 <ski> in place of actual values (left and right operand to the infix operator `:'), you have the expected types of those operands, in the `data' type declaration
2020-09-30 04:24:16 +0200 <vivekramaswamy> to construct a list with a single element I will have to use one of the data constructors right. I can't use [], also the second constructors presumes a value already in the list a:[]
2020-09-30 04:24:24 +0200 <ski> when actually using the data constructors, you'd use actual values of those two types
2020-09-30 04:24:40 +0200lagothrixGuest22008
2020-09-30 04:24:40 +0200Guest22008(~lagothrix@unaffiliated/lagothrix) (Killed (moon.freenode.net (Nickname regained by services)))
2020-09-30 04:24:48 +0200 <ski> vivekramaswamy : the second one adds an element in front of an existing list
2020-09-30 04:24:49 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-09-30 04:25:20 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 04:26:16 +0200 <vivekramaswamy> correct , an already existing list a:[a], but for a list with only one element it will cons to a:[] adding element to the empty list, where is that covered in the data constructors
2020-09-30 04:26:18 +0200 <halogenandtoast> vivekramaswamy: you have to start with the premise that you are reading those constructors incorrectly which is why you don't see the solution yet.
2020-09-30 04:26:19 +0200 <glguy> vivekramaswamy: Would it be less confusing if we used this definition:
2020-09-30 04:26:20 +0200 <glguy> % data List a = Empty | Prepend a (List a)
2020-09-30 04:26:25 +0200 <yahb> glguy:
2020-09-30 04:27:01 +0200 <glguy> That's the same thing with different names avoiding symbols and ambiguity between the type and value levels
2020-09-30 04:27:01 +0200 <ski> % deriving instance Show a => Show (List a)
2020-09-30 04:27:04 +0200 <yahb> ski:
2020-09-30 04:27:26 +0200drbean(~drbean@TC210-63-209-160.static.apol.com.tw) (Ping timeout: 244 seconds)
2020-09-30 04:28:07 +0200SolarAquarion(SolarAquar@gateway/shell/panicbnc/x-nikabmyijjgiqeue)
2020-09-30 04:28:08 +0200polyrain_(~polyrain@2001:8003:e501:6901:4af:ac65:fda8:8e33) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 04:28:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-09-30 04:28:45 +0200 <Axman6> vivekramaswamy: the way that list is defined is quitre confusing to beginners, a better definition using GADT syntax is: data [] a where [] :: [a]; (:) :: a -> [a] -> [a] -- a list is EITHER: an empty list [] which has type [a] OR a (:) (pronounced "cons") with has a value of type a and a value of type [a]
2020-09-30 04:28:49 +0200 <glguy> % Prepend "singleton" Empty
2020-09-30 04:28:50 +0200 <yahb> glguy: Prepend "singleton" Empty
2020-09-30 04:29:25 +0200 <Axman6> :t (:)
2020-09-30 04:29:26 +0200 <lambdabot> a -> [a] -> [a]
2020-09-30 04:29:29 +0200 <halogenandtoast> Axman6: beginners and GADT in the same sentence, what world is this?
2020-09-30 04:29:42 +0200 <ski> that declaration means that `Empty' has type `List a' (for any type `a'); and also that `Prepend x xs' has type `List a' (for any type `a'), provided that `x' has (that) type `a', and `xs' has type `List a'
2020-09-30 04:29:55 +0200 <ski> halogenandtoast : `GADTSyntax', not `GADT'
2020-09-30 04:30:12 +0200 <Axman6> halogenandtoast: GDTS syntax is oftewn much easier for beginners to understand, as it;s much more consistent than the normal sum type syntax, which mixes constructors and the types they hold
2020-09-30 04:30:18 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-30 04:30:26 +0200o1lo01ol_(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-30 04:30:31 +0200 <ski> vivekramaswamy : is glguy's alternative list type definition making any more sense to you, atm ?
2020-09-30 04:31:12 +0200 <Axman6> > 1 : []
2020-09-30 04:31:15 +0200 <lambdabot> [1]
2020-09-30 04:31:18 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer)
2020-09-30 04:31:19 +0200 <Axman6> > (:) 1 []
2020-09-30 04:31:20 +0200polyrain(~polyrain@2001:8003:e501:6901:4af:ac65:fda8:8e33)
2020-09-30 04:31:21 +0200 <lambdabot> [1]
2020-09-30 04:31:36 +0200 <vivekramaswamy> Thank you very much for the help, but I am still very confused about this. Let me re -read all the messages again and try and make sense of them
2020-09-30 04:31:50 +0200 <Axman6> :t []
2020-09-30 04:31:51 +0200 <lambdabot> [a]
2020-09-30 04:31:53 +0200 <Axman6> : (:)
2020-09-30 04:31:57 +0200 <Axman6> :t (:)
2020-09-30 04:31:58 +0200 <lambdabot> a -> [a] -> [a]
2020-09-30 04:32:56 +0200 <vivekramaswamy> I get this 1:[], but where is this one covered in the 2 data constructors defines [] | a:[a]
2020-09-30 04:33:10 +0200 <ski> vivekramaswamy : it uses both of the data constructors
2020-09-30 04:33:14 +0200 <Axman6> those are the two main facts you need to understand vivekramaswamy. the syntax in data [] a = [] | a : [a] is confusing because it mixed types and constructors and doesn't make it clear that the [a] in that definition is _a type_ not a value
2020-09-30 04:33:24 +0200 <vivekramaswamy> 2:[3] makes sense to me as it is covered by the data constructor
2020-09-30 04:33:39 +0200 <Axman6> 2:[3] is _really_: 2:3:[]
2020-09-30 04:34:08 +0200 <Axman6> [3] is special syntax, is it not how lists are actually defined
2020-09-30 04:34:15 +0200 <ski> vivekramaswamy : first, `[]' is the empty list. then, you can use `:' to prepend an element `1' in from of that list (the empty list `[]', getting `1 : []'. that singleton list has syntactic sugar `[1]' which is what is shown, when evaluated, for convenience sake
2020-09-30 04:34:18 +0200 <Axman6> > 1:2:3:[]
2020-09-30 04:34:20 +0200 <lambdabot> [1,2,3]
2020-09-30 04:34:26 +0200 <Axman6> > 1:2:[3]
2020-09-30 04:34:29 +0200 <lambdabot> [1,2,3]
2020-09-30 04:34:30 +0200Lycurgus(~niemand@98.4.96.130)
2020-09-30 04:34:31 +0200 <Axman6> > 1:[2,3]
2020-09-30 04:34:34 +0200 <lambdabot> [1,2,3]
2020-09-30 04:35:13 +0200 <ski> `[1,2,3]' means `1:[2,3]' means `1:(2:[3])' means `1:(2:(3:[]))'. we can omit the brackets (since `:' is specified to "associate to the right"), giving just `1:2:3:[]'
2020-09-30 04:35:16 +0200 <vivekramaswamy> yeap I get that just as for many characters we define [Char] so [a] means [a,a, as many elements of type a]
2020-09-30 04:35:17 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 260 seconds)
2020-09-30 04:35:58 +0200 <Axman6> strings are yet another special syntax
2020-09-30 04:36:00 +0200 <vivekramaswamy> a:[a] means consing a to a list of type a which is fine.
2020-09-30 04:36:23 +0200 <ski> `1:(2:(3:[]))' or `1:2:3:[]' is the "real list of three elements". `[1,2,3]' is just a convenient way ("syntactic sugar") to write it, in a form that's more appealing to humans
2020-09-30 04:36:25 +0200 <Axman6> > 'a':['b','c']
2020-09-30 04:36:25 +0200 <glguy> vivekramaswamy: [a] as a value is a special shortcut you should forget about until you udnerstand what's happening without it
2020-09-30 04:36:28 +0200 <lambdabot> "abc"
2020-09-30 04:36:42 +0200 <ski> vivekramaswamy : `x:xs' means consing/prepending `x' in front of the list `xs'
2020-09-30 04:37:30 +0200 <ski> > let xs = []; ys = 0 : xs; zs = 1 : ys in (xs,ys,zs)
2020-09-30 04:37:32 +0200 <vivekramaswamy> "abc" is actually 'a':'b':'c':[] I get that
2020-09-30 04:37:33 +0200 <lambdabot> ([],[0],[1,0])
2020-09-30 04:38:04 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-30 04:38:05 +0200 <ski> vivekramaswamy : is there anything remaining, that's unclear ?
2020-09-30 04:38:06 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 04:38:37 +0200 <Axman6> halogenandtoast: coming back to your question, some template haskell defined that prism for you ;)
2020-09-30 04:38:43 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2020-09-30 04:38:44 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-09-30 04:38:50 +0200 <vivekramaswamy> Nope, I think I get it now, thanks a ton to all of you
2020-09-30 04:38:57 +0200 <ski> np
2020-09-30 04:39:54 +0200plutoniix(~q@175.176.222.7)
2020-09-30 04:39:57 +0200 <Axman6> vivekramaswamy: I can't actually see you asking that question in #haskell-beginners btw, when did you ask it?>
2020-09-30 04:40:20 +0200 <ski> Axman6 : perhaps during the netsplit
2020-09-30 04:40:47 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-09-30 04:41:09 +0200 <ski> (there was one, just before they asked in here)
2020-09-30 04:42:46 +0200 <ski> (or, possibly they thought noone was paying any attention to that channel, since there was no current discussion in there. .. who knows ?)
2020-09-30 04:44:20 +0200andi-(~andi-@NixOS/user/andi-) (Remote host closed the connection)
2020-09-30 04:46:06 +0200jcarpenter2(~rofl@96.78.87.197) (Ping timeout: 272 seconds)
2020-09-30 04:47:07 +0200inerkick(~rohit@117.230.9.17)
2020-09-30 04:48:09 +0200andi-(~andi-@NixOS/user/andi-)
2020-09-30 04:49:04 +0200dopplerg-(~dop@titan.pathogen.is) (Remote host closed the connection)
2020-09-30 04:49:20 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-09-30 04:49:43 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-09-30 04:50:02 +0200anoe(~anoe@delanoe.org) (Ping timeout: 256 seconds)
2020-09-30 04:50:11 +0200theDon(~td@94.134.91.135) (Ping timeout: 258 seconds)
2020-09-30 04:50:19 +0200anoe(~anoe@delanoe.org)
2020-09-30 04:50:25 +0200dopplergange(~dop@titan.pathogen.is)
2020-09-30 04:50:57 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-09-30 04:51:50 +0200theDon(~td@muedsl-82-207-238-146.citykom.de)
2020-09-30 04:51:57 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-09-30 04:53:55 +0200 <vivekramaswamy> I did not, as fount the channel empty
2020-09-30 04:54:02 +0200 <vivekramaswamy> found
2020-09-30 04:54:13 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 04:54:45 +0200 <Axman6> the channel definitely isn't empty
2020-09-30 04:55:35 +0200 <ski> if you'd tried asking saying in there, then not that unlikely some people would have noticed, and possibly some have responded
2020-09-30 04:57:11 +0200 <MarcelineVQ> no matter, asking here is fine too :>
2020-09-30 04:57:17 +0200 <ski> (although, if you'd tried during the netsplit (which just happened to take place just before you started talking in here), when perhaps not as many would have been in there, on your server side of the netsplit, the chance would presumably have been lowered)
2020-09-30 04:57:22 +0200 <ski> yes
2020-09-30 04:57:28 +0200sword865(uid208942@gateway/web/irccloud.com/x-ifbndlqlczbvfcan)
2020-09-30 04:58:39 +0200darjeeling_(~darjeelin@112.16.171.8)
2020-09-30 04:59:28 +0200vivekramaswamy(~vivekrama@49.207.196.1) (Quit: Sayonara. Long live Haskell)
2020-09-30 04:59:47 +0200vivekramaswamy(~vivekrama@49.207.196.1)
2020-09-30 05:00:02 +0200SRV_DW20(~SRV_DW20@188.126.89.194) ()
2020-09-30 05:01:24 +0200russruss8(~russruss@my.russellmcc.com) (Quit: The Lounge - https://thelounge.chat)
2020-09-30 05:01:56 +0200russruss8(~russruss@my.russellmcc.com)
2020-09-30 05:02:14 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2020-09-30 05:03:07 +0200ent(entgod@kapsi.fi) (Ping timeout: 246 seconds)
2020-09-30 05:03:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 05:03:47 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-30 05:04:22 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-09-30 05:04:59 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds)
2020-09-30 05:05:36 +0200Lord_of_Life_Lord_of_Life
2020-09-30 05:06:05 +0200liff(liff@kapsi.fi) (Ping timeout: 244 seconds)
2020-09-30 05:06:57 +0200dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-09-30 05:07:09 +0200inerkick(~rohit@117.230.9.17) (Quit: Leaving)
2020-09-30 05:08:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 05:08:44 +0200bloodstalker(~bloodstal@46.166.187.188) (Remote host closed the connection)
2020-09-30 05:09:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-09-30 05:09:10 +0200inerkick(~rohit@117.230.9.17)
2020-09-30 05:09:31 +0200Tspoon(tlarjoma@hilla.kapsi.fi) (Ping timeout: 256 seconds)
2020-09-30 05:09:52 +0200Logio(em@kapsi.fi) (Ping timeout: 256 seconds)
2020-09-30 05:10:47 +0200spew(uid195861@gateway/web/irccloud.com/x-fpkdkamqeywbdxvp) (Quit: Connection closed for inactivity)
2020-09-30 05:11:40 +0200jrqc(~rofl@96.78.87.197)
2020-09-30 05:14:57 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-30 05:15:22 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-30 05:15:45 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-30 05:16:04 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-30 05:16:33 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-30 05:19:12 +0200amosbird(~amosbird@23.98.37.89)
2020-09-30 05:21:57 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-09-30 05:26:27 +0200liff(liff@kapsi.fi)
2020-09-30 05:27:38 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 05:28:11 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 05:28:28 +0200ent(entgod@kapsi.fi)
2020-09-30 05:29:24 +0200vivekramaswamy(~vivekrama@49.207.196.1) (Quit: Sayonara. Long live Haskell)
2020-09-30 05:29:28 +0200hackagetext-conversions 0.3.1 - Safe conversions between textual types https://hackage.haskell.org/package/text-conversions-0.3.1 (lexi_lambda)
2020-09-30 05:29:50 +0200Lycurgus(~niemand@98.4.96.130) (Quit: Exeunt)
2020-09-30 05:30:44 +0200Tspoon(tlarjoma@hilla.kapsi.fi)
2020-09-30 05:32:45 +0200Logio(em@kapsi.fi)
2020-09-30 05:32:45 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-30 05:33:35 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 05:34:28 +0200ddellacosta(~dd@86.106.121.168) (Ping timeout: 260 seconds)
2020-09-30 05:35:20 +0200Klumben(Nsaiswatch@gateway/shell/panicbnc/x-qfyvvmfvccqnqxdf)
2020-09-30 05:35:45 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 05:35:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 05:38:52 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 258 seconds)
2020-09-30 05:39:18 +0200reallymemorable(~quassel@ip68-9-215-56.ri.ri.cox.net) (Remote host closed the connection)
2020-09-30 05:41:28 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 05:41:29 +0200finkata(~dpetrov@83.222.188.39)
2020-09-30 05:45:19 +0200 <sim590> How can I download a package with cabal globally, build it globally and then build my project that uses the same library without building it again?
2020-09-30 05:45:45 +0200 <sim590> and I mean all of that before switching to the directory containing my project.
2020-09-30 05:47:15 +0200 <sim590> I don't want to download and build the library more than once.
2020-09-30 05:47:44 +0200Guest_91(48855e8f@cpe-72-133-94-143.sw.res.rr.com)
2020-09-30 05:48:38 +0200ericsagnes(~ericsagne@2405:6580:0:5100:4d11:5c80:3101:9ff9) (Ping timeout: 244 seconds)
2020-09-30 05:48:42 +0200 <Axman6> I think that happens with the new style builds, identical builds should be shared between projects AFAIUI
2020-09-30 05:48:59 +0200darjeeling_(~darjeelin@112.16.171.8) (Ping timeout: 260 seconds)
2020-09-30 05:50:14 +0200 <Guest_91> Hello after you install Haskell on OS X how do you start running it
2020-09-30 05:50:29 +0200 <Axman6> what do you want to start? ghci?
2020-09-30 05:50:35 +0200 <sim590> OK. I'm building a docker image. I'm trying this: https://paste.debian.net/1165214/. It's essentially copying my cabal file and building the project libraries there.
2020-09-30 05:50:37 +0200toorevitimirp(~tooreviti@117.182.182.201) (Ping timeout: 244 seconds)
2020-09-30 05:50:43 +0200 <Axman6> most of what is installed is a compiler
2020-09-30 05:51:28 +0200 <sim590> Shouldn't this make it so that if I run a build of the same project inside the resuting image, I should be able to build my project without downloading/building all of the dependencies?
2020-09-30 05:51:42 +0200iqubic(~user@2601:602:9500:4870:d13c:5aea:b558:d2ed)
2020-09-30 05:52:19 +0200 <Guest_91> yes ghci
2020-09-30 05:52:28 +0200 <Axman6> run ghci in the termina;
2020-09-30 05:52:31 +0200 <Axman6> l*
2020-09-30 05:53:05 +0200 <Guest_91> I tried that and it gives command not found
2020-09-30 05:53:29 +0200 <Axman6> open a new terminal and try again, your PATH won't be updated in an already open terminal
2020-09-30 05:53:40 +0200 <Axman6> how did you install things?
2020-09-30 05:55:14 +0200 <sim590> Shouldn't this: https://i.imgur.com/GtUn39G.png work? One of my dependencies is Colog.
2020-09-30 05:55:52 +0200 <Guest_91> thanks! it was the opening of new term window
2020-09-30 05:56:06 +0200 <Axman6> have you loaded the Colog module? :m +Colog.Monad
2020-09-30 05:56:43 +0200 <Axman6> :l(oad) is for local modules, :m(odule) loads modules visible to GHC
2020-09-30 05:57:05 +0200 <Axman6> (that's a really poor explanantion, but basically any library would be loaded with :m)
2020-09-30 05:57:26 +0200kreative(~kreative@185.163.110.116)
2020-09-30 05:58:35 +0200inerkick(~rohit@117.230.9.17) (Quit: Leaving)
2020-09-30 06:00:01 +0200Guest_91(48855e8f@cpe-72-133-94-143.sw.res.rr.com) (Quit: Ping timeout (120 seconds))
2020-09-30 06:00:28 +0200 <sim590> it doesn't work: https://i.imgur.com/BkeFbYY.png
2020-09-30 06:00:38 +0200 <sim590> Normally, it would say to load the package first or something, no?
2020-09-30 06:00:42 +0200 <sim590> Anyway, it doesn't load.
2020-09-30 06:01:24 +0200ericsagnes(~ericsagne@2405:6580:0:5100:c862:81df:d6b3:8407)
2020-09-30 06:02:07 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-09-30 06:02:13 +0200day_(~Unknown@unaffiliated/day)
2020-09-30 06:02:43 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-09-30 06:05:05 +0200day(~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
2020-09-30 06:05:05 +0200day_day
2020-09-30 06:05:10 +0200 <sim590> That's the output when I'm building the docker image: https://i.imgur.com/74FKwjQ.png
2020-09-30 06:05:50 +0200 <Axman6> without knowing more about what you've done there's no way to know how to help.
2020-09-30 06:06:08 +0200 <sim590> What I did is in the docker image.
2020-09-30 06:07:42 +0200polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
2020-09-30 06:09:05 +0200 <sim590> I've published my latest attempt at docker.io/sim590/hart
2020-09-30 06:09:51 +0200 <Axman6> "Ahoy, it looks like you are in uncharted waters"
2020-09-30 06:10:33 +0200 <sim590> Yeah the URL is https://hub.docker.com/repository/docker/sim590/hart, but the image is named sim590/hart. Tag can be :latest, so sim590/hart:latest.
2020-09-30 06:11:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-09-30 06:11:15 +0200 <sim590> You could inspect it with `docker run -it sim590/hart:latest bash` if you could then tell me what's wrong.
2020-09-30 06:11:25 +0200beka(~beka@gothdyke.mom) (Ping timeout: 240 seconds)
2020-09-30 06:12:25 +0200mmaruseacph2(~mihai@198.199.100.72) (Ping timeout: 240 seconds)
2020-09-30 06:12:37 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 06:12:40 +0200mmaruseacph2(~mihai@198.199.100.72)
2020-09-30 06:12:42 +0200 <sim590> I do have 891M of stuff inside /root/.cabal.
2020-09-30 06:13:18 +0200 <Axman6> I'm not going to run untrusted docer images on my machine, sorry. what does running a shell in it and running ghc-pkg list show?
2020-09-30 06:14:34 +0200beka(~beka@gothdyke.mom)
2020-09-30 06:15:09 +0200 <sim590> When looking inside ~/.cabal for co-log with docker run -it sim590/hart:latest find /root/.cabal -name \*co-log\*, I get this: https://paste.debian.net/1165215/
2020-09-30 06:15:52 +0200 <sim590> ghc-pkg list shows: https://paste.debian.net/1165216/.
2020-09-30 06:15:55 +0200 <Axman6> and if you run ghci -package co-log?
2020-09-30 06:17:18 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds)
2020-09-30 06:17:25 +0200 <Axman6> and what happens if instead of using ghci directly, you use cabal new-repl?
2020-09-30 06:17:44 +0200 <Axman6> (I think that's a thing, I haven't used cabal directly for a long time)
2020-09-30 06:18:02 +0200 <sim590> ghci -package co-log: https://paste.debian.net/1165217/
2020-09-30 06:18:06 +0200dolio(~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.1 - https://znc.in)
2020-09-30 06:19:16 +0200 <sim590> So the last command I did, I did move from /opt/hart to do this because I wanted to move from it to see if package was globally there.
2020-09-30 06:20:12 +0200 <sim590> now after doing `cabal new-repl̀ from inside the /opt/hart directory, it's building stuff like https://paste.debian.net/1165218/
2020-09-30 06:20:28 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-09-30 06:20:44 +0200 <sim590> But I thought it would have built already.
2020-09-30 06:21:31 +0200 <sim590> But it won't be able to build `hart` since the code is not inside the image.
2020-09-30 06:21:43 +0200 <Axman6> how are docker so bad a things. can;t even get the docker hub page to load again
2020-09-30 06:21:44 +0200 <sim590> I just pushed my cabal file.
2020-09-30 06:22:03 +0200 <sim590> The URL I gave you?
2020-09-30 06:22:16 +0200 <Axman6> can you paste your docker file in dpaste? I can't load docker hub any more
2020-09-30 06:22:35 +0200Jonno_FTW(~come@api.carswap.me) (Ping timeout: 260 seconds)
2020-09-30 06:23:18 +0200Jonno_FTW(~come@api.carswap.me)
2020-09-30 06:23:30 +0200 <sim590> ␒The docker file is:https://paste.debian.net/1165214/
2020-09-30 06:23:47 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds)
2020-09-30 06:24:15 +0200dolio(~dolio@haskell/developer/dolio)
2020-09-30 06:25:10 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 06:28:24 +0200polyrain(~polyrain@2001:8003:e501:6901:4af:ac65:fda8:8e33) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 06:28:47 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 246 seconds)
2020-09-30 06:29:27 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 06:30:08 +0200 <sim590> OK. I just tried to do a new-install --only-dependencies after doing a new-build --only-dependencies and I think that it is wokring. Not sure, but I can now load the package inside ghci with -package co-log
2020-09-30 06:30:10 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 06:30:50 +0200 <sim590> I did new-install --lib --only-dependencies -j4 actually
2020-09-30 06:32:35 +0200bobajett(~user@2001:470:0:301::1e)
2020-09-30 06:32:36 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-30 06:32:44 +0200 <sim590> I'm trying to rebuild the image now https://paste.debian.net/1165220/ and see if it fixes it.
2020-09-30 06:34:16 +0200 <bobajett> how can I write the function p where p [0,0,1,2,0,0,3,0] == [[1,2], [3]] ? (Noobie question)
2020-09-30 06:34:45 +0200 <glguy> > let f [0,0,1,2,0,0,3,0] = [[1,2], [3]] in f [0,0,1,2,0,0,3,0]
2020-09-30 06:34:48 +0200 <lambdabot> [[1,2],[3]]
2020-09-30 06:34:57 +0200hackagehomura-stopwatch 0.2.0 - https://hackage.haskell.org/package/homura-stopwatch-0.2.0 (ncaq)
2020-09-30 06:34:59 +0200 <bobajett> :-)
2020-09-30 06:35:03 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 265 seconds)
2020-09-30 06:35:10 +0200 <Axman6> nailed it
2020-09-30 06:35:14 +0200 <Axman6> NEXT!
2020-09-30 06:35:59 +0200 <sim590> bobajett: It seems like you want subwords that don't contain a 0.
2020-09-30 06:36:07 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 240 seconds)
2020-09-30 06:36:57 +0200 <bobajett> yes please, I've been trying to use span and dropWhile and I just can't come up with some recursive function to solve it.
2020-09-30 06:37:05 +0200Turmfalke(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-09-30 06:37:33 +0200 <Axman6> :t groupBy
2020-09-30 06:37:35 +0200 <lambdabot> (a -> a -> Bool) -> [a] -> [[a]]
2020-09-30 06:37:44 +0200 <MarcelineVQ> span is a pretty good choice tho
2020-09-30 06:37:57 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Remote host closed the connection)
2020-09-30 06:38:02 +0200 <Axman6> might be useful - but there are also likely to be simpler solutions
2020-09-30 06:38:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 06:43:07 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-30 06:43:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-09-30 06:44:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 06:44:50 +0200 <MarcelineVQ> looking at the definition of span could be instructive, there's a really neat trick that recursion allows you to do that it uses
2020-09-30 06:47:06 +0200 <MarcelineVQ> Which is that we can use the result of our own function in its definition, see how span is used in span?
2020-09-30 06:47:09 +0200 <MarcelineVQ> @src span
2020-09-30 06:47:09 +0200 <lambdabot> span _ xs@[] = (xs, xs)
2020-09-30 06:47:09 +0200 <lambdabot> span p xs@(x:xs') | p x = let (ys,zs) = span p xs' in (x:ys,zs)
2020-09-30 06:47:09 +0200 <lambdabot> | otherwise = ([],xs)
2020-09-30 06:48:53 +0200alp(~alp@2a01:e0a:58b:4920:b51a:42ee:4512:fdae)
2020-09-30 06:49:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-30 06:49:47 +0200jrqc(~rofl@96.78.87.197) (Ping timeout: 240 seconds)
2020-09-30 06:54:21 +0200mmohammadi9812(~mmohammad@5.238.179.190)
2020-09-30 06:55:25 +0200jrqc(~rofl@96.78.87.197)
2020-09-30 06:57:03 +0200 <sim590> > filter (all (/=0)) $ groupBy (\ a b -> a*b /= 0) [0,0,1,2,0,0,3,0]
2020-09-30 06:57:06 +0200 <lambdabot> [[1,2],[3]]
2020-09-30 06:57:58 +0200p0a(~user@unaffiliated/p0a)
2020-09-30 06:58:10 +0200 <p0a> Hello I was just reading the release notes for GHC 9.0.1
2020-09-30 06:58:28 +0200aarvar(~foewfoiew@50.35.43.33) (Ping timeout: 272 seconds)
2020-09-30 06:58:41 +0200 <p0a> I noticed that the LinearTypes extension is now included. I read a bit about it and I think I sort of get the basic idea behind it
2020-09-30 06:59:22 +0200 <p0a> there's something in the motivation (on github/ghc-proposals) I don't understand: they mention that the type system itself can not discriminate between open-close and close-open file operations
2020-09-30 06:59:22 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net)
2020-09-30 06:59:31 +0200day_(~Unknown@unaffiliated/day)
2020-09-30 06:59:37 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-30 06:59:39 +0200 <p0a> i.e. you can open a file and then close it, but you shouldn't be able to close a file and then operate on it
2020-09-30 06:59:59 +0200 <p0a> I don't understand how LinearTypes solves this problem. Can someone explain? Thanky ou
2020-09-30 07:00:13 +0200 <c_wraith> It doesn't.
2020-09-30 07:00:25 +0200 <p0a> okay. :)
2020-09-30 07:00:34 +0200 <c_wraith> uniqueness types would, but linearity is insufficient.
2020-09-30 07:01:10 +0200 <p0a> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-linear-types.rst#motivat… reads weird then
2020-09-30 07:01:17 +0200 <dolio> I don't think uniqueness types would solve that case.
2020-09-30 07:01:41 +0200 <c_wraith> *maybe* you could do an entire CPS-transformed IO system such that linearity would matter, but... ugh.
2020-09-30 07:02:20 +0200 <c_wraith> I really don't want to do IO with explicit continuations.
2020-09-30 07:02:46 +0200 <dolio> Anyhow, the way you'd solve it with linearity is something like: change all file operations to operate on linear handles, and return a new handle as a result if appropriate. Closing consumes a handle but doesn't give you a new one.
2020-09-30 07:02:49 +0200day(~Unknown@unaffiliated/day) (Ping timeout: 258 seconds)
2020-09-30 07:02:49 +0200day_day
2020-09-30 07:02:55 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 240 seconds)
2020-09-30 07:03:02 +0200 <c_wraith> and I'm not feeling charitable towards using OverloadedSyntax to make do notation work around CPS
2020-09-30 07:03:23 +0200 <p0a> dolio: I don't see how linearity is involved in this scheme
2020-09-30 07:03:38 +0200 <c_wraith> dolio: linear haskell only adds linear functions, not values.
2020-09-30 07:03:57 +0200 <davean> The whole LinearTypes GHC proposal baffles me
2020-09-30 07:04:15 +0200 <p0a> we've been had
2020-09-30 07:04:26 +0200 <dolio> The handle arguments are linear.
2020-09-30 07:04:47 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 07:05:25 +0200 <dolio> p0a: You are only allowed to use any handle once (and must use it once). Each operation consumes a handle and produces a new handle as a result, except close which just consumes the handle.
2020-09-30 07:06:01 +0200 <c_wraith> dolio: but how is that enforced? Are you assuming a world where (>>=) has linear annotations?
2020-09-30 07:06:04 +0200 <p0a> dolio: so the part where linearity kicks in is ensuring that the interface does not allow you to mix and match the operations in such a way that you operate in a closed handle
2020-09-30 07:06:13 +0200Jonno_FTW(~come@api.carswap.me) (Ping timeout: 264 seconds)
2020-09-30 07:06:21 +0200 <p0a> dolio: because it'd require you to operate twice in the same handle
2020-09-30 07:06:25 +0200darjeeling_(~darjeelin@112.16.171.8)
2020-09-30 07:06:37 +0200 <dolio> c_wraith: Yeah. They have some kind of linear monad notion, too.
2020-09-30 07:06:44 +0200Jonno_FTW(~come@api.carswap.me)
2020-09-30 07:06:46 +0200 <dolio> I'm not really familiar with the details.
2020-09-30 07:07:03 +0200 <c_wraith> I really don't think that works, in the end...
2020-09-30 07:07:16 +0200 <c_wraith> If for no other reason, it destroys the ability to abstract over monads.
2020-09-30 07:07:19 +0200 <dolio> p0a: Right.
2020-09-30 07:07:34 +0200 <c_wraith> Because you want IO to be linear, but [] can't be linear...
2020-09-30 07:08:06 +0200 <dolio> Linear monads are a separate type class. And IO isn't linear, I think, but there's a LIO maybe. Like I said, I don't know the details.
2020-09-30 07:08:23 +0200 <dolio> They use some kind of do overloading for linear monads.
2020-09-30 07:08:23 +0200 <c_wraith> I just don't see it actually improving anything.
2020-09-30 07:08:47 +0200 <dolio> Well, I'm not saying it'll be good. I'm just saying what it would be. :)
2020-09-30 07:08:50 +0200 <p0a> It sounds good to me c_wraith
2020-09-30 07:09:33 +0200 <dolio> How good it is remains to be seen.
2020-09-30 07:09:45 +0200 <p0a> I wonder what happens with concurrency and that idea though
2020-09-30 07:10:20 +0200puffnfresh(~puffnfres@180-150-38-83.b49626.bne.nbn.aussiebb.net) (Quit: authenticating)
2020-09-30 07:10:36 +0200puffnfresh(~puffnfres@180-150-38-83.b49626.bne.nbn.aussiebb.net)
2020-09-30 07:11:04 +0200 <p0a> Maybe that is not an issue. I actually have not written any concurrent programs so I wouldn't know
2020-09-30 07:11:54 +0200 <sim590> Axman6: it's great. It works now with my build + install instruction.
2020-09-30 07:14:12 +0200 <Axman6> great
2020-09-30 07:14:25 +0200 <MarcelineVQ> p0a: fwiw linear arrows restrict how you use arguments not results. foo :: a -* (a, b) says that if `foo` is used I promise to use the argument `a` exactly once, it does not say anyting at all about what we're allowed to do with the (a,b)
2020-09-30 07:14:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 07:15:03 +0200 <MarcelineVQ> To that end boop : a -* (a,Int); boop x = (x,0) is entirely valid, and what dolio is probably referring to when he says return a new handle
2020-09-30 07:15:16 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798)
2020-09-30 07:16:56 +0200 <p0a> MarcelineVQ: I don't think returning a new handle is important (it could be the same handle, we wouldn't know anyway), other than to have something to continue operating on
2020-09-30 07:17:07 +0200 <p0a> I.e. I don't know if being 'new' is important. Could be the same
2020-09-30 07:17:42 +0200jedws(~jedws@121.209.139.222)
2020-09-30 07:17:43 +0200 <p0a> a simple interface would be f :: Int %1 -> Int and g :: Int -> Bool where f x = x + 1 and g x = x == 0.
2020-09-30 07:17:55 +0200 <p0a> (Sorry, I should've written g :: Int %1 -> Bool)
2020-09-30 07:18:00 +0200hive-mind(~hivemind@rrcs-67-53-148-69.west.biz.rr.com) (Ping timeout: 256 seconds)
2020-09-30 07:18:44 +0200 <p0a> so you can't do \x -> (f x, g x)
2020-09-30 07:19:17 +0200 <dolio> The important part is how the API forces the user to work, not the implementation of the API.
2020-09-30 07:19:39 +0200 <p0a> That's true I just wrote the implementation of f and g as an example. The types were what mattered
2020-09-30 07:19:59 +0200 <p0a> f would be 'operate on file' and g would be 'close the file'
2020-09-30 07:20:00 +0200xxasiaj(bcc0ac95@ipbcc0ac95.dynamic.kabel-deutschland.de)
2020-09-30 07:20:10 +0200 <dolio> If the result of a linear function arrow is unrestricted, I'm not exactly sure how it'd be accomplished. I guess CPS.
2020-09-30 07:20:36 +0200cow-orker(~foobar@pogostick.net) (Ping timeout: 244 seconds)
2020-09-30 07:20:48 +0200Quarl(~Quarl@94.191.138.174.mobile.tre.se)
2020-09-30 07:21:16 +0200 <xxasiaj> hi , does anyone knows how to setup haskell in arch ? and also GHCi
2020-09-30 07:21:41 +0200 <MarcelineVQ> xxasiaj: ghcup is the method I'd reccomend
2020-09-30 07:21:43 +0200 <koz_> xxasiaj: I would suggest using ghcup.
2020-09-30 07:21:46 +0200 <koz_> MarcelineVQ: Jinx?
2020-09-30 07:21:53 +0200 <yushyin> ghcup it is!
2020-09-30 07:22:08 +0200 <MarcelineVQ> You can get it from the AUR
2020-09-30 07:22:20 +0200 <xxasiaj> thanks
2020-09-30 07:22:41 +0200 <xxasiaj> from AUR i could only get GHC not GHCi
2020-09-30 07:22:51 +0200 <Axman6> ghci is ghc
2020-09-30 07:22:54 +0200 <MarcelineVQ> ghci comes with ghc which ghcup will get you :>
2020-09-30 07:23:09 +0200 <MarcelineVQ> Yes, technically it's just a wrapper for ghc --interactive
2020-09-30 07:23:43 +0200 <xxasiaj> oh that's great then . thanks
2020-09-30 07:24:10 +0200jgt(~jgt@195.225.146.77)
2020-09-30 07:24:15 +0200 <MarcelineVQ> I'd also remove any haskell things you have installed from pacman already before you use ghcup
2020-09-30 07:24:43 +0200 <xxasiaj> how to do that
2020-09-30 07:25:04 +0200 <xxasiaj> i think i also installed stack
2020-09-30 07:25:15 +0200 <Axman6> did Arch unbreak all the Haskell stuff they broke a few years ago? It went from being one of the OSs of choice to being seemingly unusable overnight
2020-09-30 07:25:30 +0200 <yushyin> xxasiaj: pacman -Rsuc ghc ghc-lib stack # is my guess
2020-09-30 07:25:58 +0200 <p0a> Axman6: isn't the issue with dynamic linking being enforced?
2020-09-30 07:26:33 +0200 <Axman6> I don't remember the details but that sounds samilliar
2020-09-30 07:26:39 +0200 <Axman6> familiar*
2020-09-30 07:27:10 +0200 <MarcelineVQ> I'm not actually sure! I'd check pacman -Qs haskell first and see what pops up
2020-09-30 07:27:41 +0200cow-orker(~foobar@pogostick.net)
2020-09-30 07:27:50 +0200 <yushyin> Axman6: p0a: yes, dynamic linking is still the default for arch's haskell packages, but at least it does provide a ghc-static if wanted
2020-09-30 07:29:22 +0200 <xxasiaj> MarcelineVQ : this is what appeared : pacman -Qs haskelllocal/ghc-libs 8.10.2-1 The Glasgow Haskell Compiler - Dynamic Librarieslocal/haskell-async 2.2.2-23 Run IO operations asynchronously and wait for their resultslocal/haskell-base16-bytestring 0.1.1.7-3 Fast base16 (hex) encoding and decoding for
2020-09-30 07:29:22 +0200 <xxasiaj> ByteStringslocal/haskell-base64-bytestring 1.2.0.0-6 Fast base64 encoding and decoding for ByteStringslocal/haskell-cryptohash-sha256 0.11.101.0-17 Fast, pure and practical SHA-256 implementation....
2020-09-30 07:30:36 +0200 <p0a> Axman6: It seems that the issues are fixed
2020-09-30 07:31:04 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 07:31:51 +0200 <yushyin> xxasiaj: if you really want to remove it just do pacman -Rsuc ghc-libs but you can just use ghcup anyways
2020-09-30 07:31:53 +0200 <p0a> Axman6: the experience will be different from other distros, but you are not left in a state where you don't know what to do, or can't do what you want; the wiki has details
2020-09-30 07:34:05 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-09-30 07:34:23 +0200 <Axman6> The Arch wiki always has details, it's the best thing about Arch :)
2020-09-30 07:36:13 +0200nineonin_(~nineonine@50.216.62.2)
2020-09-30 07:36:55 +0200sagax(~sagax_nb@213.138.71.146) (Quit: Konversation terminated!)
2020-09-30 07:38:53 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Ping timeout: 272 seconds)
2020-09-30 07:38:58 +0200tanuki(~quassel@173.168.154.189) (Ping timeout: 256 seconds)
2020-09-30 07:40:43 +0200finkata(~dpetrov@83.222.188.39) (Read error: Connection reset by peer)
2020-09-30 07:41:05 +0200p0a(~user@unaffiliated/p0a) (Quit: thank you for the answers)
2020-09-30 07:46:55 +0200random(~random@185.219.70.106)
2020-09-30 07:47:45 +0200alp(~alp@2a01:e0a:58b:4920:b51a:42ee:4512:fdae) (Ping timeout: 272 seconds)
2020-09-30 07:49:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-09-30 07:50:41 +0200iqubic(~user@2601:602:9500:4870:d13c:5aea:b558:d2ed) ("ERC (IRC client for Emacs 28.0.50)")
2020-09-30 07:50:58 +0200iqubic`(~user@2601:602:9500:4870:cdaf:7435:4c77:278a)
2020-09-30 07:51:26 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2020-09-30 07:51:31 +0200iqubic`(~user@2601:602:9500:4870:cdaf:7435:4c77:278a) (Client Quit)
2020-09-30 07:54:36 +0200Sanchayan(~Sanchayan@223.226.111.203)
2020-09-30 07:58:28 +0200hackageflink-statefulfun 0.3.0.0 - Flink stateful functions SDK https://hackage.haskell.org/package/flink-statefulfun-0.3.0.0 (tdbgamer)
2020-09-30 07:59:22 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-30 08:00:01 +0200kreative(~kreative@185.163.110.116) ()
2020-09-30 08:00:12 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 08:00:35 +0200nshepperd(~nshepperd@pool-96-239-61-124.nycmny.fios.verizon.net) (Ping timeout: 240 seconds)
2020-09-30 08:03:21 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 08:04:24 +0200jwynn6(~jwynn6@050-088-122-078.res.spectrum.com)
2020-09-30 08:04:31 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
2020-09-30 08:04:35 +0200cow-orker(~foobar@pogostick.net) (Ping timeout: 240 seconds)
2020-09-30 08:04:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-30 08:05:15 +0200p0a(~user@unaffiliated/p0a)
2020-09-30 08:05:19 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 08:05:48 +0200andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2020-09-30 08:07:59 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-30 08:10:47 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1975:ad5b:4777:bf80) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 08:11:40 +0200cow-orker(~foobar@pogostick.net)
2020-09-30 08:15:25 +0200alp(~alp@2a01:e0a:58b:4920:8cb0:eda6:3ba1:bbe3)
2020-09-30 08:18:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 08:19:25 +0200johs(sid246410@gateway/web/irccloud.com/x-fxzggmlrvgjkxynk) (Ping timeout: 240 seconds)
2020-09-30 08:19:33 +0200mudri(sid317655@gateway/web/irccloud.com/x-fieggmdqfmzcrqpn) (Ping timeout: 260 seconds)
2020-09-30 08:19:45 +0200entel(uid256215@botters/entel) (Ping timeout: 260 seconds)
2020-09-30 08:20:05 +0200sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-09-30 08:20:06 +0200scav(sid309693@gateway/web/irccloud.com/x-aajvlddkzxpzyrkk) (Read error: Connection reset by peer)
2020-09-30 08:20:07 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-amlajdzmxjyobgrq) (Read error: Connection reset by peer)
2020-09-30 08:20:07 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-rynmppnojynjznyn) (Read error: Connection reset by peer)
2020-09-30 08:20:09 +0200elvishjerricco(sid237756@NixOS/user/ElvishJerricco) (Read error: Connection reset by peer)
2020-09-30 08:20:09 +0200eacameron(sid256985@gateway/web/irccloud.com/x-gpifboixmoeemfmh) (Read error: Connection reset by peer)
2020-09-30 08:20:17 +0200mudri(sid317655@gateway/web/irccloud.com/x-wgciiciclurklmio)
2020-09-30 08:20:26 +0200scav(sid309693@gateway/web/irccloud.com/x-wzdeycixeytkuxbp)
2020-09-30 08:20:26 +0200eacameron(sid256985@gateway/web/irccloud.com/x-kpwlorbysgtnxhte)
2020-09-30 08:20:26 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-jxboonrzncouqkfs)
2020-09-30 08:20:27 +0200johs(sid246410@gateway/web/irccloud.com/x-mkeicffdlyarxtfa)
2020-09-30 08:20:30 +0200elvishjerricco(sid237756@NixOS/user/ElvishJerricco)
2020-09-30 08:20:30 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-nihpzxtqkbdvurne)
2020-09-30 08:20:34 +0200entel(uid256215@botters/entel)
2020-09-30 08:20:44 +0200p0a(~user@unaffiliated/p0a) (Quit: bye)
2020-09-30 08:23:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-30 08:24:34 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-09-30 08:24:48 +0200andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-09-30 08:25:25 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-09-30 08:30:01 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-30 08:35:05 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 08:36:31 +0200Rudd0(~Rudd0@185.189.115.98) (Remote host closed the connection)
2020-09-30 08:38:35 +0200Sanchayan(~Sanchayan@223.226.111.203) (Quit: leaving)
2020-09-30 08:40:04 +0200xxasiaj(bcc0ac95@ipbcc0ac95.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2020-09-30 08:40:20 +0200lucid_0x80(~lucid_0x8@188.253.231.113)
2020-09-30 08:40:21 +0200giaco(~jack@2-238-151-49.ip244.fastwebnet.it) (Remote host closed the connection)
2020-09-30 08:40:55 +0200otulp(~otulp@ti0187q162-5025.bb.online.no)
2020-09-30 08:41:04 +0200giaco(~jack@2-238-151-49.ip244.fastwebnet.it)
2020-09-30 08:45:05 +0200tbreslein(~tbreslein@2a02:8108:140:44f8::901)
2020-09-30 08:46:40 +0200sagax(~sagax_nb@213.138.71.146)
2020-09-30 08:49:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 08:50:04 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-09-30 08:50:28 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-09-30 08:54:21 +0200sammuel86(~sammuel86@185.244.214.216)
2020-09-30 08:57:21 +0200bobajett(~user@2001:470:0:301::1e) (Remote host closed the connection)
2020-09-30 08:57:31 +0200 <sim590> How can I create a wrapper around integers that can be instanciated just with an Integer (without needing to write teh constructor). Like Integer and Int can both instanciate with the same digit glyphs.
2020-09-30 09:00:03 +0200bitmagie(~Thunderbi@200116b806af98000151301dfab240c8.dip.versatel-1u1.de)
2020-09-30 09:03:26 +0200kritzefitz(~kritzefit@fw-front.credativ.com)
2020-09-30 09:03:38 +0200 <opqdonut> :t 3
2020-09-30 09:03:40 +0200 <lambdabot> Num p => p
2020-09-30 09:03:40 +0200 <Axman6> make an instance of Num
2020-09-30 09:03:48 +0200 <sim590> Oh that's all :o
2020-09-30 09:03:53 +0200 <opqdonut> especially the fromInteger method
2020-09-30 09:04:09 +0200 <Axman6> "3" means "fromIntegral (3 :: Integer)"
2020-09-30 09:04:10 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-09-30 09:05:22 +0200xff0x(~fox@2001:1a81:53e7:fb00:e98b:1e53:4e8a:cb9b) (Ping timeout: 260 seconds)
2020-09-30 09:05:27 +0200 <sim590> d:t fromIntegral
2020-09-30 09:05:32 +0200 <sim590> :t fromIntegral
2020-09-30 09:05:34 +0200 <lambdabot> (Integral a, Num b) => a -> b
2020-09-30 09:05:54 +0200 <kritzefitz> Isn't it fromInteger?
2020-09-30 09:06:02 +0200 <Axman6> probably
2020-09-30 09:06:07 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds)
2020-09-30 09:07:03 +0200xff0x(~fox@2001:1a81:53e7:fb00:e98b:1e53:4e8a:cb9b)
2020-09-30 09:10:20 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-jdjhyordzkibihwa) (Quit: Connection closed for inactivity)
2020-09-30 09:11:21 +0200alp(~alp@2a01:e0a:58b:4920:8cb0:eda6:3ba1:bbe3) (Ping timeout: 272 seconds)
2020-09-30 09:11:45 +0200bitmagie(~Thunderbi@200116b806af98000151301dfab240c8.dip.versatel-1u1.de) (Quit: bitmagie)
2020-09-30 09:14:54 +0200rslima_____(sid26145@gateway/web/irccloud.com/x-vbogpauczgzfxuev)
2020-09-30 09:15:03 +0200pierrot_(~pi@vmi95795.contabo.host)
2020-09-30 09:15:15 +0200pierrot(~pi@unaffiliated/pierrot) (Quit: Let us not forget that the perfect is also the enemy of the bad and the ugly.)
2020-09-30 09:15:15 +0200pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com) (Quit: ZNC - http://znc.in)
2020-09-30 09:15:16 +0200rslima____(sid26145@gateway/web/irccloud.com/x-nijwoaxwcetixacu) (Read error: Connection reset by peer)
2020-09-30 09:15:16 +0200kkd(~memxor@unaffiliated/kartikeya) (Quit: bye!)
2020-09-30 09:15:25 +0200memxor(~memxor@2400:8902::f03c:92ff:feac:6d1)
2020-09-30 09:15:25 +0200memxor(~memxor@2400:8902::f03c:92ff:feac:6d1) (Changing host)
2020-09-30 09:15:25 +0200memxor(~memxor@unaffiliated/kartikeya)
2020-09-30 09:15:32 +0200thonkpod(~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 260 seconds)
2020-09-30 09:15:34 +0200bob_twinkles(~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-09-30 09:15:40 +0200CitizenSnips(~CitizenSn@irc.refl.club) (Quit: ZNC 1.8.1 - https://znc.in)
2020-09-30 09:16:02 +0200CitizenSnips(~CitizenSn@irc.refl.club)
2020-09-30 09:16:09 +0200sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 244 seconds)
2020-09-30 09:16:13 +0200mmohammadi9812(~mmohammad@5.238.179.190) (Ping timeout: 258 seconds)
2020-09-30 09:16:50 +0200borne(~fritjof@200116b864837e00537d5cc8226f9d9f.dip.versatel-1u1.de)
2020-09-30 09:17:10 +0200phaul(~phaul@ruby/staff/phaul) (Ping timeout: 272 seconds)
2020-09-30 09:17:11 +0200pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com)
2020-09-30 09:17:25 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-30 09:17:27 +0200ptrcmd(~ptrcmd@unaffiliated/petercommand) (Ping timeout: 265 seconds)
2020-09-30 09:17:39 +0200thonkpod(~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
2020-09-30 09:17:44 +0200ptrcmd(~ptrcmd@unaffiliated/petercommand)
2020-09-30 09:17:54 +0200phaul(~phaul@ruby/staff/phaul)
2020-09-30 09:18:10 +0200sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f)
2020-09-30 09:18:10 +0200bob_twinkles(~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com)
2020-09-30 09:19:56 +0200fendor(~fendor@77.119.131.134.wireless.dyn.drei.com)
2020-09-30 09:21:40 +0200alp(~alp@88.126.45.36)
2020-09-30 09:25:27 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-30 09:25:33 +0200niko(~niko@freenode/staff/ubuntu.member.niko) (Quit: leaving)
2020-09-30 09:27:01 +0200niko(~niko@freenode/staff/ubuntu.member.niko)
2020-09-30 09:27:20 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-30 09:29:38 +0200bitmagie(~Thunderbi@200116b806af98000151301dfab240c8.dip.versatel-1u1.de)
2020-09-30 09:30:12 +0200hive-mind(~hivemind@rrcs-67-53-148-69.west.biz.rr.com)
2020-09-30 09:31:12 +0200chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-09-30 09:32:06 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 09:33:06 +0200bitmagie(~Thunderbi@200116b806af98000151301dfab240c8.dip.versatel-1u1.de) (Client Quit)
2020-09-30 09:33:24 +0200cow-orker(~foobar@pogostick.net) (Ping timeout: 265 seconds)
2020-09-30 09:35:46 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 246 seconds)
2020-09-30 09:36:47 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-09-30 09:37:44 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-09-30 09:39:47 +0200darjeeling_(~darjeelin@112.16.171.8) (Ping timeout: 240 seconds)
2020-09-30 09:40:05 +0200gnumonik(~gnumonik@c-73-170-91-210.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2020-09-30 09:40:14 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-09-30 09:40:16 +0200cow-orker(~foobar@pogostick.net)
2020-09-30 09:40:21 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-30 09:40:40 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-09-30 09:42:45 +0200glguy_(x@freenode/staff/haskell.developer.glguy)
2020-09-30 09:42:45 +0200glguy(x@freenode/staff/haskell.developer.glguy) (Killed (moon.freenode.net (Nickname regained by services)))
2020-09-30 09:42:45 +0200glguy_glguy
2020-09-30 09:43:04 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-30 09:45:20 +0200John20(~John@82.46.59.122)
2020-09-30 09:45:36 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-30 09:47:25 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Ping timeout: 265 seconds)
2020-09-30 09:47:53 +0200kindaro(1f08d381@h31-8-211-129.dyn.bashtel.ru)
2020-09-30 09:48:21 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 09:49:42 +0200Tops21(~Tobias@dyndsl-095-033-025-123.ewe-ip-backbone.de)
2020-09-30 09:51:03 +0200 <kindaro> Suppose `main = interact (show @Int ∘ read)`. How can I extend this program to operate on any of a variety of types, type name being given by user on command line? My aim is to write an echo server for use in automated checking of parsing and serialization, client being written in another language.
2020-09-30 09:51:51 +0200 <opqdonut> haskell types disappear at runtime, so there's no direct way
2020-09-30 09:52:15 +0200Tops2(~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de) (Ping timeout: 265 seconds)
2020-09-30 09:52:15 +0200 <opqdonut> but you can do something like write an Enum for the supported types
2020-09-30 09:52:38 +0200 <opqdonut> or something even fancier with singletons or some other type-level trickery
2020-09-30 09:53:01 +0200xff0x(~fox@2001:1a81:53e7:fb00:e98b:1e53:4e8a:cb9b) (Ping timeout: 244 seconds)
2020-09-30 09:53:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 09:54:13 +0200xff0x(~fox@2001:1a81:53e7:fb00:9052:62db:4246:c379)
2020-09-30 09:54:59 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 09:55:17 +0200 <lortabac> probably the simplest way is to pattern-match on the user-provided string
2020-09-30 09:55:44 +0200 <lortabac> it doesn't require any advanced feature
2020-09-30 09:56:02 +0200mac10688(~mac10688@c-76-115-116-76.hsd1.or.comcast.net) (Ping timeout: 244 seconds)
2020-09-30 09:56:29 +0200 <kindaro> Imagine I have a 50 types large variety. Some case expression!
2020-09-30 09:56:29 +0200mac10688(~mac10688@c-76-115-116-76.hsd1.or.comcast.net)
2020-09-30 09:56:32 +0200 <lortabac> or to parse to an enum, and pattern-match on it
2020-09-30 09:57:24 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2020-09-30 09:57:41 +0200 <tomsmeding> kindaro: would you want to allow the user to enter any haskell type? What about "IO ()"? :)
2020-09-30 09:57:42 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 09:58:35 +0200zaquest(~notzaques@5.128.210.178)
2020-09-30 09:59:03 +0200 <kindaro> No, only those in a specified variety. If a type is not supported, I should respectfully decline.
2020-09-30 09:59:51 +0200hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus)
2020-09-30 10:00:20 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl)
2020-09-30 10:00:36 +0200 <tomsmeding> then I guess if you're already making a list of the supported ones, well, you already have to write the list :)
2020-09-30 10:01:06 +0200 <tomsmeding> doing it with Enum/Read/Show can help reducing the number of times you have to write that list, I guess
2020-09-30 10:01:20 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-30 10:03:19 +0200 <lortabac> kindaro: maybe you can try to generate a big GADT with TemplateHaskell and a mechanical rule for parsing, but at some point you necessarily need to list all the types at least once
2020-09-30 10:03:39 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 10:04:21 +0200 <lortabac> something like data CliType :: * -> * where Int :: CliType Int; Char :: CliType Char...
2020-09-30 10:05:17 +0200 <kindaro> Suppose I want to support all types that are instances of `Show` that are in scope at the time of compilation.
2020-09-30 10:05:37 +0200 <kindaro> I then need to get a list of such types and build a case expression.
2020-09-30 10:06:50 +0200 <tomsmeding> "all types that are instances of `Show`" sounds nice but is not something that Haskell lets you query easily
2020-09-30 10:07:30 +0200notzmv`(~user@177.45.26.174)
2020-09-30 10:07:33 +0200 <tomsmeding> not even sure if TemplateHaskell will get you that
2020-09-30 10:08:09 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 10:08:39 +0200 <tomsmeding> oh it does
2020-09-30 10:08:54 +0200 <tomsmeding> ooooooh that is decidedly ugly
2020-09-30 10:09:15 +0200memxorkkd
2020-09-30 10:09:22 +0200 <kindaro> Can you give me some links?
2020-09-30 10:09:47 +0200howdoi(uid224@gateway/web/irccloud.com/x-zozvjyzrnsmbzmrc) (Quit: Connection closed for inactivity)
2020-09-30 10:11:02 +0200notzmv(~user@unaffiliated/zmv) (Ping timeout: 258 seconds)
2020-09-30 10:12:20 +0200tzh(~tzh@2601:448:c500:5300::82b3) (Quit: zzz)
2020-09-30 10:12:58 +0200 <tomsmeding> just checking myself if it will work at all, but https://hackage.haskell.org/package/template-haskell-2.16.0.0/docs/Language-Haskell-TH.html#v:reif…
2020-09-30 10:13:37 +0200 <lortabac> kindaro: there are a couple of ugly solutions for that, though I would never use them for real
2020-09-30 10:13:49 +0200 <lortabac> @hackage constraints-emerge
2020-09-30 10:13:49 +0200 <lambdabot> https://hackage.haskell.org/package/constraints-emerge
2020-09-30 10:14:05 +0200xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 10:14:29 +0200 <kindaro> Oh, this is cute!
2020-09-30 10:14:31 +0200 <lortabac> https://github.com/rampion/constraint-unions
2020-09-30 10:15:27 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds)
2020-09-30 10:16:27 +0200lucid_0x80(~lucid_0x8@188.253.231.113) (Ping timeout: 240 seconds)
2020-09-30 10:16:27 +0200 <kindaro> I recall passing explicit dictionaries is being considered for GHC: https://github.com/ghc-proposals/ghc-proposals/pull/324
2020-09-30 10:18:01 +0200knupfer(~Thunderbi@mue-88-130-61-186.dsl.tropolys.de)
2020-09-30 10:18:29 +0200 <tomsmeding> kindaro: import Language.Haskell.TH ; import Language.Haskell.TH.Ppr ; putStrLn $( LitE . StringL . pprint <$> reifyInstances ''Show [ VarT (mkName "a") ] )
2020-09-30 10:18:34 +0200 <tomsmeding> that prints stuff :p
2020-09-30 10:18:54 +0200 <tomsmeding> presumably if you know a bit more about templatehaskell you can make that work somehow?
2020-09-30 10:22:05 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 10:22:21 +0200ces(~ces@52d3ce3c.dynamic-ip.k-net.dk)
2020-09-30 10:23:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 10:24:23 +0200raichoo(~raichoo@213.240.178.58)
2020-09-30 10:26:14 +0200cpressey(~cpressey@79-72-201-29.dynamic.dsl.as9105.com)
2020-09-30 10:26:15 +0200kuribas(~user@ptr-25vy0i8if8811202m3x.18120a2.ip6.access.telenet.be)
2020-09-30 10:28:44 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 10:32:04 +0200__monty__(~toonn@unaffiliated/toonn)
2020-09-30 10:33:32 +0200 <kuribas> what is wrong with clojure guys absolutely having to bash haskell to show their language? https://lispcast.com/user-wizard-scenario/
2020-09-30 10:33:49 +0200carldd1(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2020-09-30 10:33:52 +0200 <merijn> kuribas: Insecurity
2020-09-30 10:33:53 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 10:34:25 +0200 <merijn> Nothing illustrates your point as well as a strawman the size of the wicker man...
2020-09-30 10:34:43 +0200 <kuribas> merijn: if they are happy with their language, why not just use it?
2020-09-30 10:34:55 +0200carldd1(~carldd@90-224-49-113-no56.tbcn.telia.com)
2020-09-30 10:35:12 +0200 <merijn> kuribas: Because they feel insecure about using it and need to justify the superiority :p
2020-09-30 10:35:27 +0200 <merijn> That's like 90% of all "language X sucks, look at language Y" advocacy
2020-09-30 10:35:33 +0200 <kuribas> it's not like haskell is perfect
2020-09-30 10:35:38 +0200 <merijn> Unless is C or C++, then it's just truth
2020-09-30 10:35:44 +0200 <kuribas> lol
2020-09-30 10:35:49 +0200 <merijn> s/Unless/Unless X/
2020-09-30 10:35:50 +0200tomsmedingX doubt
2020-09-30 10:36:30 +0200 <kuribas> I am perfectly fine with bashing haskell, but their criticism makes no sense.
2020-09-30 10:36:44 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-arhqczabjmakjtmj) (Quit: Connection closed for inactivity)
2020-09-30 10:36:50 +0200 <merijn> kuribas: Of course, because they don't know haskell enough to make a coherent criticism
2020-09-30 10:37:07 +0200 <merijn> Just look at their silly 8 alternatives for partial validation
2020-09-30 10:37:17 +0200 <kuribas> I don't see other lisp guys do this, like common lisp or scheme.
2020-09-30 10:37:25 +0200 <kuribas> merijn: you mean spec?
2020-09-30 10:37:30 +0200 <merijn> There's much more elegant approaches using higher kinded types
2020-09-30 10:37:42 +0200 <merijn> kuribas: Now, the literaly example in your link
2020-09-30 10:37:43 +0200knupfer(~Thunderbi@mue-88-130-61-186.dsl.tropolys.de) (Ping timeout: 246 seconds)
2020-09-30 10:38:30 +0200 <merijn> kuribas: https://paste.tomsmeding.com/yy3PqZUb
2020-09-30 10:38:35 +0200 <tomsmeding> kuribas: that article is hilarious
2020-09-30 10:38:38 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-30 10:38:40 +0200 <merijn> As if any self-respecting Haskell programmer would write that
2020-09-30 10:38:49 +0200 <kuribas> yeah :)
2020-09-30 10:38:54 +0200 <merijn> That shit is begging for a digestive-functor/applicative validation so badly
2020-09-30 10:39:03 +0200chaosmasttter(~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de)
2020-09-30 10:39:10 +0200 <tomsmeding> it's basically saying: clojure is cool because it doesn't have the tools to give you type safety
2020-09-30 10:39:15 +0200 <tomsmeding> I mean, you can get the exact same in haskell
2020-09-30 10:39:18 +0200 <tomsmeding> they even did that in the article!
2020-09-30 10:39:20 +0200 <merijn> Like, Validation obsoletes their entire argument
2020-09-30 10:39:31 +0200 <tomsmeding> it's literally not an argument against haskell or for clojure
2020-09-30 10:39:47 +0200 <tomsmeding> only argument being made is that haskell is more flexible, apparently? (I don't know clojure so can't confirm/deny)
2020-09-30 10:39:59 +0200 <merijn> kuribas: Lisp/scheme programmers don't feel compelled to "prove" themselves because they've got history/legacy
2020-09-30 10:40:21 +0200 <tomsmeding> merijn: yes that example cracked me up too
2020-09-30 10:40:44 +0200 <merijn> kuribas: Clojure is "the new kid" of lisps and so they feel compelled to justify it being better than Scheme/Lisp by picking silly fights like thise
2020-09-30 10:41:20 +0200 <kuribas> merijn: or just a record with Maybes?
2020-09-30 10:41:40 +0200thc202(~thc202@unaffiliated/thc202)
2020-09-30 10:41:49 +0200 <tomsmeding> well they discarded that because it wasn't flexible enough for the frontenders, right?
2020-09-30 10:42:03 +0200 <merijn> kuribas: Really just anything but what they actually did
2020-09-30 10:42:12 +0200 <kuribas> tomsmeding: yeah, most stuff with hashmaps can be done in haskell with records. Except for merging, but that's dodge anyway.
2020-09-30 10:42:39 +0200 <tomsmeding> except adding new fields at runtime
2020-09-30 10:42:43 +0200 <tomsmeding> which they wanted apparently
2020-09-30 10:43:11 +0200 <merijn> which is a dumb thing to want anyway :p
2020-09-30 10:43:26 +0200 <kuribas> https://gist.github.com/kuribas/8afd49cf87fe5b1c32b1009ab59c4b1d
2020-09-30 10:43:35 +0200 <tomsmeding> article makes the case that it isn't, but that isn't even the problem
2020-09-30 10:44:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 10:44:54 +0200 <kuribas> tomsmeding: this does exactly what they want, you can add fields easily, and change the order of processing.
2020-09-30 10:45:02 +0200 <kuribas> just swap the guards
2020-09-30 10:45:05 +0200vicfred_(~vicfred@unaffiliated/vicfred)
2020-09-30 10:45:10 +0200 <tomsmeding> not as easily as they want, right?
2020-09-30 10:45:24 +0200 <kuribas> what do they want then?
2020-09-30 10:45:29 +0200 <tomsmeding> they didn't want to change the backend code to add fields, or didn't I read the article closely enough (likely)
2020-09-30 10:46:00 +0200 <tomsmeding> > "We [backend team] required a description of the field and its type, and it would be deployed in the next release after we got to it. The front-end team needed to cycle faster than that."
2020-09-30 10:46:02 +0200 <lambdabot> "We [backend team] required a description of the field and its type, and it ...
2020-09-30 10:46:11 +0200 <tomsmeding> lambdabot: you're not wrong
2020-09-30 10:46:36 +0200 <kuribas> tomsmeding: that sounds like a social problem
2020-09-30 10:46:48 +0200 <tomsmeding> which, also, isn't even the point
2020-09-30 10:46:51 +0200 <tomsmeding> perhaps it is!
2020-09-30 10:46:56 +0200 <kuribas> tomsmeding: but even then, with a proper pipeline, such a change and recompiling takes 5 minutes in haskell.
2020-09-30 10:47:03 +0200 <tomsmeding> true
2020-09-30 10:47:06 +0200vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 272 seconds)
2020-09-30 10:47:17 +0200 <tomsmeding> but, like, perhaps their organisation makes that they don't want that
2020-09-30 10:47:28 +0200 <tomsmeding> maybe they have a mandatory QA process for every backend upgrade or something
2020-09-30 10:47:41 +0200 <tomsmeding> but if they want to iterate without the backend changing, then, well, design your backend on that :p
2020-09-30 10:47:47 +0200 <tomsmeding> haskell gives you the flexibility
2020-09-30 10:48:04 +0200 <tomsmeding> anyhow the point is argued perfectly by the article itself so perhaps I should stop ranting :p
2020-09-30 10:48:26 +0200 <AWizzArd> I am writing an app and use Nix as build system. I would like to specify four things: what Haskell-Dependencies do I want to be in my release? What Haskell-Deps do I want to have during development time (i.e. benchmarking, tests, ...). And then I want to specify what OS-Deps I want during development in my nix-shell (ls, cd, cat, tree, ...) and what OS-Deps I want to be in my release (which can go into a tar.gz for dockerization).
2020-09-30 10:48:27 +0200 <cpressey> Doing data modelling like FirstAndLastNames, FirstNameAndEmail, LastNameAndEmail, ... is ridiculous *in any language*. I want to say "obviously ridiculous" but the very existence of the article makes me wonder about that.
2020-09-30 10:48:33 +0200 <merijn> It's just one of the classic blunders
2020-09-30 10:48:48 +0200 <merijn> "Tying your external representation directly to your internal representation"
2020-09-30 10:48:49 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-09-30 10:48:49 +0200 <AWizzArd> I see https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/generic-builder.nix and there are tons of "Depends" attributes listed
2020-09-30 10:48:56 +0200 <kuribas> tomsmeding: in that case I would have a personFields field which is just a Aeson Value.
2020-09-30 10:49:00 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 10:49:11 +0200 <merijn> That's just as bad as "starting a land war in China" or "going against a Sicilian when death is on the line"
2020-09-30 10:49:30 +0200 <AWizzArd> What is the meaning of buildDepends, libraryHaskellDepends, executableHaskellDepends, libraryToolDepends, executableToolDepends, testToolDepends, benchmarkToolDepends, librarySystemDepends, executableSystemDepends, libraryFrameworkDepends, executableFrameworkDepends, testDepends, and the 50 others?
2020-09-30 10:49:59 +0200 <merijn> Sounds like a Nix question?
2020-09-30 10:51:17 +0200jrqc(~rofl@96.78.87.197) (Ping timeout: 258 seconds)
2020-09-30 10:52:04 +0200 <kuribas> merijn: in our app it's not only tied to the API, but also to the database.
2020-09-30 10:52:30 +0200 <kuribas> merijn: hashmaps just pass through everything, with only a light layer of transformation between.
2020-09-30 10:52:37 +0200glguy_(x@freenode/staff/haskell.developer.glguy)
2020-09-30 10:52:37 +0200glguyGuest12883
2020-09-30 10:52:37 +0200Guest12883(x@freenode/staff/haskell.developer.glguy) (Killed (tolkien.freenode.net (Nickname regained by services)))
2020-09-30 10:52:37 +0200glguy_glguy
2020-09-30 10:53:00 +0200 <merijn> kuribas: Every single time I've done that I've lived to regret it :p
2020-09-30 10:53:14 +0200 <AWizzArd> merijn: a Nix question that is very Haskell related. As in: what flags can I pass to "ghc", which happens to be a Linux tool, but which is essentially not a #Linux question.
2020-09-30 10:53:34 +0200 <merijn> I've learned to accept that the "boilerplate' of separate external and internal representations is worth it and inevitable
2020-09-30 10:53:35 +0200 <maerwald> AWizzArd: imo still better to ask in the nix channel
2020-09-30 10:53:50 +0200 <kuribas> merijn: however it's convenient in servant to write your records like the json objects.
2020-09-30 10:54:14 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 10:54:51 +0200 <kuribas> merijn: or I would need two types, ExternalResource, and Resource
2020-09-30 10:55:00 +0200 <merijn> kuribas: Yes
2020-09-30 10:55:15 +0200 <lortabac> I think it is a good idea to have two types anyway
2020-09-30 10:55:20 +0200jrqc(~rofl@96.78.87.197)
2020-09-30 10:55:58 +0200 <merijn> kuribas: Eventually you'll come around to my and lortabac's way of thinking, after you've made yourself suffer enough :)
2020-09-30 10:56:23 +0200 <kuribas> possibly
2020-09-30 10:56:36 +0200 <kuribas> I adapt my code as the needs change
2020-09-30 10:56:52 +0200 <kuribas> but clojure is a big bottleneck
2020-09-30 10:57:01 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 10:57:21 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-09-30 10:57:47 +0200 <kuribas> with its inability to model the business domain, provide safe abstractions, and giving zero consistency garantees.
2020-09-30 10:58:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 10:59:23 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-09-30 11:00:01 +0200sammuel86(~sammuel86@185.244.214.216) ()
2020-09-30 11:00:27 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds)
2020-09-30 11:00:30 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 11:02:50 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 11:03:23 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-09-30 11:04:16 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 11:06:26 +0200todda7(~torstein@ppp005055049059.access.hol.gr)
2020-09-30 11:06:59 +0200 <kuribas> merijn: actually I already have more types for one resource. Like a type for getting and setting information, a type with less fields, etc...
2020-09-30 11:07:00 +0200carlomagno1(~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-09-30 11:08:06 +0200 <kuribas> merijn: a clojurist would probably now grin in satisfaction, look at all that complexity!
2020-09-30 11:08:13 +0200 <kuribas> merijn: but IMO it's worth it.
2020-09-30 11:08:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 11:14:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 11:18:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 11:20:40 +0200 <sm[m]> there was no criticism or bashing in that article.. it's well written and interesting I think
2020-09-30 11:20:42 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 265 seconds)
2020-09-30 11:21:17 +0200 <kuribas> sm[m]: the haskell code is pretty bad
2020-09-30 11:21:30 +0200DireFog(~DireFog@s91904426.blix.com)
2020-09-30 11:22:17 +0200 <sm[m]> that's a silly thing to say, since they're just walking through a series of what ifs (pretty realistic thought process for someone figuring this stuff out)
2020-09-30 11:23:42 +0200 <sm[m]> I think it shows haskell provides a lot of freedom to model your typing needs
2020-09-30 11:24:32 +0200 <kuribas> no, it fits perfectly in the clojure narative that types are too heavy and unnecessary.
2020-09-30 11:24:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 11:25:44 +0200cpressey(~cpressey@79-72-201-29.dynamic.dsl.as9105.com) (Ping timeout: 272 seconds)
2020-09-30 11:25:44 +0200 <sm[m]> perhaps, but that doesn't make it it criticism or bashing, and I think you weaken your argument by saying so
2020-09-30 11:26:25 +0200 <sm[m]> Just MHO
2020-09-30 11:27:13 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 11:28:00 +0200cpressey(~cpressey@79-72-200-19.dynamic.dsl.as9105.com)
2020-09-30 11:28:09 +0200 <kuribas> sm[m]: perhaps it was written in good faith, but the code is still bad.
2020-09-30 11:28:24 +0200 <sm[m]> thanks for the link, I will watch for the HN discussion
2020-09-30 11:28:47 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds)
2020-09-30 11:29:01 +0200 <kuribas> sm[m]: btw, I don't believe in show the bad way first
2020-09-30 11:29:10 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 11:29:14 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-30 11:29:32 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-30 11:30:03 +0200 <kuribas> You learn the best by looking at good examples.
2020-09-30 11:30:37 +0200 <kuribas> Taking best ideas from everywhere and assimilating them into your own style.
2020-09-30 11:30:43 +0200 <maerwald> kuribas: I agree, I had a prof who used to show every single pitfall of a language, when teaching a language and thought that would give ppl an intuition. All it did was confuse them
2020-09-30 11:30:57 +0200 <kuribas> maerwald: right :)
2020-09-30 11:31:08 +0200 <maerwald> the C++ course was...
2020-09-30 11:31:19 +0200 <sm[m]> the article says that sometimes you want a more static model. So the first is not bad. Its just an engineering choice depending on the need.
2020-09-30 11:32:20 +0200 <sm[m]> the article lays out some of the options nicely. You could just As easily read it in reverse, describing a refactoring of over dynamic code to more statically checked.
2020-09-30 11:32:48 +0200 <kuribas> sm[m]: https://paste.tomsmeding.com/yy3PqZUb
2020-09-30 11:32:54 +0200 <kuribas> sm[m]: that's not bad?
2020-09-30 11:32:54 +0200ces(~ces@52d3ce3c.dynamic-ip.k-net.dk) (Quit: WeeChat 2.9)
2020-09-30 11:32:56 +0200 <merijn> sm[m]: The problem I have with it is that the static code is just a badly written strawman. You could easily have a static verbose that's both less verbose and more flexible
2020-09-30 11:32:59 +0200 <sm[m]> afk, sorry
2020-09-30 11:33:19 +0200 <merijn> sm[m]: And then using that bad code to justify the more dynamic approach
2020-09-30 11:33:53 +0200 <kuribas> sm[m]: I am pretty sure he wouldn't write this kind of code in clojure.
2020-09-30 11:34:11 +0200 <kuribas> sm[m]: I guess he is thinking about partial hashmaps.
2020-09-30 11:34:13 +0200 <sm[m]> (maybe write a follow up showing more possibilities ? I'd read it!)
2020-09-30 11:35:40 +0200ph88(~ph88@213.23.78.154)
2020-09-30 11:36:15 +0200 <kuribas> probably he was thinking about a clojure workflow, then putting haskell types on it.
2020-09-30 11:36:21 +0200 <sm[m]> (Ps and yes that particular variant seemed bad for most needs Incan imagine, and I think they said so)
2020-09-30 11:36:24 +0200 <kuribas> then concluding haskell types are way to heavy.
2020-09-30 11:36:30 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
2020-09-30 11:36:42 +0200operand(~operand@is.altijd.moe) (Ping timeout: 260 seconds)
2020-09-30 11:37:14 +0200ptrcmd(~ptrcmd@unaffiliated/petercommand) (Ping timeout: 265 seconds)
2020-09-30 11:37:15 +0200ptrcmd_(~ptrcmd@unaffiliated/petercommand)
2020-09-30 11:37:15 +0200 <sm[m]> gone
2020-09-30 11:37:36 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
2020-09-30 11:37:59 +0200operand(~operand@is.altijd.moe)
2020-09-30 11:38:27 +0200jrqc(~rofl@96.78.87.197) (Ping timeout: 240 seconds)
2020-09-30 11:38:27 +0200mstruebing(~mstruebin@2001:41d0:8:93c7::1) (Ping timeout: 260 seconds)
2020-09-30 11:38:27 +0200copypasteque_(~copypaste@2001:41d0:8:b325::1) (Ping timeout: 260 seconds)
2020-09-30 11:39:03 +0200mstruebing(~mstruebin@2001:41d0:8:93c7::1)
2020-09-30 11:39:20 +0200 <ph88> hey guys .. i have this code runReaderT (bla options) conf when i put flip in front of it i get a bunch of type errors ... maybe i need another function then ??
2020-09-30 11:39:52 +0200copypasteque_(~copypaste@2001:41d0:8:b325::1)
2020-09-30 11:40:25 +0200 <maerwald> (flip runReaderT) ...?
2020-09-30 11:40:29 +0200 <[exa]> ph88: what does it look like with the flip in the front?
2020-09-30 11:40:32 +0200acidjnk_new(~acidjnk@p200300d0c72378337d49dd4f750ab9d4.dip0.t-ipconnect.de)
2020-09-30 11:41:20 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-30 11:41:53 +0200 <kuribas> ph88: runReaderT conf $ bla options ?
2020-09-30 11:41:55 +0200jrqc(~rofl@96.78.87.197)
2020-09-30 11:42:05 +0200 <kuribas> ph88: erm flip runReaderT conf $ bla options ?
2020-09-30 11:42:14 +0200 <kuribas> that should work
2020-09-30 11:43:20 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2020-09-30 11:44:27 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr)
2020-09-30 11:44:57 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 11:47:03 +0200 <[exa]> are there any operators around? ($ may break it)
2020-09-30 11:47:35 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-30 11:49:17 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 11:52:58 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 272 seconds)
2020-09-30 11:56:01 +0200rotaerk(rotaerk@2600:3c02::f03c:91ff:fe70:4a45) (Ping timeout: 272 seconds)
2020-09-30 11:56:48 +0200todda7(~torstein@ppp005055049059.access.hol.gr) (Ping timeout: 256 seconds)
2020-09-30 11:58:12 +0200polyrain(~polyrain@2001:8003:e501:6901:988a:949a:6cb6:3522)
2020-09-30 12:00:33 +0200Rudd0(~Rudd0@185.189.115.98)
2020-09-30 12:00:34 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-09-30 12:01:12 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-09-30 12:05:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 12:05:19 +0200thewormkilltwk-
2020-09-30 12:05:43 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 12:07:12 +0200Sanchayan(~Sanchayan@223.226.111.203)
2020-09-30 12:08:24 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-09-30 12:09:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 12:13:33 +0200lucid_0x80(~lucid_0x8@85.132.73.6)
2020-09-30 12:14:50 +0200bitmagie(~Thunderbi@200116b806af9800a5686823a67cc6e9.dip.versatel-1u1.de)
2020-09-30 12:15:12 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 12:15:13 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 12:16:04 +0200 <hc> [exa]: check #freenode for operators? ;p
2020-09-30 12:17:09 +0200 <[exa]> hc: it was more like...any operators around that haskell expression :D
2020-09-30 12:17:41 +0200 <hc> I know, just a silly joke :)
2020-09-30 12:17:59 +0200 <[exa]> :]
2020-09-30 12:19:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 12:20:02 +0200lucid_0x80(~lucid_0x8@85.132.73.6) (Ping timeout: 256 seconds)
2020-09-30 12:20:43 +0200polyrain(~polyrain@2001:8003:e501:6901:988a:949a:6cb6:3522) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 12:21:41 +0200wonko7(~wonko7@2a01:e35:2ffb:7040:8c5f:831a:4acc:45dd)
2020-09-30 12:23:56 +0200 <ph88> [exa], kuribas thank you .. i see what i did wrong now ... i put flip $
2020-09-30 12:25:21 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 12:25:46 +0200rotaerk(rotaerk@2600:3c02::f03c:91ff:fe70:4a45)
2020-09-30 12:27:00 +0200bahamas(~lucian@188.24.181.166)
2020-09-30 12:27:00 +0200bahamas(~lucian@188.24.181.166) (Changing host)
2020-09-30 12:27:00 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 12:29:12 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-09-30 12:30:18 +0200alp(~alp@88.126.45.36) (Ping timeout: 265 seconds)
2020-09-30 12:32:43 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
2020-09-30 12:33:34 +0200darjeeling_(~darjeelin@122.245.121.113)
2020-09-30 12:34:44 +0200ericsagnes(~ericsagne@2405:6580:0:5100:c862:81df:d6b3:8407) (Ping timeout: 244 seconds)
2020-09-30 12:35:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 12:35:52 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9)
2020-09-30 12:37:47 +0200wonko7(~wonko7@2a01:e35:2ffb:7040:8c5f:831a:4acc:45dd) (Ping timeout: 240 seconds)
2020-09-30 12:38:06 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-09-30 12:38:45 +0200darjeeling_(~darjeelin@122.245.121.113) (Ping timeout: 240 seconds)
2020-09-30 12:39:16 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-09-30 12:39:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 12:39:55 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-09-30 12:40:11 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 240 seconds)
2020-09-30 12:40:29 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-30 12:44:00 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9)
2020-09-30 12:45:05 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-09-30 12:45:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 12:45:57 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 12:46:43 +0200rprije(~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) (Ping timeout: 260 seconds)
2020-09-30 12:47:08 +0200ericsagnes(~ericsagne@2405:6580:0:5100:302e:75f2:472:3c96)
2020-09-30 12:48:01 +0200glguy_(x@freenode/staff/haskell.developer.glguy)
2020-09-30 12:48:01 +0200glguyGuest13239
2020-09-30 12:48:01 +0200Guest13239(x@freenode/staff/haskell.developer.glguy) (Killed (moon.freenode.net (Nickname regained by services)))
2020-09-30 12:48:01 +0200glguy_glguy
2020-09-30 12:49:31 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Client Quit)
2020-09-30 12:50:14 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-09-30 12:50:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 12:50:36 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-09-30 12:51:19 +0200outerpassageGuest8389
2020-09-30 12:51:19 +0200Guest8389(~outerpass@li1196-30.members.linode.com) (Killed (kornbluth.freenode.net (Nickname regained by services)))
2020-09-30 12:51:23 +0200outerpassage(~outerpass@li1196-30.members.linode.com)
2020-09-30 12:52:16 +0200Patternmaster(~georg@li1192-118.members.linode.com) (Ping timeout: 256 seconds)
2020-09-30 12:53:54 +0200Patternmaster(~georg@li1192-118.members.linode.com)
2020-09-30 12:55:13 +0200darjeeling_(~darjeelin@122.245.121.113)
2020-09-30 12:55:51 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:00:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-30 13:01:34 +0200p0a(~user@unaffiliated/p0a)
2020-09-30 13:02:22 +0200 <p0a> Hello I have a type that has some fields, say data Foo = Foo { a,b,c :: Int }. Now I want a MaybeFoo that is like Foo except all fields are Maybe Int
2020-09-30 13:02:50 +0200 <p0a> The idea is that I can search for Foo values in a list, equality == is only tested on the Just values
2020-09-30 13:04:14 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-30 13:05:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:10:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 13:14:04 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-09-30 13:15:54 +0200bitmagie(~Thunderbi@200116b806af9800a5686823a67cc6e9.dip.versatel-1u1.de) (Quit: bitmagie)
2020-09-30 13:16:06 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:16:20 +0200 <merijn> p0a: You can just define Foo as "Foo f = Foo { a, b, c :: f Int }" and then use "Foo Identity" as the "default" and "Foo Maybe" for the second case?
2020-09-30 13:18:12 +0200cpressey(~cpressey@79-72-200-19.dynamic.dsl.as9105.com) (Quit: WeeChat 1.9.1)
2020-09-30 13:18:29 +0200 <p0a> merijn: ah that's really nice, thank you
2020-09-30 13:18:39 +0200 <p0a> do you think 'f' is a good choice for that?
2020-09-30 13:19:06 +0200 <p0a> This is probably irrelevant but I'm curious if there's a better suggestoin
2020-09-30 13:20:05 +0200 <merijn> p0a: 'f' is just a variable (usually associated with Functors, hence the choice here)
2020-09-30 13:20:21 +0200 <p0a> Got it, thank you
2020-09-30 13:20:40 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 13:21:09 +0200 <merijn> p0a: Here's a nice blogpost that involves slightly more complicated type machinery for an even fancier version of that: https://reasonablypolymorphic.com/blog/higher-kinded-data/
2020-09-30 13:21:42 +0200 <merijn> p0a: In fact, they literally use a "Person" "MaybePerson" example :p
2020-09-30 13:22:05 +0200 <p0a> Heh!
2020-09-30 13:22:09 +0200 <p0a> That's awesome, thanks. I will read it
2020-09-30 13:22:29 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-09-30 13:23:43 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-09-30 13:24:41 +0200 <merijn> p0a: I'd personally probably skip the whole Generic boilerplate, because it's kinda complicated, but the first part is certainly very useful
2020-09-30 13:25:16 +0200 <p0a> As I glanced over it
2020-09-30 13:25:20 +0200 <p0a> it got kinda scary towards the end
2020-09-30 13:25:37 +0200 <p0a> but if it is interesting I will read it
2020-09-30 13:25:50 +0200 <merijn> p0a: You can simply not use the scary part :)
2020-09-30 13:26:08 +0200 <merijn> p0a: The scary part is basically "using GHC Generics to avoid even writing the validate implementation"
2020-09-30 13:26:11 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:26:25 +0200pjb(~t@2a01cb04063ec50038cdaa6488b186d3.ipv6.abo.wanadoo.fr)
2020-09-30 13:26:27 +0200 <p0a> I see. I may not even need a validate myself
2020-09-30 13:26:30 +0200 <merijn> p0a: You can just use the datatype with a manual written validation/whatever and it'll "Just Work"
2020-09-30 13:26:33 +0200 <p0a> but we'll see, it depends on what the author is talking about
2020-09-30 13:26:45 +0200 <p0a> whoops, low battery... gotta go. Thank you again
2020-09-30 13:26:55 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-30 13:26:56 +0200p0a(~user@unaffiliated/p0a) (Quit: bye)
2020-09-30 13:30:11 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 13:30:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-09-30 13:32:52 +0200 <kuribas> merijn: I prefer generics over higher kinded stuff
2020-09-30 13:33:23 +0200 <kuribas> or better, eot, when you don't need the heavy stuff that comes with generics: https://hackage.haskell.org/package/generics-eot-0.4.0.1/docs/Generics-Eot.html
2020-09-30 13:33:53 +0200 <merijn> kuribas: Those two don't even have the same usecase(s) so that seems like a weird comment
2020-09-30 13:34:15 +0200 <merijn> Especially given the context of a blogpost using both for very different things
2020-09-30 13:34:53 +0200bahamas(~lucian@188.24.181.166)
2020-09-30 13:34:53 +0200bahamas(~lucian@188.24.181.166) (Changing host)
2020-09-30 13:34:53 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 13:36:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:39:54 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
2020-09-30 13:40:58 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 13:41:07 +0200 <maerwald> Is there a way to discover whether a thread is currently blocked?
2020-09-30 13:42:11 +0200tinga(~tinga@5-168-208-80-pool.fiber.fcom.ch) (Ping timeout: 240 seconds)
2020-09-30 13:45:23 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 13:46:30 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:48:22 +0200alx741_(~alx741@181.196.69.150) (Ping timeout: 256 seconds)
2020-09-30 13:49:07 +0200 <kuribas> merijn: yeah, the two aren't really related :)
2020-09-30 13:49:43 +0200 <kuribas> merijn: I dislike the HKD approach, because it is rather messy, and usually not that hard to avoid.
2020-09-30 13:49:47 +0200jgt(~jgt@195.225.146.77) (Ping timeout: 240 seconds)
2020-09-30 13:49:58 +0200alp(~alp@2a01:e0a:58b:4920:bc07:244b:4df4:499a)
2020-09-30 13:50:01 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
2020-09-30 13:50:23 +0200idhugo(~idhugo@users-1190.st.net.au.dk)
2020-09-30 13:50:25 +0200plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-09-30 13:51:01 +0200fweht(uid404746@gateway/web/irccloud.com/x-hoeehmttzipzbkkn)
2020-09-30 13:51:24 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 13:51:52 +0200BalterNotz(ca420871@202.66.8.113) (Remote host closed the connection)
2020-09-30 13:53:46 +0200Saten-san(~Saten-san@ip-81-11-153-13.dsl.scarlet.be)
2020-09-30 13:53:51 +0200Saten-san(~Saten-san@ip-81-11-153-13.dsl.scarlet.be) (Client Quit)
2020-09-30 13:54:10 +0200Saten-san(~Saten-san@ip-81-11-153-13.dsl.scarlet.be)
2020-09-30 13:55:14 +0200Saten-san(~Saten-san@ip-81-11-153-13.dsl.scarlet.be) (Client Quit)
2020-09-30 13:56:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 13:57:53 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.)
2020-09-30 14:00:02 +0200DireFog(~DireFog@s91904426.blix.com) ()
2020-09-30 14:00:41 +0200Alleria_(~AllahuAkb@69.202.254.168) (Ping timeout: 265 seconds)
2020-09-30 14:00:54 +0200alx741_(~alx741@186.178.110.227)
2020-09-30 14:01:02 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-30 14:01:57 +0200ggole(~ggole@2001:8003:8119:7200:f871:c0ad:b761:dbf4)
2020-09-30 14:03:09 +0200avdb(~avdb@ip-81-11-153-13.dsl.scarlet.be)
2020-09-30 14:06:19 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-09-30 14:06:44 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 14:08:27 +0200hackagehakyll 4.13.4.1 - A static website compiler library https://hackage.haskell.org/package/hakyll-4.13.4.1 (JasperVanDerJeugt)
2020-09-30 14:11:09 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 14:11:59 +0200urodna(~urodna@unaffiliated/urodna)
2020-09-30 14:13:34 +0200fweht(uid404746@gateway/web/irccloud.com/x-hoeehmttzipzbkkn) ()
2020-09-30 14:14:56 +0200coot_(~coot@37.30.60.139.nat.umts.dynamic.t-mobile.pl)
2020-09-30 14:15:07 +0200sagax(~sagax_nb@213.138.71.146) (Remote host closed the connection)
2020-09-30 14:16:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 14:17:13 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 14:18:04 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 256 seconds)
2020-09-30 14:18:15 +0200coot_coot
2020-09-30 14:19:03 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 14:19:52 +0200cpressey(~cpressey@79-72-200-19.dynamic.dsl.as9105.com)
2020-09-30 14:21:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 14:21:54 +0200Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-09-30 14:25:17 +0200kindaro(1f08d381@h31-8-211-129.dyn.bashtel.ru) (Remote host closed the connection)
2020-09-30 14:27:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 14:28:07 +0200mu_(~mu@unaffiliated/mu) (Ping timeout: 240 seconds)
2020-09-30 14:29:55 +0200chaosmasttter(~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2020-09-30 14:29:59 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-30 14:31:07 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-09-30 14:31:07 +0200John20(~John@82.46.59.122) (Ping timeout: 240 seconds)
2020-09-30 14:31:18 +0200Takumo(takumo@unaffiliated/takumokatekari) (Quit: WeeChat 1.9.1)
2020-09-30 14:31:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 14:33:43 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-09-30 14:34:36 +0200ericsagnes(~ericsagne@2405:6580:0:5100:302e:75f2:472:3c96) (Ping timeout: 244 seconds)
2020-09-30 14:35:26 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-30 14:35:27 +0200bahamas(~lucian@188.24.181.166)
2020-09-30 14:35:27 +0200bahamas(~lucian@188.24.181.166) (Changing host)
2020-09-30 14:35:27 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 14:35:44 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-30 14:35:57 +0200Alleria_(~AllahuAkb@2604:2000:1484:26:59c0:566a:2725:87ae)
2020-09-30 14:36:18 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2020-09-30 14:36:45 +0200idhugo(~idhugo@users-1190.st.net.au.dk) (Quit: Leaving)
2020-09-30 14:37:09 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 14:38:00 +0200wonko7(~wonko7@2a01:e35:2ffb:36a0:8c5f:831a:4acc:45dd)
2020-09-30 14:38:42 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-09-30 14:39:34 +0200coot(~coot@37.30.60.139.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 246 seconds)
2020-09-30 14:41:20 +0200sagax(~sagax_nb@213.138.71.146)
2020-09-30 14:41:42 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 14:45:05 +0200halogenandtoast(~halogenan@072-176-116-031.res.spectrum.com) (Quit: WeeChat 2.9)
2020-09-30 14:47:17 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 14:47:25 +0200ericsagnes(~ericsagne@2405:6580:0:5100:b4e9:399f:908f:6639)
2020-09-30 14:50:07 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 240 seconds)
2020-09-30 14:51:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-30 14:53:46 +0200jgt(~jgt@188.239.64.32)
2020-09-30 14:53:52 +0200Lodle(~Lodle@s91904426.blix.com)
2020-09-30 14:57:22 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 14:57:58 +0200hackageservant-serf 0.0.1 - Generates a servant API module https://hackage.haskell.org/package/servant-serf-0.0.1 (goolord)
2020-09-30 15:00:46 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-09-30 15:02:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 15:02:34 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 15:02:40 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds)
2020-09-30 15:03:00 +0200chaosmasttter(~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de)
2020-09-30 15:03:30 +0200polyrain(~polyrain@2001:8003:e501:6901:988a:949a:6cb6:3522)
2020-09-30 15:06:11 +0200st8less(~st8less@ip72-204-59-82.fv.ks.cox.net)
2020-09-30 15:07:11 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-09-30 15:07:32 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 15:11:35 +0200John20(~John@82.46.59.122)
2020-09-30 15:11:46 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-09-30 15:12:23 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 15:17:29 +0200Alleria_(~AllahuAkb@2604:2000:1484:26:59c0:566a:2725:87ae) (Ping timeout: 244 seconds)
2020-09-30 15:17:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 15:18:23 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-30 15:18:37 +0200Lowl3v3l(~Lowl3v3l@dslb-090-186-188-115.090.186.pools.vodafone-ip.de)
2020-09-30 15:21:27 +0200Alleria_(~AllahuAkb@2604:2000:1484:26:59c0:566a:2725:87ae)
2020-09-30 15:22:36 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 15:22:57 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 15:25:54 +0200avdb(~avdb@ip-81-11-153-13.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-09-30 15:26:16 +0200chaosmasttter(~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-09-30 15:27:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 15:29:47 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1975:ad5b:4777:bf80)
2020-09-30 15:30:57 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1975:ad5b:4777:bf80) (Client Quit)
2020-09-30 15:32:18 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 15:33:49 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 264 seconds)
2020-09-30 15:35:07 +0200acidjnk_new(~acidjnk@p200300d0c72378337d49dd4f750ab9d4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 15:36:41 +0200motte(~weechat@unaffiliated/motte)
2020-09-30 15:37:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 15:38:25 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2975:3225:75da:b702)
2020-09-30 15:41:16 +0200 <motte> hi, i'm new to haskell and i would like to create a simple web server with basic access authentication. which library would best suit my needs?
2020-09-30 15:41:35 +0200 <Uniaika> not Servant, whatever you might be told
2020-09-30 15:41:43 +0200 <Uniaika> try Scotty and/or Yesod
2020-09-30 15:42:01 +0200 <motte> huh, that's what i was looking at currently. what's wrong with it?
2020-09-30 15:42:05 +0200 <Taneb> For this case I'd go scotty
2020-09-30 15:42:06 +0200 <Uniaika> ah, if you want to *create* a web *server*, you might have to go at a lower level with Warp/WAI
2020-09-30 15:42:20 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-30 15:42:27 +0200 <Taneb> servant is great if you want to have a large REST API. On the small, it's kind of got a lot of wasted power
2020-09-30 15:42:32 +0200 <Uniaika> motte: you don't have the level/understanding of type-level programming to understand what you'll need to do in order to use it
2020-09-30 15:42:37 +0200 <opqdonut> for a simple web server / backend, I'd just go with WAI & Warp directly
2020-09-30 15:42:42 +0200 <Uniaika> just don't hurt yourself with Servant yet
2020-09-30 15:43:05 +0200 <motte> the library should be as simple/minimal as possible, scalability isn't important etc.
2020-09-30 15:43:20 +0200 <Uniaika> go with WAI and Warp then
2020-09-30 15:43:23 +0200 <Uniaika> Godspeed!
2020-09-30 15:43:37 +0200 <motte> alright, will check it out, thankss
2020-09-30 15:43:48 +0200 <hc> lol, you don't need to understand any more type theory for servant than you do for getting along with warp/wai
2020-09-30 15:44:05 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-09-30 15:44:21 +0200 <hc> I mean, servant is already implemented; there are good howtos on how to use it
2020-09-30 15:44:51 +0200 <motte> oh, also, i plan to keep the credentials in a /etc/shadow -like text file. anything for that?
2020-09-30 15:44:52 +0200glguy(x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer)
2020-09-30 15:45:01 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-09-30 15:45:15 +0200 <Uniaika> hc: I did not mention type theory, I mentionned type-level programming - which is widely different
2020-09-30 15:45:17 +0200glguy(x@freenode/staff/haskell.developer.glguy)
2020-09-30 15:45:29 +0200 <Uniaika> at least type theory doesn't bring type error messages that are scary as shit
2020-09-30 15:45:53 +0200 <Uniaika> motte: why don't you hash+salt them in a SQL row?
2020-09-30 15:46:51 +0200aveltras(uid364989@gateway/web/irccloud.com/x-ituvpedwywfixetm)
2020-09-30 15:47:11 +0200sword865(uid208942@gateway/web/irccloud.com/x-ifbndlqlczbvfcan) (Quit: Connection closed for inactivity)
2020-09-30 15:48:24 +0200 <motte> Uniaika: it's a pretty simple application, i don't think i need a database. just 1 configuration file for authorization and something for authentication
2020-09-30 15:48:47 +0200 <Uniaika> well you can use a SQLite database if you don't want to bother with a DBMS :)
2020-09-30 15:49:03 +0200 <Uniaika> I don't know if the /etc/shadow algorithm has an implementation in Haskell
2020-09-30 15:49:04 +0200 <motte> i pretty much already have the whole thing implemented using mqtt, but then i realized i sometimes need to send responses as well
2020-09-30 15:49:11 +0200 <Uniaika> that being said, it can be a fantastic side-project :P
2020-09-30 15:49:40 +0200 <motte> in mqtt's case i let the broker deal with authentication
2020-09-30 15:53:32 +0200Lodle(~Lodle@s91904426.blix.com) (Remote host closed the connection)
2020-09-30 15:53:44 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2020-09-30 15:54:51 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2020-09-30 15:55:27 +0200Clough(~Cain@190.121.220.203.dial.dynamic.acc01-fenw-glg.comindico.com.au) (Read error: Connection reset by peer)
2020-09-30 15:55:34 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 15:58:15 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 15:59:21 +0200nkly(~nkly@2a02:8109:9a80:a74:201:2eff:fe81:c6dd)
2020-09-30 15:59:27 +0200ericsagnes(~ericsagne@2405:6580:0:5100:b4e9:399f:908f:6639) (Ping timeout: 240 seconds)
2020-09-30 16:00:13 +0200jgt(~jgt@188.239.64.32) (Ping timeout: 264 seconds)
2020-09-30 16:00:34 +0200isovector1(~isovector@172.103.216.166)
2020-09-30 16:01:01 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-30 16:01:07 +0200wonko7(~wonko7@2a01:e35:2ffb:36a0:8c5f:831a:4acc:45dd) (Ping timeout: 240 seconds)
2020-09-30 16:03:08 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 16:03:58 +0200Wuzzy(~Wuzzy@p5790e6f5.dip0.t-ipconnect.de)
2020-09-30 16:04:36 +0200ph88(~ph88@213.23.78.154) (Ping timeout: 256 seconds)
2020-09-30 16:05:23 +0200encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-09-30 16:05:37 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-09-30 16:05:48 +0200 <kuribas> merijn: I was thinking to make a library to pre (post-) process aeson data before (after) parsing/generating.
2020-09-30 16:05:57 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 260 seconds)
2020-09-30 16:06:03 +0200 <kuribas> merijn: to move around fields.
2020-09-30 16:06:26 +0200 <kuribas> merijn: in the best case in a typesafe way (using generics).
2020-09-30 16:06:27 +0200 <Uniaika> kuribas: aren't there already hooks to do that?
2020-09-30 16:06:49 +0200 <kuribas> Uniaika: you mean a handwritten parser?
2020-09-30 16:07:00 +0200 <Uniaika> no, hooks in Aeson
2020-09-30 16:07:02 +0200 <Uniaika> wait a sec
2020-09-30 16:08:22 +0200ystael(~ystael@209.6.50.55)
2020-09-30 16:08:26 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 16:09:07 +0200 <Uniaika> kuribas: https://hackage.haskell.org/package/aeson-1.4.6.0/docs/Data-Aeson.html#g:16
2020-09-30 16:09:12 +0200 <Uniaika> option fields
2020-09-30 16:09:33 +0200 <kuribas> Uniaika: they only change the strings
2020-09-30 16:09:41 +0200 <kuribas> Uniaika: I want to reorder the JSON
2020-09-30 16:09:51 +0200 <Uniaika> wait, re-order it?
2020-09-30 16:10:49 +0200 <Uniaika> kuribas: that's tricky because objects are unordered while arrays are
2020-09-30 16:10:59 +0200 <kuribas> yeah, like {"subfield": {"x": 1, "y": 2}} => {"subfield_x": 1, "subfield_y": 2}
2020-09-30 16:11:19 +0200 <Uniaika> ah that's different
2020-09-30 16:11:26 +0200 <Uniaika> p. sure you can operate on the AST
2020-09-30 16:11:39 +0200 <Uniaika> although, to be fair, I would just use DTOs for that
2020-09-30 16:11:58 +0200 <kuribas> Uniaika: of course I can do Value -> Value, but I want something more principled, composable, and bidirectional.
2020-09-30 16:12:09 +0200 <Uniaika> and an explicit translation from the first (direct mapping of the object) to the second (better for my business logic)
2020-09-30 16:12:25 +0200 <lortabac> kuribas: lens-aeson ?
2020-09-30 16:12:29 +0200ericsagnes(~ericsagne@2405:6580:0:5100:df5:637e:fad1:ac7)
2020-09-30 16:12:36 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-09-30 16:12:50 +0200 <kuribas> lortabac: hmm, maybe an isomorphism?
2020-09-30 16:13:16 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 16:13:25 +0200 <lortabac> oh, if you don't want Value -> Value then lens-aeson is probably not the right tool
2020-09-30 16:16:33 +0200 <kuribas> well, maybe just Endo Value
2020-09-30 16:16:45 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-09-30 16:17:46 +0200random(~random@185.219.70.106) (Read error: Connection reset by peer)
2020-09-30 16:18:27 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 16:19:07 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-30 16:19:25 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds)
2020-09-30 16:20:54 +0200Sanchayan(~Sanchayan@223.226.111.203) (Quit: leaving)
2020-09-30 16:21:14 +0200notzmv``(~user@177.45.26.174)
2020-09-30 16:22:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 16:23:12 +0200kuribas(~user@ptr-25vy0i8if8811202m3x.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-09-30 16:24:43 +0200notzmv`(~user@177.45.26.174) (Ping timeout: 265 seconds)
2020-09-30 16:24:55 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 246 seconds)
2020-09-30 16:25:26 +0200obruT1(~obruT@84.39.117.57)
2020-09-30 16:25:36 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 16:28:33 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 16:29:36 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-09-30 16:30:33 +0200tbreslein(~tbreslein@2a02:8108:140:44f8::901) (Remote host closed the connection)
2020-09-30 16:30:50 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 16:31:49 +0200tbreslein(~tbreslein@2a02:8108:140:44f8::901)
2020-09-30 16:32:35 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 16:33:29 +0200darjeeling_(~darjeelin@122.245.121.113) (Ping timeout: 256 seconds)
2020-09-30 16:34:20 +0200darjeeling_(~darjeelin@122.245.121.113)
2020-09-30 16:38:39 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 16:40:35 +0200polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-09-30 16:41:30 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9)
2020-09-30 16:43:34 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-30 16:45:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 16:47:24 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 16:48:54 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 16:51:47 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 16:53:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 16:54:46 +0200encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) ()
2020-09-30 16:55:38 +0200raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-09-30 16:58:03 +0200ddellacosta(~dd@86.106.121.168)
2020-09-30 16:58:10 +0200glguy_(x@freenode/staff/haskell.developer.glguy)
2020-09-30 16:58:10 +0200glguyGuest34587
2020-09-30 16:58:10 +0200Guest34587(x@freenode/staff/haskell.developer.glguy) (Killed (moon.freenode.net (Nickname regained by services)))
2020-09-30 16:58:10 +0200glguy_glguy
2020-09-30 16:59:00 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 17:00:01 +0200obruT1(~obruT@84.39.117.57) ()
2020-09-30 17:00:49 +0200mac10688(~mac10688@c-76-115-116-76.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2020-09-30 17:01:14 +0200mac10688(~mac10688@c-76-115-116-76.hsd1.or.comcast.net)
2020-09-30 17:01:34 +0200aarvar(~foewfoiew@50.35.43.33)
2020-09-30 17:01:35 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-09-30 17:01:55 +0200coot(~coot@37.30.51.172.nat.umts.dynamic.t-mobile.pl)
2020-09-30 17:03:03 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-09-30 17:03:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 17:04:44 +0200 <zincy_> Is there a name for this? You have a N x N matrix and have a set of instructions to update elements in the grid
2020-09-30 17:05:08 +0200 <zincy_> startCol, endCol, startRow, endRow
2020-09-30 17:05:47 +0200 <zincy_> And a function to update each element
2020-09-30 17:05:47 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2020-09-30 17:05:56 +0200Lord_of_Life_Lord_of_Life
2020-09-30 17:06:20 +0200 <zincy_> So you can compose transformations on given coordinates in the grid by sequencing instructions
2020-09-30 17:09:05 +0200borne(~fritjof@200116b864837e00537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-09-30 17:09:15 +0200 <merijn> zincy_: Array comprehensions? :p
2020-09-30 17:10:08 +0200 <zincy_> hehe
2020-09-30 17:10:58 +0200 <merijn> zincy_: Kinda serious
2020-09-30 17:11:00 +0200 <merijn> zincy_: http://www.sac-home.org/lib/exe/fetch.php?media=docs:tutorial.pdf
2020-09-30 17:11:20 +0200 <merijn> See chapter 4 on with loops
2020-09-30 17:12:30 +0200 <merijn> "tensor comprehensions" are also somewhat related
2020-09-30 17:13:03 +0200spew(uid195861@gateway/web/irccloud.com/x-jsbpggyredzfkvod)
2020-09-30 17:13:22 +0200 <zincy_> thanks!
2020-09-30 17:14:09 +0200 <merijn> zincy_: The various SaC papers should also talk a bit about fusing stuff like that together
2020-09-30 17:15:52 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 17:17:09 +0200 <[exa]> anyone on windows with working vscode integration?
2020-09-30 17:19:18 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 17:19:29 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-30 17:19:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 17:19:55 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 17:21:20 +0200chx(~chx@185.204.1.185)
2020-09-30 17:22:16 +0200lordcirth_(~lordcirth@2607:f2c0:95a8:ef00:b128:6022:758c:dbc)
2020-09-30 17:22:39 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-unnsmhewxbfoaung)
2020-09-30 17:23:07 +0200 <sm[m]> I'm on mac with working vscode & haskell exts..
2020-09-30 17:25:53 +0200todda7(~torstein@athedsl-4367507.home.otenet.gr)
2020-09-30 17:26:41 +0200jespada(~jespada@90.254.241.6) (Ping timeout: 260 seconds)
2020-09-30 17:27:29 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-09-30 17:28:15 +0200ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net)
2020-09-30 17:28:46 +0200ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-09-30 17:28:46 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-09-30 17:29:04 +0200jespada(~jespada@90.254.241.6)
2020-09-30 17:31:02 +0200 <[exa]> well I'm searching for "something that works without much effort" for 3-4 windows students, and don't have any windows handy to play with it
2020-09-30 17:32:33 +0200bloodstalker(~bloodstal@46.166.187.188)
2020-09-30 17:33:15 +0200 <sm[m]> Stack + Vscode + haskell extension seems very likely the winner there
2020-09-30 17:33:54 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net)
2020-09-30 17:35:45 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 17:36:27 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-09-30 17:37:17 +0200coot(~coot@37.30.51.172.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-09-30 17:37:50 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-30 17:38:07 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-09-30 17:39:11 +0200 <maerwald> stack?
2020-09-30 17:39:14 +0200 <maerwald> on windows?
2020-09-30 17:39:22 +0200 <maerwald> it has outdated msys2
2020-09-30 17:40:07 +0200 <maerwald> installing system dependencies requires dealing with pacman
2020-09-30 17:40:27 +0200hackagepolysemy-video 0.1.0.0 - https://hackage.haskell.org/package/polysemy-video-0.1.0.0 (locallycompact)
2020-09-30 17:41:00 +0200xerox_(~xerox@unaffiliated/xerox)
2020-09-30 17:41:17 +0200 <zincy_> merijn: SaC is cool, never heard of it before
2020-09-30 17:41:40 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 17:42:36 +0200 <sm[m]> [exa] might let us know
2020-09-30 17:42:43 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 17:42:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 17:43:20 +0200gtomas(~gtomas@a89-153-131-85.cpe.netcabo.pt)
2020-09-30 17:43:53 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2975:3225:75da:b702) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 17:45:19 +0200notzmv``notzmv
2020-09-30 17:45:27 +0200notzmv(~user@177.45.26.174) (Changing host)
2020-09-30 17:45:27 +0200notzmv(~user@unaffiliated/zmv)
2020-09-30 17:45:48 +0200 <[exa]> yeah that's why I'm asking, they gave up on stack
2020-09-30 17:45:59 +0200 <[exa]> b/c installing it failed for like 3 times
2020-09-30 17:46:04 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 17:46:05 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-09-30 17:47:28 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:e5aa:7dfa:231a:59a4)
2020-09-30 17:48:09 +0200 <lordcirth_> [exa], Win10? Wouldn't WSL be the best?
2020-09-30 17:48:45 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 17:50:06 +0200 <[exa]> does that work with VS Code?
2020-09-30 17:52:37 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 17:52:42 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 17:53:05 +0200 <lordcirth_> Probably?
2020-09-30 17:54:32 +0200ubert(~Thunderbi@91.141.2.105.wireless.dyn.drei.com)
2020-09-30 17:56:10 +0200 <[exa]> hm okay :]
2020-09-30 17:56:38 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 256 seconds)
2020-09-30 17:57:28 +0200polyrain(~polyrain@2001:8003:e501:6901:988a:949a:6cb6:3522) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 17:58:25 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-30 17:58:54 +0200gtomas(~gtomas@a89-153-131-85.cpe.netcabo.pt) (Quit: gtomas)
2020-09-30 17:59:04 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:e5aa:7dfa:231a:59a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 17:59:57 +0200hackageaeson-value-parser 0.19.3 - API for parsing "aeson" JSON tree into Haskell types https://hackage.haskell.org/package/aeson-value-parser-0.19.3 (NikitaVolkov)
2020-09-30 18:00:00 +0200howdoi(uid224@gateway/web/irccloud.com/x-owzahvktatqyicxd)
2020-09-30 18:02:11 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 18:02:22 +0200kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-09-30 18:02:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 18:06:30 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:19c6:af75:179d:46af)
2020-09-30 18:06:35 +0200aveltras(uid364989@gateway/web/irccloud.com/x-ituvpedwywfixetm) (Quit: Connection closed for inactivity)
2020-09-30 18:06:37 +0200cpressey(~cpressey@79-72-200-19.dynamic.dsl.as9105.com) (Quit: WeeChat 1.9.1)
2020-09-30 18:08:28 +0200hackagepath-dhall-instance 0.1.0.1 - ToDhall and FromDhall instances for Path. https://hackage.haskell.org/package/path-dhall-instance-0.1.0.1 (locallycompact)
2020-09-30 18:09:26 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 18:09:54 +0200lordcirth_(~lordcirth@2607:f2c0:95a8:ef00:b128:6022:758c:dbc) ("Leaving")
2020-09-30 18:09:58 +0200hackagepolysemy-video 0.1.0.1 - https://hackage.haskell.org/package/polysemy-video-0.1.0.1 (locallycompact)
2020-09-30 18:10:22 +0200xlei(znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in)
2020-09-30 18:11:01 +0200troydm(~troydm@unaffiliated/troydm) (Ping timeout: 264 seconds)
2020-09-30 18:12:15 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 18:12:48 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 18:12:57 +0200hackagepath-dhall-instance 0.1.1.0 - ToDhall and FromDhall instances for Path. https://hackage.haskell.org/package/path-dhall-instance-0.1.1.0 (locallycompact)
2020-09-30 18:16:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-30 18:16:57 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net)
2020-09-30 18:17:12 +0200somek(b55ebc21@181.94.188.33)
2020-09-30 18:18:54 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-09-30 18:19:07 +0200nshepperd(~nshepperd@pool-96-239-61-124.nycmny.fios.verizon.net)
2020-09-30 18:22:27 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 18:22:47 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 18:23:57 +0200hackagerefinery 0.2.0.0 - Toolkit for building proof automation systems https://hackage.haskell.org/package/refinery-0.2.0.0 (ReedMullanix)
2020-09-30 18:24:13 +0200blase(~blase@4e69b241.skybroadband.com)
2020-09-30 18:24:22 +0200troydm(~troydm@unaffiliated/troydm)
2020-09-30 18:25:27 +0200kish(~oracle@unaffiliated/oracle)
2020-09-30 18:25:28 +0200blase_(~blase@4e69b241.skybroadband.com) (Ping timeout: 256 seconds)
2020-09-30 18:26:01 +0200ski(~ski@m-1163-19.studat.chalmers.se) (Ping timeout: 264 seconds)
2020-09-30 18:29:27 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 240 seconds)
2020-09-30 18:29:55 +0200geekosaur(42d52102@66.213.33.2)
2020-09-30 18:32:37 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 18:32:43 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 18:33:01 +0200knupfer(~Thunderbi@200116b82ca43f00a81888fffe30a4cb.dip.versatel-1u1.de)
2020-09-30 18:33:01 +0200knupfer(~Thunderbi@200116b82ca43f00a81888fffe30a4cb.dip.versatel-1u1.de) (Client Quit)
2020-09-30 18:33:12 +0200knupfer(~Thunderbi@mue-88-130-61-186.dsl.tropolys.de)
2020-09-30 18:33:26 +0200lucid_0x80(~lucid_0x8@188.253.231.113)
2020-09-30 18:33:40 +0200motherfsck(~motherfsc@unaffiliated/motherfsck) (Quit: quit)
2020-09-30 18:34:08 +0200lucid_0x80(~lucid_0x8@188.253.231.113) (Client Quit)
2020-09-30 18:35:44 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-snlzgsknnstcsppe)
2020-09-30 18:37:07 +0200tzh(~tzh@2601:448:c500:5300::4b20)
2020-09-30 18:37:43 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-30 18:42:15 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 18:42:41 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 18:45:07 +0200todda7(~torstein@athedsl-4367507.home.otenet.gr) (Ping timeout: 240 seconds)
2020-09-30 18:46:04 +0200blackfield(~blackfiel@unaffiliated/blackfield) ("Leaving")
2020-09-30 18:47:31 +0200ski(~ski@129.16.53.148)
2020-09-30 18:49:12 +0200coot(~coot@37.30.34.146.nat.umts.dynamic.t-mobile.pl)
2020-09-30 18:49:18 +0200conal(~conal@198.8.81.205)
2020-09-30 18:49:32 +0200todda7(~torstein@athedsl-4367507.home.otenet.gr)
2020-09-30 18:49:59 +0200 <AWizzArd> Is there a study/statistics about unqualified imports? Such as `import Data.Text` without explicitly listing the FNs or Types we want.
2020-09-30 18:50:28 +0200 <AWizzArd> Maybe somebody has analyzed/counted this on Hackage.
2020-09-30 18:51:31 +0200 <AWizzArd> Also, how to import all constructors? a) import Foo (Bar(..)) or b) import Foo (Bar (..)) b has a space after `Bar`.
2020-09-30 18:52:11 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 18:52:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 18:52:47 +0200ski'd go for the space
2020-09-30 18:53:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-09-30 18:53:42 +0200 <AWizzArd> ski: I also like b) with the space more.
2020-09-30 18:55:03 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 258 seconds)
2020-09-30 18:55:58 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 260 seconds)
2020-09-30 18:57:53 +0200Turmfalke(~user@unaffiliated/siracusa)
2020-09-30 18:59:25 +0200 <monochrom> I use (a)
2020-09-30 18:59:43 +0200xlei(znc@unaffiliated/xlei)
2020-09-30 18:59:58 +0200 <monochrom> Thank you for having a space after Foo though :)
2020-09-30 19:01:04 +0200tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-09-30 19:01:13 +0200 <monochrom> It is not important at all but I like the consistently-having-a-space over both "import M (f)" and "import M hiding (f)", i.e., I wouldn't "import M hiding(f)".
2020-09-30 19:01:57 +0200tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-09-30 19:02:13 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 19:02:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-30 19:02:31 +0200bahamas(~lucian@unaffiliated/bahamas) (Quit: Lost terminal)
2020-09-30 19:02:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 19:02:56 +0200nineonin_(~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
2020-09-30 19:03:51 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-30 19:04:35 +0200voyons_calice(~dan@162.246.216.28)
2020-09-30 19:04:48 +0200fendor(~fendor@77.119.131.134.wireless.dyn.drei.com) (Remote host closed the connection)
2020-09-30 19:05:46 +0200fendor(~fendor@77.119.131.134.wireless.dyn.drei.com)
2020-09-30 19:07:26 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com) (Ping timeout: 272 seconds)
2020-09-30 19:07:40 +0200nineonine(~nineonine@50.216.62.2)
2020-09-30 19:08:08 +0200vicfred_(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-09-30 19:08:50 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-30 19:09:07 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-30 19:09:41 +0200fendor(~fendor@77.119.131.134.wireless.dyn.drei.com) (Client Quit)
2020-09-30 19:10:27 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-30 19:11:52 +0200 <sm[m]> [exa]: hard to say more without details, but stack was having some net failures recently
2020-09-30 19:12:00 +0200voyons_calice(~dan@162.246.216.28) (Ping timeout: 256 seconds)
2020-09-30 19:12:12 +0200motersen(~user@2001-4dd1-ce19-0-41b8-8f35-edf5-ff23.ipv6dyn.netcologne.de)
2020-09-30 19:12:12 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 19:12:20 +0200isovector1(~isovector@172.103.216.166) (Read error: Connection reset by peer)
2020-09-30 19:12:43 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 19:13:30 +0200hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
2020-09-30 19:17:28 +0200kish(~oracle@unaffiliated/oracle) (Ping timeout: 246 seconds)
2020-09-30 19:18:47 +0200kish(~oracle@unaffiliated/oracle)
2020-09-30 19:20:07 +0200coot(~coot@37.30.34.146.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
2020-09-30 19:22:11 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-09-30 19:22:11 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 19:22:30 +0200coot(~coot@37.30.59.214.nat.umts.dynamic.t-mobile.pl)
2020-09-30 19:22:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 19:23:19 +0200machinedgod(~machinedg@45.78.189.122)
2020-09-30 19:24:12 +0200gwiley(~gwiley@2606:ae80:1c10:130::175)
2020-09-30 19:24:15 +0200gwiley(~gwiley@2606:ae80:1c10:130::175) (Client Quit)
2020-09-30 19:26:29 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 19:26:56 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 19:30:22 +0200ADG1089(uid455466@gateway/web/irccloud.com/x-wfsqzgfoscwuqfvc)
2020-09-30 19:30:47 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-30 19:30:48 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-30 19:30:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 19:32:41 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 19:32:50 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 19:33:08 +0200rustisafungus(~rustisafu@2602:306:cd3c:9350:210f:c391:77b9:29cb)
2020-09-30 19:35:56 +0200nineonin_(~nineonine@216.81.48.202)
2020-09-30 19:37:51 +0200rustisafungus(~rustisafu@2602:306:cd3c:9350:210f:c391:77b9:29cb) (Quit: Leaving)
2020-09-30 19:38:47 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 19:38:57 +0200hackagebase-compat 0.11.2 - A compatibility layer for base https://hackage.haskell.org/package/base-compat-0.11.2 (ryanglscott)
2020-09-30 19:39:13 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
2020-09-30 19:39:50 +0200ransom(~c4264035@undergraduate-jvossen-9690.mines.edu)
2020-09-30 19:39:57 +0200hackagebase-compat-batteries 0.11.2 - base-compat with extra batteries https://hackage.haskell.org/package/base-compat-batteries-0.11.2 (ryanglscott)
2020-09-30 19:40:57 +0200hackagewordn 0.1.0.0 - arbitrary bit size Words https://hackage.haskell.org/package/wordn-0.1.0.0 (goolord)
2020-09-30 19:42:13 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 19:42:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 19:43:26 +0200 <maerwald> sm[m]: haha
2020-09-30 19:43:35 +0200 <maerwald> I had that too and gave up
2020-09-30 19:43:47 +0200dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-09-30 19:43:57 +0200hackagescotty-form 0.3.0.0 - Html form validation using `ditto` https://hackage.haskell.org/package/scotty-form-0.3.0.0 (goolord)
2020-09-30 19:44:36 +0200 <maerwald> but that's rather an amazon problem I think
2020-09-30 19:44:39 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-09-30 19:45:05 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-30 19:46:00 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9)
2020-09-30 19:46:02 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-30 19:46:28 +0200hackagebase-orphans 0.8.3 - Backwards-compatible orphan instances for base https://hackage.haskell.org/package/base-orphans-0.8.3 (ryanglscott)
2020-09-30 19:47:22 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-09-30 19:47:55 +0200 <maerwald> the only time when I was on windows and thought "stack might be better here" I was disappointed
2020-09-30 19:48:58 +0200jchia_(~jchia@58.32.37.220) (Quit: Leaving.)
2020-09-30 19:50:17 +0200JoelMcCracken[m](joelmccrac@gateway/shell/matrix.org/x-fkrjmkjfhjvsypdi)
2020-09-30 19:50:39 +0200 <glguy> Because it was or wasn't? :)
2020-09-30 19:51:02 +0200 <maerwald> it wasn't and I ended up using chocolatey, which was broken with 8.10.2 though or something
2020-09-30 19:51:10 +0200somek(b55ebc21@181.94.188.33) (Remote host closed the connection)
2020-09-30 19:51:22 +0200ransom(~c4264035@undergraduate-jvossen-9690.mines.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 19:52:21 +0200chaosmasttter(~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de)
2020-09-30 19:52:21 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 19:52:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 19:54:58 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-09-30 19:54:59 +0200 <sm[m]> it was just a transient net failure, they fixed it both on the server and released a stack upgrade to make it less net dependent
2020-09-30 19:55:27 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-09-30 19:55:55 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-09-30 19:57:10 +0200mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-09-30 19:58:28 +0200ransom(~c4264035@2601:285:201:6720:4491:37d9:f3b2:caef)
2020-09-30 19:58:55 +0200 <sm[m]> detail: https://github.com/commercialhaskell/stack/issues/5387#issuecomment-697159635
2020-09-30 20:00:02 +0200chx(~chx@185.204.1.185) ()
2020-09-30 20:00:11 +0200 <maerwald> I'm still looking for the stack issue that explains why it re-clones the same repo multiple times if there are multiple subdirectories
2020-09-30 20:00:13 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 258 seconds)
2020-09-30 20:00:37 +0200ericsagnes(~ericsagne@2405:6580:0:5100:df5:637e:fad1:ac7) (Ping timeout: 244 seconds)
2020-09-30 20:01:23 +0200 <maerwald> example: https://git.io/JUyU8
2020-09-30 20:01:40 +0200 <maerwald> this takes 30 minutes to clone, because it keeps cloning the same repos over and over again
2020-09-30 20:01:45 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-30 20:02:33 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.)
2020-09-30 20:02:33 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 20:02:42 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 20:05:00 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-30 20:05:33 +0200conal(~conal@198.8.81.205) (Quit: Computer has gone to sleep.)
2020-09-30 20:05:47 +0200John20(~John@82.46.59.122) (Ping timeout: 240 seconds)
2020-09-30 20:05:52 +0200ggole(~ggole@2001:8003:8119:7200:f871:c0ad:b761:dbf4) (Quit: Leaving)
2020-09-30 20:06:58 +0200conal(~conal@198.8.81.205)
2020-09-30 20:06:58 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-30 20:08:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 20:08:52 +0200alp(~alp@2a01:e0a:58b:4920:bc07:244b:4df4:499a) (Ping timeout: 260 seconds)
2020-09-30 20:09:14 +0200geekosaur(42d52102@66.213.33.2) (Ping timeout: 245 seconds)
2020-09-30 20:09:38 +0200delimax(max@gateway/vpn/protonvpn/delimax)
2020-09-30 20:11:39 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:19c6:af75:179d:46af) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 20:12:36 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 20:12:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 20:12:57 +0200hackageZ-Data 0.1.4.1 - Array, vector and text https://hackage.haskell.org/package/Z-Data-0.1.4.1 (winterland)
2020-09-30 20:13:20 +0200ericsagnes(~ericsagne@2405:6580:0:5100:995e:484:bdc6:4ac4)
2020-09-30 20:14:10 +0200avdb(~avdb@ip-81-11-153-13.dsl.scarlet.be)
2020-09-30 20:14:22 +0200 <glguy> I know this is oddly specific, but I'm wondering if it might ring any bells. I'm finding that if I run my IRC client on Ubuntu (rather than macOS), using GHC 8.6.5 (rather than 8.10.2), connecting to ZNC (rather than directly to freenode) that I stop being able to send messages out to the server (I still receive them). If I change any of those three variables things work fine. I'm happy to just not support old GHC, but I'm just wondering if
2020-09-30 20:14:22 +0200 <glguy> anyone knows about a funny interaction with networking in older GHC that might be relevant
2020-09-30 20:15:25 +0200xff0x(~fox@2001:1a81:53e7:fb00:9052:62db:4246:c379) (Ping timeout: 240 seconds)
2020-09-30 20:15:41 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 20:15:52 +0200 <sm[m]> maerwald: sounds annoying.. report it I guess
2020-09-30 20:16:13 +0200ubert(~Thunderbi@91.141.2.105.wireless.dyn.drei.com) (Remote host closed the connection)
2020-09-30 20:16:25 +0200xff0x(~fox@2001:1a81:53e7:fb00:a420:19f5:c0d1:188d)
2020-09-30 20:18:13 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:dc69:a6e0:d077:5b95)
2020-09-30 20:21:17 +0200Tops21(~Tobias@dyndsl-095-033-025-123.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-09-30 20:21:55 +0200acidjnk_new(~acidjnk@p200300d0c72378337d49dd4f750ab9d4.dip0.t-ipconnect.de)
2020-09-30 20:21:58 +0200hackagegeneric-deriving 1.14 - Generic programming library for generalised deriving. https://hackage.haskell.org/package/generic-deriving-1.14 (ryanglscott)
2020-09-30 20:22:10 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 20:22:15 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-09-30 20:22:39 +0200 <koz_> glguy: That has to be one of the most specific errors I have ever heard.
2020-09-30 20:22:39 +0200dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.8)
2020-09-30 20:22:41 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 20:23:32 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:dc69:a6e0:d077:5b95) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 20:23:58 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 256 seconds)
2020-09-30 20:26:20 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 20:26:40 +0200vicfred(~vicfred@unaffiliated/vicfred)
2020-09-30 20:27:30 +0200ransom(~c4264035@2601:285:201:6720:4491:37d9:f3b2:caef) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 20:28:54 +0200 <sm[m]> glguy: compare the versions and changelogs of likely libs (network, ...) ?
2020-09-30 20:29:17 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 20:29:18 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:51e3:d2:c653:ccbb)
2020-09-30 20:30:44 +0200 <maerwald> yeah, you can compare plan.json
2020-09-30 20:30:49 +0200nckx(~nckx@tobias.gr) (Ping timeout: 264 seconds)
2020-09-30 20:31:01 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-30 20:31:05 +0200aldum(~vishera@aldum.pw) (Ping timeout: 240 seconds)
2020-09-30 20:31:22 +0200geekosaur(42d52102@66.213.33.2)
2020-09-30 20:32:15 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 20:32:24 +0200 <glguy> In my case the library versions are all visible through the --full-version flag :)
2020-09-30 20:32:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 20:33:43 +0200 <glguy> if I could only remember which VM I was using...
2020-09-30 20:33:51 +0200 <sm[m]> of the executable ? nice one
2020-09-30 20:34:22 +0200 <glguy> ?paste
2020-09-30 20:34:22 +0200 <lambdabot> A pastebin: https://paste.debian.net/
2020-09-30 20:34:30 +0200chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-09-30 20:34:32 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9) (Remote host closed the connection)
2020-09-30 20:34:47 +0200 <glguy> https://paste.tomsmeding.com/4wA71uVU
2020-09-30 20:34:51 +0200texasmynsted(b9e53b1b@185.229.59.27)
2020-09-30 20:34:52 +0200kish(~oracle@unaffiliated/oracle) (Quit: Leaving)
2020-09-30 20:36:22 +0200 <texasmynsted> I am trying to determine what hlint thinks I have done wrong with my code. I have tried the same code a few different ways but the result is the same.
2020-09-30 20:36:41 +0200 <[exa]> texasmynsted: pls pastebin an example
2020-09-30 20:36:43 +0200kritzefitz(~kritzefit@212.86.56.80)
2020-09-30 20:36:54 +0200 <texasmynsted> https://gist.github.com/mmynsted/0465fbc9f253231d7a04b1370b7e946f
2020-09-30 20:37:19 +0200 <texasmynsted> [exa] There is the code in a gist
2020-09-30 20:38:31 +0200 <texasmynsted> Says parse error.
2020-09-30 20:38:51 +0200 <glguy> you forgot to put the error in the past
2020-09-30 20:38:57 +0200 <glguy> paste*
2020-09-30 20:39:17 +0200 <texasmynsted> overloaded strings is the only extension active OverloadedStrings
2020-09-30 20:39:25 +0200 <texasmynsted> I updated
2020-09-30 20:39:35 +0200 <texasmynsted> "parse error"
2020-09-30 20:39:40 +0200 <glguy> did you truncate the rror?
2020-09-30 20:39:53 +0200Cerise(~jerry@unaffiliated/cerise) (Ping timeout: 260 seconds)
2020-09-30 20:39:55 +0200 <glguy> (I truncated error on purpose there...)
2020-09-30 20:40:01 +0200 <geekosaur> which line is 183?
2020-09-30 20:40:08 +0200 <tbreslein> which line is that in your example?
2020-09-30 20:40:16 +0200 <glguy> Because when I run hlint on that code I get a more useful error
2020-09-30 20:40:46 +0200 <texasmynsted> oh. Hey. I would like to get more useful errors.
2020-09-30 20:40:57 +0200 <glguy> The whole error is: /Users/emertens/Temp.hs:4:41-47: Error: Parse error: on input `pattern'
2020-09-30 20:41:06 +0200 <glguy> It doesn't like you using the identifier pattern
2020-09-30 20:41:21 +0200 <glguy> probably because of its role in PatternSynonyms
2020-09-30 20:41:33 +0200 <texasmynsted> How do you get better error messages?
2020-09-30 20:41:42 +0200 <glguy> upgrade your hlint I guess
2020-09-30 20:41:47 +0200 <texasmynsted> verbose does not change the messages for me
2020-09-30 20:42:04 +0200 <glguy> cabal install hlint
2020-09-30 20:42:04 +0200 <geekosaur> which would be a bug in hlint, if that extension isn't present then it's not a reserved identifier AIUI
2020-09-30 20:42:06 +0200 <texasmynsted> I am using HLint v2.2.3, (C) Neil Mitchell 2006-2019
2020-09-30 20:42:12 +0200 <glguy> texasmynsted: 3.2 is out
2020-09-30 20:42:15 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 20:42:25 +0200 <texasmynsted> Hmm.
2020-09-30 20:42:41 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 20:42:43 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 20:42:48 +0200 <glguy> hlint is pretty much "best effort" when it comes to parsing
2020-09-30 20:42:50 +0200 <texasmynsted> I think I did cabal update and tried re-install yesterday.
2020-09-30 20:42:56 +0200 <texasmynsted> How do I upgrade it correctly?
2020-09-30 20:43:09 +0200 <glguy> you can try: cabal install hlint-3.2 # and see what complaints you get
2020-09-30 20:43:18 +0200 <texasmynsted> Will do
2020-09-30 20:43:31 +0200 <geekosaur> that said, it could be $PATH
2020-09-30 20:43:56 +0200 <geekosaur> that is, it installed but the old one's earlier in $PATH so gets found first
2020-09-30 20:43:58 +0200hackageservant-serf 0.0.2 - Generates a servant API module https://hackage.haskell.org/package/servant-serf-0.0.2 (goolord)
2020-09-30 20:44:13 +0200kori(~kori@arrowheads/kori) (Ping timeout: 272 seconds)
2020-09-30 20:44:13 +0200 <glguy> great point ^
2020-09-30 20:44:25 +0200 <texasmynsted> It is finding the one from $HOME/.cabal/bin/hlint
2020-09-30 20:44:33 +0200aldessa(~Hugh@host-2-103-12-241.as13285.net)
2020-09-30 20:44:42 +0200 <sm[m]> number one cause of haskell trouble...
2020-09-30 20:44:48 +0200 <glguy> hlint? :)
2020-09-30 20:44:58 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 272 seconds)
2020-09-30 20:44:59 +0200 <sm[m]> PATH :)
2020-09-30 20:45:18 +0200 <texasmynsted> Well it seems it is finding the correct hlint
2020-09-30 20:46:14 +0200avdb(~avdb@ip-81-11-153-13.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-09-30 20:47:16 +0200 <aldessa> when you specify a license in package.yaml e.g. BSD3 does it automatically check if my license is compatible with all my dependencies
2020-09-30 20:47:28 +0200 <texasmynsted> Attempting the upgrade. Maybe then I will get a different message.
2020-09-30 20:47:47 +0200aldum(~vishera@aldum.pw)
2020-09-30 20:48:23 +0200 <sm[m]> aldessa: no
2020-09-30 20:49:18 +0200 <sm[m]> That would be nice
2020-09-30 20:49:37 +0200 <glguy> cabal-plan as a license report command that can help
2020-09-30 20:49:55 +0200 <Squarism> Ouch. I've been out of the Nix loop long enough to forget easy things. I try to build my old project, that I remember was working last I checked. And get this error:
2020-09-30 20:49:56 +0200 <Squarism> ghc: can't find a package database at /home/myuser/.cabal/store/ghc-8.6.5/package.db
2020-09-30 20:50:01 +0200 <texasmynsted> I guess I need to add hlint comments to get it to avoid that section.
2020-09-30 20:50:10 +0200 <Squarism> ...but there is a bunch of stuff there
2020-09-30 20:50:31 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 20:50:38 +0200 <glguy> In my IRC client I have my Setup.hs abort if you attempt to build against something GPL, etc
2020-09-30 20:51:35 +0200knupfer1(~Thunderbi@mue-88-130-61-186.dsl.tropolys.de)
2020-09-30 20:51:35 +0200knupfer(~Thunderbi@mue-88-130-61-186.dsl.tropolys.de) (Quit: knupfer)
2020-09-30 20:51:35 +0200knupfer1knupfer
2020-09-30 20:52:32 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 20:52:42 +0200 <sm[m]> glguy: slick.. any friction caused by having a custom Setup.hs ?
2020-09-30 20:52:43 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 20:52:58 +0200 <glguy> Not that I've experienced
2020-09-30 20:53:46 +0200 <aldessa> is gplV3 the most compatible license? am I right in guessing I can use MIT/BSD dependencies in GPL programs?
2020-09-30 20:53:58 +0200 <texasmynsted> wow building the ghc-lib-parser and no messages for a while now
2020-09-30 20:54:05 +0200fendor(~fendor@77.119.131.134.wireless.dyn.drei.com)
2020-09-30 20:54:22 +0200 <glguy> It's part of the process of assembling the full-version output
2020-09-30 20:55:21 +0200patryk_(~patryk_@84.39.117.57)
2020-09-30 20:55:53 +0200 <texasmynsted> okay back to progress
2020-09-30 20:56:01 +0200 <glguy> aldessa: depends if you're making a library or executable
2020-09-30 20:56:09 +0200ransom(~c4264035@undergraduate-jvossen-9690.mines.edu)
2020-09-30 20:56:29 +0200 <glguy> If you're making a library most of the Haskell ecosystem won't be able to use your library if it's gpl
2020-09-30 20:57:04 +0200 <Clint> "won't"
2020-09-30 20:57:58 +0200ryantrinkle(~ryan@cpe-68-173-35-198.nyc.res.rr.com) ()
2020-09-30 20:57:59 +0200 <aldessa> i'm making an executable but it would be nice if someone needed the code that they code reuse it
2020-09-30 20:58:09 +0200 <aldessa> could*
2020-09-30 20:58:47 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 240 seconds)
2020-09-30 20:58:55 +0200 <texasmynsted> Okay I get the better error message now about how there is: "Parse error: on input `pattern'"
2020-09-30 20:59:42 +0200 <texasmynsted> I guess this is a bug? I do now see what would be wrong with that input.
2020-09-30 21:00:07 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-30 21:00:28 +0200p0a(~user@unaffiliated/p0a)
2020-09-30 21:00:30 +0200 <solonarv> perhaps you forgot to enable a language extension? (the relevant one would be PatternSynonyms)
2020-09-30 21:00:58 +0200 <p0a> Hello how can I compile GHC from source?
2020-09-30 21:00:59 +0200 <geekosaur> no, the point is it's disabled and "pattern" should not be a keyword, but hlint thinks it is
2020-09-30 21:01:28 +0200hackageservant-serf 0.0.3 - Generates a servant API module https://hackage.haskell.org/package/servant-serf-0.0.3 (goolord)
2020-09-30 21:01:39 +0200 <texasmynsted> oh
2020-09-30 21:01:56 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 256 seconds)
2020-09-30 21:02:36 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 21:02:39 +0200 <fendor> p0a, https://gitlab.haskell.org/ghc/ghc and https://gitlab.haskell.org/ghc/ghc/-/wikis/building
2020-09-30 21:02:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 21:02:45 +0200 <texasmynsted> Okay yes. I change the name and it works
2020-09-30 21:02:47 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 21:03:05 +0200 <texasmynsted> So how did you know that it thought that `pattern` was a reserved word?
2020-09-30 21:03:13 +0200 <texasmynsted> I did not get that from the error message
2020-09-30 21:03:56 +0200 <geekosaur> just from the fact that it errored on "pattern" and I know about the PatternSynonyms extension. same way glguy figured it out a couple pages of text back :)
2020-09-30 21:04:01 +0200wanaks[m](wanaksmatr@gateway/shell/matrix.org/x-ypunfwqxglzxjffl)
2020-09-30 21:04:37 +0200 <glguy> You just have to memorize all the ghc language extensions and have in mind where they overlap
2020-09-30 21:04:45 +0200 <glguy> <_< easy
2020-09-30 21:04:50 +0200 <p0a> fendor: thank you
2020-09-30 21:05:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-30 21:05:06 +0200 <geekosaur> luckily few of them introduce new keywords
2020-09-30 21:05:08 +0200 <texasmynsted> Pfffft. grrreat
2020-09-30 21:05:13 +0200 <texasmynsted> lol. Thank you!
2020-09-30 21:07:13 +0200alp(~alp@2a01:e0a:58b:4920:7484:254:28d2:c14c)
2020-09-30 21:07:51 +0200Cerise(~jerry@natsumi.devzero.info)
2020-09-30 21:07:51 +0200Cerise(~jerry@natsumi.devzero.info) (Changing host)
2020-09-30 21:07:51 +0200Cerise(~jerry@unaffiliated/cerise)
2020-09-30 21:07:53 +0200avdb(~avdb@ip-81-11-153-13.dsl.scarlet.be)
2020-09-30 21:08:28 +0200nckx(~nckx@tobias.gr)
2020-09-30 21:08:44 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
2020-09-30 21:09:20 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-09-30 21:10:25 +0200machinedgod(~machinedg@45.78.189.122) (Ping timeout: 264 seconds)
2020-09-30 21:12:17 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9)
2020-09-30 21:12:17 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 21:12:36 +0200John20(~John@82.46.59.122)
2020-09-30 21:12:43 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 21:13:27 +0200knupfer(~Thunderbi@mue-88-130-61-186.dsl.tropolys.de) (Ping timeout: 240 seconds)
2020-09-30 21:13:50 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-30 21:14:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 21:14:20 +0200avdb(~avdb@ip-81-11-153-13.dsl.scarlet.be) (Ping timeout: 256 seconds)
2020-09-30 21:15:02 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 21:17:33 +0200conal(~conal@198.8.81.205) (Quit: Computer has gone to sleep.)
2020-09-30 21:18:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-09-30 21:19:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 21:19:11 +0200tbreslein(~tbreslein@2a02:8108:140:44f8::901) (Remote host closed the connection)
2020-09-30 21:21:18 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3)
2020-09-30 21:21:19 +0200texasmynsted(b9e53b1b@185.229.59.27) (Ping timeout: 245 seconds)
2020-09-30 21:22:24 +0200 <p0a> Hello, I have this code: https://paste.tomsmeding.com/Y6afnL1R
2020-09-30 21:22:25 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 21:22:50 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 21:22:51 +0200 <p0a> The error is that you can't have Eq, Show, Read be derived for File', I believe due to HKD. What can I do?
2020-09-30 21:23:27 +0200hackagepoly 0.5.0.0 - Polynomials https://hackage.haskell.org/package/poly-0.5.0.0 (Bodigrim)
2020-09-30 21:24:35 +0200xerox_(~xerox@unaffiliated/xerox)
2020-09-30 21:25:15 +0200 <p0a> I think I have to somehow use `deriving' with specific instances but I don't know how to do that
2020-09-30 21:25:31 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 21:25:35 +0200 <tomsmeding> p0a: the issue is that to derive e.g. Eq for File' f, it is required that Eq (KHD f FilePath), etc. also holds
2020-09-30 21:26:04 +0200 <tomsmeding> for simple cases ghc can automatically generate the necessary contexts in the generated instance, but apparently in this case it can't
2020-09-30 21:26:20 +0200 <p0a> How can I provide the instances for File? That's the one I want
2020-09-30 21:27:11 +0200 <p0a> if I add `deriving' after `type File = File' Identity' I get a parsing error
2020-09-30 21:27:33 +0200 <tomsmeding> indeed, adding 'deriving' after a tye synonym declaration is invalid syntax
2020-09-30 21:27:39 +0200 <tomsmeding> however, you can do it like this:
2020-09-30 21:27:55 +0200alp(~alp@2a01:e0a:58b:4920:7484:254:28d2:c14c) (Ping timeout: 272 seconds)
2020-09-30 21:28:15 +0200 <tomsmeding> https://paste.tomsmeding.com/okCA6gS4
2020-09-30 21:28:32 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-09-30 21:28:32 +0200 <tomsmeding> StandaloneDeriving is to allow writing those, well, stand-alone 'deriving' statements
2020-09-30 21:28:58 +0200 <tomsmeding> FlexibleInstances and TypeSynonymInstances is to be allowed to write an instance for a type synonym (i.e. File, as opposed to File') in the first place
2020-09-30 21:29:18 +0200ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-09-30 21:29:21 +0200 <p0a> heh thank you
2020-09-30 21:29:26 +0200tinga(~tinga@5-168-208-80-pool.fiber.fcom.ch)
2020-09-30 21:29:27 +0200 <p0a> that was tricky
2020-09-30 21:29:48 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2020-09-30 21:29:49 +0200 <tomsmeding> (well really that's only TypeSynonymInstances; FlexibleInstances is then required because when expanding the File type synonym, the instance becomes Eq (File' Identity), and because that Identity is not a type variable, FlexibleInstances is needed)
2020-09-30 21:29:53 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-30 21:30:10 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 21:30:22 +0200 <tomsmeding> generally when you want to derive instances that GHC doesn't do automatically, I try it as a standalone deriving statement
2020-09-30 21:30:37 +0200 <tomsmeding> usually that will also not work (though sometimes it will), but then GHC tends to give better error messages
2020-09-30 21:31:04 +0200 <p0a> hahah got it
2020-09-30 21:31:06 +0200 <tomsmeding> in this case, if you just add StandaloneDeriving and write those stand-alone instances, it will correctly ask you to add the other two extensions
2020-09-30 21:31:12 +0200 <p0a> you sort of have to squeeze it out of ghc
2020-09-30 21:31:15 +0200 <tomsmeding> :p
2020-09-30 21:31:54 +0200 <p0a> I am afraid I am not understanding the extensions very well but I will continue writing code for now
2020-09-30 21:32:07 +0200 <tomsmeding> which one?
2020-09-30 21:32:07 +0200 <p0a> that is, I do not understand their purpose
2020-09-30 21:32:13 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 21:32:23 +0200 <p0a> well let's start with TypeSynonymInstances
2020-09-30 21:32:35 +0200 <tomsmeding> without any extensions, haskell only allows you to write an instance for a type of the form T a b c d
2020-09-30 21:32:40 +0200 <p0a> Oh wait, that one you explained
2020-09-30 21:32:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 21:32:45 +0200 <tomsmeding> where T is a type name, and a b c d ... are type variables
2020-09-30 21:32:47 +0200 <p0a> I think the cryptic one is FlexibleInstnaces
2020-09-30 21:32:59 +0200 <tomsmeding> yeah
2020-09-30 21:33:20 +0200 <tomsmeding> if T is a type synonym, it doesn't match the recipe so you need TypeSynonymInstances (which resolves the name first)
2020-09-30 21:33:39 +0200 <tomsmeding> if a b c d, etc, are not type variables but explicitly instantiated to a particular type, then you need FlexibleInstances
2020-09-30 21:33:58 +0200 <tomsmeding> for example, you can't write 'instance Show [MyCustomType]' directly
2020-09-30 21:34:13 +0200 <tomsmeding> because that's, of course, really 'Show ([] MyCustomType)', and MyCustomType is not a type variable
2020-09-30 21:34:23 +0200 <p0a> What is it instead?
2020-09-30 21:34:28 +0200 <tomsmeding> well, a type :p
2020-09-30 21:34:29 +0200 <tomsmeding> not a variable
2020-09-30 21:34:31 +0200 <p0a> right, okay
2020-09-30 21:34:39 +0200 <tomsmeding> you _can_ write 'instance Show [a]' because that is 'Show ([] a)' and 'a' _is_ a type variable
2020-09-30 21:34:52 +0200 <geekosaur> except it'll overlap
2020-09-30 21:34:58 +0200 <tomsmeding> basically, normally you can only create instances for _all_ polymorphic versions of a type
2020-09-30 21:35:09 +0200 <tomsmeding> geekosaur: okay yes in this case for Show ([] ...) it will overlap
2020-09-30 21:35:12 +0200 <p0a> I see, FlexibleInstances let's you exercise an incision
2020-09-30 21:35:17 +0200 <tomsmeding> because there is already Show a => Show [a]
2020-09-30 21:35:28 +0200 <tomsmeding> substitute some random other class for Show :p
2020-09-30 21:35:35 +0200 <tomsmeding> p0a: kinda :)
2020-09-30 21:36:01 +0200 <tomsmeding> once instance contexts start to get complex you might also need UndecidableInstances at some point
2020-09-30 21:36:02 +0200 <p0a> Very nice, thank you :) that's an extension I commonly see
2020-09-30 21:36:03 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-09-30 21:36:20 +0200 <tomsmeding> though I don't know the precise rules for that one :)
2020-09-30 21:36:29 +0200 <p0a> don't worry it's not on the menu right now
2020-09-30 21:36:31 +0200 <geekosaur> "avoid"
2020-09-30 21:36:35 +0200 <p0a> lol
2020-09-30 21:36:52 +0200 <tomsmeding> well yeah, avoid most things that say "undecidable"
2020-09-30 21:38:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 21:39:11 +0200ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-09-30 21:39:39 +0200borne(~fritjof@200116b864837e00537d5cc8226f9d9f.dip.versatel-1u1.de)
2020-09-30 21:40:44 +0200 <p0a> If I want (Just 3) == 3 and Nothing == 3 to be True, how can I implement this? Say I have a :: Maybe Int and b :: Int, and wish to have the above comparisons
2020-09-30 21:41:09 +0200 <p0a> I'm going to look into Control.Monad.Maybe
2020-09-30 21:41:11 +0200 <tomsmeding> :t (==)
2020-09-30 21:41:13 +0200 <lambdabot> Eq a => a -> a -> Bool
2020-09-30 21:41:15 +0200 <p0a> Or Maybe Data.Maybe
2020-09-30 21:41:23 +0200 <tomsmeding> Maybe Int does not unify with Int
2020-09-30 21:41:30 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-30 21:41:40 +0200kindaro(1f08d381@h31-8-211-129.dyn.bashtel.ru)
2020-09-30 21:41:42 +0200 <p0a> Sure, it doesn't have to be with == , I'm just curious of neat source code to do that
2020-09-30 21:41:49 +0200 <{abby}> > maybe 3 id (Just 3)
2020-09-30 21:41:50 +0200 <p0a> my code would have if elses
2020-09-30 21:41:51 +0200 <lambdabot> 3
2020-09-30 21:41:57 +0200 <{abby}> > maybe 3 id Nothing
2020-09-30 21:42:00 +0200 <lambdabot> 3
2020-09-30 21:42:12 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 21:42:18 +0200 <tomsmeding> > (fromMaybe 3 (Just 5), fromMaybe 3 Nothing)
2020-09-30 21:42:20 +0200 <lambdabot> (5,3)
2020-09-30 21:42:22 +0200 <{abby}> maybe default id = fromMaybe default, but I'm not sure if fromMaybe is in scope (import it from Data.Maybe)
2020-09-30 21:42:27 +0200 <tomsmeding> that's what fromMaybe is for
2020-09-30 21:42:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 21:42:44 +0200 <tomsmeding> ah yes
2020-09-30 21:43:10 +0200 <tomsmeding> p0a: surely it would be a case expression on the Maybe value, though, not an actual if-then-else?
2020-09-30 21:43:29 +0200 <p0a> Right tomsmeding , but you can also use isJust and isNothing
2020-09-30 21:43:30 +0200 <{abby}> tomsmeding: better safe than sorry :p I'm never sure what's in lambdabot's scope
2020-09-30 21:43:40 +0200 <tomsmeding> {abby}: fair :p
2020-09-30 21:43:51 +0200 <kindaro> In Template Haskell, how can I convert an `Exp` to a `Pat`? I have a `Type` and I want to pattern match on its literal name as given by `Type.Reflection.tyConName`.
2020-09-30 21:44:01 +0200 <tomsmeding> p0a: isJust and fromJust? while there are legitimate use cases for fromJust, think thrice when using it
2020-09-30 21:44:12 +0200 <p0a> (x == \x -> fromMaybe x y) is then what I'd do I think
2020-09-30 21:44:19 +0200 <p0a> thank you
2020-09-30 21:44:21 +0200 <tomsmeding> because usually you're better off with a case expression or an existing combinator
2020-09-30 21:44:23 +0200 <kindaro> So, I can construct an `Exp` with a quasi quote, but it seems I cannot construct a `Pat`.
2020-09-30 21:44:32 +0200 <tomsmeding> less partiality more better
2020-09-30 21:44:41 +0200 <p0a> right, that is true
2020-09-30 21:45:12 +0200 <kindaro> For example, this would not work: `getTypeNameLiteral subject = (tyConName ∘ typeRepTyCon) (typeRep @ $(return subject))`
2020-09-30 21:45:54 +0200 <kindaro> This compiles but gives me a `Q Exp`: `getTypeNameLiteral subject = [|(tyConName ∘ typeRepTyCon) (typeRep @ $(return subject))|]`
2020-09-30 21:46:09 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-30 21:46:27 +0200 <kindaro> This does not compile: `getTypeNameLiteral subject = [p|(tyConName ∘ typeRepTyCon) (typeRep @ $(return subject))|]`
2020-09-30 21:46:36 +0200 <tomsmeding> what kind of pattern would you want it to be
2020-09-30 21:46:47 +0200 <tomsmeding> string? data constructor?
2020-09-30 21:46:58 +0200 <tomsmeding> can't you create the Pat value yourself
2020-09-30 21:47:01 +0200 <tomsmeding> https://hackage.haskell.org/package/template-haskell-2.16.0.0/docs/Language-Haskell-TH.html
2020-09-30 21:47:43 +0200 <kindaro> For `Type` = `(ConT GHC.Types.Int)`, I would like `"Int"`, and so on.
2020-09-30 21:48:19 +0200 <kindaro> I cannot create a `Pat` value because I have no idea what string `tyConName` would produce.
2020-09-30 21:48:32 +0200 <kindaro> I have to first run `tyConName` somehow.
2020-09-30 21:49:04 +0200 <tomsmeding> oh your problem is to get the TyCon to pass to tyConName?
2020-09-30 21:49:10 +0200 <tomsmeding> from what do you want to get it
2020-09-30 21:49:18 +0200 <tomsmeding> a value of that type?
2020-09-30 21:49:19 +0200 <kindaro> From `Type`.
2020-09-30 21:49:50 +0200 <kindaro> This `Type`: https://hackage.haskell.org/package/template-haskell-2.16.0.0/docs/Language-Haskell-TH.html#t:Type
2020-09-30 21:50:01 +0200ADG1089(uid455466@gateway/web/irccloud.com/x-wfsqzgfoscwuqfvc) (Quit: Connection closed for inactivity)
2020-09-30 21:50:05 +0200JoelMcCracken[m](joelmccrac@gateway/shell/matrix.org/x-fkrjmkjfhjvsypdi) (Quit: authenticating)
2020-09-30 21:50:12 +0200JoelMcCracken[m](joelmccrac@gateway/shell/matrix.org/x-nmxpzgkyreszwsoo)
2020-09-30 21:50:15 +0200 <kindaro> So, I first have to convert this `Type` to an actual expression, at which point it becomes incompatible with `Pat`.
2020-09-30 21:50:25 +0200 <tomsmeding> but, a type can have many constructors, right?
2020-09-30 21:50:32 +0200 <tomsmeding> data A = A | B
2020-09-30 21:50:39 +0200 <kindaro> It has one type constructor.
2020-09-30 21:50:42 +0200 <tomsmeding> if the Type is A, do you want the TyCon for A or for B?
2020-09-30 21:50:43 +0200 <tomsmeding> ah
2020-09-30 21:50:43 +0200 <kindaro> In your case `A`.
2020-09-30 21:50:50 +0200nobody239419341(5e7be5a0@94.123.229.160)
2020-09-30 21:51:01 +0200 <tomsmeding> can't you use generics
2020-09-30 21:51:18 +0200 <kindaro> Like how?
2020-09-30 21:51:54 +0200conal(~conal@64.71.133.70)
2020-09-30 21:51:57 +0200 <kindaro> As you may remember, my problem can be put as constructing a large case expression.
2020-09-30 21:52:06 +0200 <tomsmeding> right
2020-09-30 21:52:13 +0200 <kindaro> The way to do that is via Template Haskell.
2020-09-30 21:52:13 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 21:52:16 +0200 <aldessa> by the way for my earlier problem, the solution was 'stack ls --dependencies --no-include-base --license' to see all the licenses
2020-09-30 21:52:27 +0200hackagederiving-compat 0.5.10 - Backports of GHC deriving extensions https://hackage.haskell.org/package/deriving-compat-0.5.10 (ryanglscott)
2020-09-30 21:52:29 +0200ransom(~c4264035@undergraduate-jvossen-9690.mines.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 21:52:41 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 21:52:44 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9) (Ping timeout: 244 seconds)
2020-09-30 21:52:49 +0200 <kindaro> I made some progress, but it is unclear how I can associate a literal pattern with a `Type`.
2020-09-30 21:52:51 +0200 <nobody239419341> hello can someone help me understand this function signrature `palindrome = reverse >>= (==)` I'm beginner to haskell
2020-09-30 21:53:45 +0200 <Cheery> :t reverse >>= (==)
2020-09-30 21:53:45 +0200 <sm[m]> aldessa: stack ls dependencies --no-include-base --license ... very cool, thanks
2020-09-30 21:53:46 +0200 <lambdabot> Eq a => [a] -> Bool
2020-09-30 21:53:50 +0200 <tomsmeding> kindaro: I know how to write a function 'magic :: Generic a => String' that produces the name of the first type constructor of 'a'; would that be sufficient for you?
2020-09-30 21:53:53 +0200 <monochrom> It is not for beginners. Please don't worry about that one. Please learn and play with basic examples first.
2020-09-30 21:54:09 +0200 <p0a> nobody239419341: I believe that is not a signature. I think signatures refer to the types after ::
2020-09-30 21:54:12 +0200 <monochrom> Whoever showed you "reverse >>= (==)" did not respect that you are a beginner.
2020-09-30 21:54:13 +0200 <tomsmeding> kindaro: I'm not familiar enough with TH to know whether generics play nicely with it
2020-09-30 21:54:44 +0200 <nobody239419341> I was self learning from https://wiki.haskell.org/99_questions/Solutions/6 here and would like to understand that solution
2020-09-30 21:54:46 +0200 <kindaro> I expect that they do not.
2020-09-30 21:54:54 +0200 <nobody239419341> I wrote first solution myself without looking to the solutions page
2020-09-30 21:56:04 +0200 <nobody239419341> I know how would I look to the function signatures by ` :t ` in ghci
2020-09-30 21:56:06 +0200 <Cheery> :t (>>=) reverse
2020-09-30 21:56:08 +0200 <lambdabot> ([a] -> [a] -> b) -> [a] -> b
2020-09-30 21:56:14 +0200 <Cheery> :t (==)
2020-09-30 21:56:16 +0200 <lambdabot> Eq a => a -> a -> Bool
2020-09-30 21:56:58 +0200 <tomsmeding> kindaro: 'tyConName (typeRepTyCon (typeRep @T))' is of type String
2020-09-30 21:57:01 +0200sm[m]discovers a few weirdo packages using BSD-2 (megaparsec & text)
2020-09-30 21:57:09 +0200 <tomsmeding> not sure where Exp comes into the discussion
2020-09-30 21:57:32 +0200 <tomsmeding> also I now realise that you're talking about the _type_ constructor, not a _data_ constructor :p
2020-09-30 21:58:16 +0200ddellacosta(~dd@86.106.121.168) (Quit: WeeChat 2.8)
2020-09-30 21:58:52 +0200tomsmedingis surprised about the amount of reflection that ghc gives you with Type.Reflection, Data.Typeable and templatehaskell
2020-09-30 21:59:14 +0200 <kindaro> nobody239419341  This is some advanced Haskell, I have been doing it for some years but it took me effort to understand how your function works. You may wish to consult the Monad instance for functions. https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Base.html#line-979
2020-09-30 21:59:16 +0200 <Cheery> tomsmeding: any short introduction to Type Reflection you'd recommend?
2020-09-30 21:59:28 +0200 <Cheery> or data typeable, those sound interesting.
2020-09-30 22:00:26 +0200Quarl(~Quarl@94.191.138.174.mobile.tre.se) (Read error: Connection reset by peer)
2020-09-30 22:00:30 +0200 <tomsmeding> Cheery: I learned about the existence of Type.Reflection when kindaro mentioned it
2020-09-30 22:00:37 +0200 <tomsmeding> I'm afraid I'm not the right person to ask :p
2020-09-30 22:00:39 +0200 <Cheery> nobody239419341: that implementation for checking palindrome is vicious.
2020-09-30 22:00:41 +0200 <nobody239419341> kindaro thank you I will look to it
2020-09-30 22:00:43 +0200 <kindaro> nobody239419341  As you may see, it does exactly what you need it to do. _«Why»_ is another question. It is fair to say that I never ever used the monad instance for functions.
2020-09-30 22:01:01 +0200 <p0a> Oh so that's what it is using. Wow, tricky
2020-09-30 22:01:37 +0200 <Cheery> functions make a valid monad with their last argument.. it's a bit difficult to understand but it's valid.
2020-09-30 22:01:38 +0200 <kindaro> Seeing that `Reader` is really a function, this may give some intuition.
2020-09-30 22:01:45 +0200 <sm[m]> ...and one weirdo using ISC (glguy :). Interesting, I didn't know about ISC
2020-09-30 22:01:58 +0200hackagelinear 1.21.2 - Linear Algebra https://hackage.haskell.org/package/linear-1.21.2 (ryanglscott)
2020-09-30 22:02:09 +0200 <sm[m]> https://www.gnu.org/licenses/license-list.en.html#ISC
2020-09-30 22:02:10 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 22:02:19 +0200 <Cheery> nobody239419341: [a] -> [a] is the type signature for reverse.
2020-09-30 22:02:31 +0200 <p0a> Cheery: I think this explains some of it? https://mjoldfield.com/atelier/2014/07/monads-fn.html
2020-09-30 22:02:33 +0200 <nobody239419341> yes
2020-09-30 22:02:34 +0200 <p0a> Or am I wrong?
2020-09-30 22:02:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 22:02:52 +0200 <tomsmeding> sm[m]: what about https://hackage.haskell.org/package/dependent-map
2020-09-30 22:02:58 +0200eyenx(~eyenxeyen@unaffiliated/eye/x-1653358) (Quit: killed)
2020-09-30 22:03:05 +0200xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu)
2020-09-30 22:03:07 +0200 <Cheery> nobody239419341: now imagine that's something like F [a] where F x = [a] -> x
2020-09-30 22:03:50 +0200 <nobody239419341> what does it mean to apply the infix operator `->` for function definition
2020-09-30 22:04:04 +0200ddellacosta(~dd@86.106.121.168)
2020-09-30 22:04:26 +0200 <kindaro> tomsmeding, so the story goes: I get the list of `Type` values by examining `reifyInstances`. Now I must use `tyConName` on the corresponding types. But this correspondence is not trivial to establish.
2020-09-30 22:04:28 +0200 <nobody239419341> This is new to me, only seen it on signatures and case expressions, and reverse form on do blocks
2020-09-30 22:04:43 +0200 <sm[m]> tomsmeding: they seem to be on top of things.. nice precision
2020-09-30 22:05:20 +0200 <sm[m]> oh, well "I have no idea which, if any, of the following licenses apply, so I've copied them all.", maybe precision is not the word :)
2020-09-30 22:05:37 +0200 <sm[m]> nice transparency
2020-09-30 22:06:06 +0200eyenx(~eyenxeyen@unaffiliated/eye/x-1653358)
2020-09-30 22:06:11 +0200kish(~oracle@unaffiliated/oracle)
2020-09-30 22:06:37 +0200 <kindaro> tomsmeding, so I may transform `Type` to an `Exp` that contains the corresponding type constructor, and then I can use it to obtain an expression for its `tyConName`.
2020-09-30 22:06:55 +0200 <kindaro> tomsmeding  Does this explanation make things clearer?
2020-09-30 22:07:09 +0200 <Cheery> nobody239419341: Well I can tell you it's hard, and my explanation may go over, if that's the case, I'll try to elaborate so you understand it enough.
2020-09-30 22:07:26 +0200 <tomsmeding> kindaro: if the type in question is data A = B | C, do you want, "A", "B" or "C"?
2020-09-30 22:07:35 +0200 <kindaro> `A`.
2020-09-30 22:07:39 +0200 <tomsmeding> okay
2020-09-30 22:07:47 +0200 <Cheery> nobody239419341: but the important part now is, you need to look at the function type like that.
2020-09-30 22:07:48 +0200 <nobody239419341> i can't even say if I know precisely what's a typeclass and type and data and whatever things in haskell
2020-09-30 22:07:58 +0200 <kindaro> tomsmeding  I cannot really obtain anything else from `reifyInstances°.
2020-09-30 22:07:59 +0200 <Cheery> :t (>>=)
2020-09-30 22:08:01 +0200 <tomsmeding> is it hard to give a piece of code that contains one `_` hole where you don't know what function to insert?
2020-09-30 22:08:01 +0200 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2020-09-30 22:08:23 +0200 <Cheery> nobody239419341: you see how that type signature goes, now you can expand here.. You had..
2020-09-30 22:08:45 +0200 <Cheery> nobody239419341: m [a] -> ([a] -> m b) -> m b
2020-09-30 22:08:54 +0200olliey(5f92092d@95.146.9.45)
2020-09-30 22:08:59 +0200 <nobody239419341> yeah It's just I think about an Num when I see Monad so I imagine like Its like Num m => Num a (a -> .... etc
2020-09-30 22:09:19 +0200 <Cheery> so if you do (>>=) reverse, we got this..
2020-09-30 22:09:23 +0200 <Cheery> :t (>>=) reverse
2020-09-30 22:09:24 +0200 <lambdabot> ([a] -> [a] -> b) -> [a] -> b
2020-09-30 22:09:49 +0200 <Cheery> the next parameter is a function, and now it has expanded like that.. so the first parameter is the result of 'reverse', what else could it be?
2020-09-30 22:10:01 +0200 <nobody239419341> okay go on, I have one question to ask at the end or now, if you like
2020-09-30 22:10:04 +0200 <Cheery> the second parameter is the argument passed to reverse.
2020-09-30 22:10:09 +0200 <kindaro> tomsmeding  `getTypeNameLiteral subject = _ [|(tyConName ∘ typeRepTyCon) (typeRep @ $(return subject))|] ∷ Q Pat`
2020-09-30 22:10:42 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-09-30 22:10:57 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-09-30 22:10:59 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 22:11:30 +0200geekosaur(42d52102@66.213.33.2) (Remote host closed the connection)
2020-09-30 22:11:34 +0200 <Cheery> nobody239419341: so if you take [1,2] == [2,1] it's bit like checking whether [1,2] is a palindrome?
2020-09-30 22:11:45 +0200 <nobody239419341> yes
2020-09-30 22:11:46 +0200mirrorbird(~psutcliff@m83-187-182-226.cust.tele2.se)
2020-09-30 22:12:00 +0200 <nobody239419341> :t (>>=)
2020-09-30 22:12:02 +0200 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2020-09-30 22:12:05 +0200 <Cheery> nobody239419341: so if you put it there, like this: (>>=) reverse (==)
2020-09-30 22:12:22 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 22:12:23 +0200 <Cheery> you get this kind of composition of reverse with that function of checking equality of two lists.
2020-09-30 22:12:28 +0200eyenx(~eyenxeyen@unaffiliated/eye/x-1653358) (Quit: killed)
2020-09-30 22:12:45 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 22:12:52 +0200 <Cheery> :t (>>=) reverse (==)
2020-09-30 22:12:54 +0200 <lambdabot> Eq a => [a] -> Bool
2020-09-30 22:13:18 +0200 <ski> @type (>>=) `asTypeIn` \(>>=) -> (>>=) reverse (==)
2020-09-30 22:13:20 +0200 <lambdabot> Eq a => ([a] -> [a]) -> ([a] -> [a] -> Bool) -> [a] -> Bool
2020-09-30 22:14:01 +0200 <Cheery> cool.
2020-09-30 22:15:02 +0200 <ski> > (>>=) f (g :: Expr -> Expr -> Expr) x
2020-09-30 22:15:05 +0200 <lambdabot> g (f x) x
2020-09-30 22:15:37 +0200eyenx(~eyenxeyen@unaffiliated/eye/x-1653358)
2020-09-30 22:16:03 +0200 <nobody239419341> thank you Cheery. It helped a bit
2020-09-30 22:16:40 +0200tchouri(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-09-30 22:17:05 +0200 <Cheery> nobody239419341: Also check out ski's explanation, but the idea is that functions are valid monads and that thing kind of treats reverse as a monad, then binds the equality to it.
2020-09-30 22:17:08 +0200tchourihekkaidekapus
2020-09-30 22:17:14 +0200ashbreeze(~mark@72-161-49-118.dyn.centurytel.net)
2020-09-30 22:18:12 +0200 <Cheery> it probably helps if you consider how functions are valid functors, or then it doesn't.
2020-09-30 22:19:28 +0200 <Cheery> @type fmap `asTypeIn` \fmap -> (fmap f g :: a -> b)
2020-09-30 22:19:29 +0200 <lambdabot> error:
2020-09-30 22:19:30 +0200 <lambdabot> • Couldn't match type ‘f’ with ‘(->) a1’
2020-09-30 22:19:30 +0200 <lambdabot> because type variable ‘a1’ would escape its scope
2020-09-30 22:19:33 +0200_ashbreeze_(~mark@72-161-253-130.dyn.centurytel.net) (Ping timeout: 260 seconds)
2020-09-30 22:19:44 +0200 <ski> (not functions. functions are values, monads are not values. you mean the (partially applied function) type `([a] ->)', being a monad. so e.g. `(>>=) :: Monad m => m b -> (b -> m c) -> m c' then becomes `([a] -> b) -> (b -> [a] -> c) -> [a] -> c')
2020-09-30 22:20:12 +0200 <nobody239419341> wait this could be important information for me to understand
2020-09-30 22:20:16 +0200 <nobody239419341> so is all functions are types?
2020-09-30 22:20:46 +0200knupfer(~Thunderbi@200116b82ca43f002c28ccfffeb57fee.dip.versatel-1u1.de)
2020-09-30 22:20:47 +0200knupfer(~Thunderbi@200116b82ca43f002c28ccfffeb57fee.dip.versatel-1u1.de) (Client Quit)
2020-09-30 22:20:50 +0200 <p0a> yeah nobody239419341
2020-09-30 22:20:54 +0200edwtjo(~edwtjo@fsf/member/edwtjo) (Ping timeout: 258 seconds)
2020-09-30 22:20:58 +0200knupfer(~Thunderbi@200116b82ca43f005c40053ed66b0b42.dip.versatel-1u1.de)
2020-09-30 22:21:10 +0200 <ski> @type fmap `asTypeIn` \fmap -> fmap ?f ?g
2020-09-30 22:21:12 +0200 <lambdabot> (Functor f, ?f::a -> b, ?g::f a) => (a -> b) -> f a -> f b
2020-09-30 22:21:18 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-30 22:21:32 +0200 <ski> nobody239419341 : functions are not types
2020-09-30 22:21:36 +0200mahene(~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c)
2020-09-30 22:21:43 +0200 <Cheery> (a -> b) -> (c -> a) -> (c -> b)
2020-09-30 22:21:48 +0200 <ski> "function types" means the types of functions
2020-09-30 22:22:02 +0200alp(~alp@2a01:e0a:58b:4920:d4f2:e84:b07:a9f2)
2020-09-30 22:22:37 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 22:22:41 +0200 <nobody239419341> so how do you pass the reverse function as an argument to the (>>=) ?
2020-09-30 22:22:47 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 22:23:21 +0200 <Cheery> nobody239419341: There's an instance Monad (a ->)
2020-09-30 22:23:31 +0200 <Cheery> it is matched when you do os.
2020-09-30 22:23:40 +0200 <p0a> nobody239419341: what is happening is a bit different than that. There's a lot of stuff going on involving definitions you probably are not even aware of
2020-09-30 22:23:57 +0200 <p0a> nobody239419341: to just compose two functions you do something like (f . g)
2020-09-30 22:24:20 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-09-30 22:24:24 +0200 <monochrom> >>= is an infix operator, so just write "reverse >>= ..."?
2020-09-30 22:25:05 +0200 <Cheery> https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Base.html#line-979
2020-09-30 22:25:07 +0200 <p0a> The trick with your palindrome implementation is that it uses a well-known feature of the language (monads), but also a less commonly used monad (the function monad). That's how I understand it. To understand the better known parts of monads, is already a task in itself nobody239419341
2020-09-30 22:25:31 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Client Quit)
2020-09-30 22:26:18 +0200John20(~John@82.46.59.122) (Ping timeout: 272 seconds)
2020-09-30 22:26:37 +0200mahene(~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Quit: Leaving)
2020-09-30 22:27:13 +0200ashbreeze(~mark@72-161-49-118.dyn.centurytel.net) (Ping timeout: 260 seconds)
2020-09-30 22:27:17 +0200 <nobody239419341> uh why nobody can explain like just an example -> it takes the reverse function and puts it on the right side of the (==) and whenever a list is called on it, list will put on left side of the (==) and reverse will be applied and put it on the right side
2020-09-30 22:27:20 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-09-30 22:27:58 +0200hackagetransformers-compat 0.6.6 - A small compatibility shim for the transformers library https://hackage.haskell.org/package/transformers-compat-0.6.6 (ryanglscott)
2020-09-30 22:28:01 +0200 <nobody239419341> Damn monads
2020-09-30 22:28:12 +0200 <monochrom> Huh? That explanation is BS.
2020-09-30 22:28:15 +0200 <Cheery> nobody239419341: it's lot of details that go into it becoming (==) (reverse x) x
2020-09-30 22:28:29 +0200 <p0a> monochrom: mine? Whoops, sorry
2020-09-30 22:28:37 +0200 <nobody239419341> I can imagine
2020-09-30 22:28:40 +0200_ashbreeze_(~mark@72-161-254-200.dyn.centurytel.net)
2020-09-30 22:28:42 +0200 <Cheery> or reverse x == x
2020-09-30 22:28:46 +0200 <monochrom> No, nobody239419341's explanation.
2020-09-30 22:29:10 +0200 <Cheery> btw.. on functors of.. not functions but partially applied functions.
2020-09-30 22:29:30 +0200 <Cheery> djinn finds a value for a type.
2020-09-30 22:29:37 +0200 <Cheery> @djinn (a -> b) -> (c -> a) -> (c -> b)
2020-09-30 22:29:37 +0200 <lambdabot> f a b c = a (b c)
2020-09-30 22:30:04 +0200 <monochrom> See, in the first place, I am against tackling >>= at a beginner stage in the first stage, especially for a palindrome exercise that can be done in 10 different elementary ways already.
2020-09-30 22:30:09 +0200mahene(~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c)
2020-09-30 22:30:23 +0200 <Cheery> yup. but he asked for it. :)
2020-09-30 22:30:36 +0200 <monochrom> I have no idea why you people decided to entertain this request and get into such a rabbit hole.
2020-09-30 22:30:38 +0200 <Cheery> and I guess this is helpful to see.. how this comes up together.
2020-09-30 22:30:55 +0200 <p0a> I think it's a show-off really, to write a palindrome like that
2020-09-30 22:31:10 +0200 <nobody239419341> I'm just stuck in a loop for creating recursive functions and exercises for two months
2020-09-30 22:31:20 +0200 <monochrom> It takes like 2-4 weeks of preparations before >>= makes sense for this exercise. Not 2 hours.
2020-09-30 22:31:23 +0200 <nobody239419341> I can't get progress without having eaten some parts of the FP
2020-09-30 22:31:53 +0200 <p0a> nobody239419341: In my opinion it's better to start with `Maybe' and `IO'
2020-09-30 22:31:59 +0200 <Cheery> :t (.)
2020-09-30 22:32:00 +0200 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2020-09-30 22:32:16 +0200 <p0a> Write programs that do simple tasks but require some checking of values. You'll have to be using Maybe and IO for that
2020-09-30 22:32:16 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 22:32:22 +0200 <nobody239419341> I see maybe as like a box
2020-09-30 22:32:35 +0200 <Cheery> https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Base.html#line-969
2020-09-30 22:32:37 +0200kindaro(1f08d381@h31-8-211-129.dyn.bashtel.ru) (Remote host closed the connection)
2020-09-30 22:32:42 +0200 <Cheery> there reads.. fmap = (.)
2020-09-30 22:32:43 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 22:32:57 +0200hackageerror-or 0.1.0.0 - Composable, hierarchical errors. https://hackage.haskell.org/package/error-or-0.1.0.0 (luntain)
2020-09-30 22:33:08 +0200 <xsperry> cheers fmap is (.) for function functor
2020-09-30 22:33:14 +0200 <xsperry> Cheery*
2020-09-30 22:33:21 +0200 <p0a> nobody239419341: Write a program that keeps an address book and looks up a name in it, allows you to modify a record and save/load records from a file
2020-09-30 22:33:27 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-09-30 22:33:32 +0200 <monochrom> Well, I stuck my students in a loop for creating recursive functions and exercises for two months. And only then they are ready for >>=
2020-09-30 22:34:05 +0200 <monochrom> People really don't realize the effect and benefits of "repetitive" immersion.
2020-09-30 22:34:28 +0200 <xsperry> Cheery, for list (for example), it is just map
2020-09-30 22:35:56 +0200 <tomsmeding> @tell kindaro here is something: https://paste.tomsmeding.com/WWaRcppB
2020-09-30 22:35:56 +0200 <lambdabot> Consider it noted.
2020-09-30 22:36:35 +0200 <nobody239419341> okay guys thank you all for the suggestions. I'll keep doing exercises and try out that address book application
2020-09-30 22:37:07 +0200 <Cheery> nobody239419341: np. I hope it helped. It's just a fancy trick and nothing wrong with those, but it involves understanding this kind of things.
2020-09-30 22:37:42 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds)
2020-09-30 22:37:58 +0200 <Cheery> at some context the idea of (->) a as a monad, does make sense.
2020-09-30 22:38:09 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-30 22:38:51 +0200mahene(~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Ping timeout: 272 seconds)
2020-09-30 22:39:21 +0200 <monochrom> Well first thing you have to embrace that "X->Y" is "((->) X) Y" and the shock that the "(->) X" part can be isolated out as a standalone thing.
2020-09-30 22:39:38 +0200 <monochrom> That alone probably takes a week to absorb already.
2020-09-30 22:39:50 +0200 <p0a> Why is X->Y parsed like that?
2020-09-30 22:39:57 +0200 <p0a> is 1 + 2 also the same?
2020-09-30 22:40:00 +0200 <Cheery> for instance, a program requires an additional parameter, but it's not used too often, you might supply it as last parameter and form a monad around it.
2020-09-30 22:40:01 +0200 <monochrom> Yes.
2020-09-30 22:40:04 +0200nobody239419341(5e7be5a0@94.123.229.160) (Remote host closed the connection)
2020-09-30 22:40:15 +0200 <monochrom> See? So much prerequisites.
2020-09-30 22:40:36 +0200 <Rembane> > (+) 1 2
2020-09-30 22:40:39 +0200 <lambdabot> 3
2020-09-30 22:40:40 +0200mirrorbird(~psutcliff@m83-187-182-226.cust.tele2.se) (Quit: Leaving)
2020-09-30 22:40:48 +0200 <monochrom> But you're confusing the term level and the type level.
2020-09-30 22:41:01 +0200 <p0a> Right, okay. Because I was thinking of - now
2020-09-30 22:41:26 +0200 <p0a> I'm just confused, ignore me
2020-09-30 22:42:12 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 22:42:28 +0200 <p0a> I'm impressed at how quickly I was able to whip together a simple file database program that helps me keep track of my books and notes
2020-09-30 22:42:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 22:42:42 +0200 <p0a> took me 2 days of maybe 30 minutes each (well thanks to this channel as well)
2020-09-30 22:44:13 +0200 <sm[m]> p0a: nice!
2020-09-30 22:45:06 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 265 seconds)
2020-09-30 22:46:57 +0200Raito_Bezarius(~Raito_Bez@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 260 seconds)
2020-09-30 22:46:58 +0200coot(~coot@37.30.59.214.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-09-30 22:47:12 +0200 <Cheery> about that.. I'm thinking of a little project.. I start looking what kind of html/tagsoup functionality my blog driver would require to be written in haskell
2020-09-30 22:47:51 +0200 <p0a> sm[m]: thank you :) I agree
2020-09-30 22:48:00 +0200 <p0a> I'll share it here once it's looking good
2020-09-30 22:48:05 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-09-30 22:48:27 +0200motersen(~user@2001-4dd1-ce19-0-41b8-8f35-edf5-ff23.ipv6dyn.netcologne.de) (Ping timeout: 240 seconds)
2020-09-30 22:49:47 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9)
2020-09-30 22:51:32 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-30 22:52:16 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 22:52:46 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 22:54:29 +0200 <Cheery> aside just going to google each function, is there a page dedicated to giving haskell equivalents for os.walk, os.path.join, etc... ?
2020-09-30 22:54:33 +0200 <sm[m]> I think there's a lot of speed-of-development and power in haskell & libs, just waiting for a bit more refinement/curation/tooling to come together
2020-09-30 22:55:02 +0200 <sm[m]> not yet tapped, I mean
2020-09-30 22:55:07 +0200 <Rembane> Cheery: System.Directory, System.Environment, hm... and more! :D
2020-09-30 22:55:38 +0200 <Rembane> Cheery: If you happen to know the C stdlib, the functions are named almost the same in Haskell, but they are slightly more sane.
2020-09-30 22:56:00 +0200 <Cheery> I'd also like about a function that gives current date, and some datetime handling.
2020-09-30 22:56:01 +0200xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 22:56:03 +0200artotrie(~private@2604:2000:1540:4121:c018:ab87:8515:a83a)
2020-09-30 22:56:14 +0200 <aldessa> I'd like to learn numerical methods. I hear Haskell is a bad language to do it in, is this true if I'm using unboxed mutable arrays in the ST monad?
2020-09-30 22:56:31 +0200 <Rembane> Cheery: That's trickier
2020-09-30 22:56:53 +0200 <Rembane> aldessa: It depends, if you can work with slow numerical methods it's alright
2020-09-30 22:57:07 +0200_ashbreeze_(~mark@72-161-254-200.dyn.centurytel.net) (Ping timeout: 240 seconds)
2020-09-30 22:57:47 +0200 <aldessa> why is it slow Rembane? i thought Haskell was slower because of garbage collection; does the ST monad not avoid that?
2020-09-30 22:59:00 +0200 <Rembane> aldessa: Laziness has a tendency to bite if not properly contained and Haskell is slower than Fortran for such things.
2020-09-30 22:59:01 +0200_ashbreeze_(~mark@72-161-254-200.dyn.centurytel.net)
2020-09-30 22:59:02 +0200artotrie(~private@2604:2000:1540:4121:c018:ab87:8515:a83a) ("Leaving")
2020-09-30 22:59:20 +0200 <Rembane> Cheery: I used thyme for that, but I think it's needlessly complicated.
2020-09-30 23:00:01 +0200patryk_(~patryk_@84.39.117.57) ()
2020-09-30 23:00:03 +0200Raito_Bezarius(~Raito_Bez@unaffiliated/raito-bezarius/x-8764578)
2020-09-30 23:00:11 +0200bitmagie(~Thunderbi@200116b806af9800a5686823a67cc6e9.dip.versatel-1u1.de)
2020-09-30 23:01:16 +0200 <monochrom> unboxed mutable array likely kills most of the laziness.
2020-09-30 23:02:19 +0200 <xsperry> Cheery, also System.FilePath, and for dates there's time package
2020-09-30 23:02:19 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 23:02:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 23:02:46 +0200 <monochrom> But it still stands to reason to re-use existing C-bound numerical libraries like LAPACK because they are both well-tuned and well-tested over the years.
2020-09-30 23:02:47 +0200 <Cale> Slow is relative -- people do all kinds of numerical stuff in Python, so no doubt Haskell is an option for a lot of applications.
2020-09-30 23:03:05 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 23:03:11 +0200 <monochrom> and well-understood
2020-09-30 23:03:11 +0200 <Cale> and yeah, typically you're going to use bindings to stuff that was optimised at a lower level
2020-09-30 23:03:54 +0200 <monochrom> It is possible to replicate the same expertise in Haskell if you prepare to spend the same amount of person-years.
2020-09-30 23:04:09 +0200 <monochrom> But don't expect to take merely days.
2020-09-30 23:04:56 +0200 <aldessa> i'd be writing my own numerical methods because i'm doing a course in them;
2020-09-30 23:05:08 +0200 <monochrom> Ah OK then just cause.
2020-09-30 23:05:27 +0200st8less(~st8less@ip72-204-59-82.fv.ks.cox.net) (Ping timeout: 240 seconds)
2020-09-30 23:06:05 +0200 <monochrom> If you aren't aware of how Haskell is compiled to machine code and how laziness is done this way, then expect to suffer inefficiency.
2020-09-30 23:06:30 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-09-30 23:06:43 +0200 <monochrom> In fact not only constant-multiplier inefficiency. You could be spending linear space where constant space should be enough.
2020-09-30 23:06:54 +0200 <dolio> Blaming it all on laziness is naive.
2020-09-30 23:07:06 +0200 <monochrom> I know.
2020-09-30 23:07:19 +0200 <dolio> If you want efficiency, you need to understand many things about how the compiler works.
2020-09-30 23:07:21 +0200 <monochrom> But for most numerical algorithms, eagerness is the better default.
2020-09-30 23:07:27 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-09-30 23:07:28 +0200rprije(~rprije@203.214.95.251)
2020-09-30 23:07:29 +0200 <aldessa> i was mostly concerned about memory management
2020-09-30 23:07:29 +0200 <monochrom> Yes that.
2020-09-30 23:07:47 +0200 <Cale> Laziness will also be the thing that trips up beginners a bunch, even if there are cases where it can be put to excellent use
2020-09-30 23:08:13 +0200 <monochrom> Especially if you're transcribing imperative numerical algorithms such as from most textbooks to Haskell. They were written for eager evaluation.
2020-09-30 23:08:15 +0200 <dolio> monochrom: I know you know that. :)
2020-09-30 23:08:18 +0200 <p0a> It suffices to say that if you do numerical optimizatio in Haskell you'll be learning two (at least) things at once
2020-09-30 23:08:20 +0200 <monochrom> OK!
2020-09-30 23:08:29 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
2020-09-30 23:08:49 +0200 <aldessa> i don't know any languages other than Haskell so I'd like to avoid learning another one
2020-09-30 23:08:54 +0200 <aldessa> anyhow
2020-09-30 23:09:06 +0200 <aldessa> is foreign ptr meant to only be used for foreign bindings? it seems to be that way
2020-09-30 23:09:07 +0200 <sm[m]> quite right
2020-09-30 23:09:31 +0200 <monochrom> Of course if you follow John Hughes's paper and turn your Newton's method into a "generate infinite list of iterates" and a "consume until convergence" then laziness is required.
2020-09-30 23:09:45 +0200 <monochrom> (But how many numerical method students are going to do that?)
2020-09-30 23:09:56 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-09-30 23:09:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-30 23:10:26 +0200 <dolio> I just wanted to make sure it's clear in this conversation. People automatically jump to blame laziness, but the truth is you need to know what you're doing in almost any language, and laziness is often used as a scapegoat.
2020-09-30 23:10:31 +0200 <p0a> consume until convergence sounds scary
2020-09-30 23:10:52 +0200 <p0a> You could get caught in infinite loops with Newton's method I think :P
2020-09-30 23:11:05 +0200 <monochrom> p0a: Like this: http://www.cs.utoronto.ca/~trebla/CSCC24-2020-Summer/03-haskell-evaluation.html#lazygood
2020-09-30 23:11:27 +0200 <monochrom> Oh, every textbook pseudocode for Newton's method has the same problem.
2020-09-30 23:11:30 +0200 <p0a> ah with x^3 - b = 0 it won't happen
2020-09-30 23:11:37 +0200olliey(5f92092d@95.146.9.45) (Remote host closed the connection)
2020-09-30 23:11:55 +0200 <monochrom> But I stole this idea from John Hughes's "why FP matters"
2020-09-30 23:12:18 +0200 <p0a> very nice
2020-09-30 23:12:18 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 23:12:33 +0200 <monochrom> In hindsight, a lot of us agree that it's really "why FP with laziness matters"
2020-09-30 23:12:46 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 23:13:42 +0200 <Cheery> subprocess.call(['rsync', '-r', '--delete', src, dst])
2020-09-30 23:13:49 +0200 <p0a> I'm going to read your link soon. I have a few todo reads on my list, just ticked off higher-kinded data; I want to learn a bit about FFI next and also your link
2020-09-30 23:14:00 +0200 <Cheery> google says System.Process gives equivalent.
2020-09-30 23:14:20 +0200 <monochrom> dolio is right, the criterion for performance is "you understand the compiler". And this is true of Fortran and C, too.
2020-09-30 23:14:55 +0200 <monochrom> And LAPACK is successful because the authors do understand Fortran compilers.
2020-09-30 23:15:14 +0200 <xsperry> Cheery, there's also this (several examples on that page): https://hackage.haskell.org/package/typed-process
2020-09-30 23:15:30 +0200 <monochrom> For example they know that "invariant code motion" is a thing.
2020-09-30 23:16:33 +0200 <motte> anyone have experience with WAI? how can i access the basic auth username in my Application code? should i try to extract it from the request headers or use a middleware with Vault or something?
2020-09-30 23:16:52 +0200 <Cheery> Is there monoid for html/xml?
2020-09-30 23:16:57 +0200knupfer(~Thunderbi@200116b82ca43f005c40053ed66b0b42.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-09-30 23:18:05 +0200 <Cheery> well I miscommunicated, but some agreed upon way to construct html is what I'm looking for
2020-09-30 23:18:07 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-09-30 23:18:14 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds)
2020-09-30 23:18:29 +0200 <Cheery> eg. (Tag "item" attrs body)
2020-09-30 23:18:32 +0200 <aldessa> monochrom, that's pretty true. I used SPJ's book to make a broken G machine implementation and you really see how hard it is to do strictness analysis and other stuff.
2020-09-30 23:18:41 +0200 <Cheery> then forming <item ...>stuff</item>
2020-09-30 23:18:52 +0200ryansmccoy(~ryansmcco@193.37.254.27)
2020-09-30 23:19:14 +0200 <aldessa> i read this paper http://www.leafpetersen.com/leaf/publications/ifl2013/haskell-gap.pdf a while ago; how does GHC compare to the intell haskell research compiler?
2020-09-30 23:20:00 +0200 <monochrom> Hrm! I thought Intel only had a research C compiler.
2020-09-30 23:20:20 +0200 <phadej> icc is not a research compiler
2020-09-30 23:20:32 +0200 <Rembane> Cheery: I'm quite fond of lucid: https://hackage.haskell.org/package/lucid
2020-09-30 23:20:40 +0200son0p(~son0p@181.136.122.143)
2020-09-30 23:20:52 +0200 <motte> nvm got it, there is a function just for that
2020-09-30 23:20:55 +0200 <aldessa> they wrote a whole program optimising compiler for Haskell
2020-09-30 23:21:25 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net)
2020-09-30 23:22:03 +0200chaosmasttter(~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-09-30 23:22:13 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 23:22:20 +0200p0a(~user@unaffiliated/p0a) (Quit: bye)
2020-09-30 23:22:28 +0200hackageordinal 0.1.2.0 - Convert numbers to words in different languages. https://hackage.haskell.org/package/ordinal-0.1.2.0 (wvanonsem90)
2020-09-30 23:22:43 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 23:23:16 +0200 <aldessa> thanks everyone for the caution but because i'm a student the speed really doesn't matter that much
2020-09-30 23:23:20 +0200 <aldessa> i'm going to go with GHC primitives if i can
2020-09-30 23:24:14 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-09-30 23:27:48 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-30 23:30:06 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-09-30 23:30:35 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-30 23:30:45 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-30 23:31:32 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798)
2020-09-30 23:32:37 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 23:32:43 +0200mu__(~mu@unaffiliated/mu)
2020-09-30 23:32:58 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-09-30 23:35:21 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 260 seconds)
2020-09-30 23:41:00 +0200heebo(~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net)
2020-09-30 23:41:59 +0200 <justsomeguy> (Sorry about the away messages; I was having keyboard problems.)
2020-09-30 23:42:08 +0200mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 265 seconds)
2020-09-30 23:42:09 +0200 <heebo> has haskell performance significantly improved in ghc 8?
2020-09-30 23:42:12 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 23:42:18 +0200 <heebo> ive been away from the scene for a while
2020-09-30 23:42:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 23:43:08 +0200 <heebo> im also interested in finding out about hls , just installed it with ghcup , but unsure how to configure emacs to use it
2020-09-30 23:43:31 +0200 <maerwald> heebo: https://github.com/haskell/haskell-language-server#using-haskell-language-server-with-emacs
2020-09-30 23:44:08 +0200 <heebo> oh thanks!!! just what the doctor ordered!
2020-09-30 23:45:56 +0200 <sm[m]> improved since when heebo ?
2020-09-30 23:45:57 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-09-30 23:46:11 +0200 <maerwald> since 8
2020-09-30 23:46:56 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-30 23:47:33 +0200 <heebo> yeah since early 8
2020-09-30 23:47:47 +0200 <heebo> ghc moves so fast , its really hard to keep up
2020-09-30 23:48:09 +0200 <sm[m]> I would guess the answer is: not that you'd notice
2020-09-30 23:48:14 +0200 <maerwald> if you mean compilation speed, code generation quality etc... I'm actually not sure
2020-09-30 23:48:24 +0200 <heebo> spend a little time studying rust , cat theory or machine learning - and come back to a changed haskell world
2020-09-30 23:48:26 +0200 <maerwald> But new GHC extensions for sure
2020-09-30 23:48:33 +0200 <heebo> lol
2020-09-30 23:48:48 +0200son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-09-30 23:49:11 +0200 <heebo> i havent got my head around all of the extensions from 8
2020-09-30 23:49:16 +0200 <sm[m]> I believe some libs have had some significant speedups lately, like bytestring
2020-09-30 23:49:35 +0200 <maerwald> heebo: debugging got a little better maybe
2020-09-30 23:49:57 +0200 <sm[m]> some pathologically slow cases will have been fixed
2020-09-30 23:50:25 +0200 <heebo> oh nice ill tuck in and find out whats clever , thanks all
2020-09-30 23:51:20 +0200 <maerwald> you might also have noticed the exciting tool wars... I think all that hadn't begun yet prior to 8
2020-09-30 23:51:27 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-09-30 23:52:02 +0200 <heebo> as in hls vs hie?
2020-09-30 23:52:20 +0200 <maerwald> that's not a war, just confusion and rebranding :p
2020-09-30 23:52:20 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-30 23:52:30 +0200 <maerwald> rather cabal vs stack
2020-09-30 23:52:35 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-30 23:52:42 +0200mu_(~mu@unaffiliated/mu)
2020-09-30 23:52:43 +0200 <maerwald> and then nix came along too
2020-09-30 23:53:02 +0200 <heebo> cabal fought back?
2020-09-30 23:53:05 +0200 <maerwald> yeah
2020-09-30 23:53:25 +0200ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-09-30 23:53:27 +0200 <heebo> how?
2020-09-30 23:53:28 +0200 <maerwald> went into training and increased its power level
2020-09-30 23:53:30 +0200son0p(~son0p@181.136.122.143)
2020-09-30 23:53:31 +0200 <heebo> lol
2020-09-30 23:53:38 +0200 <heebo> over 9k?
2020-09-30 23:53:42 +0200 <maerwald> for sure
2020-09-30 23:53:58 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-09-30 23:54:24 +0200 <heebo> i need to forgive cabal , i abandoned her a while ago
2020-09-30 23:54:37 +0200 <heebo> actually me and stack just used her behind the scenes
2020-09-30 23:54:41 +0200forcer1(~forcer@193.56.252.210)
2020-09-30 23:54:47 +0200 <Cheery> Rembane: Why HTML builder should be a monad?
2020-09-30 23:55:07 +0200 <Rembane> Cheery: Mostly to get a nice syntax to work with
2020-09-30 23:55:36 +0200 <maerwald> heebo: also, sandboxes are gone
2020-09-30 23:55:39 +0200 <heebo> so you can combine builders ?
2020-09-30 23:56:02 +0200 <heebo> maerwald: what?! so.... do i need to buy and external harddrive?
2020-09-30 23:56:27 +0200 <sm[m]> no they're not.. phadej is trying to get rid of them..
2020-09-30 23:56:43 +0200 <maerwald> sm[m]: they are
2020-09-30 23:57:01 +0200 <heebo> Cheery: presumably so you can combine builders in an ordered way?
2020-09-30 23:57:05 +0200 <sm[m]> are not! :-p
2020-09-30 23:57:14 +0200 <maerwald> sm[m]: sandboxes are removed
2020-09-30 23:57:19 +0200 <maerwald> try it
2020-09-30 23:57:27 +0200 <monochrom> which version?
2020-09-30 23:57:47 +0200 <sm[m]> ok, I must be confused. I guess we still have only non-sandbox v1 ? I forgot they were different
2020-09-30 23:58:03 +0200 <maerwald> yes, that's different
2020-09-30 23:58:05 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-09-30 23:58:21 +0200 <sm[m]> but I'm still right because users will still show up here with cabal 2.4 (thx monochrom !)
2020-09-30 23:58:35 +0200kori(~kori@arrowheads/kori)
2020-09-30 23:58:35 +0200 <maerwald> 2.4 isn't recommended
2020-09-30 23:58:42 +0200mav1(~mav@p5b02806a.dip0.t-ipconnect.de)
2020-09-30 23:59:00 +0200 <sm[m]> ha ha they laugh at our non-recommendations
2020-09-30 23:59:04 +0200 <monochrom> "cabal v1-sandbox init" still does things, 3.2.0.0
2020-09-30 23:59:15 +0200 <sm[m]> there you go
2020-09-30 23:59:20 +0200 <heebo> ok so without sandboxes dont you just end up clobbering your workspace with irrellevant libraries?
2020-09-30 23:59:23 +0200 <monochrom> If my test is a bad test, let me know.
2020-09-30 23:59:37 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
2020-09-30 23:59:50 +0200 <sm[m]> heebo: cabal by default now uses "v2" commands which share libs nicely
2020-09-30 23:59:52 +0200 <maerwald> monochrom: they are removed in 3.4.0.0-rc3
2020-09-30 23:59:53 +0200 <monochrom> No heebo, "nix-style", so like what stack does