2022/06/09

2022-06-09 00:00:23 +0200 <EvanR> > [2^63 - 5 ..]
2022-06-09 00:00:25 +0200 <lambdabot> [9223372036854775803,9223372036854775804,9223372036854775805,922337203685477...
2022-06-09 00:00:41 +0200 <EvanR> > [2^63 - 3 ..]
2022-06-09 00:00:43 +0200 <lambdabot> [9223372036854775805,9223372036854775806,9223372036854775807,922337203685477...
2022-06-09 00:00:58 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
2022-06-09 00:01:07 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-09 00:01:07 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-09 00:01:07 +0200wroathe(~wroathe@user/wroathe)
2022-06-09 00:01:15 +0200 <Bulby[m]> > [2^63 -2 :: Int..]
2022-06-09 00:01:16 +0200 <EvanR> something must be wrong with my coffee
2022-06-09 00:01:16 +0200 <Bulby[m]> i can't do it on matrix lol
2022-06-09 00:01:18 +0200 <lambdabot> <hint>:1:13: error: Operator applied to too few arguments: Int..
2022-06-09 00:01:23 +0200 <monochrom> Perhaps use Word instead of Int to delay the "inevitable".
2022-06-09 00:01:42 +0200 <Bulby[m]> """"inevitable""""
2022-06-09 00:02:08 +0200 <geekosaur> Prelude> last [(maxBound::Int) - 10 ..]
2022-06-09 00:02:08 +0200 <geekosaur> 9223372036854775807
2022-06-09 00:02:21 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2022-06-09 00:02:54 +0200 <EvanR> so your list is finite
2022-06-09 00:03:03 +0200 <geekosaur> also I'm surprised about not being able to do it on matrix, I was able to pm lambdabot with stuff earlier from my phone
2022-06-09 00:03:05 +0200 <Bulby[m]> idk why we needed to test that, it says it in the description of Enum
2022-06-09 00:03:15 +0200 <Bulby[m]> I was able to, just took a bit
2022-06-09 00:03:34 +0200 <EvanR> if you wear an ultrafinitist hat, then the problem ... is not a problem xD
2022-06-09 00:03:52 +0200 <EvanR> this list is as infinite as anything else
2022-06-09 00:04:34 +0200 <monochrom> This fibonacci list is as infinite as the previous two fibonacci lists combined. :)
2022-06-09 00:04:48 +0200wonko-(~wjc@user/wonko) (Ping timeout: 258 seconds)
2022-06-09 00:06:02 +0200jbrechtel(~Srain@162-226-201-119.lightspeed.tukrga.sbcglobal.net) (Remote host closed the connection)
2022-06-09 00:07:27 +0200wonko-(~wjc@user/wonko)
2022-06-09 00:07:28 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 00:07:29 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-06-09 00:09:12 +0200zebrag(~chris@user/zebrag)
2022-06-09 00:11:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
2022-06-09 00:14:49 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-09 00:16:19 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
2022-06-09 00:25:58 +0200 <zzz> its also as finite
2022-06-09 00:26:55 +0200 <EvanR> yeah a quotienting of concepts into one
2022-06-09 00:27:25 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-09 00:32:54 +0200sagax(~sagax_nb@user/sagax) (Excess Flood)
2022-06-09 00:33:04 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-09 00:33:05 +0200Pickchea(~private@user/pickchea) (Ping timeout: 256 seconds)
2022-06-09 00:38:12 +0200zeenk(~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
2022-06-09 00:43:16 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 248 seconds)
2022-06-09 00:43:32 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds)
2022-06-09 00:43:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
2022-06-09 00:48:53 +0200forell(~forell@user/forell) (Ping timeout: 258 seconds)
2022-06-09 00:49:40 +0200forell(~forell@user/forell)
2022-06-09 00:54:12 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 276 seconds)
2022-06-09 01:03:15 +0200dextaa2(~DV@user/dextaa)
2022-06-09 01:03:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 01:04:31 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 246 seconds)
2022-06-09 01:04:31 +0200dextaa(~DV@user/dextaa) (Ping timeout: 246 seconds)
2022-06-09 01:04:31 +0200dextaa2dextaa
2022-06-09 01:04:36 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 258 seconds)
2022-06-09 01:07:39 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
2022-06-09 01:11:04 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-06-09 01:13:27 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) (Ping timeout: 240 seconds)
2022-06-09 01:14:19 +0200andrey_(~andrey@p200300dbcf0a1200fc5b10ce87df1c2d.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2022-06-09 01:16:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-06-09 01:18:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
2022-06-09 01:18:51 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 01:19:57 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-06-09 01:19:57 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-06-09 01:19:57 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2022-06-09 01:20:23 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-06-09 01:20:35 +0200califax(~califax@user/califx)
2022-06-09 01:33:25 +0200Katarushisu8(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2022-06-09 01:34:02 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 244 seconds)
2022-06-09 01:34:02 +0200Katarushisu8Katarushisu
2022-06-09 01:39:02 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
2022-06-09 01:48:20 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-09 01:48:20 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-09 01:48:20 +0200wroathe(~wroathe@user/wroathe)
2022-06-09 01:52:24 +0200werneta(~werneta@137.78.30.207) (Ping timeout: 272 seconds)
2022-06-09 01:54:42 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-06-09 01:57:56 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds)
2022-06-09 02:00:33 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 02:06:53 +0200Topsi1(~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-06-09 02:08:07 +0200werneta(~werneta@137.79.206.133)
2022-06-09 02:08:29 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 252 seconds)
2022-06-09 02:08:32 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-06-09 02:10:06 +0200califax(~califax@user/califx)
2022-06-09 02:16:53 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-09 02:18:29 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-09 02:18:41 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-06-09 02:18:48 +0200img(~img@user/img)
2022-06-09 02:25:50 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds)
2022-06-09 02:26:36 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-06-09 02:27:33 +0200stackdroid18(~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-06-09 02:28:59 +0200kadir(~kadir@85.103.235.158)
2022-06-09 02:29:16 +0200kadir(~kadir@85.103.235.158) ()
2022-06-09 02:35:43 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 02:37:02 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-09 02:40:17 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 02:44:50 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 240 seconds)
2022-06-09 02:46:45 +0200ec_(~ec@gateway/tor-sasl/ec)
2022-06-09 02:46:56 +0200nate3(~nate@98.45.169.16)
2022-06-09 02:49:03 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-06-09 02:49:15 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
2022-06-09 02:50:18 +0200Lord_of_Life_Lord_of_Life
2022-06-09 02:50:50 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 02:51:37 +0200nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-09 02:53:48 +0200tnkmon(~tnkmon@181.208.236.212)
2022-06-09 02:57:46 +0200pottsy(~pottsy@129.227.183.244)
2022-06-09 02:58:31 +0200 <tnkmon> a good book to start in haskell??
2022-06-09 03:02:04 +0200 <geekosaur> @where books
2022-06-09 03:02:04 +0200 <lambdabot> https://www.extrema.is/articles/haskell-books http://www.vex.net/~trebla/haskell/learn-sources.html, see also @where LYAH, RWH, YAHT, HFTVB, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP,
2022-06-09 03:02:04 +0200 <lambdabot> FSAF
2022-06-09 03:03:47 +0200Guest57(~Guest57@pool-108-21-81-113.nycmny.fios.verizon.net)
2022-06-09 03:04:11 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-09 03:04:13 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2022-06-09 03:04:16 +0200Guest57(~Guest57@pool-108-21-81-113.nycmny.fios.verizon.net) (Client Quit)
2022-06-09 03:07:20 +0200pottsy(~pottsy@129.227.183.244) (Ping timeout: 265 seconds)
2022-06-09 03:08:00 +0200tnkmon(~tnkmon@181.208.236.212) (Quit: Client closed)
2022-06-09 03:08:08 +0200pottsy(~pottsy@129.227.183.244)
2022-06-09 03:08:36 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-06-09 03:10:27 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-06-09 03:12:28 +0200DNH(~DNH@2a02:8108:1100:16d8:e92a:ff3d:d8c7:63da) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-09 03:12:58 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-06-09 03:15:53 +0200DigitalKiwi(~kiwi@2604:a880:400:d0::1ca0:e001) (Quit: quite.)
2022-06-09 03:15:56 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-09 03:16:33 +0200DigitalKiwi(~kiwi@137.184.156.191)
2022-06-09 03:16:35 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-06-09 03:18:41 +0200 <EvanR> @where intro
2022-06-09 03:18:41 +0200 <lambdabot> http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes
2022-06-09 03:18:47 +0200 <EvanR> @where gentle
2022-06-09 03:18:48 +0200 <lambdabot> http://www.haskell.org/tutorial/
2022-06-09 03:19:02 +0200 <EvanR> this one this one
2022-06-09 03:27:49 +0200sebastiandb_(~sebastian@pool-108-31-128-56.washdc.fios.verizon.net)
2022-06-09 03:28:25 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2022-06-09 03:28:50 +0200werneta(~werneta@137.79.206.133) (Ping timeout: 255 seconds)
2022-06-09 03:33:08 +0200xff0x(~xff0x@s5.HtokyoFL1.vectant.ne.jp)
2022-06-09 03:35:24 +0200dextaa(~DV@user/dextaa) (Ping timeout: 276 seconds)
2022-06-09 03:37:23 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 03:37:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-06-09 04:04:23 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2022-06-09 04:07:23 +0200gdown(~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
2022-06-09 04:12:40 +0200dextaa(~DV@user/dextaa)
2022-06-09 04:17:22 +0200td_(~td@muedsl-82-207-238-024.citykom.de) (Ping timeout: 246 seconds)
2022-06-09 04:19:30 +0200td_(~td@94.134.91.150)
2022-06-09 04:21:18 +0200 <DigitalKiwi> tomsmeding: piiiing
2022-06-09 04:23:55 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/2022-06-08-212240_1454x1373_scrot.png
2022-06-09 04:25:59 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/2022-06-08-212549_2313x1745_scrot.png
2022-06-09 04:26:02 +0200 <DigitalKiwi> other side
2022-06-09 04:29:52 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-06-09 04:34:39 +0200 <DigitalKiwi> hmm do i 3d print it or laser cut it ;D
2022-06-09 04:41:58 +0200bilegeek(~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3)
2022-06-09 04:41:58 +0200zwu(~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net)
2022-06-09 04:42:02 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 250 seconds)
2022-06-09 04:46:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2022-06-09 04:48:58 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-06-09 04:49:55 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-09 04:53:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 04:59:51 +0200frost(~frost@user/frost)
2022-06-09 05:13:22 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-06-09 05:20:07 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-09 05:25:50 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
2022-06-09 05:27:23 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-09 05:31:02 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-06-09 05:31:52 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-09 05:33:24 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-06-09 05:35:26 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-09 05:39:27 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-06-09 05:45:29 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 05:46:18 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-09 05:47:43 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 06:01:40 +0200fef(~thedawn@user/thedawn)
2022-06-09 06:11:46 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 06:12:40 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-09 06:14:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 06:15:04 +0200Vajb(~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi)
2022-06-09 06:21:34 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-06-09 06:25:26 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-06-09 06:26:36 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 06:32:21 +0200sebastiandb_(~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2022-06-09 06:36:29 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 255 seconds)
2022-06-09 06:51:17 +0200monochrom(~trebla@216.138.220.146) (Quit: NO CARRIER)
2022-06-09 06:53:01 +0200nate3(~nate@98.45.169.16)
2022-06-09 06:53:07 +0200slac77372(~slack1256@191.125.99.201)
2022-06-09 06:53:53 +0200dextaa(~DV@user/dextaa) (Ping timeout: 256 seconds)
2022-06-09 06:54:12 +0200dcoutts_(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 06:55:23 +0200slack1256(~slack1256@186.11.84.227) (Ping timeout: 255 seconds)
2022-06-09 06:56:59 +0200dcoutts(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 240 seconds)
2022-06-09 06:57:11 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 255 seconds)
2022-06-09 06:57:51 +0200dcoutts(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 06:58:12 +0200nate3(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-06-09 06:59:39 +0200monochrom(~trebla@216.138.220.146)
2022-06-09 07:06:20 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2022-06-09 07:06:39 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 276 seconds)
2022-06-09 07:07:05 +0200fef(~thedawn@user/thedawn)
2022-06-09 07:19:05 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5)
2022-06-09 07:19:59 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-06-09 07:31:42 +0200acidjnk_new(~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de)
2022-06-09 07:34:11 +0200cfricke(~cfricke@user/cfricke)
2022-06-09 07:39:02 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:28f0:c157:4d87:4f4e)
2022-06-09 07:44:45 +0200yosef`(~user@user/yosef/x-2947716)
2022-06-09 07:48:15 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-06-09 07:51:19 +0200nicbk(~nicbk@user/nicbk)
2022-06-09 07:52:37 +0200Guest34(~Guest34@176.122.87.241)
2022-06-09 07:53:03 +0200 <Guest34> Good day
2022-06-09 07:54:24 +0200Guest34(~Guest34@176.122.87.241) (Client Quit)
2022-06-09 07:57:27 +0200Guest34(~Guest34@176.122.87.241)
2022-06-09 07:58:28 +0200 <DigitalKiwi> hi Guest34
2022-06-09 07:58:58 +0200 <Guest34> I am using library odpic-raw to access oracle database
2022-06-09 07:59:18 +0200 <Guest34> main :: IO ()
2022-06-09 07:59:19 +0200 <Guest34> main = do
2022-06-09 07:59:19 +0200 <Guest34>   withContext $ \ctx ->
2022-06-09 07:59:20 +0200 <Guest34>     withPool ctx cfg return \pool ->
2022-06-09 07:59:20 +0200 <Guest34>       withPoolConnection pool $ \conn ->
2022-06-09 07:59:21 +0200 <Guest34>         withStatement conn False "select name from db.report_date where id = 1" $ \st -> do
2022-06-09 07:59:21 +0200 <Guest34>           r <- executeStatement st ModeExecDefault
2022-06-09 07:59:22 +0200 <Guest34>           f <- fetch st
2022-06-09 07:59:22 +0200 <Guest34>           (DataVarchar v) <- getQueryValue st 1
2022-06-09 07:59:23 +0200 <Guest34>           peekCStringLen (bytes v) >>= print
2022-06-09 07:59:27 +0200 <DigitalKiwi> oh no
2022-06-09 07:59:36 +0200 <Guest34> ?
2022-06-09 07:59:49 +0200 <nerdypepper> x_x
2022-06-09 08:00:02 +0200 <Guest34> i can't ask?
2022-06-09 08:00:13 +0200 <nerdypepper> Guest34: please upload your source code in a pastebin service and paste a link to that here
2022-06-09 08:00:21 +0200 <Guest34> sorry
2022-06-09 08:00:22 +0200 <Guest34> ok
2022-06-09 08:00:34 +0200alp(~alp@user/alp)
2022-06-09 08:01:14 +0200 <nerdypepper> Guest34: https://paste.tomsmeding.com/ or similar
2022-06-09 08:02:20 +0200 <Guest34> https://pastebin.com/t093XNLk
2022-06-09 08:03:45 +0200 <Guest34> NLS_LANG is AMERICAN.AMERICA=UTF8
2022-06-09 08:04:28 +0200 <Guest34> from plsql i get normal string "Январь 2022"
2022-06-09 08:05:14 +0200 <Guest34> haskell code get me "\1071\1085\1074\1072\1088\1100 2022"
2022-06-09 08:06:12 +0200 <Guest34> can you suggest what is the problem?
2022-06-09 08:07:26 +0200 <Axman6> > text "\1071\1085\1074\1072\1088\1100 2022"
2022-06-09 08:07:27 +0200 <lambdabot> Январь 2022
2022-06-09 08:07:49 +0200 <Axman6> that's just what the show instance for strings does for non ascii codepoints
2022-06-09 08:08:20 +0200 <Axman6> that _is_ the string you are expecting to get back, if you run putStrLn "\1071\1085\1074\1072\1088\1100 2022" in ghci you'll see if prints exactly that
2022-06-09 08:09:40 +0200 <Axman6> because you are caling print, show is applied to the string, use putStrLn instead
2022-06-09 08:09:55 +0200 <Axman6> peekCStringLen (bytes v) >>= putStrLn is the fix
2022-06-09 08:10:20 +0200 <Axman6> @src print
2022-06-09 08:10:21 +0200 <lambdabot> print x = putStrLn (show x)
2022-06-09 08:11:10 +0200 <Hecate> @src fix
2022-06-09 08:11:10 +0200 <lambdabot> fix f = let x = f x in x
2022-06-09 08:11:36 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-09 08:11:36 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-06-09 08:11:40 +0200 <Hecate> Guest34: unfortunately there is no problem
2022-06-09 08:12:16 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-09 08:12:59 +0200 <Guest34> thanks for the help
2022-06-09 08:13:15 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 08:13:20 +0200 <Axman6> first time I've ever seen anyone connect to Oracle
2022-06-09 08:15:47 +0200 <Guest34> i started learning Haskell. trying to write a web api for old software with oracle db
2022-06-09 08:17:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 08:17:27 +0200 <Axman6> Good luck!
2022-06-09 08:18:00 +0200 <Axman6> the web API side of things is quite nice in Haskell, no idea how much your milage will vary working with Oracle though
2022-06-09 08:18:08 +0200 <Guest34> Thanks!
2022-06-09 08:20:22 +0200fef(~thedawn@user/thedawn) (Quit: Killer)
2022-06-09 08:23:15 +0200raym(~raym@user/raym) (Quit: ed is the standard editor)
2022-06-09 08:25:44 +0200raym(~raym@user/raym)
2022-06-09 08:28:14 +0200acidjnk_new(~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-06-09 08:30:40 +0200Guest34(~Guest34@176.122.87.241) (Quit: Client closed)
2022-06-09 08:40:12 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-06-09 08:42:46 +0200acidjnk_new(~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de)
2022-06-09 08:53:35 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-06-09 08:54:01 +0200slac77372(~slack1256@191.125.99.201) (Read error: Connection reset by peer)
2022-06-09 08:56:29 +0200zaquest(~notzaques@5.130.79.72)
2022-06-09 08:57:13 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:54fe:417d:8656:9d4e)
2022-06-09 08:58:15 +0200coot(~coot@213.134.190.95)
2022-06-09 09:12:14 +0200pmk(~user@2a02:587:9418:69b8:b896:d770:251d:c4d7)
2022-06-09 09:16:34 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-06-09 09:18:25 +0200 <toluene> edwardk, mniip asks how are you
2022-06-09 09:19:34 +0200nicbk(~nicbk@user/nicbk) (Ping timeout: 240 seconds)
2022-06-09 09:19:50 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-09 09:19:59 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-06-09 09:22:33 +0200raym(~raym@user/raym) (Ping timeout: 258 seconds)
2022-06-09 09:22:35 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl)
2022-06-09 09:24:59 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-09 09:25:03 +0200bilegeek_(~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3)
2022-06-09 09:27:29 +0200bilegeek(~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) (Ping timeout: 255 seconds)
2022-06-09 09:32:21 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-06-09 09:33:38 +0200mc47(~mc47@xmonad/TheMC47)
2022-06-09 09:37:07 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 258 seconds)
2022-06-09 09:41:47 +0200cross(~cross@spitfire.i.gajendra.net) (Quit: Lost terminal)
2022-06-09 09:42:37 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-06-09 09:42:44 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 09:46:34 +0200Pickchea(~private@user/pickchea)
2022-06-09 09:47:52 +0200wonko(~wjc@2a0e:1c80:11::50) (Quit: See You Space Cowboy..)
2022-06-09 09:48:16 +0200 <Guillaum[m]> I'm surprised that `-Wredundant-constraint` warning does not trigger a warning in the following code: `type EqOrd a = (Eq a, Ord a); buz'' :: EqOrd a => a -> Bool; buz'' i = i == i`. I understand that the redundant constraint is bundled inside a type alias, but is there a way to trigger a warning? Should I open a ticket?
2022-06-09 09:48:25 +0200raym(~raym@user/raym)
2022-06-09 09:50:46 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-06-09 09:50:51 +0200xstill-xstill_
2022-06-09 09:51:17 +0200wonko-(~wjc@user/wonko) (Ping timeout: 260 seconds)
2022-06-09 09:51:30 +0200Ekho(~Ekho@user/ekho) (Remote host closed the connection)
2022-06-09 09:52:49 +0200Ekho(~Ekho@user/ekho)
2022-06-09 09:53:55 +0200myme(~myme@2a01:799:d5a:cd00:dd4e:6782:5084:ddd1) (Quit: WeeChat 3.4.1)
2022-06-09 09:54:22 +0200myme(~myme@2a01:799:d5a:cd00:cf5c:a138:5106:fe37)
2022-06-09 09:55:33 +0200DNH(~DNH@2a02:8108:1100:16d8:5929:26d:553d:b545)
2022-06-09 09:56:43 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-09 09:58:56 +0200bilegeek(~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3)
2022-06-09 09:59:33 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-09 10:00:47 +0200bilegeek_(~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) (Ping timeout: 255 seconds)
2022-06-09 10:02:07 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds)
2022-06-09 10:03:54 +0200jonathanx__(~jonathan@c-5eea340e-74736162.cust.telenor.se)
2022-06-09 10:03:54 +0200jonathanx__(~jonathan@c-5eea340e-74736162.cust.telenor.se) (Read error: Connection reset by peer)
2022-06-09 10:05:34 +0200jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-09 10:06:27 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
2022-06-09 10:07:46 +0200jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-06-09 10:08:12 +0200zincy(~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d)
2022-06-09 10:09:47 +0200kitty1(~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 255 seconds)
2022-06-09 10:09:49 +0200jonathanx(~jonathan@c-5eea340e-74736162.cust.telenor.se)
2022-06-09 10:10:11 +0200kitty1(~kitty@096-039-147-043.res.spectrum.com)
2022-06-09 10:15:46 +0200mal1lieven
2022-06-09 10:19:45 +0200HashEnchantertim
2022-06-09 10:19:47 +0200EnchantertimEnchanterTim
2022-06-09 10:21:17 +0200EnchanterTimOpenSores
2022-06-09 10:23:06 +0200acidjnk_new(~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-06-09 10:28:39 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2022-06-09 10:29:12 +0200CiaoSen(~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-06-09 10:31:01 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-06-09 10:38:13 +0200maerwald(~maerwald@user/maerwald) (Quit: gone)
2022-06-09 10:38:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
2022-06-09 10:38:54 +0200maerwald(~maerwald@mail.hasufell.de)
2022-06-09 10:39:15 +0200sagax(~sagax_nb@user/sagax)
2022-06-09 10:40:05 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2022-06-09 10:40:05 +0200maerwald(~maerwald@user/maerwald)
2022-06-09 10:40:08 +0200thornAvery(~thornAver@104.156.232.89)
2022-06-09 10:40:35 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-09 10:40:36 +0200 <thornAvery> hello, im setting up Stack with Nix integration, and im wondering if theres a way to use a flakes defined shell with the --nix-shell-file flag?
2022-06-09 10:44:48 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 244 seconds)
2022-06-09 10:50:58 +0200acidjnk_new(~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de)
2022-06-09 10:51:02 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2022-06-09 10:51:10 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-06-09 10:53:16 +0200jonathanx(~jonathan@c-5eea340e-74736162.cust.telenor.se) (Ping timeout: 272 seconds)
2022-06-09 10:54:42 +0200nate3(~nate@98.45.169.16)
2022-06-09 10:57:28 +0200 <Benzi-Junior> http://ix.io/3ZKI < so I took the advice to pattern match on the construction of my agents, consuming only the "agent" part but when I test it, it appears to do nothing
2022-06-09 10:57:33 +0200gehmehgeh(~user@user/gehmehgeh)
2022-06-09 10:59:28 +0200nate3(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2022-06-09 10:59:56 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl)
2022-06-09 11:00:01 +0200DNH(~DNH@2a02:8108:1100:16d8:5929:26d:553d:b545) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-09 11:07:45 +0200pottsy(~pottsy@129.227.183.244) (Ping timeout: 265 seconds)
2022-06-09 11:07:47 +0200forell(~forell@user/forell) (Ping timeout: 240 seconds)
2022-06-09 11:08:05 +0200pottsy(~pottsy@129.227.183.244)
2022-06-09 11:09:11 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 11:12:53 +0200OpenSoresHash
2022-06-09 11:14:06 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 258 seconds)
2022-06-09 11:14:45 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-06-09 11:18:24 +0200forell(~forell@user/forell)
2022-06-09 11:20:10 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 240 seconds)
2022-06-09 11:22:14 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds)
2022-06-09 11:26:37 +0200 <[Leary]> Benzi-Junior: Have you read the 'Terminating the program' section in the Control.Concurrent docs? Your main thread is probably finishing and killing the children before they can do anything.
2022-06-09 11:29:43 +0200 <[Leary]> `atoms` also seems to be ignoring the next action in sequence, when you probably want it to recurse.
2022-06-09 11:31:24 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:88ad:201e:ada:568e)
2022-06-09 11:39:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06)
2022-06-09 11:42:34 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-06-09 11:43:25 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-06-09 11:43:37 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 258 seconds)
2022-06-09 11:51:56 +0200chreekat2(~b@80-254-69-77.dynamic.monzoon.net)
2022-06-09 11:52:39 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl)
2022-06-09 11:55:22 +0200DNH(~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812)
2022-06-09 11:57:39 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 244 seconds)
2022-06-09 11:58:26 +0200zincy(~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection)
2022-06-09 12:04:46 +0200 <Benzi-Junior> [Leary], aye I fixed the recursion issue (to an extent) and am looking into the "Terminating the program" thing
2022-06-09 12:06:24 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl)
2022-06-09 12:06:25 +0200 <Benzi-Junior> well my testing isn't done in a "standalone GHC program" but rather with ghci
2022-06-09 12:10:56 +0200mrd(~mrd@45.61.147.211)
2022-06-09 12:11:04 +0200mrd(~mrd@45.61.147.211) (Changing host)
2022-06-09 12:11:04 +0200mrd(~mrd@user/mrd)
2022-06-09 12:13:22 +0200 <Benzi-Junior> [Leary], you are however right
2022-06-09 12:13:48 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-06-09 12:14:13 +0200 <Benzi-Junior> adding a simple threadDelay onto the main thread of the function was sufficient to get a little bit of output
2022-06-09 12:14:40 +0200zachel(~zachel@user/zachel) (Quit: DIsconnected: v7+nano)
2022-06-09 12:14:58 +0200zachel(~zachel@user/zachel)
2022-06-09 12:17:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 12:20:43 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 246 seconds)
2022-06-09 12:22:10 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-09 12:22:23 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-09 12:23:02 +0200SCombinator(~SCombinat@118.179.211.17)
2022-06-09 12:23:43 +0200 <SCombinator> Heya fellas
2022-06-09 12:23:48 +0200Teacup(~teacup@user/teacup)
2022-06-09 12:24:01 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-06-09 12:24:55 +0200 <SCombinator> i'm trying out the haskell extension in VSCode and it seems like this thing is actually downloading its own copy of GHC, HLS, stack, & cabal for every project I open
2022-06-09 12:25:33 +0200CiaoSen(~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-06-09 12:25:38 +0200 <SCombinator> My projects are managed by stack so I don't see why this should be necessary
2022-06-09 12:28:41 +0200 <fendor[m]> SCombinator: It should only download these once, but you can disable downloading for cabal and ghc, iirc
2022-06-09 12:29:23 +0200 <fendor[m]> however, you will have to make sure on your own that your HLS binary is compiled with exactly the same GHC version you are using with stack
2022-06-09 12:29:54 +0200 <fendor[m]> see https://github.com/haskell/vscode-haskell#setting-a-specific-toolchain for details
2022-06-09 12:31:00 +0200bilegeek_(~bilegeek@175.sub-174-208-226.myvzw.com)
2022-06-09 12:31:32 +0200bilegeek(~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) (Ping timeout: 255 seconds)
2022-06-09 12:33:27 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2022-06-09 12:33:49 +0200bilegeek_(~bilegeek@175.sub-174-208-226.myvzw.com) (Client Quit)
2022-06-09 12:35:20 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-09 12:35:35 +0200xff0x(~xff0x@s5.HtokyoFL1.vectant.ne.jp) (Ping timeout: 256 seconds)
2022-06-09 12:36:23 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-06-09 12:37:07 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
2022-06-09 12:39:45 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-06-09 12:54:30 +0200mc47(~mc47@xmonad/TheMC47)
2022-06-09 12:58:55 +0200 <SCombinator> fendor[m] thanks for the pointer
2022-06-09 13:00:40 +0200dcoutts_(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Remote host closed the connection)
2022-06-09 13:01:02 +0200dcoutts_(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 13:01:04 +0200 <SCombinator> :/  why is haskell tooling so complicated...
2022-06-09 13:01:08 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 13:01:23 +0200 <SCombinator> so many layers just to get a working dev environment lol
2022-06-09 13:01:50 +0200 <SCombinator> is stack still the way to go for reproducible builds?
2022-06-09 13:02:27 +0200 <SCombinator> and just wondering, should I prefer package.yaml or just manage my .cabal directly?
2022-06-09 13:02:43 +0200 <SCombinator> this is for a small project of 3 people
2022-06-09 13:03:09 +0200 <sm> if you're already used to it, I'd say yes. Keep your package.yaml if it's providing value, otherwise just edit .cabal directly
2022-06-09 13:03:25 +0200dcoutts(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 246 seconds)
2022-06-09 13:03:32 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 13:04:04 +0200 <sm> you might want to disable stack's ghc-installing and use ghcup for that
2022-06-09 13:05:28 +0200 <sm> unless it's working just fine
2022-06-09 13:05:44 +0200 <jackdk> I do not use stack or hpack (package.yaml) and do not miss anything they claim to provide *shrug*
2022-06-09 13:06:12 +0200 <SCombinator> sm: wow lol i feel kinda stupid that I didn't think of forcing stack to use the ghcup installs
2022-06-09 13:06:53 +0200 <sm> add use-system-ghc: true and install-ghc: false in ~/.stack/config.yaml, IIRC
2022-06-09 13:07:56 +0200 <SCombinator> jackdk: oh wow...i just stuck to stack by habit because they forced it down our throats back when I was in uni...maybe i'll try the ghc+cabal approach again
2022-06-09 13:08:11 +0200 <SCombinator> sm: thanks for the help! much appreciated
2022-06-09 13:08:59 +0200 <jackdk> I think stack a) forced cabal to get a lot better and b) solved some very real problems at the time, but I don't find it compelling these days. Not when you can use cabal.project.freeze files
2022-06-09 13:09:08 +0200 <sm> np. Lots of people like stack, lots of people don't like it. It is still easier than cabal for reproducibility.
2022-06-09 13:09:37 +0200 <jackdk> Similarly, hpack: newer versions of the cabal file format let you DRY up large cabal files
2022-06-09 13:09:52 +0200 <jackdk> I generally use nix for reproducibility
2022-06-09 13:11:41 +0200 <SCombinator> jackdk: i'm realizing how little i know about cabal haha
2022-06-09 13:11:57 +0200 <maerwald> sm: how so?
2022-06-09 13:12:36 +0200 <SCombinator> jackdk: i've heard of nix but it honestly looks like another intimidating package manager for my already overpopulated system...is it worth it?
2022-06-09 13:12:38 +0200 <sm> oh I don't have time for this debate yet again, I'm sorry :) got to eat
2022-06-09 13:12:52 +0200 <maerwald> stack is harder for reproducibility
2022-06-09 13:13:10 +0200 <maerwald> because it doesn't have a resolver, you're forced to a predefined set of packages
2022-06-09 13:13:23 +0200gehmehgehgmg
2022-06-09 13:13:25 +0200 <maerwald> cabal has a resolver and supports stackage
2022-06-09 13:14:33 +0200chreekat2(~b@80-254-69-77.dynamic.monzoon.net) (Ping timeout: 276 seconds)
2022-06-09 13:15:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 13:15:16 +0200 <jackdk> SCombinator: nix is incredible but the learning curve is quite steep (but slowly improving). I put a lot of effort into learning NixOS when I started a previous job, because they weren't expecting me to be productive for a little while. I think if you're just starting to learn Haskell, stick with that. Nix is good for heaps of stuff but can come later.
2022-06-09 13:15:35 +0200 <sm> I'll just say: stack introduced the term resolver, meaning a snapshot of compatible packages. cabal has a constraint solver, which is free to find any plan it can on a given day. This is a useful tool at times but it is the enemy of reproducibility.
2022-06-09 13:16:02 +0200 <maerwald> sm: the term resolver is a joke even, because it doesn't have one ;)
2022-06-09 13:16:10 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 13:17:18 +0200 <maerwald> sm: you're aware cabal can freeze a resolution?
2022-06-09 13:17:24 +0200 <maerwald> how's that the enemy of reproducibility
2022-06-09 13:18:57 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-06-09 13:19:09 +0200 <maerwald> in fact "reproducible" is pretty orthogonal to "curated package set"
2022-06-09 13:19:21 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-09 13:19:44 +0200gmg(~user@user/gehmehgeh)
2022-06-09 13:19:59 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-06-09 13:22:41 +0200 <maerwald> SCombinator: no it's not worth it, unless you have very specific needs. And even then there are usually alternatives
2022-06-09 13:22:44 +0200 <tdammers> a curated package set is one way you can achieve reproducible builds (or at least part of a strategy)
2022-06-09 13:24:05 +0200 <maerwald> tdammers: well, a curated package set can be rolling, so...
2022-06-09 13:24:11 +0200 <yushyin> but then you need a package that is not on stackage and you resort to hackage ...
2022-06-09 13:24:12 +0200mehlon(~mehlon@user/mehlon)
2022-06-09 13:24:27 +0200 <mehlon> good day
2022-06-09 13:24:59 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-06-09 13:25:00 +0200 <maerwald> in fact that's what e.g. gentoo does: the stable branch *is curated*, but it's also rolling
2022-06-09 13:29:46 +0200 <mehlon> so I am running a mapM_ function list but I think it stops running through the list when it hits an error, is there a way I can ignore the errors?
2022-06-09 13:32:47 +0200alp(~alp@user/alp) (Ping timeout: 240 seconds)
2022-06-09 13:34:32 +0200alp(~alp@user/alp)
2022-06-09 13:35:19 +0200lyle(~lyle@104.246.145.85)
2022-06-09 13:37:58 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-09 13:39:28 +0200 <tdammers> maerwald: right, you still need pinning
2022-06-09 13:39:47 +0200 <tdammers> advantage of the curated package set is that you can just pin to a specific version of the entire package set
2022-06-09 13:39:59 +0200 <maerwald> yeah... but tbf... stack does have better pinning. The old hackage revision debate
2022-06-09 13:40:37 +0200 <maerwald> with cabal you pin the entire index state, not specific revisions
2022-06-09 13:40:48 +0200 <maerwald> that doesn't make it less reproducible though
2022-06-09 13:41:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06)
2022-06-09 13:43:24 +0200mbuf(~Shakthi@122.174.63.81)
2022-06-09 13:45:31 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 258 seconds)
2022-06-09 13:46:06 +0200 <mehlon> alright I figured it out, I just added a 'try' from Control.Exception to each function call
2022-06-09 13:51:01 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 13:52:24 +0200qwedfg(~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
2022-06-09 13:56:54 +0200qwedfg(~qwedfg@user/qwedfg)
2022-06-09 13:57:45 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-06-09 13:58:32 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-09 14:00:33 +0200 <Benzi-Junior> http://ix.io/3ZL9 ignoring my issue with waiting for the threads to finish for now, when I run "runIO [ping,pong]" it doesn't seem to pass back and forth, I only get a single "Ping"
2022-06-09 14:03:26 +0200jonathanx_(~jonathan@94.234.52.14)
2022-06-09 14:03:49 +0200 <jackdk> maerwald: cabal freeze generates cabal.project.freeze - doesn't that get you specific package version pins?
2022-06-09 14:04:09 +0200 <maerwald> jackdk: yes, but not *revisions*
2022-06-09 14:04:28 +0200 <maerwald> https://github.com/haskell-infra/hackage-trustees/blob/master/revisions-information.md
2022-06-09 14:04:42 +0200 <maerwald> they're a wart
2022-06-09 14:05:00 +0200 <maerwald> reverse fixing stuff is almost always the wrong approach
2022-06-09 14:06:13 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 258 seconds)
2022-06-09 14:08:08 +0200acidjnk_new(~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2022-06-09 14:09:43 +0200 <maerwald> it would already help if PVP was revision aware, but
2022-06-09 14:10:04 +0200 <maerwald> now they're an infrastructure specific thing
2022-06-09 14:12:25 +0200user__(~mehlon@user/mehlon)
2022-06-09 14:12:43 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-06-09 14:13:10 +0200mehlon(~mehlon@user/mehlon) (Remote host closed the connection)
2022-06-09 14:13:27 +0200 <Benzi-Junior> I suspect the issue is with my implementation of receive
2022-06-09 14:13:34 +0200user__(~mehlon@user/mehlon) (Client Quit)
2022-06-09 14:16:15 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-06-09 14:17:30 +0200noteness(~noteness@user/noteness)
2022-06-09 14:19:24 +0200dcoutts(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 14:20:15 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 244 seconds)
2022-06-09 14:20:48 +0200 <Benzi-Junior> huh
2022-06-09 14:21:27 +0200dcoutts_(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 240 seconds)
2022-06-09 14:21:40 +0200 <Benzi-Junior> turns out I have a race condition problem
2022-06-09 14:21:57 +0200dcoutts_(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 14:21:57 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 260 seconds)
2022-06-09 14:24:45 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-09 14:24:57 +0200 <Benzi-Junior> somehow each thread isn't keeping balance between sending and receiving
2022-06-09 14:27:03 +0200SCombinator(~SCombinat@118.179.211.17) (Quit: Client closed)
2022-06-09 14:27:33 +0200xff0x(~xff0x@2405:6580:b080:900:c0b4:77d6:672c:4cc)
2022-06-09 14:28:16 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-231.wlan.tudelft.nl)
2022-06-09 14:37:02 +0200 <Benzi-Junior> so I'm ending with both threads waiting for something to eb put into the channel
2022-06-09 14:38:00 +0200__monty__(~toonn@user/toonn)
2022-06-09 14:47:10 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 240 seconds)
2022-06-09 14:49:05 +0200acidjnk_new(~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de)
2022-06-09 14:49:14 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 14:51:35 +0200dcoutts_(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 256 seconds)
2022-06-09 14:51:56 +0200dcoutts(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 255 seconds)
2022-06-09 14:52:09 +0200dcoutts(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 14:56:11 +0200nate3(~nate@98.45.169.16)
2022-06-09 15:01:13 +0200nate3(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-06-09 15:18:56 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-06-09 15:20:15 +0200 <tdammers> maerwald: yeah, the thing revisions do, that's actually what the 4th part of a PVP version number would be perfect for
2022-06-09 15:21:37 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 15:21:46 +0200 <maerwald> tdammers: I prefer -rX, because tools will treat those different from other version components
2022-06-09 15:22:17 +0200 <maerwald> if you request 3.0.0 it's supposed to pick the one with the highest revision
2022-06-09 15:22:37 +0200 <maerwald> can be a little confusing this exception
2022-06-09 15:24:31 +0200 <maerwald> and there's also a quirk in PVP wrt 3.0.0 vs 3.0.0.0
2022-06-09 15:25:24 +0200Sgeo(~Sgeo@user/sgeo)
2022-06-09 15:26:03 +0200 <maerwald> well, not quirk, but https://github.com/haskell/pvp/issues/36
2022-06-09 15:28:41 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2022-06-09 15:28:54 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-06-09 15:30:41 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-09 15:30:58 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 15:32:04 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection)
2022-06-09 15:32:15 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 15:42:00 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-06-09 15:42:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06)
2022-06-09 15:44:12 +0200coot(~coot@213.134.190.95)
2022-06-09 15:44:13 +0200Vajb(~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-06-09 15:44:20 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 15:45:42 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-06-09 15:46:04 +0200CiaoSen(~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-06-09 15:46:17 +0200pmk(~user@2a02:587:9418:69b8:b896:d770:251d:c4d7) (Read error: Connection reset by peer)
2022-06-09 15:47:00 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-09 15:47:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 272 seconds)
2022-06-09 15:49:05 +0200zebrag(~chris@user/zebrag)
2022-06-09 15:49:35 +0200pmk(~user@2a02:587:9418:69b8:b896:d770:251d:c4d7)
2022-06-09 15:50:05 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-09 15:50:05 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-09 15:50:05 +0200wroathe(~wroathe@user/wroathe)
2022-06-09 15:50:50 +0200tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 240 seconds)
2022-06-09 16:00:43 +0200cfricke(~cfricke@user/cfricke)
2022-06-09 16:06:55 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-09 16:08:23 +0200Teacup(~teacup@user/teacup)
2022-06-09 16:13:56 +0200 <oats> https://haskle.net/
2022-06-09 16:13:58 +0200 <oats> this is delightful
2022-06-09 16:14:52 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-06-09 16:15:28 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 244 seconds)
2022-06-09 16:20:50 +0200defanor_defanor
2022-06-09 16:24:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 240 seconds)
2022-06-09 16:25:56 +0200Vajb(~Vajb@85-76-5-232-nat.elisa-mobile.fi)
2022-06-09 16:26:46 +0200 <Benzi-Junior> can anyone see how my code is running into a race condition http://ix.io/3ZL9
2022-06-09 16:27:37 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-09 16:28:04 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection)
2022-06-09 16:29:09 +0200Teacup(~teacup@user/teacup)
2022-06-09 16:29:19 +0200 <Benzi-Junior> the problem has to be with my application of "atomically" because I'm ending up with an empty TChan and both threads trying to read from it
2022-06-09 16:30:16 +0200Vajb(~Vajb@85-76-5-232-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-06-09 16:30:58 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 16:31:31 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-09 16:31:35 +0200 <geekosaur> can't tell about that but I see you got caught by threadDelay being in microseconds; you're delaying for 10ms instead of 1s
2022-06-09 16:31:47 +0200 <geekosaur> (maybe you intended that and the comments are wrong?)
2022-06-09 16:33:26 +0200 <Benzi-Junior> geekosaur, ye the intervals for threadDelay are all just, what was convenient for testing
2022-06-09 16:33:29 +0200BusConscious(~martin@ip5f5bdee2.dynamic.kabel-deutschland.de)
2022-06-09 16:33:44 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-06-09 16:33:46 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-09 16:34:23 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 16:34:54 +0200cheater(~Username@user/cheater) (Quit: (BitchX) Mr. Rogers uses BitchX. Won't you be my neighbor?)
2022-06-09 16:35:10 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-06-09 16:35:39 +0200cheater(~Username@user/cheater)
2022-06-09 16:36:18 +0200 <geekosaur> aside from that, I think you might have a misunderstanding of TChan
2022-06-09 16:37:28 +0200kenran(~kenran@200116b82bb85a00e08a64920c7e7441.dip.versatel-1u1.de)
2022-06-09 16:37:32 +0200 <[Leary]> It might help to broadcast before the delay. Or to peek or unget values you didn't want. Or both.
2022-06-09 16:38:54 +0200 <geekosaur> if the ping agent receives its own message, the pong agent won't receive it, and vice versa. there are broadcast channels that work that way but you seem to be using an ordinary TChan
2022-06-09 16:39:12 +0200 <geekosaur> there's a broadcast TChan in the smae place but note how you have to use it
2022-06-09 16:39:26 +0200 <geekosaur> (also there's no …IO version)
2022-06-09 16:39:29 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-06-09 16:41:18 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-09 16:43:13 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2022-06-09 16:43:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-09 16:48:35 +0200ec_(~ec@gateway/tor-sasl/ec)
2022-06-09 16:49:12 +0200xff0x(~xff0x@2405:6580:b080:900:c0b4:77d6:672c:4cc) (Ping timeout: 272 seconds)
2022-06-09 16:49:15 +0200 <BusConscious> When writing my unix shell, should I parse directly into a IO monad (ShellEnv monad transformer on IO to be precise) instead of an AST?
2022-06-09 16:49:29 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-06-09 16:49:34 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds)
2022-06-09 16:49:54 +0200 <BusConscious> I could have all the benefits of having IO and parsing being seperated, while not having to recursively traverse an AST
2022-06-09 16:50:23 +0200 <BusConscious> As a Haskell newcomer this legitimately blows my mind rn
2022-06-09 16:53:30 +0200kenran(~kenran@200116b82bb85a00e08a64920c7e7441.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-06-09 16:59:25 +0200 <BusConscious> What would be the downsides to that approach? My monad being less comprohensible than an AST?
2022-06-09 16:59:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2022-06-09 16:59:39 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-09 17:00:00 +0200slack1256(~slack1256@186.11.84.227)
2022-06-09 17:00:14 +0200yosef`(~user@user/yosef/x-2947716) (Remote host closed the connection)
2022-06-09 17:00:28 +0200yosef`(~user@user/yosef/x-2947716)
2022-06-09 17:00:36 +0200CiaoSen(~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-06-09 17:02:19 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-06-09 17:02:26 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-09 17:02:40 +0200slac51054(~slack1256@191.126.227.214)
2022-06-09 17:03:55 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-06-09 17:04:32 +0200Karel(~Karel@ptr-9091p57aekjr6i5k27f.18120a2.ip6.access.telenet.be)
2022-06-09 17:05:17 +0200slack1256(~slack1256@186.11.84.227) (Ping timeout: 260 seconds)
2022-06-09 17:05:27 +0200 <lortabac> BusConscious: what do you mean by "parsing into an IO monad"? parsing the shell commands into IO actions without an intermediate data type?
2022-06-09 17:06:10 +0200 <BusConscious> yes precisely
2022-06-09 17:06:50 +0200 <lortabac> an intermediate structure allows you to introspect and/or optimize the commands
2022-06-09 17:07:02 +0200 <lortabac> and it's probably easier to work with
2022-06-09 17:07:24 +0200 <lortabac> but of course it depends on what exactly you are doing
2022-06-09 17:08:11 +0200 <BusConscious> ok you can do some intermediate optimizations on that tree
2022-06-09 17:08:34 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-06-09 17:09:31 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 17:09:45 +0200 <Karel> I'm looking for a blog post I read a couple of years ago, I think it references haskell quite a bit but it wasn't primarily about the language itself. I've been trying to find it for a while how, hopefully someone here remembers it:
2022-06-09 17:09:45 +0200 <Karel> The core idea was that when devs compare programming languages, when they look down towards lower level languages they see obvious definciencies, but when they look upwards to higher level languages they don't see the advantages and just think "huh, that's strange".
2022-06-09 17:10:00 +0200 <BusConscious> But with my unix shell, I'm not really sure, if I really need that. I certainly don't need it on the level of word expansions, where I originally came up with that approach, but in the parsing stage?
2022-06-09 17:10:09 +0200 <BusConscious> I'm not really sure tbh
2022-06-09 17:10:25 +0200 <geekosaur> an intermediate structure also helps you figure out beforehand what other forkProcess operations you need (consider `someOperation | while read line; do ... done`, where that `while` loop potentially needs to be in a subshell)
2022-06-09 17:10:57 +0200 <lortabac> BusConscious: even if you don't need it right now, you don't lose anything by introducing an extra step, and it might be handy in case you need extra functionality
2022-06-09 17:10:59 +0200 <geekosaur> in particular you'll need a separate subprocess if it is itself part of a longer pipeline and not the end of it
2022-06-09 17:11:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5)
2022-06-09 17:11:39 +0200 <geekosaur> Karel, I'd ask that on reddit or the discourse, I think
2022-06-09 17:11:59 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-06-09 17:12:19 +0200 <BusConscious> lortabac: fair point I will probably stick with an AST for parsing the shell grammar
2022-06-09 17:12:29 +0200 <Karel> geekosaur, Yeah good idea!
2022-06-09 17:13:02 +0200 <BusConscious> But I will use the parsing directly to IOMonads approach when parsing words for word expansions at runtime
2022-06-09 17:13:10 +0200 <BusConscious> this seems like a sensible compromise
2022-06-09 17:13:49 +0200 <lortabac> IIRC PHP didn't have an AST at the beginning (opcodes were emitted directly during parsing), then they realized it was a bad idea
2022-06-09 17:13:58 +0200self-similar(~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df)
2022-06-09 17:16:06 +0200 <geekosaur> well, php wasn't intended to be a language at first, just a macro processor that produced perl
2022-06-09 17:18:46 +0200self-similar(~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df) (Read error: Connection reset by peer)
2022-06-09 17:19:13 +0200self-similar(~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df)
2022-06-09 17:20:44 +0200 <self-similar> hi everyone !
2022-06-09 17:23:44 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-09 17:23:56 +0200jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-09 17:24:15 +0200 <geekosaur> hello
2022-06-09 17:25:53 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection)
2022-06-09 17:26:10 +0200jonathanx_(~jonathan@94.234.52.14) (Ping timeout: 240 seconds)
2022-06-09 17:26:11 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 17:27:08 +0200 <Bulby[m]> i'm really disapointed with the error capabilities of parser-combinators' Control.Monad.Combinators.Expr
2022-06-09 17:27:58 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 17:29:58 +0200ec_(~ec@gateway/tor-sasl/ec)
2022-06-09 17:32:08 +0200yosef`(~user@user/yosef/x-2947716) (Ping timeout: 255 seconds)
2022-06-09 17:33:58 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-06-09 17:35:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 17:35:52 +0200 <Karel> Someone on reddit has found what I was looking for already, it was called "the Blub Paradox": https://wiki.c2.com/?BlubParadox
2022-06-09 17:36:00 +0200 <c_wraith> Bulby[m]: my experience with parser-combinators is that the maintainers are pretty responsive. I asked them to reimplement a whole feature once to improve it slightly, and it got done in about a week. They might be equally responsive to another report with some concrete suggestions of what additional stuff you're looking for.
2022-06-09 17:38:43 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-06-09 17:38:49 +0200coot(~coot@213.134.190.95)
2022-06-09 17:39:26 +0200self-similar(~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df) (Remote host closed the connection)
2022-06-09 17:41:59 +0200 <Bulby[m]> https://craftinginterpreters.com/appendix-i.html#expressions is this grammar even parsable by it
2022-06-09 17:42:06 +0200 <Bulby[m]> specifically expressions
2022-06-09 17:44:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06)
2022-06-09 17:45:25 +0200 <c_wraith> it doesn't look like what the expression parser is intended to handle. Portions of it could be, but you'd have to rewrite them significantly from that form.
2022-06-09 17:45:45 +0200 <Bulby[m]> yeah, figures
2022-06-09 17:47:14 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-09 17:48:13 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-06-09 17:49:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 248 seconds)
2022-06-09 17:53:20 +0200slack1256(~slack1256@186.11.84.227)
2022-06-09 17:53:34 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-06-09 17:54:31 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2022-06-09 17:54:32 +0200 <c_wraith> but the grammar there is already factored to build in associativity and precedence
2022-06-09 17:55:10 +0200slac51054(~slack1256@191.126.227.214) (Ping timeout: 240 seconds)
2022-06-09 17:55:39 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 17:57:02 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 17:57:08 +0200kaskal-(~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b)
2022-06-09 17:57:46 +0200kaskal(~kaskal@089144209011.atnat0018.highway.a1.net) (Ping timeout: 246 seconds)
2022-06-09 17:59:00 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 17:59:32 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 18:00:51 +0200 <Bulby[m]> writing my own chainl1, it's actually fairly easy to work with
2022-06-09 18:03:36 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 248 seconds)
2022-06-09 18:03:38 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-09 18:03:59 +0200kenran(~kenran@200116b82bb85a007f00c59d6ba2f8c0.dip.versatel-1u1.de)
2022-06-09 18:05:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 18:06:10 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-09 18:06:31 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer)
2022-06-09 18:07:18 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-06-09 18:08:23 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-09 18:12:44 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer)
2022-06-09 18:13:44 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
2022-06-09 18:14:34 +0200 <kronicma1> Anyone know how I can make Cont work with freer-simple?
2022-06-09 18:14:59 +0200arkeet(arkeet@moriya.ca) (Ping timeout: 240 seconds)
2022-06-09 18:15:01 +0200 <kronicma1> I can't seem to implement `Eff (Cont r ': effs) ~> Eff effs` in any reasonable way
2022-06-09 18:16:15 +0200z0k(~z0k@206.84.142.123)
2022-06-09 18:17:14 +0200noteness(~noteness@user/noteness)
2022-06-09 18:18:35 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-09 18:19:12 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 18:22:40 +0200arkeet(arkeet@moriya.ca)
2022-06-09 18:22:48 +0200arkeet(arkeet@moriya.ca) (Client Quit)
2022-06-09 18:22:52 +0200motherfsck(~motherfsc@user/motherfsck)
2022-06-09 18:23:47 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds)
2022-06-09 18:24:07 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-09 18:24:16 +0200arkeet(arkeet@moriya.ca)
2022-06-09 18:26:18 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-09 18:27:07 +0200ec_(~ec@gateway/tor-sasl/ec)
2022-06-09 18:29:54 +0200DNH(~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-09 18:30:26 +0200DNH(~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812)
2022-06-09 18:30:40 +0200DNH(~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) (Client Quit)
2022-06-09 18:34:31 +0200MajorBiscuit(~MajorBisc@wlan-145-94-166-231.wlan.tudelft.nl) (Ping timeout: 246 seconds)
2022-06-09 18:35:29 +0200arjun(~arjun@user/arjun)
2022-06-09 18:36:11 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-09 18:36:58 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:54fe:417d:8656:9d4e) (Quit: WeeChat 2.8)
2022-06-09 18:37:26 +0200DNH(~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812)
2022-06-09 18:38:21 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-06-09 18:38:30 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2022-06-09 18:39:43 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer)
2022-06-09 18:40:14 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 18:40:27 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 18:41:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06)
2022-06-09 18:43:11 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2022-06-09 18:43:18 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-09 18:43:40 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-06-09 18:45:08 +0200Teacup(~teacup@user/teacup)
2022-06-09 18:47:25 +0200 <slack1256> I got a Stream (well it is a list), that I want to guarrantee it won't be shared anywhere on the program. Otherwise the stream behaviour I specify will be stored on memory once the first consumer run. What are my options here? Can I use the newer linear type extensions for this?
2022-06-09 18:48:25 +0200 <c_wraith> how strong of a guarantee?
2022-06-09 18:49:23 +0200 <slack1256> I don't know how to measure guarantee. But if I get a some examples on how to do it, maybe I can compare them.
2022-06-09 18:49:26 +0200acidjnk_new(~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-06-09 18:49:36 +0200 <c_wraith> because anything type-based doesn't guarantee a lack of unsafeCoerce shenanigans
2022-06-09 18:49:36 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 18:49:38 +0200 <slack1256> I was thinking on a Rank2Type trick like ST to guarrantee an scope of validity.
2022-06-09 18:49:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 18:49:51 +0200 <slack1256> s_an_a.
2022-06-09 18:50:11 +0200 <c_wraith> but yes, a higher-rank trick is the usual approach.
2022-06-09 18:51:33 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-09 18:51:50 +0200 <slack1256> I was thinking on some definition annotation that will tell GHC to not "let float" or share this value. That way I can tag the initial producer of the stream.
2022-06-09 18:53:06 +0200 <slack1256> I usually keep in mind "who is the end consumer of this pipeline" and who is the "producer". That way the pipeline of functions work well with the demand analyzer on GHC and I get good consistent behaviour. But that trick can be done better if I can get this guarrantee.
2022-06-09 18:53:15 +0200Teacup(~teacup@user/teacup)
2022-06-09 18:54:32 +0200slac77221(~slack1256@191.125.227.72)
2022-06-09 18:54:44 +0200 <slac77221> Oh, I changed network, but I am slack1256.
2022-06-09 18:57:42 +0200nate3(~nate@98.45.169.16)
2022-06-09 18:58:05 +0200 <c_wraith> I'm a bit concerned about how important you are describing this as.
2022-06-09 18:58:24 +0200slack1256(~slack1256@186.11.84.227) (Ping timeout: 276 seconds)
2022-06-09 18:59:06 +0200 <c_wraith> Are you doing something unsafe and trying to make it safe by carefully controlling consumption?
2022-06-09 18:59:55 +0200 <sm> Karel: sounds like the blub paradox by Paul Graham ?
2022-06-09 19:00:22 +0200 <sm> ack answered, missed it
2022-06-09 19:00:59 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-06-09 19:01:14 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
2022-06-09 19:01:31 +0200[_][itchyjunk]
2022-06-09 19:02:31 +0200nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-09 19:04:13 +0200Kaiepi(~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
2022-06-09 19:04:21 +0200zeenk(~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
2022-06-09 19:04:38 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-06-09 19:05:06 +0200 <Karel> sm, Yeah, thanks though!
2022-06-09 19:05:16 +0200Kaiepi(~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
2022-06-09 19:05:40 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-06-09 19:07:43 +0200pottsy(~pottsy@129.227.183.244) (Ping timeout: 265 seconds)
2022-06-09 19:08:02 +0200pottsy(~pottsy@129.227.183.244)
2022-06-09 19:09:33 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-06-09 19:11:21 +0200vicfred(~vicfred@user/vicfred)
2022-06-09 19:12:58 +0200 <BusConscious> quick Q: what does the second SourceName type parameter in parse (Text.Parsec) represent and how does it choice affect parse?
2022-06-09 19:13:53 +0200kaskal-(~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b) (Quit: ZNC - https://znc.in)
2022-06-09 19:14:10 +0200kaskal(~kaskal@089144209011.atnat0018.highway.a1.net)
2022-06-09 19:15:53 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 19:18:14 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-06-09 19:18:20 +0200 <Bulby[m]> can i specifically hide all constructors of a data type
2022-06-09 19:18:22 +0200 <Bulby[m]> when importing
2022-06-09 19:19:16 +0200 <geekosaur> put the type in the import list by itself
2022-06-09 19:19:52 +0200 <geekosaur> Foo is just the type, Foo(Ctor[, Ctor…]) is a list of data constructors, Foo(..) is all data constructors
2022-06-09 19:21:04 +0200 <sm> import Module (Type()) is it ?
2022-06-09 19:21:42 +0200bjobjo(~bjobjo@user/bjobjo) (Quit: leaving)
2022-06-09 19:22:32 +0200 <Bulby[m]> \o/
2022-06-09 19:22:33 +0200 <Bulby[m]> no
2022-06-09 19:22:38 +0200 <geekosaur> import Module (Type)
2022-06-09 19:22:45 +0200 <Bulby[m]> but that only imports the type
2022-06-09 19:22:50 +0200 <Bulby[m]> I mean import everything, except the constructors of the type
2022-06-09 19:22:58 +0200 <geekosaur> as every new Haskeller learns when they forget the (..) to import all ctors)
2022-06-09 19:23:04 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
2022-06-09 19:23:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Remote host closed the connection)
2022-06-09 19:23:19 +0200 <geekosaur> wait, you want the data ctors but not the type ctor? that's useless
2022-06-09 19:23:33 +0200k8yun(~k8yun@user/k8yun)
2022-06-09 19:23:34 +0200 <geekosaur> you can't refer to the data ctors you imported without the type
2022-06-09 19:24:02 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-06-09 19:27:22 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-09 19:28:20 +0200danso(danso@danso.ca) (Quit: ZNC - https://znc.in)
2022-06-09 19:28:48 +0200 <geekosaur> Bulby[m], why do you think you want untyped data constructors? Aside from the fact that you're translating from Java where they would have a "type" (every type inherits from java.lang.Object)
2022-06-09 19:29:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06)
2022-06-09 19:30:16 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-09 19:31:33 +0200danso(~danso@danso.ca)
2022-06-09 19:34:05 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 255 seconds)
2022-06-09 19:34:07 +0200Tuplanolla(~Tuplanoll@91-159-69-1.elisa-laajakaista.fi)
2022-06-09 19:34:10 +0200bjobjo(~bjobjo@user/bjobjo)
2022-06-09 19:34:19 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2022-06-09 19:34:43 +0200econo(uid147250@user/econo)
2022-06-09 19:34:57 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:88ad:201e:ada:568e) (Remote host closed the connection)
2022-06-09 19:37:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2022-06-09 19:37:23 +0200kaskal(~kaskal@089144209011.atnat0018.highway.a1.net) (Quit: ZNC - https://znc.in)
2022-06-09 19:37:44 +0200kaskal(~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b)
2022-06-09 19:39:46 +0200Pickchea(~private@user/pickchea)
2022-06-09 19:40:52 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-06-09 19:41:46 +0200 <sm> maybe add a import Module hiding (Type)
2022-06-09 19:42:47 +0200 <geekosaur> maybe that's what they mean. I don't think they can mean the other as ghc can't touch the data ctors without having a type for them
2022-06-09 19:48:08 +0200slac77221(~slack1256@191.125.227.72) (Ping timeout: 248 seconds)
2022-06-09 19:48:43 +0200slack1256(~slack1256@191.126.99.206)
2022-06-09 19:50:43 +0200janschneider[m](~janschnei@2001:470:69fc:105::1:7625)
2022-06-09 19:51:50 +0200 <slack1256> c_wraith: Not something unsafe. But perfomance will suffer if I share this stream and the values are retained in memory.
2022-06-09 19:52:31 +0200zaquest(~notzaques@5.130.79.72) (Read error: Connection reset by peer)
2022-06-09 19:53:14 +0200k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-06-09 19:54:01 +0200kaskal(~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b) (Ping timeout: 244 seconds)
2022-06-09 19:59:55 +0200Karel_(~Karel@d51a4910f.access.telenet.be)
2022-06-09 19:59:55 +0200Karel(~Karel@ptr-9091p57aekjr6i5k27f.18120a2.ip6.access.telenet.be) (Killed (osmium.libera.chat (Nickname regained by services)))
2022-06-09 19:59:55 +0200Karel_Karel
2022-06-09 20:00:58 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 246 seconds)
2022-06-09 20:02:08 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-06-09 20:02:34 +0200Batzy(~quassel@user/batzy)
2022-06-09 20:03:03 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-06-09 20:03:34 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-06-09 20:03:39 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-06-09 20:04:45 +0200slack1256(~slack1256@191.126.99.206) (Read error: Connection reset by peer)
2022-06-09 20:05:03 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-09 20:05:22 +0200slack1256(~slack1256@186.11.84.227)
2022-06-09 20:06:41 +0200 <Bulby[m]> hm, how would you handle `this` in classes with a heap
2022-06-09 20:06:52 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-09 20:07:39 +0200 <geekosaur> depends. some pass it as a hidden parameter
2022-06-09 20:07:47 +0200 <Bulby[m]> I guess pass it as an arg?
2022-06-09 20:08:45 +0200zaquest(~notzaques@5.130.79.72)
2022-06-09 20:09:10 +0200mbuf(~Shakthi@122.174.63.81) (Quit: Leaving)
2022-06-09 20:11:46 +0200kaskal(~kaskal@2001:4bb8:2d3:39b7:6dc3:9794:9538:b6b)
2022-06-09 20:14:39 +0200 <Bulby[m]> the "javaism" is binding to it, which sounds sort of sane
2022-06-09 20:14:41 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2022-06-09 20:15:24 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:6013:240:b757:7b6f) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2022-06-09 20:15:39 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-06-09 20:15:43 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:4407:6901:d62:3299)
2022-06-09 20:16:59 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 20:21:30 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-09 20:24:18 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-06-09 20:38:58 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2022-06-09 20:40:22 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds)
2022-06-09 20:44:31 +0200 <Bulby[m]> users would expect `var foo = new Foo(); var bar = foo; bar.field = "foo"; print foo.field;` to print "foo", right?
2022-06-09 20:44:32 +0200 <Bulby[m]> i.e. instances are stored by reference
2022-06-09 20:45:06 +0200 <geekosaur> generally yes, but consider copy constructors in C++
2022-06-09 20:45:09 +0200 <Bulby[m]> haxe does it that way, and it would make the implementation easier
2022-06-09 20:46:29 +0200 <geekosaur> (of course C++ complicates things by having struct/class be non-reference, plus references and pointers which aren't the same thing)
2022-06-09 20:46:49 +0200 <geekosaur> but `this` is implicitly a reference
2022-06-09 20:46:52 +0200ashln(~ashln@98.38.236.123)
2022-06-09 20:47:41 +0200kenran(~kenran@200116b82bb85a007f00c59d6ba2f8c0.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-06-09 20:48:03 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 20:49:17 +0200 <Bulby[m]> what would be expected for `var foo = new Foo(); var bar = foo; foo = 1; print bar;` should it print "instance Foo"?
2022-06-09 20:49:31 +0200 <Bulby[m]> i.e. something changes when assigning?
2022-06-09 20:49:34 +0200 <Bulby[m]> because that borks a lot of the scope
2022-06-09 20:49:53 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-06-09 20:50:49 +0200 <geekosaur> seems to me that bar should be the object and foo should be 1, at the end of that
2022-06-09 20:50:59 +0200Batzy(~quassel@user/batzy)
2022-06-09 20:51:18 +0200 <Bulby[m]> yes, which is what I expected
2022-06-09 20:51:26 +0200 <Bulby[m]> this compilicates things
2022-06-09 20:51:30 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
2022-06-09 20:51:32 +0200 <geekosaur> if that breaks something then you may need to rethink things; you should simply be reassigning heap "pointers"
2022-06-09 20:53:09 +0200 <Bulby[m]> as in memory when assigning `foo = 1;` I would have to define a new heap value of 1 to keep bar intact
2022-06-09 20:53:33 +0200 <geekosaur> yes. which might mean deciding whether numbers are objects
2022-06-09 20:53:46 +0200 <Bulby[m]> and expressions aren't really meant to edit the stack, which is what would have to happen
2022-06-09 20:54:49 +0200 <geekosaur> hm, would it? object references might simply be 2-level
2022-06-09 20:55:20 +0200 <geekosaur> possibly with their own heap
2022-06-09 20:56:17 +0200 <geekosaur> this might mean runtime type information so you know when that happens, though, otherwise you might treat an object reference as a number or something
2022-06-09 20:57:02 +0200 <geekosaur> the more common approach is everything is an object, so `1.add(2)` would be meaningful
2022-06-09 20:57:57 +0200 <geekosaur> and every heap reference is then depth 2, once for the object reference and the second for the actual value
2022-06-09 20:58:31 +0200 <geekosaur> (or the java approach where primitive unboxed types are still depth 1, but that complicates things considerably)
2022-06-09 20:59:04 +0200coot(~coot@213.134.190.95)
2022-06-09 21:00:47 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-09 21:02:19 +0200Teacup(~teacup@user/teacup)
2022-06-09 21:04:30 +0200acidjnk_new(~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de)
2022-06-09 21:05:43 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Read error: Connection reset by peer)
2022-06-09 21:05:53 +0200\yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 21:07:03 +0200 <geekosaur[m]> Come to think of it, your vars need RTTI anyway, you just add a new "ref" type
2022-06-09 21:07:13 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-09 21:09:21 +0200\yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Read error: Connection reset by peer)
2022-06-09 21:09:27 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 21:16:20 +0200alp(~alp@user/alp) (Ping timeout: 252 seconds)
2022-06-09 21:20:00 +0200alp(~alp@user/alp)
2022-06-09 21:21:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 21:22:06 +0200arjun(~arjun@user/arjun) (Quit: tip toe-ing my way outta here)
2022-06-09 21:26:38 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye)
2022-06-09 21:26:55 +0200 <geekosaur> oh, hm, if the type is stored in the var instead of the value then that still edits the stack I guess. unless the vars are 2-level ({type, value})
2022-06-09 21:27:41 +0200 <geekosaur> but if you don't do that you still hit this with `var foo = 1; foo = "a"`
2022-06-09 21:28:09 +0200 <geekosaur> types of course avoid this, but Lox is untyped
2022-06-09 21:32:25 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2022-06-09 21:33:17 +0200zeenk(~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
2022-06-09 21:34:30 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
2022-06-09 21:36:27 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 21:36:34 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-06-09 21:42:37 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 21:44:14 +0200Guest27(~Guest27@2601:281:d47f:1590::59a2)
2022-06-09 21:50:16 +0200Pickchea(~private@user/pickchea) (Ping timeout: 244 seconds)
2022-06-09 21:52:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 21:52:54 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 21:54:25 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-06-09 21:55:50 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 240 seconds)
2022-06-09 21:57:39 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-06-09 21:59:15 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 21:59:26 +0200martin02(~silas@141.84.69.76) (Ping timeout: 255 seconds)
2022-06-09 22:01:47 +0200 <Bulby[m]> yes, a new ref value would make sense
2022-06-09 22:02:04 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 246 seconds)
2022-06-09 22:02:29 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-06-09 22:02:30 +0200lyle(~lyle@104.246.145.85) (Quit: WeeChat 3.5)
2022-06-09 22:02:36 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-06-09 22:03:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 22:03:46 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-09 22:05:54 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 22:06:09 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-09 22:10:31 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-06-09 22:12:17 +0200martin02(~silas@141.84.69.76)
2022-06-09 22:14:24 +0200 <EvanR> java, the best dynamically typed language
2022-06-09 22:14:43 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-06-09 22:14:48 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 22:14:58 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-06-09 22:16:47 +0200 <Henson> does anybody have any recommendations for Haskell consulting firms?
2022-06-09 22:17:50 +0200 <geekosaur> the only one I'm aware of is well-typed, and they may be outside your spending range
2022-06-09 22:17:59 +0200 <geekosaur> (that doesn't prove there aren't others)
2022-06-09 22:20:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 22:21:24 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-09 22:22:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 22:26:33 +0200 <Henson> geekosaur: is well-typed really expensive?
2022-06-09 22:26:59 +0200 <geekosaur> don't really know but I kinda expect consultants to be up there
2022-06-09 22:27:26 +0200 <geekosaur> and they gotta be able to fund something like half the folks involved with ghc dev somehow :)
2022-06-09 22:28:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 22:28:04 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-06-09 22:28:45 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 22:29:06 +0200slac32089(~slack1256@191.126.227.204)
2022-06-09 22:29:18 +0200 <Bulby[m]> wtf you can't even derive eq, ord, or show for GADTs
2022-06-09 22:30:27 +0200 <sclv> there's a ton of haskell consulting firms these days actually. i don't know much about them as firms, but i know people in them -- tweag, stackbuilders, obsidian, serokell are all some bigger names
2022-06-09 22:30:28 +0200 <Bulby[m]> why are gadts so painufl
2022-06-09 22:30:39 +0200 <geekosaur> you can't derive through an existential. rarely you can use standalone deriving, but most of the time the existential prevents you from doing much of anything
2022-06-09 22:31:05 +0200 <geekosaur> because it has no knowable type from the outside
2022-06-09 22:31:20 +0200slack1256(~slack1256@186.11.84.227) (Ping timeout: 248 seconds)
2022-06-09 22:31:23 +0200 <sclv> oh i guess monadfix is a notable consultancy too, among many others im sure im omitting
2022-06-09 22:32:42 +0200 <sclv> Henson: as for which is right for you, i'd look at the projects of each and see what seems most suited to the sorts of things you need.
2022-06-09 22:33:18 +0200 <sclv> if you use gadts for type indexing rather than existentials you can get pretty far
2022-06-09 22:33:22 +0200 <sclv> with standalone deriving
2022-06-09 22:33:29 +0200 <EvanR> GADTs are sort of the beginning of your ability to use logic, and then logic comes back with a vengance
2022-06-09 22:33:37 +0200 <Henson> sclv: thank you for the names, I'll take a look into them
2022-06-09 22:33:45 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 22:33:48 +0200 <EvanR> poetically we have no one but ourselves to blame
2022-06-09 22:34:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 22:34:21 +0200 <EvanR> other programming languages manage to get things done by being illogical
2022-06-09 22:34:48 +0200Guest9(~Guest9@109.206.198.75)
2022-06-09 22:35:34 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-06-09 22:36:15 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
2022-06-09 22:36:42 +0200stackdroid18(14094@user/stackdroid)
2022-06-09 22:41:00 +0200 <Bulby[m]> you can standalone derive, but why can't you just uh derive
2022-06-09 22:41:30 +0200 <Bulby[m]> i also wish there was wizardry that let generic work
2022-06-09 22:42:13 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection)
2022-06-09 22:42:16 +0200 <sclv> thats actually a really good question -- vis a vis deriving. generics you need a different lib/approach, but it _should_ be that if you can standalone derive it you should be able to just derive it. i think that's probably something that could be worked out more carefully into a ghc proposal
2022-06-09 22:42:19 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e)
2022-06-09 22:44:34 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-09 22:47:06 +0200alp(~alp@user/alp) (Ping timeout: 250 seconds)
2022-06-09 22:50:56 +0200Guest9(~Guest9@109.206.198.75) (Quit: Client closed)
2022-06-09 22:54:09 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 22:54:44 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 22:56:56 +0200pavonia(~user@user/siracusa)
2022-06-09 22:57:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 22:57:19 +0200kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2022-06-09 22:58:25 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 246 seconds)
2022-06-09 22:58:28 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 22:58:52 +0200dolio(~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-09 22:59:13 +0200nate3(~nate@98.45.169.16)
2022-06-09 22:59:48 +0200zeenk(~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
2022-06-09 23:00:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 23:00:31 +0200ClathomasPrime(~Clathomas@pool-98-110-124-224.cmdnnj.fios.verizon.net)
2022-06-09 23:00:49 +0200pmk(~user@2a02:587:9418:69b8:b896:d770:251d:c4d7) (Remote host closed the connection)
2022-06-09 23:01:25 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-09 23:02:31 +0200 <ClathomasPrime> Hello! I'm trying to edit a big string by performing a function on every place in the string which matches a simple regex. It was looking like the replace-megaparsec function streamEdit is just what I need, but I can't figure out how to convert my simple regex to a Parsec
2022-06-09 23:02:53 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 255 seconds)
2022-06-09 23:02:58 +0200 <geekosaur> I think part of the problem there is the specifications for deriving those instances are from the Report and would require an extension. it's a good question whether that should be enabled by standalone deriving or if another extension would be needed to produce non-Report deriving code
2022-06-09 23:03:23 +0200 <ClathomasPrime> The regex is just "<br>[^<]*</td>", and I'd like to run the function on everything which matches the [^<]*
2022-06-09 23:03:25 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-06-09 23:04:01 +0200nate3(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-06-09 23:05:19 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-09 23:05:23 +0200 <geekosaur> this is parsing and you do it by parsing the string with parse or parseMaybe https://hackage.haskell.org/package/megaparsec-9.2.1/docs/Text-Megaparsec.html
2022-06-09 23:05:57 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-06-09 23:06:05 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 23:06:50 +0200slac32089(~slack1256@191.126.227.204) (Read error: Connection reset by peer)
2022-06-09 23:07:39 +0200 <ClathomasPrime> how is a "search and replace" type of operation a special case of parsing?
2022-06-09 23:07:46 +0200slack1256(~slack1256@186.11.84.227)
2022-06-09 23:08:23 +0200 <geekosaur> `parsing` is how you get that `Parsec` thing you wanted
2022-06-09 23:09:31 +0200kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net)
2022-06-09 23:09:41 +0200 <Bulby[m]> i want to do something like rust
2022-06-09 23:09:46 +0200 <Bulby[m]> with resource allocation and freeing
2022-06-09 23:09:56 +0200 <Bulby[m]> "RAII" as the C++ crew calls it
2022-06-09 23:11:14 +0200 <geekosaur> isn't this ResourceT?
2022-06-09 23:11:54 +0200 <int-e> :t Control.Exception.bracket
2022-06-09 23:11:55 +0200 <lambdabot> IO a -> (a -> IO b) -> (a -> IO c) -> IO c
2022-06-09 23:12:02 +0200 <geekosaur> ClathomasPrime, also regexes are simple parsers
2022-06-09 23:12:20 +0200 <dsal> regexes are parser whose input needs to be parsed so they can parse their input
2022-06-09 23:13:46 +0200 <ClathomasPrime> I think I understand in theory. But I can't figure out how make a Parsec which matches in the same way as the regex "<br>[^<]*</td>"
2022-06-09 23:15:20 +0200 <dsal> So, you're looking for text that starts with a <br> and satisfies `not . (== '<')` followed by </td> ?
2022-06-09 23:15:25 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-06-09 23:16:04 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
2022-06-09 23:16:22 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-06-09 23:16:51 +0200 <ClathomasPrime> yes (with the longest possible string of not . (== '<'))
2022-06-09 23:16:54 +0200 <dsal> You can use `between` with `(string "<br>") (string "</td>")` for anything satisfying `not . (== '<')`
2022-06-09 23:17:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 23:17:48 +0200 <EvanR> do any of the regex libs in haskell simply have this sort of find and replace
2022-06-09 23:18:00 +0200 <geekosaur> `string "br" *> manyTill anyChar '<' <* string "</td>"` ?
2022-06-09 23:18:06 +0200 <EvanR> i.e. what everyone uses regex for
2022-06-09 23:18:14 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-09 23:18:19 +0200 <geekosaur> probably not. I sometimes think thye regex api in haskell was designed to drive people away
2022-06-09 23:18:41 +0200 <dsal> I tried a thing with regex before I learned how to do parsec things and had a very bad time.
2022-06-09 23:18:50 +0200 <geekosaur> because you're "supposed to" write a parser
2022-06-09 23:18:54 +0200 <dsal> The worst part was async exceptions.
2022-06-09 23:19:13 +0200 <Guest27> Just write a Haskell function that takes a String and passes it to sed as a script :P
2022-06-09 23:19:13 +0200 <EvanR> so regexen need some love in haskell
2022-06-09 23:19:22 +0200 <hpc> i mean, a regex is basically just a non-recursive parsec parser
2022-06-09 23:19:33 +0200 <EvanR> that is orders of magnitude shorter in code xD
2022-06-09 23:20:04 +0200 <dsal> megaparsec code is generally easier to read and gives much better error messages when things go wrong.
2022-06-09 23:20:10 +0200 <EvanR> and doesn't explain the find and replace part
2022-06-09 23:20:13 +0200 <EvanR> parsec
2022-06-09 23:20:27 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 23:20:52 +0200 <EvanR> yeah a formal parser you want to reuse is better in fooparsec
2022-06-09 23:21:03 +0200 <dsal> I've not looked at replace-megaparsec
2022-06-09 23:21:57 +0200 <EvanR> a book just came in the mail which does input validation in increasingly haskelly and safer ways. Maybe someone should write such a book on "find and replace" xD
2022-06-09 23:22:57 +0200 <geekosaur> hm, I think a pair of <> got et earlier
2022-06-09 23:23:11 +0200 <EvanR> Bulby[m], now you need linear types!
2022-06-09 23:24:53 +0200Pickchea(~private@user/pickchea)
2022-06-09 23:25:07 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 258 seconds)
2022-06-09 23:25:52 +0200 <geekosaur> `string "<br>" *> manyTill anyChar '<' <* string "/td>"` I think
2022-06-09 23:26:25 +0200alp(~alp@user/alp)
2022-06-09 23:29:16 +0200 <ClathomasPrime> thank you geekosaur! It looks right for Parsec. I have to also convert it to MegaParsec though, and now I'm having trouble there. Trying though
2022-06-09 23:30:01 +0200 <geekosaur> you may have to import Control.Applicative.Combinators
2022-06-09 23:30:02 +0200 <dsal> Does that not work for megaparsec? Do you have a particular error?
2022-06-09 23:30:43 +0200 <geekosaur> (the functionality was separated out because it's actually in common with a bunch of other parsers)
2022-06-09 23:32:01 +0200 <dsal> I think `manyTill` wants a parser for the second function. So like `manyTill anyChar (single '<')`
2022-06-09 23:32:11 +0200 <dsal> er, param. I should take a nap.
2022-06-09 23:32:18 +0200 <geekosaur> mm, yes, sorry
2022-06-09 23:32:34 +0200 <geekosaur> or `char` instead of `single` should work I think
2022-06-09 23:33:20 +0200 <dsal> Yeah, that looks better.
2022-06-09 23:33:30 +0200 <ClathomasPrime> It looks like "import Text.Megaparsec" doesn't bring in the functions string or anyChar
2022-06-09 23:33:37 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-09 23:33:47 +0200 <dsal> https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec-Char.html
2022-06-09 23:33:51 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-06-09 23:34:46 +0200 <geekosaur> megaparsec can parse more than just `String`s
2022-06-09 23:35:11 +0200 <geekosaur> so there are separate modules for various things it can work with directly, plous tools for building your own
2022-06-09 23:35:33 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-09 23:35:35 +0200 <ClathomasPrime> nice, Text.Megaparsec.Char brought in "string". Still looking for "anyChar"
2022-06-09 23:35:49 +0200 <dsal> You can press `s` on the docs to find related symbols.
2022-06-09 23:36:52 +0200Guest27(~Guest27@2601:281:d47f:1590::59a2) (Ping timeout: 252 seconds)
2022-06-09 23:36:56 +0200 <dsal> I don't see `anyChar`, but I see `anySingle`. Looking through my own code, I see that I use `anyChar` in attoparsec some.
2022-06-09 23:37:07 +0200 <dsal> There are lot of parser libraries in Haskell. It's basically hello world.
2022-06-09 23:39:21 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-09 23:39:33 +0200 <ClathomasPrime> nice, looks like anySingle is what I needed!
2022-06-09 23:39:52 +0200 <ClathomasPrime> Thanks for a lot of good tips (e.g. I had no idea on pressing s)
2022-06-09 23:40:04 +0200 <ClathomasPrime> Looks like the parser works, let's see if I can do my replacing
2022-06-09 23:40:04 +0200acidjnk_new(~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2022-06-09 23:40:44 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-09 23:43:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-09 23:43:17 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-06-09 23:44:06 +0200dolio(~dolio@130.44.130.54)
2022-06-09 23:45:14 +0200dolio(~dolio@130.44.130.54) (Client Quit)
2022-06-09 23:45:38 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-09 23:47:37 +0200dolio(~dolio@130.44.130.54)
2022-06-09 23:53:43 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc)
2022-06-09 23:54:30 +0200slack1256(~slack1256@186.11.84.227) (Ping timeout: 240 seconds)
2022-06-09 23:58:16 +0200zincy(~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 248 seconds)