Home liberachat/#haskell: Logs Calendar

Logs on 2021-06-15 (liberachat/#haskell)

00:00:54 × ddellacosta quits (~ddellacos@89.46.62.164) (Ping timeout: 264 seconds)
00:03:02 × bilegeek quits (~bilegeek@2600:1008:b041:5047:48ad:ae3d:d2ea:7d42) (Quit: Leaving)
00:03:03 Axman6 joins (~Axman6@user/axman6)
00:05:28 × zeenk quits (~zeenk@188.26.30.39) (Quit: Konversation terminated!)
00:07:12 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
00:10:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:14:13 <lbseale> I'm interested to hear everyone's thoughts on an idea: We're considering how to marshal data between C and Haskell. The size of the of data is small, but there are lot of fields in the record in Haskell (if that makes sense)
00:14:55 <lbseale> On idea is to serialize it into JSON, and just pass a JSON string back and forth, this is currently how we get data into the Haskell program, it's satisfyingly fast
00:15:23 <lbseale> Another option is to make a C Structs that mirror the Haskell records, and pass those back and forth
00:15:35 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
00:15:58 <lbseale> We've been able to get that working in a toy program, but setting up the Storable instance for the C struct is a bit of a hassle
00:17:38 <geekosaur> there are tools that purport to make that easier but they can be fragile (gcc11 reportedly breaks c2hs, for example)
00:18:42 <lbseale> yeah I was looking at one called storable-record on the Haskell side
00:19:40 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 244 seconds)
00:19:51 <monochrom> I would expect JSON -> C struct be as much hassle as Haskell record -> Storable.
00:19:52 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
00:20:28 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
00:20:40 <lbseale> interesting, I don't know that much about C, but I work with people who do
00:20:44 <glguy> There are possible advantages to the json approach if you have a particularly flexible data representation; I guess
00:21:07 <glguy> if you had a bunch of lists or map structures or lots of different optional fields, it might be less hassle to go that route
00:21:12 <glguy> but not for simple struct stuff
00:22:24 <lbseale> hmm, yeah it's like 50 fixed fields, in addition to a list of 2 or more big records
00:22:35 <monochrom> But C is a particularly inflexible language for types.
00:23:46 _73 joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
00:24:38 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 244 seconds)
00:25:50 lavaman joins (~lavaman@98.38.249.169)
00:30:32 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
00:30:51 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
00:31:35 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
00:32:00 teaSlurper joins (~chris@81.96.113.213)
00:34:20 × nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
00:35:32 ddellacosta joins (~ddellacos@86.106.121.203)
00:35:37 <_73> `Couldn't match type ‘a’ with ‘()’`. Why does unit not match with an unconstrained type variable? http://dpaste.com/8Y8GDYVHH
00:36:55 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
00:38:26 lisphacker joins (~lisphacke@156.67.241.66)
00:38:29 <davean> _73: That defintion says the function has to return *any* a, not an a of its choice
00:38:37 <geekosaur> it is constrained. `forall a. Foo -> a` means the caller decides what `a` is
00:38:41 <davean> there are things () isn't
00:38:45 <davean> thus it can't be right
00:38:59 × lisphacker quits (~lisphacke@156.67.241.66) (Client Quit)
00:39:27 <_73> ohh. So this doesn't have anything to do with unit.
00:40:40 × ddellacosta quits (~ddellacos@86.106.121.203) (Ping timeout: 272 seconds)
00:41:07 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
00:41:12 <_73> So really the only thing I can return is undefined right. Because undefined is the only thing that is everything.
00:41:36 <geekosaur> correct
00:41:53 <geekosaur> unless you have a better constraint for a than `forall a. a`
00:42:06 <davean> That does make it a difficult defintion to satisfy, yes
00:42:30 <_73> Ok now I understand forall
00:43:04 <janus> if Foo was Void instead, would it still need a definition?
00:44:13 <janus> surely anything is of type a if Void was constructed
00:44:26 lavaman joins (~lavaman@98.38.249.169)
00:44:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
00:44:44 <davean> janus: you coulse use an empty case
00:45:03 <davean> f x = case x of { }
00:45:32 <janus> % f :: forall a. Void -> a; f x = case x of {}
00:45:32 <yahb> janus:
00:45:42 <janus> all right! wow, didn't think of that
00:45:45 <janus> thanks
00:47:43 <janus> % :set -XLambdaCase
00:47:43 <yahb> janus:
00:48:05 <janus> % g :: forall a. Void -> a; g = \case
00:48:05 <yahb> janus:
00:48:26 <janus> oooh yahb you crack me up :D
00:48:45 <davean> janus: Yes, thats how people ACTUALLY do it in practice, but I wanted to be more illistrative
00:49:01 <monochrom> SomeClass is a really nonsensical class, even though it's legal.
00:49:10 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
00:52:48 beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net)
00:53:01 yd502 joins (~yd502@180.168.212.6)
00:57:32 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection)
00:58:52 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
01:00:18 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
01:03:18 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 264 seconds)
01:03:37 Erutuon joins (~Erutuon@user/erutuon)
01:05:58 × xff0x quits (~xff0x@2001:1a81:5224:8900:b094:cc23:ed27:1430) (Ping timeout: 244 seconds)
01:07:43 xff0x joins (~xff0x@2001:1a81:5237:f100:deef:ffe4:1734:e0a)
01:08:14 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
01:10:32 × guest61 quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:10:46 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:52 × Deide quits (~Deide@user/deide) (Quit: Seeee yaaaa)
01:11:39 guest61 joins (~xxx@47.245.54.240)
01:11:52 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:12:38 dmang joins (~dmang@047-032-148-170.res.spectrum.com)
01:14:26 × pragma- quits (~chaos@user/pragmatic-chaos) (Quit: Bye!)
01:15:25 ddellacosta joins (~ddellacos@86.106.143.216)
01:16:45 pragma- joins (~chaos@user/pragmatic-chaos)
01:20:11 × ddellacosta quits (~ddellacos@86.106.143.216) (Ping timeout: 272 seconds)
01:21:12 × hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 272 seconds)
01:22:32 hemlock joins (~hemlock@ip72-210-100-243.tu.ok.cox.net)
01:22:43 × beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds)
01:22:44 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
01:25:40 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
01:26:50 × hemlock quits (~hemlock@ip72-210-100-243.tu.ok.cox.net) (Ping timeout: 244 seconds)
01:27:00 hemlock joins (~hemlock@ip72-210-100-243.tu.ok.cox.net)
01:39:56 berberman joins (~berberman@user/berberman)
01:41:20 yd502 joins (~yd502@180.168.212.6)
01:41:31 × berberman_ quits (~berberman@user/berberman) (Ping timeout: 272 seconds)
01:41:35 dy` joins (~dy@user/dy)
01:43:25 × dy quits (~dy@user/dy) (Ping timeout: 272 seconds)
01:43:30 mpt joins (~tom@2a02:908:1862:49e0::5)
01:45:05 × dy` quits (~dy@user/dy) (Client Quit)
01:45:30 dy joins (~dy@user/dy)
01:47:09 wei2912 joins (~wei2912@112.199.250.21)
01:52:55 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
01:57:36 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
02:00:56 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds)
02:01:58 × xff0x quits (~xff0x@2001:1a81:5237:f100:deef:ffe4:1734:e0a) (Ping timeout: 244 seconds)
02:03:56 xff0x joins (~xff0x@2001:1a81:523f:a800:4cc0:9163:93f1:ee4a)
02:05:04 × hemlock quits (~hemlock@ip72-210-100-243.tu.ok.cox.net) (Ping timeout: 244 seconds)
02:05:13 hemlock joins (~hemlock@2607:fb90:9716:c40c:8c30:5990:86f0:4ce1)
02:05:39 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
02:05:59 × td_ quits (~td@muedsl-82-207-238-233.citykom.de) (Ping timeout: 252 seconds)
02:07:41 td_ joins (~td@muedsl-82-207-238-227.citykom.de)
02:10:02 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 244 seconds)
02:11:16 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
02:12:22 killsushi joins (~killsushi@user/killsushi)
02:12:30 × hemlock quits (~hemlock@2607:fb90:9716:c40c:8c30:5990:86f0:4ce1) (Ping timeout: 272 seconds)
02:13:11 <DigitalKiwi> billionaires that have no income
02:14:13 hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net)
02:15:26 pottsy joins (~pottsy@2400:4050:b560:3700:df80:6e56:2853:b1e8)
02:16:16 <monochrom> :)
02:18:51 rk04 joins (~rk04@user/rajk)
02:24:16 beka joins (~beka@104-244-27-23.static.monkeybrains.net)
02:30:11 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:30:11 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (tantalum.libera.chat (Nickname regained by services)))
02:30:11 finn_elija is now known as FinnElija
02:30:24 ddellacosta joins (~ddellacos@89.46.62.177)
02:31:30 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds)
02:34:50 × ddellacosta quits (~ddellacos@89.46.62.177) (Ping timeout: 244 seconds)
02:39:02 mniip_ is now known as mniip
02:40:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:41:29 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:45:03 × mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds)
02:50:23 khumba joins (~khumba@user/khumba)
02:53:06 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds)
02:57:31 yd502 joins (~yd502@180.168.212.6)
03:00:42 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
03:04:26 × td_ quits (~td@muedsl-82-207-238-227.citykom.de) (Ping timeout: 272 seconds)
03:05:44 td_ joins (~td@muedsl-82-207-238-208.citykom.de)
03:10:32 × alx741 quits (~alx741@186.178.108.66) (Quit: alx741)
03:11:20 ddellacosta joins (~ddellacos@89.45.224.203)
03:14:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
03:15:32 × hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.)
03:15:38 <guest61> do you want #TaxTheRich?
03:16:28 × ddellacosta quits (~ddellacos@89.45.224.203) (Ping timeout: 272 seconds)
03:16:56 P1RATEZ joins (piratez@user/p1ratez)
03:17:03 × polyphem quits (~polyphem@2a02:810d:640:776c:12c4:e67d:3560:5ad7) (Quit: polyphem)
03:17:06 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
03:17:47 <guest61> lin littleme 我打包出termux上proot-distro里跑的ghc.deb了,你要吗?
03:18:14 <monochrom> Wrong window?
03:18:54 <guest61> sorry
03:19:08 <sshine> guest61, 没关系
03:20:43 Sylveon[m] joins (~sylveonma@2001:470:69fc:105::2d95)
03:22:10 Sylveon[m] is now known as Sylveon
03:22:52 × Sylveon quits (~sylveonma@2001:470:69fc:105::2d95) (Client Quit)
03:23:02 <guest61> sshine :)
03:23:07 Sylveon joins (~sylveonma@2001:470:69fc:105::2d95)
03:23:32 <sshine> 🤓
03:24:57 × rk04 quits (~rk04@user/rajk) (Quit: rk04)
03:25:15 × argento quits (~argent0@168-227-96-51.ptr.westnet.com.ar) (Remote host closed the connection)
03:25:44 × Sylveon quits (~sylveonma@2001:470:69fc:105::2d95) (Client Quit)
03:25:59 Sylveon joins (~sylveonma@2001:470:69fc:105::2d95)
03:34:50 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
03:35:20 yd502 joins (~yd502@180.168.212.6)
03:36:44 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
03:37:20 Guest81 joins (~Guest81@2406:3400:44b:fc00:b175:e2b5:8ad9:9875)
03:37:31 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:39:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
03:40:33 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:41:30 × Guest81 quits (~Guest81@2406:3400:44b:fc00:b175:e2b5:8ad9:9875) (Client Quit)
03:41:41 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
03:42:45 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
03:43:42 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
03:44:49 ddellacosta joins (~ddellacos@89.46.62.242)
03:45:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:46:14 × benin036 quits (~benin@183.82.176.206) (Ping timeout: 272 seconds)
03:47:05 benin036 joins (~benin@183.82.204.156)
03:49:26 × ddellacosta quits (~ddellacos@89.46.62.242) (Ping timeout: 244 seconds)
03:50:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
03:52:53 ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
03:54:08 lavaman joins (~lavaman@98.38.249.169)
03:57:16 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
04:01:48 sekun joins (~sekun@180.190.156.133)
04:01:57 polyphem joins (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de)
04:02:56 × hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection)
04:03:22 hendursaga joins (~weechat@user/hendursaga)
04:07:49 × waleee-cl quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds)
04:09:08 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
04:14:09 × hiruji quits (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Ping timeout: 272 seconds)
04:15:22 × bgamari quits (~bgamari@2001:470:e438::1) (Ping timeout: 272 seconds)
04:15:57 bgamari joins (~bgamari@2001:470:e438::1)
04:16:25 × peach quits (sid482179@id-482179.charlton.irccloud.com) ()
04:18:29 × hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Quit: Quit)
04:20:14 hiruji joins (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6)
04:20:26 × P1RATEZ quits (piratez@user/p1ratez) (Ping timeout: 272 seconds)
04:20:53 × pottsy quits (~pottsy@2400:4050:b560:3700:df80:6e56:2853:b1e8) (Quit: Leaving)
04:21:50 qwin joins (~yaaic@ip-96-43-230-90.dsl.netrevolution.com)
04:22:56 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
04:24:09 × polyphem quits (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) (Remote host closed the connection)
04:27:54 teaSlurper joins (~chris@81.96.113.213)
04:29:14 × dmang quits (~dmang@047-032-148-170.res.spectrum.com) (Changing host)
04:29:15 dmang joins (~dmang@user/dmang)
04:29:35 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
04:30:39 × dmang quits (~dmang@user/dmang) (Quit: Leaving)
04:30:53 dmang joins (~dmang@047-032-148-170.res.spectrum.com)
04:31:47 × dmang quits (~dmang@047-032-148-170.res.spectrum.com) (Changing host)
04:31:47 dmang joins (~dmang@user/dmang)
04:32:09 reumeth joins (~reumeth@user/reumeth)
04:32:19 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 244 seconds)
04:34:16 sa1 joins (uid7690@id-7690.charlton.irccloud.com)
04:36:52 vicentius joins (~vicentius@user/vicentius)
04:38:54 koishi_ joins (~koishi_@67.209.186.120.16clouds.com)
04:39:03 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 272 seconds)
04:40:03 × koishi_ quits (~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection)
04:40:24 × alexeikale quits (~alexeikal@2601:1c2:1b80:100:4ea5:a35a:95ba:fcb1) (Quit: WeeChat 3.1)
04:41:14 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:44:23 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
04:46:18 × beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection)
04:46:36 beka joins (~beka@104-244-27-23.static.monkeybrains.net)
04:47:16 dunkeln joins (~dunkeln@94.129.65.28)
04:49:26 × larryba quits (~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
04:51:43 chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295)
04:53:20 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
04:55:16 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
04:58:53 shriekingnoise joins (~shrieking@186.137.144.80)
04:59:31 ddellacosta joins (~ddellacos@86.106.143.60)
05:00:58 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
05:02:03 lain22 joins (~lain@67.188.225.130)
05:03:50 × ddellacosta quits (~ddellacos@86.106.143.60) (Ping timeout: 244 seconds)
05:04:21 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds)
05:08:39 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
05:11:21 × wei2912 quits (~wei2912@112.199.250.21) (Ping timeout: 272 seconds)
05:17:41 × vicentius quits (~vicentius@user/vicentius) (Ping timeout: 272 seconds)
05:17:45 × dmang quits (~dmang@user/dmang) (Quit: Leaving)
05:17:59 dmang joins (~dmang@047-032-148-170.res.spectrum.com)
05:18:25 × dmang quits (~dmang@047-032-148-170.res.spectrum.com) (Changing host)
05:18:25 dmang joins (~dmang@user/dmang)
05:20:48 × zmt00 quits (~zmt00@user/zmt00) (Quit: Gone.)
05:22:01 jneira joins (~jneira@212.8.115.226)
05:22:51 × lemmih quits (~lemmih@2406:3003:2072:44:925e:d7ab:50d2:4457) (Remote host closed the connection)
05:22:59 topos is now known as tapas
05:23:14 lemmih joins (~lemmih@2406:3003:2072:44:925e:d7ab:50d2:4457)
05:24:41 × lain22 quits (~lain@67.188.225.130) (Quit: Client closed)
05:25:46 vonfry joins (~user@240e:688:3:1010:f2d0:5178:5f32:a971)
05:27:04 × khumba quits (~khumba@user/khumba) ()
05:32:42 × derelict quits (~derelict@user/derelict) (Ping timeout: 264 seconds)
05:37:14 ddellacosta joins (~ddellacos@86.106.143.73)
05:37:22 awschnap joins (~lavaman@98.38.249.169)
05:37:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
05:38:39 yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se)
05:38:54 × vonfry quits (~user@240e:688:3:1010:f2d0:5178:5f32:a971) (Quit: ERC (IRC client for Emacs 27.2))
05:39:38 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
05:41:21 × ddellacosta quits (~ddellacos@86.106.143.73) (Ping timeout: 244 seconds)
05:46:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:50:38 yd502 joins (~yd502@180.168.212.6)
05:50:47 Nolrai joins (~Nolrai@c-76-27-202-218.hsd1.or.comcast.net)
05:51:56 <Nolrai> So what's the modern way to use do notation with something like Data.Set?
05:56:02 × pe200012_ quits (~pe200012@120.236.161.38) (Remote host closed the connection)
05:57:13 jellz[m] joins (~jellzmatr@2001:470:69fc:105::2daa)
05:58:27 <Axman6> I'm not sure there is one
06:02:53 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
06:03:34 NanoC joins (~NanoCoast@p200300e127264d0058cc7c623629969e.dip0.t-ipconnect.de)
06:05:10 xkuru joins (~xkuru@user/xkuru)
06:05:48 × xkuru quits (~xkuru@user/xkuru) (Client Quit)
06:06:03 xkuru joins (~xkuru@user/xkuru)
06:08:03 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
06:10:04 × fluffyballoon quits (~fluffybal@2620:72:0:6480::10f7) (Ping timeout: 250 seconds)
06:11:29 ddellacosta joins (~ddellacos@86.106.143.112)
06:12:32 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 272 seconds)
06:13:38 syd joins (~syd@212-51-141-103.fiber7.init7.net)
06:13:41 wei2912 joins (~wei2912@112.199.250.21)
06:13:42 <syd> Test message
06:13:44 <syd> Hi haskell peeps :D
06:16:20 × ddellacosta quits (~ddellacos@86.106.143.112) (Ping timeout: 272 seconds)
06:16:50 Bartosz joins (~textual@24.35.90.211)
06:17:51 × dy quits (~dy@user/dy) (Quit: ZNC 1.9.x-git-124-15e2351d - https://znc.in)
06:18:00 lortabac joins (~lortabac@2a01:e0a:541:b8f0:7d76:d843:3eda:de44)
06:18:45 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
06:18:55 × oxide quits (~lambda@user/oxide) (Ping timeout: 272 seconds)
06:19:00 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
06:19:21 dy joins (~dy@user/dy)
06:19:33 Guest9 joins (~Guest9@103.249.234.176)
06:21:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
06:22:02 × xkuru quits (~xkuru@user/xkuru) (Ping timeout: 272 seconds)
06:22:12 xkuru joins (~xkuru@user/xkuru)
06:26:00 cyphase joins (~cyphase@c-73-222-119-252.hsd1.ca.comcast.net)
06:26:42 × xkuru quits (~xkuru@user/xkuru) (Ping timeout: 264 seconds)
06:29:23 × yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection)
06:30:27 × awth13 quits (~user@user/awth13) (Read error: Connection reset by peer)
06:32:38 awth13 joins (~user@user/awth13)
06:33:57 chele joins (~chele@user/chele)
06:34:03 × xff0x quits (~xff0x@2001:1a81:523f:a800:4cc0:9163:93f1:ee4a) (Ping timeout: 244 seconds)
06:35:06 xff0x joins (~xff0x@2001:1a81:523f:a800:fe55:300e:7173:8c39)
06:35:27 × Guest9 quits (~Guest9@103.249.234.176) (Quit: Connection closed)
06:35:41 × ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Quit: Quit)
06:36:49 teaSlurper joins (~chris@81.96.113.213)
06:45:08 × TheRAt quits (~TheRAt@user/therat) (Quit: :))
06:45:34 TheRAt joins (~TheRAt@user/therat)
06:46:13 ddellacosta joins (~ddellacos@89.45.224.216)
06:48:15 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
06:51:10 × ddellacosta quits (~ddellacos@89.45.224.216) (Ping timeout: 272 seconds)
06:52:50 yd502 joins (~yd502@180.168.212.6)
06:55:26 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds)
06:55:42 × Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:57:30 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 244 seconds)
06:59:09 × Unode quits (~Unode@194.94.44.220) (Ping timeout: 268 seconds)
07:01:53 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:03:52 Unode joins (~Unode@194.94.44.220)
07:03:55 gehmehgeh joins (~user@user/gehmehgeh)
07:17:04 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:19:33 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
07:20:25 nsilv joins (~nsilv@host-82-50-119-12.retail.telecomitalia.it)
07:20:42 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 264 seconds)
07:21:11 warnz joins (~warnz@2600:1700:77c0:5610:a15e:288d:37ea:6878)
07:21:25 bfrk joins (~bfrk@200116b8458419008ef2b7070d67ad87.dip.versatel-1u1.de)
07:22:12 jespada joins (~jespada@90.254.242.55)
07:22:32 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:23:39 × beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 244 seconds)
07:24:45 fef joins (~thedawn@user/thedawn)
07:25:13 ackyshake joins (~ackyshake@user/ackyshake)
07:25:14 neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
07:26:00 × warnz quits (~warnz@2600:1700:77c0:5610:a15e:288d:37ea:6878) (Ping timeout: 272 seconds)
07:27:16 ddellacosta joins (~ddellacos@89.46.62.177)
07:27:50 ackyshake parts (~ackyshake@user/ackyshake) (Soupy Twist!)
07:29:56 × Nolrai quits (~Nolrai@c-76-27-202-218.hsd1.or.comcast.net) (Quit: Client closed)
07:30:15 × syd quits (~syd@212-51-141-103.fiber7.init7.net) (Quit: Client closed)
07:32:23 × ddellacosta quits (~ddellacos@89.46.62.177) (Ping timeout: 272 seconds)
07:33:40 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:33:59 × yd502 quits (~yd502@180.168.212.6) (Remote host closed the connection)
07:34:13 yd502 joins (~yd502@180.168.212.6)
07:38:49 pe200012 joins (~pe200012@58.248.179.134)
07:40:10 teaSlurper joins (~chris@81.96.113.213)
07:40:28 cfricke joins (~cfricke@user/cfricke)
07:40:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:40:57 alloca is now known as Oxytocin
07:47:15 benin0367 joins (~benin@106.198.88.131)
07:49:29 × benin036 quits (~benin@183.82.204.156) (Ping timeout: 244 seconds)
07:49:29 benin0367 is now known as benin036
07:53:54 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
07:56:24 × nsilv quits (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 244 seconds)
08:01:00 ddellacosta joins (~ddellacos@86.106.143.73)
08:02:18 nsilv joins (~nsilv@host-82-50-119-12.retail.telecomitalia.it)
08:03:04 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
08:05:11 × ddellacosta quits (~ddellacos@86.106.143.73) (Ping timeout: 244 seconds)
08:06:12 ccapndave joins (~ccapndave@84-73-232-220.dclient.hispeed.ch)
08:07:16 shryke_ joins (~shryke@190.43.6.93.rev.sfr.net)
08:08:32 hendursa1 joins (~weechat@user/hendursaga)
08:08:54 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
08:08:59 mpt joins (~tom@2a02:908:1862:49e0::5)
08:09:42 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
08:10:15 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
08:11:42 × shryke_ quits (~shryke@190.43.6.93.rev.sfr.net) (Ping timeout: 244 seconds)
08:11:45 bfrk parts (~bfrk@200116b8458419008ef2b7070d67ad87.dip.versatel-1u1.de) (Leaving)
08:12:01 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds)
08:12:13 × xff0x quits (~xff0x@2001:1a81:523f:a800:fe55:300e:7173:8c39) (Ping timeout: 244 seconds)
08:12:17 × nsilv quits (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds)
08:13:19 xff0x joins (~xff0x@2001:1a81:523f:a800:1801:e3aa:b378:ead6)
08:14:14 × ccapndave quits (~ccapndave@84-73-232-220.dclient.hispeed.ch) (Quit: Leaving...)
08:15:36 hegstal joins (~hegstal@2a02:c7f:7604:8a00:d648:1b69:add9:923)
08:16:02 × mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds)
08:16:14 × unyu quits (~pyon@user/pyon) (Ping timeout: 268 seconds)
08:16:58 unyu joins (~pyon@user/pyon)
08:17:41 × awschnap quits (~lavaman@98.38.249.169) (Remote host closed the connection)
08:17:57 lavaman joins (~lavaman@98.38.249.169)
08:17:59 nsilv joins (~nsilv@host-82-50-119-12.retail.telecomitalia.it)
08:18:05 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
08:21:47 flounders_ joins (~flounders@173.246.200.33)
08:23:08 wonko joins (~wjc@62.115.229.50)
08:23:38 × chaosite quits (~chaosite@user/chaosite) (Ping timeout: 272 seconds)
08:25:30 × flounders quits (~flounders@173.246.200.33) (Ping timeout: 264 seconds)
08:29:35 oxide joins (~lambda@user/oxide)
08:30:06 kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
08:32:43 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
08:36:54 × Jonno_FTW quits (~come@api.carswap.me) (Ping timeout: 264 seconds)
08:37:11 ddellacosta joins (~ddellacos@86.106.143.125)
08:38:22 delYsid joins (~user@zidpc777.tugraz.at)
08:38:27 × feetwind quits (~mike@user/feetwind) (Ping timeout: 272 seconds)
08:38:36 Jonno_FTW joins (~come@api.carswap.me)
08:39:01 feetwind joins (~mike@user/feetwind)
08:42:11 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 244 seconds)
08:42:15 × ddellacosta quits (~ddellacos@86.106.143.125) (Ping timeout: 272 seconds)
08:42:47 × delYsid quits (~user@zidpc777.tugraz.at) (Changing host)
08:42:47 delYsid joins (~user@user/delYsid)
08:43:44 × muto quits (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 244 seconds)
08:44:12 azeem joins (~azeem@176.200.254.249)
08:46:03 × nsilv quits (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds)
08:47:26 nschoe joins (~quassel@178.251.84.79)
08:47:55 fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
08:48:35 lavaman joins (~lavaman@98.38.249.169)
08:51:17 nsilv joins (~nsilv@host-82-50-119-12.retail.telecomitalia.it)
08:51:36 × benin036 quits (~benin@106.198.88.131) (Read error: Connection reset by peer)
08:53:24 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
08:53:50 benin036 joins (~benin@183.82.204.171)
08:54:37 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:57:50 × nsilv quits (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds)
08:59:34 nsilv joins (~nsilv@212.103.198.210)
08:59:50 cods joins (~fred@82-65-232-44.subs.proxad.net)
09:03:13 × yd502 quits (~yd502@180.168.212.6) (Read error: Connection reset by peer)
09:03:27 yd502 joins (~yd502@180.168.212.6)
09:05:57 × azeem quits (~azeem@176.200.254.249) (Ping timeout: 244 seconds)
09:06:23 dunkeln joins (~dunkeln@94.129.65.28)
09:07:16 <cheater> how can I do this in Haskell? https://pastebin.com/Dyjf11Gu
09:07:45 azeem joins (~azeem@176.200.200.250)
09:11:20 ddellacosta joins (~ddellacos@89.45.224.34)
09:11:58 n0db joins (~n0db@HSI-KBW-091-089-090-070.hsi2.kabelbw.de)
09:12:22 <nitrix> % do { xs <- ["a", "Bbb", "ccc", "EEE"]; ys <- ["bBb", "DDdD", "eeE"]; return (xs, ys, map toLower xs == map toLower ys) }
09:12:22 <yahb> nitrix: [("a","bBb",False),("a","DDdD",False),("a","eeE",False),("Bbb","bBb",True),("Bbb","DDdD",False),("Bbb","eeE",False),("ccc","bBb",False),("ccc","DDdD",False),("ccc","eeE",False),("EEE","bBb",False),("EEE","DDdD",False),("EEE","eeE",True)]
09:13:14 <nitrix> Lists are monads and they chain (>>=) by combining each of their elements together, exactly like your two nested loops.
09:13:47 <nitrix> You can use `do` notation, the `>>=` operator or even a list comprehension. All are pretty readable.
09:16:27 × ddellacosta quits (~ddellacos@89.45.224.34) (Ping timeout: 272 seconds)
09:17:13 <cheater> that's incorrect. you are matching the keys incorrectly.
09:17:19 <cheater> or rather the values.
09:17:26 <cheater> EEE should be compared with eeE.
09:17:37 <cheater> and Bbb with bBb.
09:18:08 <cheater> oh, i see what you're doing
09:18:30 <cheater> so how do I know to include "a" but also to include "bBb" and not "Bbb"?
09:22:05 <nitrix> It would need to return the first comparison that is successful instead of all the comparisons. You can return a list of a single String, like [String] and concatenate them all, or use Maybe String and use that monad instead (catMaybes, >>=, whatever).
09:22:14 nsilv1 joins (~nsilv@host-82-50-119-12.retail.telecomitalia.it)
09:22:28 <cheater> i don't know how i would do that. it's a bit confusing.
09:22:35 <cheater> also... it all looks pretty inelegant
09:22:35 × nsilv quits (~nsilv@212.103.198.210) (Ping timeout: 272 seconds)
09:23:06 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 264 seconds)
09:23:34 <nitrix> Or literally translate your code to haskell. For the map, do a map, for the for+if+return do a filter+headSafe.
09:24:02 × pe200012 quits (~pe200012@58.248.179.134) (Ping timeout: 244 seconds)
09:24:20 pe200012 joins (~pe200012@183.63.73.36)
09:24:33 <nitrix> One sec.
09:24:57 dunkeln joins (~dunkeln@94.129.65.28)
09:25:18 ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
09:25:26 × brian_da_mage quits (~Neuromanc@user/briandamag) (Ping timeout: 252 seconds)
09:27:45 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
09:28:42 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
09:29:24 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds)
09:30:02 <nitrix> % let xs = ["a", "Bbb", "ccc", "EEE"]; ys = ["bBb", "DDdD", "eeE"] in map (\e -> listToMaybe $ catMaybes $ map (\f -> if map toLower e == map toLower f then Just f else Nothing ) ys) xs
09:30:03 <yahb> nitrix: [Nothing,Just "bBb",Nothing,Just "eeE"]
09:30:16 <nitrix> It's pretty unreadable as a one-liner.
09:31:03 <nitrix> And you can probably use the nicer abstractions for manipulating the [String] and Maybe String.
09:32:10 <nitrix> I would be more useful if I had used Haskell more recently :P
09:33:25 <cheater> nitrix: also it doesn't include "a" or "ccc"
09:34:10 <nitrix> Oh you have return x at the end.
09:34:11 kenran joins (~kenran@b2b-37-24-119-190.unitymedia.biz)
09:37:09 <Rembane> > let xs = ["a", "Bbb", "ccc", "EEE"]; ys = ["bBb", "DDdD", "eeE"] in [x | x <- xs, y <- ys, toLower x == toLower y]
09:37:11 <lambdabot> error:
09:37:11 <lambdabot> • Couldn't match expected type ‘Char’ with actual type ‘[Char]’
09:37:11 <lambdabot> • In the first argument of ‘toLower’, namely ‘x’
09:37:16 × fef quits (~thedawn@user/thedawn) (Ping timeout: 252 seconds)
09:38:48 <Rembane> > let xs = ["a", "Bbb", "ccc", "EEE"]; ys = ["bBb", "DDdD", "eeE"] in [x | x <- xs, y <- ys, map toLower x == map toLower y]
09:38:48 <nitrix> That'll be like the first version I posted. He wants the first element from the second list that matches the current element from the first list (the matching is case insensitive, but the result needs to be sensitive).
09:38:49 <lambdabot> ["Bbb","EEE"]
09:39:29 <Rembane> Oh
09:39:35 <nitrix> And, no matches is treated successfully too, it's a bit of an odd one.
09:39:41 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
09:40:15 <Rembane> Interesting
09:40:21 <nitrix> I think I would write a recursive function and pattern match it at this point. It's not very general :/
09:40:40 <Rembane> +1
09:44:42 × dixie_ quits (~dixie@real.wilbury.sk) (Ping timeout: 272 seconds)
09:45:06 ddellacosta joins (~ddellacos@86.106.143.151)
09:45:13 × fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 244 seconds)
09:46:06 × n0db quits (~n0db@HSI-KBW-091-089-090-070.hsi2.kabelbw.de) (Quit: Client closed)
09:46:39 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
09:46:47 <nitrix> The nasty for loop needs to be a fold I think.
09:47:32 fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
09:48:20 <Rembane> nitrix: Isn't it a filter of some sort?
09:50:01 × ddellacosta quits (~ddellacos@86.106.143.151) (Ping timeout: 272 seconds)
09:50:09 jakzale joins (uid499518@id-499518.charlton.irccloud.com)
09:50:24 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
09:50:27 <nitrix> Mhhh, a filter with a default.
09:51:02 × nsilv1 quits (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds)
09:51:08 <Rembane> fromMaybe is good with defaults
09:57:10 <cheater> <nitrix> That'll be like the first version I posted. He wants the first element from the second list that matches the current element from the first list (the matching is case insensitive, but the result needs to be sensitive). < nope. if the second list doesn't contain a matching element, then we use the element from the first list.
09:58:03 × azeem quits (~azeem@176.200.200.250) (Ping timeout: 272 seconds)
09:59:22 azeem joins (~azeem@176.200.200.250)
09:59:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
10:00:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:01:08 <nitrix> I'm playing with the getFirst monoid.
10:01:22 <teaSlurper> @haskell let x = 2
10:01:23 <lambdabot> https://www.haskellers.com/
10:01:40 <teaSlurper> can you write haskell in this chat ?
10:01:54 <teaSlurper> is there like an intrepreter?
10:02:07 ph88 joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de)
10:02:14 <teaSlurper> @haskell 1 + 2
10:02:15 <lambdabot> https://www.haskellers.com/
10:02:23 <Rembane> > 1 + 2
10:02:25 <lambdabot> 3
10:02:31 <teaSlurper> > 1 + 1
10:02:33 <lambdabot> 2
10:02:37 <teaSlurper> thx
10:02:50 <sshine> % "this one also"
10:02:50 <yahb> sshine: "this one also"
10:02:55 <teaSlurper> > 1 : 2
10:02:57 <lambdabot> [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2...
10:03:11 <teaSlurper> that's not right is it?
10:03:13 <sshine> % 1 : 2
10:03:13 <yahb> sshine: ; <interactive>:83:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
10:03:30 <sshine> I'm not sure why lambdabot does that.
10:03:54 × pe200012 quits (~pe200012@183.63.73.36) (Ping timeout: 264 seconds)
10:03:57 pe200012_ joins (~pe200012@120.236.161.38)
10:04:17 <teaSlurper> % 1 : 2
10:04:17 <yahb> teaSlurper: ; <interactive>:86:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
10:04:26 <teaSlurper> % 1 : [2]
10:04:26 <yahb> teaSlurper: [1,2]
10:04:30 <sshine> % subsequences "wat"
10:04:30 <yahb> sshine: ["","w","a","wa","t","wt","at","wat"]
10:04:45 <teaSlurper> i have a question
10:04:57 <teaSlurper> why does this little function work...
10:05:17 <teaSlurper> % let f x = x : f x in f 1
10:05:23 <yahb> teaSlurper: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
10:05:39 <teaSlurper> and this doesn't
10:05:40 <teaSlurper> :
10:05:47 <teaSlurper> % 1 : 1
10:05:48 <yahb> teaSlurper: ; <interactive>:1:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
10:05:53 <sshine> :t (:)
10:05:54 <lambdabot> a -> [a] -> [a]
10:06:09 <sshine> the (:) constructor expects the right-hand side to be a list. in '1 : 1', the second 1 is not a list.
10:06:27 <teaSlurper> my function shouldn't work though right?
10:06:34 <sshine> in 'let f x = x : f x in f 1', the right-hand side of ':' is 'f x' which is a list.
10:06:54 <sshine> it happens to be an infinite list, but those are okay in Haskell.
10:07:11 <sshine> % let xs = [1,2..] in take 10 xs
10:07:11 <yahb> sshine: [1,2,3,4,5,6,7,8,9,10]
10:07:20 <Rembane> :t let f x = x : f x in f 1
10:07:21 <lambdabot> Num t => [t]
10:07:46 <teaSlurper> there's no part of my function that has a list in it?
10:08:03 <sshine> teaSlurper, yes there is. 'x : f x' is a list
10:08:18 <sshine> teaSlurper, also, because 'x : f x' is a list, so is 'f x', because of recursion.
10:08:34 <teaSlurper> 1 : 1 : 1
10:08:37 Guest5851 joins (~Guest58@ti0182q160-6494.bb.online.no)
10:08:40 <teaSlurper> % 1 : 1 : 1
10:08:40 <yahb> teaSlurper: ; <interactive>:3:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
10:08:41 <sshine> % 1 : 1 : 1 : []
10:08:42 <yahb> sshine: [1,1,1]
10:08:58 <teaSlurper> but at no point do i specify []?
10:09:12 <sshine> the right-hand side of (:) needs to be a list. I recommend you read the chapter of LYAH on lists: http://learnyouahaskell.com/starting-out#an-intro-to-lists
10:09:40 <sshine> teaSlurper, that's right, lists can be infinite, and [] would mark the ending of a list. so not all lists have a [] at the far right.
10:09:49 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
10:09:54 <sshine> teaSlurper, also. not all lists contain a ':' either.
10:10:53 <sshine> teaSlurper, also, #haskell-beginners :) (not to dissuade you from asking questions here, but this channel is also active.)
10:11:15 yd502 joins (~yd502@180.168.212.6)
10:11:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
10:11:27 <dminuoso> teaSlurper: the key to realize is that `1 : 1 : 1 ..` associates as 1 : (1 : (...))
10:11:47 <sshine> Ó_ò
10:12:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:13:52 <dminuoso> Compare that to the peano construction of natural numbers
10:14:00 <dminuoso> % data Nat = Succ Nat | Nil
10:14:00 <yahb> dminuoso:
10:14:42 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 264 seconds)
10:16:09 <dminuoso> let x = Succ (Succ (Succ Nil))
10:16:11 <dminuoso> % let x = Succ (Succ (Succ Nil))
10:16:11 <yahb> dminuoso:
10:17:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
10:17:44 <teaSlurper> thx dminuoso
10:17:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:18:36 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
10:20:08 <teaSlurper> thx sshine
10:21:14 <teaSlurper> % 1 : (1 : (...))
10:21:14 <yahb> teaSlurper: ; <interactive>:7:10: error:; * Couldn't match expected type: [a]; with actual type: LensLike f0 s0 t0 c0 c0 -> Over p0 f0 c0 c0 a0 b0 -> Over p0 f0 s0 t0 a0 b0; * Probable cause: `(...)' is applied to too few arguments; In the second argument of `(:)', namely `(...)'; In the second argument of `(:)', namely `(1 : (...))'; In the expression: 1 : (1 : (...));
10:21:48 ddellacosta joins (~ddellacos@86.106.143.73)
10:23:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
10:23:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:24:04 <siers> can I have a haddock named paragraph (like -- $paragraph) but in multiline comments?
10:24:05 <dminuoso> teaSlurper: you can use undefined as a placeholder. :)
10:24:24 <dminuoso> % x :: [Int]; x = (1 : (2 : (3 : [])))
10:24:25 <yahb> dminuoso:
10:24:34 <dminuoso> % x
10:24:35 <yahb> dminuoso: [1,2,3]
10:24:51 <dminuoso> % :t (:)
10:24:52 <yahb> dminuoso: a -> [a] -> [a]
10:26:45 × ddellacosta quits (~ddellacos@86.106.143.73) (Ping timeout: 244 seconds)
10:27:16 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds)
10:27:45 × Guest5851 quits (~Guest58@ti0182q160-6494.bb.online.no) (Quit: Client closed)
10:28:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
10:29:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:29:42 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:29:53 <teaSlurper> dminuoso: is (...) actually some sort of haskell thing though? infinity operator or something?
10:29:59 <teaSlurper> ...
10:30:11 <teaSlurper> under the hood it used that or?
10:32:38 <dminuoso> No, that was just my informal way of phrasing "more stuff goes here"
10:33:21 <dminuoso> Though, confusingly, .. actually exists here
10:33:24 <dminuoso> % [1..5]
10:33:24 <yahb> dminuoso: [1,2,3,4,5]
10:33:27 <dminuoso> But that is unrelated.
10:34:01 <teaSlurper> but under the hood haskell is deciding to count infinity as a list?
10:34:11 <teaSlurper> or class infinity as a list
10:34:41 <dminuoso> What do you mean by `infinity`?
10:34:52 <teaSlurper> (...)
10:34:56 <dminuoso> 12:32:37 dminuoso | No, that was just my informal way of phrasing "more stuff goes here"
10:35:06 × azeem quits (~azeem@176.200.200.250) (Ping timeout: 264 seconds)
10:35:35 azeem joins (~azeem@176.200.200.250)
10:36:01 <teaSlurper> so in the infinite expression does haskell inert a []?
10:36:10 <teaSlurper> insert*
10:36:27 <[exa]> it can't, the infinity is too far
10:37:18 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:38:12 shredder joins (~shredder@42-2-58-147.static.netvigator.com)
10:38:30 yd502 joins (~yd502@180.168.212.6)
10:38:37 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
10:38:52 × jneira quits (~jneira@212.8.115.226) (Quit: Client closed)
10:40:03 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
10:40:32 <dminuoso> teaSlurper: Just do manual expansion
10:40:46 <dminuoso> Haskell evaluation can be understood if you just do manual expansion yourself.
10:41:04 × benin036 quits (~benin@183.82.204.171) (Ping timeout: 272 seconds)
10:41:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:41:29 <teaSlurper> you mean on paper?
10:41:34 <teaSlurper> unfolding it?
10:41:49 <teaSlurper> like 1 : (1 : (1 : (...)))
10:42:12 <dminuoso> let f x = x : f x in f 1
10:42:15 <dminuoso> f 1 = 1 : f 1
10:42:18 <dminuoso> = 1 : 1 : f 1
10:42:21 <dminuoso> = 1 : 1 : 1 : f1
10:42:26 <dminuoso> ad infinitum.
10:42:44 <teaSlurper> ahh i see ye
10:42:58 <teaSlurper> that's called manual expansion is it?
10:43:42 <dminuoso> It's an informal term I just used. If you ever want to understand how something works, you can just manually replace expressions by their definitions, binding values correctly.
10:44:10 <dminuoso> This works mostly fine as long as we ignore lazyness.
10:45:15 jneira joins (~jneira@212.8.115.226)
10:45:24 <dminuoso> % let f x = x : f x in take 10 (f 1)
10:45:24 <yahb> dminuoso: [1,1,1,1,1,1,1,1,1,1]
10:46:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
10:46:54 zaquest joins (~notzaques@5.128.210.178)
10:46:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:48:08 <dminuoso> This works because (f 1) is not evaluated ad-infinitum like I suggested above, it's rather that GHC evaluates only as far as it needs. But it can chase this list down as far as you want.
10:48:45 <dminuoso> So something like `length (f 1)` will diverge, `length` essentially counts the elements until it finds a []
10:48:59 <dminuoso> % let f x = x : f x in length (f 1)
10:49:04 <yahb> dminuoso: [Timed out]
10:49:33 benin036 joins (~benin@183.82.204.171)
10:51:31 × jneira_ quits (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed)
10:54:06 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:55:53 <teaSlurper> dminuoso: so something to do with lazy computation?
10:56:47 <teaSlurper> evaluation*
10:57:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
10:58:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:58:10 brian_da_mage joins (~Neuromanc@user/briandamag)
10:59:46 ddellacosta joins (~ddellacos@86.106.143.151)
11:00:46 mpt joins (~tom@2a02:908:1862:49e0::5)
11:03:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
11:03:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:04:16 <dminuoso> Yes.
11:04:23 dunkeln joins (~dunkeln@94.129.65.28)
11:04:30 × ddellacosta quits (~ddellacos@86.106.143.151) (Ping timeout: 264 seconds)
11:05:06 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 264 seconds)
11:05:23 × nschoe quits (~quassel@178.251.84.79) (Ping timeout: 272 seconds)
11:10:30 × mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 264 seconds)
11:12:59 × azeem quits (~azeem@176.200.200.250) (Ping timeout: 272 seconds)
11:13:00 <siers> where can I feed seconds since epoch to Date.Time.Format?
11:13:43 azeem joins (~azeem@176.200.200.250)
11:14:16 <siers> it certainly looks like I can't
11:15:51 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
11:20:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:20:09 larkfisherman joins (~larkfishe@217.75.204.126)
11:20:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:21:17 <cdsmith> Let's play: am I reinventing the wheel! I've been building a type called `Predicate`, which is basically "a -> Bool, but explainable". Has a Show instance, and I'm about to add the ability to explain why it fails to match. e.g., if you compare two large Text values, it might show a diff instead of printing the whole value. Anyone know of prior art for this?
11:21:29 <cdsmith> This is for a testing tool, btw
11:25:08 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
11:25:54 dixie joins (~dixie@real.wilbury.sk)
11:26:38 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
11:28:30 × larkfisherman quits (~larkfishe@217.75.204.126) (Quit: Leaving)
11:28:39 fef joins (~thedawn@user/thedawn)
11:30:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
11:31:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:36:18 × azeem quits (~azeem@176.200.200.250) (Ping timeout: 244 seconds)
11:36:25 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
11:37:32 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
11:37:42 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
11:38:26 azeem joins (~azeem@176.201.22.245)
11:38:32 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection)
11:38:51 ddellacosta joins (~ddellacos@86.106.121.190)
11:42:55 nsilv1 joins (~nsilv@212.103.198.210)
11:43:32 × ddellacosta quits (~ddellacos@86.106.121.190) (Ping timeout: 244 seconds)
11:50:59 × azeem quits (~azeem@176.201.22.245) (Ping timeout: 272 seconds)
11:51:44 × pbrisbin quits (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 252 seconds)
11:51:59 nschoe joins (~quassel@178.251.84.79)
11:54:54 azeem joins (~azeem@176.201.22.245)
11:55:45 zyklotomic joins (~ethan@2604:a880:800:10::79f:8001)
11:57:29 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds)
11:58:57 <zyklotomic> is there a way to deduce a type from a variable? i'm not sure if this is a language extension for it
11:59:12 <zyklotomic> https://gist.github.com/zyklotomic/d1e7eb54e74ea53dcb9a5f616d362dc8 here is an example of where i'm trying to do that
12:00:10 <zyklotomic> *if there is
12:00:25 <merijn> zyklotomic: Ah, you want ScopedTypeVariables
12:00:43 <merijn> zyklotomic: That lets you refer to type variables from your top-level signature in the body
12:00:57 <merijn> so you can do "minBound :: a" with 'a' being equal to the 'a' in the top level type
12:01:07 <merijn> @where user-guide
12:01:07 <lambdabot> I know nothing about user-guide.
12:01:12 <merijn> @where userguide
12:01:12 <zyklotomic> merijn: ah thank you, appreciate it
12:01:12 <lambdabot> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/
12:01:19 henninb joins (~user@63.226.174.157)
12:01:25 <merijn> GHC User Guide should have a section explaining the extensio
12:02:03 <zyklotomic> the hard part is knowing how to explain specific niche use cases lol, and just the gut feeling there probably is an extension for it
12:03:33 <merijn> zyklotomic: If you have an 'a' available there's also
12:03:35 <merijn> :t asTypeOf
12:03:37 <lambdabot> a -> a -> a
12:03:47 <merijn> > minBound `asTypeOf` True
12:03:49 <lambdabot> False
12:03:53 <merijn> > minBound `asTypeOf` 'c'
12:03:55 <lambdabot> '\NUL'
12:04:41 <merijn> zyklotomic: Basically, asTypeOf is just const (i.e. returns first argument), but the type signature of asTypeOf lets you guide type inference with the second value
12:04:50 × oxide quits (~lambda@user/oxide) (Read error: Connection reset by peer)
12:05:49 <merijn> Although, looking at your example, probably ScopedTypeVariables is a better/easier solution
12:05:59 <merijn> Since you don't actually have an 'a' available
12:06:48 <merijn> zyklotomic: otoh, if you're just gonna apply a function to it, you might not even need that
12:06:56 <merijn> :t [minBound .. maxBound]
12:06:57 <lambdabot> (Bounded a, Enum a) => [a]
12:07:09 <merijn> :t map isDigit [minBound .. maxBound]
12:07:10 <lambdabot> [Bool]
12:07:15 <merijn> > map isDigit [minBound .. maxBound]
12:07:17 <lambdabot> [False,False,False,False,False,False,False,False,False,False,False,False,Fal...
12:07:34 dunkeln joins (~dunkeln@94.129.65.28)
12:07:50 <merijn> zyklotomic: So if you're gonna just apply the function from your CountMap to the resulting list, you don't even need the type, it will just be inferred
12:08:48 oxide joins (~lambda@user/oxide)
12:09:08 × kenran quits (~kenran@b2b-37-24-119-190.unitymedia.biz) (Quit: WeeChat info:version)
12:11:11 × henninb quits (~user@63.226.174.157) (Remote host closed the connection)
12:11:20 ddellacosta joins (~ddellacos@89.45.224.73)
12:11:50 derelict joins (~derelict@user/derelict)
12:12:14 jakalx parts (~jakalx@base.jakalx.net) ()
12:16:05 × ddellacosta quits (~ddellacos@89.45.224.73) (Ping timeout: 244 seconds)
12:21:18 × azeem quits (~azeem@176.201.22.245) (Ping timeout: 264 seconds)
12:21:36 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:21:56 azeem joins (~azeem@176.201.22.245)
12:22:43 × shredder quits (~shredder@42-2-58-147.static.netvigator.com) (Changing host)
12:22:43 shredder joins (~shredder@user/shredder)
12:24:54 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds)
12:25:52 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:27:28 × nschoe quits (~quassel@178.251.84.79) (Ping timeout: 272 seconds)
12:27:58 × shredder quits (~shredder@user/shredder) (Ping timeout: 244 seconds)
12:28:16 haskman joins (~haskman@223.190.124.48)
12:28:24 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
12:32:21 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
12:33:46 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
12:34:29 × azeem quits (~azeem@176.201.22.245) (Ping timeout: 272 seconds)
12:34:49 azeem joins (~azeem@176.201.22.245)
12:34:54 <xsperry> > filter isDigit [minBound .. maxBound]
12:34:56 <lambdabot> "0123456789"
12:35:27 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
12:36:32 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
12:36:49 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
12:38:15 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
12:38:53 teaSlurper joins (~chris@81.96.113.213)
12:39:46 nschoe joins (~quassel@178.251.84.79)
12:39:56 pbrisbin joins (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
12:42:17 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
12:42:33 ddellacosta joins (~ddellacos@86.106.143.229)
12:44:29 shapr joins (~user@pool-108-28-144-11.washdc.fios.verizon.net)
12:47:26 × ddellacosta quits (~ddellacos@86.106.143.229) (Ping timeout: 268 seconds)
12:49:17 × azeem quits (~azeem@176.201.22.245) (Ping timeout: 268 seconds)
12:49:55 azeem joins (~azeem@176.201.22.245)
12:52:44 × fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Remote host closed the connection)
12:53:00 jakalx joins (~jakalx@base.jakalx.net)
12:53:21 <merijn> > filter isNumber [minBound .. maxBound]
12:53:23 <lambdabot> "0123456789\178\179\185\188\189\190\1632\1633\1634\1635\1636\1637\1638\1639\...
12:53:26 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
12:53:26 <merijn> oh, wait
12:53:30 <merijn> > text filter isNumber [minBound .. maxBound]
12:53:31 <lambdabot> error:
12:53:32 <lambdabot> • Couldn't match expected type ‘(Char -> Bool) -> [a1] -> t’
12:53:32 <lambdabot> with actual type ‘Doc’
12:53:40 <merijn> > text $ filter isNumber [minBound .. maxBound] -- third time's the charm
12:53:41 <lambdabot> 0123456789²³¹¼½¾٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯৴৵৶৷৸৹੦੧੨੩...
12:55:20 zebrag joins (~chris@user/zebrag)
12:56:40 <dminuoso> zyklotomic: So there's two parts at work. One, ScopedTypeVariables arguably should have been the default behavior from the beginning.
12:57:00 <dminuoso> Secondly, minBound/maxBound should require a Proxy as argument like many other things that don't.
12:57:10 × jneira quits (~jneira@212.8.115.226) (Quit: Client closed)
12:57:28 <dminuoso> (sizeOf is an even better example)
12:59:06 × zebrag quits (~chris@user/zebrag) (Client Quit)
12:59:33 dudek joins (~dudek@185.150.236.112)
13:01:15 alx741 joins (~alx741@186.178.108.66)
13:02:18 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
13:02:35 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds)
13:04:51 larkfisherman joins (~larkfishe@217.75.204.126)
13:05:12 × euandreh quits (~euandreh@2804:14c:33:9fe5:add0:1e4f:5044:d502) (Remote host closed the connection)
13:05:36 euandreh joins (~euandreh@2804:14c:33:9fe5:b257:2b:ea5f:da94)
13:05:58 shredder joins (~shredder@user/shredder)
13:06:44 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
13:07:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
13:07:47 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
13:08:06 Tritlo joins (~Tritlo@h-155-4-130-185.NA.cust.bahnhof.se)
13:11:06 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 240 seconds)
13:11:58 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
13:14:04 <merijn> dminuoso: I mean, proxy seems irrelevant here
13:14:15 melivia joins (~seph@sephistication.plus.com)
13:14:25 <merijn> dminuoso: Since his question was about "how do I get the type?", proxy only works if you already have that type
13:15:12 kadobanana is now known as mud
13:15:20 Tritlo_ joins (sid58727@id-58727.stonehaven.irccloud.com)
13:15:44 × delYsid quits (~user@user/delYsid) (Remote host closed the connection)
13:16:17 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:16:50 teaSlurper joins (~chris@81.96.113.213)
13:18:53 reumeth joins (~reumeth@user/reumeth)
13:19:49 yd502 joins (~yd502@2409:891e:320:209e:f515:1951:1076:cda6)
13:19:52 Tritlo parts (~Tritlo@h-155-4-130-185.NA.cust.bahnhof.se) ()
13:20:05 × Tritlo_ quits (sid58727@id-58727.stonehaven.irccloud.com) ()
13:20:06 × teaSlurper quits (~chris@81.96.113.213) (Read error: Connection reset by peer)
13:20:10 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
13:20:25 Tritlo_ joins (sid58727@id-58727.stonehaven.irccloud.com)
13:20:28 teaSlurper joins (~chris@81.96.113.213)
13:20:32 Tritlo_ is now known as Tritlo
13:20:36 × Tritlo quits (sid58727@id-58727.stonehaven.irccloud.com) (Client Quit)
13:20:47 Tritlo joins (sid58727@id-58727.stonehaven.irccloud.com)
13:21:05 jakalx parts (~jakalx@base.jakalx.net) ()
13:21:23 × Tritlo quits (sid58727@id-58727.stonehaven.irccloud.com) (Client Quit)
13:21:36 Tritlo joins (sid58727@id-58727.stonehaven.irccloud.com)
13:21:37 hendursaga joins (~weechat@user/hendursaga)
13:21:40 dunkeln joins (~dunkeln@94.129.65.28)
13:23:28 ddellacosta joins (~ddellacos@86.106.143.203)
13:25:06 × melivia quits (~seph@sephistication.plus.com) (Quit: leaving)
13:26:13 zebrag joins (~chris@user/zebrag)
13:28:25 × ddellacosta quits (~ddellacos@86.106.143.203) (Ping timeout: 265 seconds)
13:28:28 ixlun joins (~matthew@213.205.241.86)
13:30:29 Guest9 joins (~Guest9@103.249.234.176)
13:31:26 × yd502 quits (~yd502@2409:891e:320:209e:f515:1951:1076:cda6) (Ping timeout: 272 seconds)
13:32:17 <ixlun> Hi all, has anyone had issues with line editing in GHCi?
13:32:28 <ixlun> I'm using 8.10.5 GHC on apple silicon
13:32:47 <maerwald> what does line editing mean
13:33:12 <ixlun> For example, pressing Ctrl-a to take you to the beginning of the line
13:34:31 <ixlun> I think it uses GNU readline under the hood
13:34:53 × haskman quits (~haskman@223.190.124.48) (Quit: Going to sleep. ZZZzzz…)
13:35:16 <maerwald> ctrl-a does odd things for me
13:35:35 <maerwald> but I have no idea if that is supposed to work on darwin
13:35:42 haskman joins (~haskman@223.190.124.48)
13:36:57 <ixlun> Are you on an X86 or arm64 machine?
13:37:04 <maerwald> arm64
13:37:16 <Hecate> am I hallucinating or is this an effect system in the rust std_lib? https://blog.sunfishcode.online/introducing-cap-std/
13:37:58 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:37:59 <maerwald> looks like a syscall sandbox
13:38:13 <ixlun> maerwald: Okay, thanks for the info. Good to know that it's not just my system. I might raise a bug on the GHC gitlab.
13:38:19 <merijn> ghci uses haskeline
13:38:44 <merijn> Which is a Haskell implementation that mimics readline. But it doesn't use readline
13:38:56 <ixlun> Ahh, I didn't know that
13:39:06 <ixlun> It does such a good job, I thought it was readline!
13:39:11 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
13:39:13 <merijn> It's quite nice to work with
13:39:24 <merijn> Have been using it with custom completion logic, etc.
13:39:41 listofoptions joins (~haha@nat.syssrc.com)
13:40:36 <ixlun> I might try and create a small program that uses it on my system and see if I can replicate the problem. If so, I guess there would be a bug in haskeline
13:43:06 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 240 seconds)
13:43:51 involans joins (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
13:43:57 × larkfisherman quits (~larkfishe@217.75.204.126) (Quit: Leaving)
13:46:05 <merijn> Could be, or an issue with terminfo, etc.
13:46:07 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
13:46:50 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
13:47:07 × haskman quits (~haskman@223.190.124.48) (Quit: QUIT)
13:47:32 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
13:50:38 × ixlun quits (~matthew@213.205.241.86) (Read error: Connection reset by peer)
13:50:57 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
13:51:14 warnz joins (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956)
13:52:35 × azeem quits (~azeem@176.201.22.245) (Ping timeout: 265 seconds)
13:52:54 azeem joins (~azeem@176.201.22.245)
13:53:18 chddr joins (~Thunderbi@31.148.23.125)
13:53:42 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:54:27 × berberman quits (~berberman@user/berberman) (Ping timeout: 244 seconds)
13:54:29 berberman_ joins (~berberman@user/berberman)
13:54:42 × Guest9 quits (~Guest9@103.249.234.176) (Ping timeout: 240 seconds)
13:54:51 qbt joins (~edun@user/edun)
13:55:30 × warnz quits (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Ping timeout: 240 seconds)
13:56:30 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
13:56:49 × wonko quits (~wjc@62.115.229.50) (Remote host closed the connection)
13:57:40 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
13:58:43 × sekun quits (~sekun@180.190.156.133) (Ping timeout: 272 seconds)
13:59:06 Sgeo joins (~Sgeo@user/sgeo)
13:59:18 ddellacosta joins (~ddellacos@89.45.224.112)
13:59:42 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
14:00:12 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
14:00:45 egoist joins (~egoist@186.235.82.46)
14:00:54 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
14:01:14 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:02:44 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 265 seconds)
14:03:57 fluffyballoon joins (~fluffybal@2620:72:0:6480::10f7)
14:04:11 × ddellacosta quits (~ddellacos@89.45.224.112) (Ping timeout: 265 seconds)
14:04:12 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
14:04:31 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:04:55 × egoist quits (~egoist@186.235.82.46) (Client Quit)
14:05:08 egoist joins (~egoist@186.235.82.46)
14:05:37 etherington joins (~nagybogo@2a02:c7f:d425:9500:3ec0:37eb:211a:4131)
14:07:05 × egoist quits (~egoist@186.235.82.46) (Client Quit)
14:07:19 egoist joins (~egoist@186.235.82.46)
14:08:19 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
14:09:10 × egoist quits (~egoist@186.235.82.46) (Client Quit)
14:10:41 warnz joins (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956)
14:13:07 <cheater> any idea what "issues" he was experiencing?
14:13:48 <cheater> because haskeline is buggy as hell with ctrl-keys and i reported it typing a when you hold ctrl-a. i think i reported that like 10 years ago. it hasn't been fixed yet.
14:14:25 econo joins (uid147250@user/econo)
14:15:18 × warnz quits (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Ping timeout: 265 seconds)
14:16:39 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
14:17:16 <siraben> What's the easiest way to sort strings in a locale-sensitive manner?
14:17:23 <siraben> I'm maintaining a list of items https://github.com/siraben/freenode-exodus/pull/112/files and sorting ö against other characters seems to put it in an odd place
14:18:33 eagleflo joins (~aku@eagleflow.fi)
14:18:42 <siraben> Ideally this should not need anything outside of the base libraries
14:19:38 warnz joins (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956)
14:19:39 <geekosaur> siraben, I think base only supports Unicode codepoint sorting and you need an external libary *and* a locale to do better
14:20:05 <siraben> I found https://hackage.haskell.org/package/rfc5051
14:20:52 egoist joins (~egoist@186.235.82.46)
14:21:07 LukeHoersten joins (~LukeHoers@user/lukehoersten)
14:22:04 <geekosaur> https://hackage.haskell.org/package/text-icu
14:23:38 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
14:24:17 ixlun joins (~matthew@213.205.241.86)
14:24:21 jakalx joins (~jakalx@base.jakalx.net)
14:24:23 fef joins (~thedawn@user/thedawn)
14:25:54 × chddr quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
14:25:57 × _73 quits (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Ping timeout: 272 seconds)
14:26:07 <merijn> siraben: The "correct" sorting depends on your locale
14:26:11 _73`` joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
14:26:21 <merijn> siraben: And text-icu is going to be the only correct answer
14:26:32 × neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds)
14:26:57 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
14:27:08 <Profpatsch> Is there a way to tell cabal to run tests in interactive mode?
14:27:36 <siraben> merijn: how would I construct parsers for Text using parser combinators?
14:27:39 <Profpatsch> The “compile -> compile tests -> link test binaries -> run once -> restart” cycle is not very nice
14:27:39 <dminuoso> Profpatsch: you can just build the tests and run them directly
14:27:41 <merijn> Profpatsch: "cabal run" works on tests
14:27:51 <siraben> One issue I run into is when parsing `many1 anyChar`, I have to re-pack into text
14:27:59 <Profpatsch> merijn: linking still takes multiple seconds
14:27:59 <merijn> siraben: megaparsec supports Text
14:28:04 × sayola quits (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) (Read error: Connection reset by peer)
14:28:11 <merijn> (as input)
14:28:16 <dminuoso> Profpatsch: Do you have stripping enabled?
14:28:26 <Profpatsch> merijn: I don’t see why test runners couldn’t just run in interactive mode
14:28:34 <siraben> bah, I guess I'll have to add dependencies then
14:28:53 <dminuoso> Profpatsch: You cant get around linking irrespective of whether you use `cabal test` or `cabal run`.
14:28:59 <Profpatsch> yeah
14:29:22 <dminuoso> Also, you can run tests from `cabal repl` if that helps
14:29:23 <merijn> Profpatsch: What does interactive mode mean?
14:29:31 <Profpatsch> ghci
14:29:42 ikex joins (~ash@user/ikex)
14:30:00 <Profpatsch> Maybe I should just run them in ghci
14:30:01 <dminuoso> Oh, I see. You want it to run through ghci to avoid the slower compilation process from building a binary? :p
14:30:09 Tritlo is now known as tritlo
14:30:11 <dminuoso> `cabal repl` is your friend.
14:30:13 <sclv> i'd actually want this feature too -- for a Work Project not only is linking tests slow, but on macos in particular it actually fails because too many symbols for stupid apple linkerr
14:30:25 × hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection)
14:30:33 <sclv> running in ghci is feasible of course, but less convenieent
14:31:02 × _73`` quits (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Remote host closed the connection)
14:31:02 <Profpatsch> dminuoso: is there a way to automate `cabal repl` short of just piping text to stdin?
14:31:40 <sclv> oh btw while i'm here is there a pexpect/pxssh library alike for haskell i can use out of the box?
14:31:56 <dminuoso> Mmm, a `cabal run --ghci` doesnt sound unreasonable, honestly
14:32:01 ddellacosta joins (~ddellacos@83.143.246.104)
14:32:24 <Profpatsch> I guess what I want to do is have something like a ghci start as a service and my test suite just executing symbols in it
14:32:27 <sclv> need to drive a bunch of concurrent ssh sessions from haskell and not looking forward to doing all the grotty bits myself directly on top of system.process
14:32:29 <dminuoso> Profpatsch: You can use ghci
14:32:31 <merijn> Profpatsch: You can just do "cabal repl test:test-name" ?
14:32:32 <dminuoso> err ghcid
14:32:38 <dminuoso> ghcid can then call `cabal repl`
14:32:42 <dminuoso> and invoke your test suite
14:32:48 <Profpatsch> hmm
14:33:44 tritlo is now known as Falla-Matti
14:34:13 Falla-Matti is now known as tritlo
14:34:25 pavonia joins (~user@user/siracusa)
14:35:04 hendursaga joins (~weechat@user/hendursaga)
14:35:40 <dminuoso> Does runghc use the bytecode interpreter?
14:37:12 × ddellacosta quits (~ddellacos@83.143.246.104) (Ping timeout: 268 seconds)
14:37:12 <merijn> I think si
14:37:37 <geekosaur> yes
14:38:09 larkfisherman joins (~larkfishe@217.75.204.126)
14:42:47 <dminuoso> There'd have to be a bit of engineering. For starters runghc would need response file support.
14:42:48 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
14:43:20 × azeem quits (~azeem@176.201.22.245) (Ping timeout: 265 seconds)
14:45:12 Guest91 joins (~Guest91@p200300f4c70f24004558d010706c3ebd.dip0.t-ipconnect.de)
14:45:20 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:45:39 × Guest91 quits (~Guest91@p200300f4c70f24004558d010706c3ebd.dip0.t-ipconnect.de) (Client Quit)
14:45:54 dunkeln joins (~dunkeln@94.129.65.28)
14:45:55 _73 joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
14:47:28 × fef quits (~thedawn@user/thedawn) (Ping timeout: 252 seconds)
14:47:51 fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
14:49:26 × chexum quits (~chexum@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
14:49:37 chexum joins (~chexum@gateway/tor-sasl/chexum)
14:50:10 azeem joins (~azeem@176.201.22.245)
14:50:29 × fiddlerwoaroof quits (~fiddlerwo@user/fiddlerwoaroof) (Quit: Gone.)
14:51:34 × kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection)
14:51:51 fiddlerwoaroof joins (~fiddlerwo@user/fiddlerwoaroof)
14:53:49 <siraben> given a parse tree by cmark (for markdown parsing), how can I get all the list items?
14:54:02 fef joins (~thedawn@user/thedawn)
14:54:03 <siraben> is this something suitable for lens? I'm trying recursion schemes right now and it seems awkward to express as a catamorphism
14:55:07 ef joins (~thedawn@user/thedawn)
14:55:08 × ef quits (~thedawn@user/thedawn) (Client Quit)
14:55:43 fendor_ is now known as fendor
14:55:45 <c_wraith> how do you want nested lists to be handled?
14:56:01 _73 parts (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (ERC (IRC client for Emacs 27.2))
14:56:09 <siraben> c_wraith: assume no nested lists
14:56:43 <c_wraith> that sounds like an implausible assumption, but ok. :P
14:56:48 <siraben> there's a flat list of items somewhere in the markdown file, and I want to get the items in order
14:57:02 <siraben> c_wraith: the list is https://github.com/siraben/freenode-exodus/ :P
14:57:19 <siraben> currently I have an ad-hoc parser for it which doesn't handle locales well
14:57:21 <c_wraith> This is a thing you can do with lenses, but you need them to be written
14:57:25 <sshine> siraben, "I'm trying recursion schemes right now and it seems awkward to express as a catamorphism" -- they should put that in the reviews.
14:58:18 <siraben> sshine: haha, the difficulty is that as I'm going down the node tree I'm looking for different types of nodes, first a LIST, then an ITEM
14:58:28 × fef quits (~thedawn@user/thedawn) (Ping timeout: 252 seconds)
14:58:44 <sshine> yea :)
14:58:50 <sshine> paramorphism
14:59:29 <sshine> https://hackage.haskell.org/package/recursion-schemes-5.2.2.1/docs/Data-Functor-Foldable.html#v:para
14:59:51 muto joins (~muto@d75-159-225-7.abhsia.telus.net)
15:00:10 × fluffyballoon quits (~fluffybal@2620:72:0:6480::10f7) (Quit: Client closed)
15:00:43 × larkfisherman quits (~larkfishe@217.75.204.126) (Remote host closed the connection)
15:02:14 <sshine> I had this idea that recursion-schemes would be neat if you wrote your original tree as a fixed point type, and then wrote a whole lot of convenience patterns and values so you get an unwrapped experience, too. then you'd be able to have nice patterns when doing explicit matching/building, and still some generic traversal.
15:02:55 <c_wraith> yeah, I've done that. it ends up with a lot of boilerplate if you're not using it a *lot*
15:02:58 <sshine> my one attempt with data-fix made me a little tired, though. >_<
15:03:07 <siraben> Oh god now I'm reading into unicode normalization
15:03:14 <siraben> all I wanted was to sort ö nicely 😭
15:03:18 × abrar_ quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 264 seconds)
15:03:36 <c_wraith> well, the good thing is you can just let text-icu handle all of that for you
15:04:27 <sshine> siraben, the cmark/cmark-gfm AST doesn't provide an ordered list?
15:04:45 <siraben> c_wraith: I want to sort strings but that requires me to talk about normalization and locales
15:04:57 × nschoe quits (~quassel@178.251.84.79) (Ping timeout: 268 seconds)
15:05:12 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1)
15:05:18 <sshine> siraben, just sort on casefold? ;-D
15:05:18 × azeem quits (~azeem@176.201.22.245) (Read error: Connection reset by peer)
15:05:40 <sshine> squint :: Char -> Char
15:05:46 ddellacosta joins (~ddellacos@86.106.121.177)
15:05:59 <siraben> hmm, ok, I'll just continue with the naïve sort in Data.List, not ideal but this is a silly little list that doesn't need other dependencies haha
15:06:04 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
15:06:49 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:08:31 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
15:10:09 Sgeo_ joins (~Sgeo@ool-18b9875e.dyn.optonline.net)
15:10:18 × ddellacosta quits (~ddellacos@86.106.121.177) (Ping timeout: 240 seconds)
15:10:20 aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
15:10:24 listofoptions_ joins (~haha@nat.syssrc.com)
15:10:47 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
15:11:12 gentauro joins (~gentauro@user/gentauro)
15:11:35 ixlun- joins (~matthew@213.205.241.86)
15:12:40 berberman joins (~berberman@user/berberman)
15:12:42 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 240 seconds)
15:13:17 allbery_b joins (~geekosaur@xmonad/geekosaur)
15:13:34 reumeth2 joins (~reumeth@user/reumeth)
15:13:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
15:13:43 pbrisbin_ joins (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
15:13:43 ikex1 joins (~ash@user/ikex)
15:14:00 muto_ joins (~muto@d75-159-225-7.abhsia.telus.net)
15:14:13 shapr` joins (~user@pool-108-28-144-11.washdc.fios.verizon.net)
15:15:02 <c_wraith> siraben: for what it's worth, use Normal Form C unless you have a specific requirement to use something else
15:15:03 × berberman_ quits (~berberman@user/berberman) (Ping timeout: 265 seconds)
15:15:03 × ixlun quits (~matthew@213.205.241.86) (Ping timeout: 265 seconds)
15:15:03 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Ping timeout: 265 seconds)
15:15:03 × ikex quits (~ash@user/ikex) (Ping timeout: 265 seconds)
15:15:03 × pbrisbin quits (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 265 seconds)
15:15:03 × muto quits (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 265 seconds)
15:15:03 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)
15:15:03 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 265 seconds)
15:15:03 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 265 seconds)
15:15:03 × listofoptions quits (~haha@nat.syssrc.com) (Ping timeout: 265 seconds)
15:15:03 × alx741 quits (~alx741@186.178.108.66) (Ping timeout: 265 seconds)
15:15:03 × shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
15:15:03 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds)
15:15:04 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 265 seconds)
15:15:04 × zebrag quits (~chris@user/zebrag) (Ping timeout: 265 seconds)
15:15:04 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 265 seconds)
15:15:11 shapr` is now known as shapr
15:15:14 LukeHoer_ joins (~LukeHoers@user/lukehoersten)
15:15:25 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1)
15:15:28 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:15:41 zebrag joins (~chris@user/zebrag)
15:16:35 alx741 joins (~alx741@186.178.108.66)
15:17:39 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Client Quit)
15:17:53 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1)
15:18:26 allbery_b is now known as geekosaur
15:18:43 × NanoC quits (~NanoCoast@p200300e127264d0058cc7c623629969e.dip0.t-ipconnect.de) (Quit: Leaving)
15:19:03 × shredder quits (~shredder@user/shredder) (Remote host closed the connection)
15:19:06 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Client Quit)
15:19:21 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1)
15:20:58 neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
15:21:28 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
15:23:30 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds)
15:25:00 <Profpatsch> Why is it executable and library but Test-Suite
15:25:05 <Profpatsch> can we finally burn this format to the ground
15:26:12 × derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.1)
15:26:28 zmt00 joins (~zmt00@user/zmt00)
15:26:37 <tomsmeding> Profpatsch: at least the capitals are unnecessary; test-suite also works
15:26:41 learner-monad joins (~ehanneken@user/learner-monad)
15:26:56 <tomsmeding> and also grammatically, it's a "test suite" not a testsuite, so it makes sense kindof :p
15:27:22 <tomsmeding> there's also build-depends and such
15:27:36 derelict joins (~derelict@user/derelict)
15:30:24 × cstml quits (cstml@tilde.club) (Quit: WeeChat 3.1)
15:30:24 × ddb quits (~ddb@2607:5300:61:c67::196) (Quit: WeeChat 3.0)
15:31:49 × benin036 quits (~benin@183.82.204.171) (Quit: The Lounge - https://thelounge.chat)
15:36:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:38:36 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
15:38:56 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:40:51 × fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 265 seconds)
15:41:54 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
15:42:08 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:7d76:d843:3eda:de44) (Quit: WeeChat 2.8)
15:43:15 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
15:43:26 sekun joins (~sekun@180.190.156.133)
15:43:36 lbseale joins (~lbseale@user/ep1ctetus)
15:44:01 <monochrom> type-class
15:44:49 <monochrom> But why the proliferation of such hyperboles tho
15:44:59 sayola joins (~vekto@dslc-082-082-145-205.pools.arcor-ip.net)
15:45:21 <monochrom> If someone can't find a parser library they want, they say "I THREAT to create a library I need"
15:45:46 <monochrom> If someone doesn't like a spelling, they say "can we burn this format to ground"
15:46:54 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
15:49:09 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
15:49:21 × sekun quits (~sekun@180.190.156.133) (Ping timeout: 268 seconds)
15:49:48 fef joins (~thedawn@user/thedawn)
15:50:37 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
15:50:37 × ixlun- quits (~matthew@213.205.241.86) (Read error: Connection reset by peer)
15:54:55 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
15:55:06 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Quit: WeeChat 3.2)
15:55:37 jao joins (jao@gateway/vpn/protonvpn/jao)
15:57:26 × LukeHoer_ quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:57:34 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
15:57:44 × xff0x quits (~xff0x@2001:1a81:523f:a800:1801:e3aa:b378:ead6) (Ping timeout: 244 seconds)
15:58:32 xff0x joins (~xff0x@2001:1a81:523f:a800:1537:97ed:971:4698)
15:59:20 × ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
16:00:27 × ikex1 quits (~ash@user/ikex) (Ping timeout: 268 seconds)
16:00:30 × nsilv1 quits (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1)
16:01:25 <Profpatsch> watch me generate a cabal file, with all transitive packages from my nix closure in scope
16:01:33 <Profpatsch> So that I never have to add `containers` to my cabal files ever again
16:02:22 <Profpatsch> and curse the weird syntax with no editor support, the strange indentation, the common stanzas not supported by hie
16:03:02 [exa] grabs popcorn
16:04:02 <c_wraith> So let's guess on how it's going to break first. Some transitive dependency on monads-tf? Or is that not an issue that happens anymore these days?
16:07:20 vicfred joins (~vicfred@user/vicfred)
16:08:08 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
16:08:20 <c_wraith> in theory there could be an issue with multiple versions of the same package, but I don't think that will ever happen in practice. As much as all the tools are intended to not break in that case, no solvers will intentionally do it
16:09:03 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:09:37 LukeHoersten joins (~LukeHoers@user/lukehoersten)
16:09:39 <Boarders> I am getting a build error with cabal that says:
16:09:39 <Boarders> rejecting: bytestring-0.11.1.0 (conflict: binary =>
16:09:39 <Boarders> bytestring==0.10.12.1/installed-0.10.12.1)
16:10:06 <Boarders> does anyone know why that might be the case since binary doesn't have those bounds on bytestring
16:10:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:11:15 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Client Quit)
16:11:18 <monochrom> No, it is something else that requests bytestring-0.11
16:11:49 <monochrom> but you already have bytestring-0.10.12.1 that comes with GHC.
16:12:30 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
16:12:49 <Boarders> I am trying to ask for bytestring-0.11.1.0 with ghc-9.0.1
16:12:55 <Boarders> is there an issue with that?
16:13:58 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
16:14:23 <Boarders> if so how are you meant to figure out the correct version of bytestring for a given GHC version?
16:14:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
16:15:18 ddellacosta joins (~ddellacos@89.45.224.251)
16:15:25 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b)
16:15:25 <maerwald> Boarders: https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history
16:15:45 <Boarders> Actually I get the error even if I just do:
16:15:45 <Boarders> cabal install --with-compiler=ghc-9.0.1 --lib bytestrinng
16:15:50 <Boarders> what gives with that?
16:16:54 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) (Client Quit)
16:17:03 × pe200012_ quits (~pe200012@120.236.161.38) (Ping timeout: 244 seconds)
16:17:10 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b)
16:18:00 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) (Client Quit)
16:19:30 × ddellacosta quits (~ddellacos@89.45.224.251) (Ping timeout: 240 seconds)
16:19:43 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b)
16:21:03 <Boarders> as far as I can tell, if the cabal store contains a newer version of bytestring than the boot library then that completely messes up installation
16:22:25 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
16:27:08 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
16:27:32 <Boarders> I am trying to build with the llvm backend on a new machine and I get a bunch of errors like:
16:27:32 <Boarders> undefined reference to 'bytestringzm0zi10zi12zi0_DataziByteStringziInternal_PS_con_info'
16:27:57 <Boarders> I think that is probably something to do with not having something related to libc, anyone know how to fix it?
16:28:07 sekun joins (~sekun@180.190.156.133)
16:28:14 <Boarders> Thanks maerwald btw!
16:28:51 fluffyballoon joins (~fluffybal@2620:72:0:6480::10f7)
16:29:19 altern joins (~altern@altern.corbina.com.ua)
16:30:25 <[exa]> Boarders: did you carry any of the binaries from the older machine? this sounds fishy
16:32:33 × sekun quits (~sekun@180.190.156.133) (Ping timeout: 244 seconds)
16:32:58 Topsi joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
16:33:05 <[exa]> btw bytestringzm0zi10... doesn't sound like from libc at all
16:36:42 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:36:50 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
16:37:06 arjun joins (~user@user/arjun)
16:37:13 <altern> johnw_, Hi John! I want to contribute to gitlib, but I rather lack expertise. Would you be able to guide me? If you have time and inclination of course.
16:37:27 <arjun> SUPER OVERLOADED QUESTION
16:37:35 <arjun> lenses. yay or nay ?
16:37:38 <Boarders> @[exa]: ah thank you, I was being dumb. An old object file was lying around so GHC wasn't re-compiling :)
16:37:38 <lambdabot> Unknown command, try @list
16:37:55 xaltsc joins (~xaltsc@user/xaltsc)
16:42:34 × warnz quits (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Remote host closed the connection)
16:42:46 <cdsmith> Ugh... I need something like generalized newtype deriving, but for a GADT with a constraint in the context. :(
16:47:14 <monochrom> Since GADT is very unlike newtype, I don't know what "like" means, I only know what "unlike" means.
16:47:34 <monochrom> But there is standalone deriving.
16:48:02 <monochrom> err actually I don't know whehter standalone deriving works for GADT.
16:48:11 <tomsmeding> it does
16:48:19 <tomsmeding> or, at least sometimes it does
16:48:19 <monochrom> Nice.
16:48:40 <monochrom> I kind of have some memory of someone else suggesting it.
16:48:42 <tomsmeding> I regularly use it to derive Show for some GADT, each time wondering why a plain 'deriving (Show)' can't do the same
16:51:01 × qbt quits (~edun@user/edun) (Ping timeout: 268 seconds)
16:52:24 ddellacosta joins (~ddellacos@89.45.224.34)
16:52:34 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection)
16:53:08 × chexum quits (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection)
16:55:20 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
16:57:18 × ddellacosta quits (~ddellacos@89.45.224.34) (Ping timeout: 264 seconds)
16:58:03 warnz joins (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956)
16:59:48 × neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds)
16:59:56 × killsushi quits (~killsushi@user/killsushi) (Ping timeout: 244 seconds)
17:02:18 × warnz quits (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Ping timeout: 240 seconds)
17:02:24 <cdsmith> What "like" means here is that I have a GADT like this: data MockT m a where MockT :: MonadIO m => ReaderT (MVar Foo) m a -> MockT m a. Now I'd like to derive most of the instances on ReaderT for MockT. MockT is almost a newtype, but cannot be because it needs the MonadIO constraint.
17:03:36 <cdsmith> So there are 14 instances that are currently derived, but I need to write by hand to add that constraint.
17:03:58 <cdsmith> I can write them... I'm just a bit annoyed at having to do so. :)
17:05:57 memowe joins (~memowe@ip-84-118-82-47.unity-media.net)
17:06:09 mrd joins (~mrd@45.61.147.211)
17:06:26 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 268 seconds)
17:06:30 mrd parts (~mrd@45.61.147.211) ()
17:06:36 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
17:07:40 × memowe quits (~memowe@ip-84-118-82-47.unity-media.net) (Client Quit)
17:07:50 × tritlo quits (sid58727@id-58727.stonehaven.irccloud.com) (Changing host)
17:07:50 tritlo joins (sid58727@user/tritlo)
17:09:39 zeenk joins (~zeenk@188.26.30.39)
17:09:51 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
17:10:46 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
17:11:25 Erutuon joins (~Erutuon@user/erutuon)
17:14:09 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
17:14:49 teaSlurper joins (~chris@81.96.113.213)
17:15:06 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 240 seconds)
17:15:25 <tritlo> Boarders: that's a known bug in when using bytestring and some other library using the same ffi function, but at a different type
17:16:17 <tritlo> At least that's what it was when I ran into a similar thing 2 years ago using the LLVM backend...
17:18:55 ddellacosta joins (~ddellacos@89.46.62.21)
17:19:27 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 265 seconds)
17:19:48 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
17:20:30 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:22:05 dunkeln joins (~dunkeln@94.129.65.28)
17:22:45 LukeHoersten joins (~LukeHoers@user/lukehoersten)
17:23:17 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
17:25:12 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.1)
17:27:43 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:28:38 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 268 seconds)
17:29:01 jakalx parts (~jakalx@base.jakalx.net) ()
17:30:15 azeem joins (~azeem@176.201.22.245)
17:33:41 fef joins (~thedawn@user/thedawn)
17:36:45 × azeem quits (~azeem@176.201.22.245) (Read error: Connection reset by peer)
17:37:40 Guest21 joins (~Guest21@46.204.1.2.dsl.dynamic.t-mobile.pl)
17:37:58 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
17:38:12 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:42:06 × Guest21 quits (~Guest21@46.204.1.2.dsl.dynamic.t-mobile.pl) (Client Quit)
17:42:13 × MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Quit: Client limit exceeded: 10000)
17:44:33 × ac quits (~aloiscoch@2001:470:69fc:105::65) (Quit: Client limit exceeded: 10000)
17:46:12 Wonner joins (~Wonner@h77.53.21.98.static.ip.windstream.net)
17:46:18 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 240 seconds)
17:47:08 killsushi joins (~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11)
17:47:08 × killsushi quits (~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11) (Changing host)
17:47:08 killsushi joins (~killsushi@user/killsushi)
17:48:40 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:49:29 Topsi1 joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
17:50:03 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
17:53:03 × Topsi quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
17:53:40 <Boarders> tritlo: ahh thanks, it was something to do with the store having two copies of bytestring in it :|
17:53:40 ac joins (~aloiscoch@2001:470:69fc:105::65)
17:53:40 MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22)
17:54:59 <arjun> hi. i have a .md file and i'd like to read the file and parse the top optional yaml metadata if present
17:55:09 <arjun> ```md
17:55:15 LukeHoersten joins (~LukeHoers@user/lukehoersten)
17:55:19 chddr joins (~Thunderbi@31.148.23.125)
17:55:28 ptrcmd_ is now known as ptrcmd
17:55:39 <arjun> ---
17:55:39 <arjun> title: "Sample Post"
17:55:40 <arjun> author: Me
17:55:40 <arjun> date: Jan 1, 2019
17:55:42 <arjun> tags: [dope, site]
17:55:47 <arjun> description: My first blog post
17:55:50 <arjun> image: code.jpg
17:55:53 <arjun> ---
17:55:55 <arjun>
17:55:58 <dminuoso> cdsmith: Drop the constraint from the data type.
17:55:58 <arjun> # This is a test file
17:56:01 <arjun>
17:56:04 <arjun> ## to see if it works
17:56:08 <arjun>
17:56:11 <arjun> ```
17:56:12 <pragma-> what in tarnation
17:56:15 <Obo> use https://paste.tomsmeding.com to paste code
17:56:17 <arjun> how would i go about it?
17:56:20 <arjun> thanks.
17:56:32 warnz joins (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956)
17:56:46 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds)
17:56:55 <monochrom> I only know the broad answer "use the library part of pandoc".
17:57:05 × notzmv quits (~zmv@user/notzmv) (Read error: Connection reset by peer)
17:57:44 <arjun> Obo: https://paste.tomsmeding.com/I9tE2bBu
17:58:02 <arjun> monochrom: i am actively trying to avoid pandoc : P
17:58:44 <arjun> i am using cmark for the md -> html conversion. but it doesn't parse the yaml meta at the top. so i'd have to preprocess it.
17:59:27 notzmv joins (~zmv@user/notzmv)
18:01:03 × peddie quits (~peddie@2001:470:69fc:105::25d) (Quit: Client limit exceeded: 10000)
18:01:30 ixlun joins (~matthew@213.205.241.86)
18:03:38 ec joins (~ec@gateway/tor-sasl/ec)
18:06:35 <cdsmith> <dminuoso "Chris Smith: Drop the constraint"> Thanks, but the whole point of this is that I need the constraint. (Well, "need" is a strong word. I can hack something together with unsafePerformIO otherwise, but's pretty hacky.)
18:07:02 <dminuoso> That sounds to me like you're trying to be lazy.
18:07:25 peddie joins (~peddie@2001:470:69fc:105::25d)
18:07:34 <dminuoso> If your newtype has a MonadIO instance, why do you think you need this?
18:07:36 cfricke joins (~cfricke@user/cfricke)
18:08:00 <dminuoso> arjun: just use Data.List.break to split the lines into the header and the rest?
18:08:26 Profpatsch parts (~Profpatsc@static.88-198-193-255.clients.your-server.de) (WeeChat 3.1)
18:08:49 <dminuoso> naively it seems like you should be able to do something like: let ls = lines buf; (meta, rest) = break (isPrefixOf "```") (drop ls); in ...
18:09:39 <arjun> dminuoso: imma go try that, thanks
18:09:41 <dminuoso> Then you can hand off `drop 1 meta` to your YAML parser, and `rest` to whatever other part.
18:09:55 <dminuoso> or no, `init meta`
18:09:58 SrPx joins (sid108780@id-108780.highgate.irccloud.com)
18:10:08 <davean> cdsmith: putting the MonadIO constraint *in* the type has a number of potential issues
18:10:28 <SrPx> Hey, I haven't used IRC lately. Is this where everyone moved from FreeNode? Or are people using other tools like Discord?
18:10:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:10:44 <monochrom> Yes for the former.
18:10:47 <dminuoso> cdsmith: Also I dont think it actually buys you anything.
18:10:59 <davean> dminuoso: mechanically no, its strictly wrose to have it there
18:11:07 <davean> dminuoso: but people get "upset" about putting it on functions
18:11:07 <dminuoso> yup
18:11:17 <davean> until they make it work, and then realize why no one thinks its a good iea
18:11:24 <davean> Its wrong - semanticly
18:11:30 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Quit: Client limit exceeded: 10000)
18:11:38 jakalx joins (~jakalx@base.jakalx.net)
18:11:38 <dminuoso> Indeed, it took me a long while to understand why constraints dont belong on data, they belong on functions.
18:11:41 <davean> it doesn't mean what you want it to mean
18:12:06 maralorn joins (~maralorn@2001:470:69fc:105::251)
18:13:21 × etherington quits (~nagybogo@2a02:c7f:d425:9500:3ec0:37eb:211a:4131) (Quit: Client closed)
18:13:46 <dminuoso> davean: I think what this is, is a reminiscence of dependency injection at data instantiation time.
18:13:46 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:c958:4e9b:6898:197c)
18:14:51 × cyphase quits (~cyphase@c-73-222-119-252.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
18:15:01 <davean> dminuoso: mmm, yah, I could see how someone could pattern match it from another language, but we have coherence
18:15:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
18:15:22 × altern quits (~altern@altern.corbina.com.ua) (Ping timeout: 244 seconds)
18:16:01 fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26)
18:16:05 <cdsmith> <dminuoso "If your newtype has a MonadIO in"> Actually, you may be write. Perhaps MonadIO should be in the instance context instead.
18:16:09 × siraben quits (~siraben@user/siraben) (Quit: issued !quit command)
18:16:13 <cdsmith> Err, right, not write
18:16:16 <tomsmeding> just for completeness, the sentiment that one shouldn't put constraints in data doesn't hold when we start having existentials, right?
18:16:31 <dminuoso> tomsmeding: Right.
18:16:45 tomsmeding has been doing lots of that lately
18:17:07 <cdsmith> Yeah, this isn't a constraint on the type. It's a contraint of a GADT constructor
18:17:07 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer)
18:17:08 <davean> tomsmeding: yah thats ENTIRELY different
18:17:10 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:17:18 <dminuoso> cdsmith: it is a constraint on the type.
18:17:21 <davean> tomsmeding: because thats actually a constraint
18:17:31 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:17:42 siraben joins (~siraben@user/siraben)
18:17:45 azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
18:17:49 <tomsmeding> davean: right; and including the dictionary in the data is actually the right thing to do there, operationally
18:18:02 <dminuoso> cdsmith: I invite you to just remove the MonadIO constraint from your data type definition, and perhaps switch to just a simple newtype.
18:18:10 <cdsmith> <dminuoso "Chris Smith: it is a constraint "> Not sure what you're referring to. I wrote: data MockT m a where MockT :: MonadIO m => ReaderT (MVar Foo) m a -> MockT m a
18:18:27 <cdsmith> which is clearly a GADT constraint, not a type constraint
18:18:29 <zyklotomic> dminuoso: "Secondly, minBound/maxBound should require a Proxy as argument like..." wait sorry late response, what does Proxy mean here
18:19:11 <cdsmith> In either case, though, I do think I can move the constraint to the instance, instead
18:19:12 <monochrom> This (read on for irony) is what's wrong with pronouns like this and it.
18:19:16 <dminuoso> cdsmith: Just write it as `newtype MockT m a = MockT { runMockT :: ReaderT (MVar Foo) m a }`
18:19:20 <tomsmeding> cdsmith: I think dminuoso is saying that it should, morally, be a type constraint; this regardless of the fact that it's currently a constraint on the GADT constructor
18:20:07 <dminuoso> cdsmith: You can then GND derive a MonadIO instance, and then you can liftIO freely inside `MockT m` as long as you have `MonadIO m`
18:20:18 × fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 240 seconds)
18:21:27 <cdsmith> <dminuoso "Chris Smith: You can then GND de"> Sure, I'm doing that. Again, the key part that was missing was moving the constraint to the instance. I can't just delete the constraint.
18:21:49 <dminuoso> Ah I see.
18:21:54 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds)
18:22:17 <dminuoso> cdsmith: If you GND derive it, the constraints is there automatically. :)
18:22:36 <dminuoso> (Because the MonadIO instance from ReaderT brings it along)
18:22:49 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Read error: No route to host)
18:23:01 <dminuoso> instance MonadIO m => MonadIO (ReaderT r m)
18:23:07 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
18:23:19 dminuoso loves newtype + GND
18:23:27 × ddellacosta quits (~ddellacos@89.46.62.21) (Read error: Connection reset by peer)
18:23:39 <cdsmith> <dminuoso "Chris Smith: If you GND derive i"> Okay, I think we're just talking at cross purposes. Suppose there's some other class, like `class MonadFoo m where {...}`. I need `instance MonadIO m => MonadFoo (MockT m) where {...}`. I'd previously been trying to get THAT MonadIO constraint by adding it to the GADT, but it belongs on the instance
18:23:56 ddellacosta joins (~ddellacos@89.46.62.21)
18:24:25 <dminuoso> cdsmith: If all MonadFoo demands it, make it a superclass of it.
18:24:34 <dminuoso> i.e. `class MonadIO m => MonadFoo m where ...`
18:24:44 <dminuoso> Is this what you were looking for?
18:24:47 <cdsmith> Well, no. MonadFoo doesn't need it. The implementation for MockT does
18:25:01 <dminuoso> There is no implementation for MockT.
18:25:03 rk04 joins (~rk04@user/rajk)
18:25:10 <dminuoso> It's just a newtype, in what I showed you
18:25:20 <cdsmith> Sure there is. I'm confused...
18:25:23 adam1 joins (~adam@2a02:8388:1903:9500:96e6:f7ff:fe92:4825)
18:25:44 shelle joins (~shelle@ip-96-43-230-90.dsl.netrevolution.com)
18:25:45 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
18:26:08 <cdsmith> Okay, I'm thoroughly confused by how we're miscommunicating, but adding MonadIO to the instance context should solve me problem, so I'm going to do that! :)
18:26:48 Topsi joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
18:27:19 Topsi2 joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
18:27:33 <lyxia> In the Haskell report, the grammar is explicitly ambiguous, with the "meta-rule" that let/if/lambdas "extend as far to the right as possible". Is the reason for this presentation to "make the spec simpler"? Because I find interpreting that rule to implement it correctly a bit of a headache...
18:28:18 × chddr quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
18:28:33 Guest36 joins (~Guest36@149.11.92.90)
18:28:46 × adam1 quits (~adam@2a02:8388:1903:9500:96e6:f7ff:fe92:4825) (Client Quit)
18:28:51 <monochrom> I was not on the committee, but I think yes.
18:29:06 <lyxia> I think I found an unambiguous grammar for it and honestly it doesn't look that terrible, so now I'm wondering why the less formal approach.
18:29:07 × Topsi1 quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 244 seconds)
18:29:45 × pbrisbin_ quits (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Quit: WeeChat 3.1)
18:30:00 pbrisbin joins (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
18:30:57 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:31:21 <cdsmith> <lyxia "I think I found an unambiguous g"> Sounds interesting. I hope you share the result. If it is better, it might be good to incorporate into a future Haskell Report!
18:31:23 × Topsi quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 244 seconds)
18:32:01 <cdsmith> (should one ever exist... but that's a different point)
18:32:09 <tomsmeding> dminuoso: "the implementation for MockT" being "the implementation of this MonadFoo class for MockT" I think
18:32:22 altern joins (~altern@altern.corbina.com.ua)
18:32:27 cfricke joins (~cfricke@user/cfricke)
18:32:52 <tomsmeding> more concisely "the instance for MockT"
18:34:25 × dunkeln quits (~dunkeln@94.129.65.28) (Quit: leaving)
18:36:10 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:37:33 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
18:38:14 Deewiant_ joins (~deewiant@2001:470:69fc:105::2fd3)
18:38:19 × Guest36 quits (~Guest36@149.11.92.90) (Quit: Connection closed)
18:39:07 <cdsmith> <tomsmeding "more concisely "the instance for"> Yes. To summarize, MonadIO is needed by the MonadFoo instance for MockT. I can't add MonadIO as a superclass of MonadFoo, because I don't own it. I *could* add MonadFoo to the context of the (one and only) GADT constructor, but that breaks newtype deriving and is more complex than needed. Adding MonadFoo to the instance context for that one MonadFoo instance was the right answer.
18:39:18 × killsushi quits (~killsushi@user/killsushi) (Quit: Leaving)
18:41:01 qbt joins (~edun@user/edun)
18:41:54 groucho joins (~user@dynamic-adsl-78-14-24-41.clienti.tiscali.it)
18:42:00 groucho parts (~user@dynamic-adsl-78-14-24-41.clienti.tiscali.it) ()
18:43:11 Topsi joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
18:43:49 davetapley joins (sid666@id-666.highgate.irccloud.com)
18:43:56 LukeHoersten joins (~LukeHoers@user/lukehoersten)
18:45:47 × rk04 quits (~rk04@user/rajk) (Quit: rk04)
18:46:42 × the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Quit: Client limit exceeded: 10000)
18:46:53 × Topsi2 quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 244 seconds)
18:47:11 Codaraxis joins (~Codaraxis@s13490149139.blix.com)
18:50:22 jakalx parts (~jakalx@base.jakalx.net) ()
18:55:03 × listofoptions_ quits (~haha@nat.syssrc.com) (Quit: Leaving)
18:55:16 listofoptions_ joins (~haha@nat.syssrc.com)
18:55:25 × arjun quits (~user@user/arjun) (Remote host closed the connection)
18:55:40 × listofoptions_ quits (~haha@nat.syssrc.com) (Client Quit)
18:56:02 Guest9 joins (~Guest9@103.250.137.187)
18:56:18 listofoptions joins (~haha@nat.syssrc.com)
18:58:05 × jophish quits (~jophish@2001:470:69fc:105::670) (Quit: Client limit exceeded: 10000)
18:58:23 ordinate joins (~ordinate@c-68-38-144-3.hsd1.in.comcast.net)
18:58:29 <ordinate> good afternoon
18:59:04 dudek_ joins (~dudek@185.150.236.112)
18:59:31 iDead joins (~iDead@254.142.71.148.rev.vodafone.pt)
18:59:33 <janus> GREETINGS ORDINATE
18:59:34 <iDead> where is the error?
18:59:35 <iDead> q :: (Integer, (Integer -> Integer, Integer -> Integer)) -> (Integer, Integer)
18:59:36 <iDead> q (h, (t1, t2)) = (split (add . (id >< ((uncurry (.)) . swap))) (succ.p2.p2)) (h , (t1,t2))
19:00:03 the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f)
19:00:04 <ordinate> greetings!
19:00:15 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.1)
19:00:17 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 10000)
19:00:22 justsomeguy joins (~justsomeg@user/justsomeguy)
19:00:29 <glguy> iDead: it doesn't look like you pasted the error message
19:00:30 <iDead> can anyone find the error there?
19:00:50 <ordinate> the error is that you have a function with that typesig
19:01:11 <janus> what is >< ?
19:01:12 <iDead> glguy Couldn't match type ‘a -> c’ with ‘Integer’
19:01:13 <iDead> Expected type: (Integer, (a -> b, b -> c)) -> (Integer, Integer)
19:01:13 <iDead> Actual type: (Integer, (a -> b, b -> c)) -> (Integer, a -> c)
19:01:24 <iDead> it's a split
19:01:36 <janus> what is p2?
19:01:39 jophish joins (~jophish@2001:470:69fc:105::670)
19:01:49 <iDead> p2 = second
19:02:00 <janus> % :t second
19:02:01 <yahb> janus: Arrow a => a b c -> a (d, b) (d, c)
19:02:05 <iDead> snd*
19:02:22 × dudek quits (~dudek@185.150.236.112) (Ping timeout: 268 seconds)
19:02:23 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
19:02:41 jakalx joins (~jakalx@base.jakalx.net)
19:03:37 × Sgeo_ quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Quit: Leaving)
19:03:46 <janus> i think i'll side with ordinate, what is the point of writing a point-freeish function and then wondering when it turns out to be hard to decipher?
19:03:47 Sgeo joins (~Sgeo@user/sgeo)
19:03:52 <glguy> succ.p2.p2 should probably be p2.p2.succ, then?
19:04:34 <glguy> err
19:04:42 <glguy> p2 (p2 succ)?
19:05:02 × leah2 quits (~leah@vuxu.org) (Quit: trotz alledem!)
19:05:13 leah2 joins (~leah@vuxu.org)
19:05:48 Aleci[m] joins (~alecilibr@2001:470:69fc:105::32e7)
19:05:58 <ordinate> actually this reminds me of something i wanted to know
19:06:12 kayprish joins (~kayprish@46.240.143.86)
19:06:15 <ordinate> whats the way to check if two values are the same type
19:06:34 <ordinate> say f x y = True if both x and y share the same type
19:07:08 <iDead> glguy it's was error in the "fetch", thanks for the help =)
19:07:08 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:07:11 jneira_ joins (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net)
19:07:45 LukeHoersten joins (~LukeHoers@user/lukehoersten)
19:07:53 × abbie quits (~abbie@user/abbie) (Quit: Bye!)
19:07:54 × SquidDev quits (~SquidDev@autoclave.squiddev.cc) (Quit: Bye!)
19:07:59 <glguy> ordinate: That's not something you'd generally do
19:08:11 abbie joins (~abbie@user/abbie)
19:08:12 SquidDev joins (~SquidDev@autoclave.squiddev.cc)
19:08:19 <ordinate> well, i still want to do it
19:08:25 <monochrom> Unless you require Typeable, you can't tell.
19:09:03 <janus> how is Typeable different from Generic?
19:09:09 <ordinate> ^
19:09:49 <monochrom> This "inability" is a Feature(TM), it enables parametricity, e.g., if you have "f :: a -> [a]" and a test case shows "f () = [(), ()]", then I also know "f 4 = [4, 4]", you cannot have "f 4 = [4, 5]".
19:10:33 <janus> so it is what some call "referential transparency" ?
19:10:42 <monochrom> Typeable and Generic are so unrelated I don't know how to answer "what's the difference".
19:10:48 <monochrom> No.
19:11:02 × fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Quit: Client limit exceeded: 10000)
19:11:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
19:11:29 <cdsmith> <janus "how is Typeable different from G"> Typeable lets you compare types. Generic lets you look at the structure of a data type: which constructors it has, what their fields are, etc.
19:12:01 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
19:12:05 <janus> ah right, i can see how those are distinct and why Aeson would only require Generic to make an automatic ToJSON instance
19:12:23 <janus> what is a popular use case for Typeable?
19:12:27 fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db)
19:12:51 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
19:13:06 <monochrom> f x = "if x :: Int then True else False"
19:13:27 <monochrom> basically the dream of every fan of dynamic typing.
19:13:35 <janus> oh no, it's horrible! :O
19:13:58 <ordinate> haskell is an interpreted, dynamically typed language
19:17:22 <monochrom> @quote monochrom runtime
19:17:22 <lambdabot> monochrom says: just add #! /usr/bin/runghc to your haskell file. then type errors occur at runtime only.
19:18:17 × derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.1)
19:18:37 × reumeth2 quits (~reumeth@user/reumeth) (Quit: reumeth2)
19:18:38 × ddellacosta quits (~ddellacos@89.46.62.21) (Read error: Connection reset by peer)
19:18:50 <janus> most people expect them to be deferred too, though ;)
19:18:54 reumeth joins (~reumeth@user/reumeth)
19:18:59 ddellacosta joins (~ddellacos@89.46.62.21)
19:19:55 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Client limit exceeded: 10000)
19:20:21 <janus> was it outrageous when dynamic languages started adding ASTs so they wouldn't even start executing with SyntaxErrors? an extreme dynamic fan should be offended, surely ;P
19:20:50 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
19:21:27 <monochrom> or Haskell resisting dependent typing so static fans are offended that head :: [a] -> a exists.
19:21:49 LukeHoersten joins (~LukeHoers@user/lukehoersten)
19:22:18 <tomsmeding> that quote should have -fdeferred-type-errors too
19:22:36 <dolio> It's probably older than that flag.
19:23:00 <tomsmeding> and also having flags in a shebang is probably not a good idea :)
19:24:30 <janus> tomsmeding: many BSD'ers recommend "#!/usr/bin/env bash". why would a flag be different from "bash" here? to the shell it is the same, surely?
19:24:55 <janus> (ok, i know, an extreme BSD'er wouldn't even accept using bash ;)
19:25:05 hololeap joins (~hololeap@user/hololeap)
19:25:54 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 240 seconds)
19:26:22 × Wonner quits (~Wonner@h77.53.21.98.static.ip.windstream.net) (Quit: Client closed)
19:26:39 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:27:10 LukeHoersten joins (~LukeHoers@user/lukehoersten)
19:27:24 Deide joins (~Deide@wire.desu.ga)
19:27:24 × Deide quits (~Deide@wire.desu.ga) (Changing host)
19:27:24 Deide joins (~Deide@user/deide)
19:27:30 <monochrom> No worries, "#!/usr/bin/env python3" is a thing too.
19:27:51 <maerwald> not sure '/usr/bin/env' is really specified by posix either
19:28:08 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Quit: Client limit exceeded: 10000)
19:28:09 <janus> right, AFAIK the trouble starts when you want both: the executable whereever in the path, AND some command line params
19:28:20 <maerwald> I think they recommend hardcoding full absolute paths to the binary at "install time" by using getconf
19:28:24 <tomsmeding> janus: https://stackoverflow.com/a/4304187
19:28:37 <tomsmeding> on many systems, you can pass at most one parameter in a shebang line
19:28:45 <tomsmeding> though I guess that is enough for the runghc thing :)
19:29:04 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
19:29:08 <tomsmeding> maerwald: see link, #! isn't even specified :p
19:29:28 <tomsmeding> env has -S but it's dangerous
19:29:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:29:47 <janus> ooh, so there is a motivation for providing an argument passing mode that requires only one argv entry for all the arguments. interesting!
19:29:49 <maerwald> but these are 1st world problems... if you've ever done powershell, you know it can be *way* worse
19:30:07 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
19:30:17 × ddellacosta quits (~ddellacos@89.46.62.21) (Ping timeout: 244 seconds)
19:30:29 hook54321 joins (sid149355@user/hook54321)
19:30:34 <janus> i stick to the C subset of windows to piss of microsoft programmers that will have to maintain it for 200 years muahahaha
19:30:36 × ixlun quits (~matthew@213.205.241.86) (Ping timeout: 244 seconds)
19:30:49 ukari joins (~ukari@user/ukari)
19:31:53 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
19:33:25 <monochrom> linux manpage for execve says "the entire string after the interpreter name is a single argument. some other systems split it into multiple arguments by spaces"
19:34:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
19:35:45 × thedward[m] quits (~thedwardm@2001:470:69fc:105::f79) (Quit: Client limit exceeded: 10000)
19:36:19 × fluffyballoon quits (~fluffybal@2620:72:0:6480::10f7) (Quit: Client closed)
19:36:33 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
19:37:37 __monty__ joins (~toonn@user/toonn)
19:37:37 Wonner joins (~Wonner@h77.53.21.98.static.ip.windstream.net)
19:38:07 kayprish_ joins (~kayprish@46.240.143.86)
19:38:15 <tomsmeding> monochrom: indeed, linux implements behaviour 3 from the linked SO answer
19:38:40 ddellacosta joins (~ddellacos@86.106.121.100)
19:38:41 tomsmeding is trying to be inclusive towards non-linux systems, let me
19:38:55 × Wonner quits (~Wonner@h77.53.21.98.static.ip.windstream.net) (Client Quit)
19:39:15 thedward[m] joins (~thedwardm@2001:470:69fc:105::f79)
19:39:51 × kayprish_ quits (~kayprish@46.240.143.86) (Client Quit)
19:43:39 NoName_ joins (~idk@8.20.127.195)
19:43:59 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:45:28 × ephemient quits (uid407513@id-407513.tooting.irccloud.com) (Quit: Connection closed for inactivity)
19:47:57 × hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Quit: Client limit exceeded: 10000)
19:52:31 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:53:03 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
19:54:28 × NoName_ quits (~idk@8.20.127.195) (Quit: https://www.endfgm.eu/what-can-you-do/donate/)
19:56:41 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:57:28 mengu joins (~mengu@c188-150-13-129.bredband.tele2.se)
20:01:04 × oxide quits (~lambda@user/oxide) (Quit: oxide)
20:03:46 <dminuoso> cdsmith: Out of curiosity, what IRC client are you using? Your quoting/response style looks very unfamiliar.
20:03:46 hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd)
20:03:47 Pickchea joins (~private@user/pickchea)
20:04:02 × qbt quits (~edun@user/edun) (Ping timeout: 268 seconds)
20:04:44 <geekosaur> that's a form that matrix can use
20:05:13 × juhp quits (~juhp@128.106.188.66) (Ping timeout: 244 seconds)
20:05:33 <dminuoso> Ah
20:06:09 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
20:06:19 Pickchea joins (~private@user/pickchea)
20:07:02 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
20:07:16 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
20:07:58 juhp joins (~juhp@128.106.188.66)
20:09:32 <dminuoso> janus: By the way, you asked about a good use of Typeable. The best and most common usage I can think of is exceptions, especially extensible dynamically-typed hierarchies of extensions. That last one is probably very underused on hackage.
20:10:29 × iDead quits (~iDead@254.142.71.148.rev.vodafone.pt) (Ping timeout: 272 seconds)
20:10:34 <dminuoso> `catch` fundamentally relies on Typeable to be able to check whether a bypassing exception matches the requested exception type or not.
20:10:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:10:59 <janus> oh, so you're saying i can make an exception that lets itself be treated as an exception that never existed when the code catching it was written?
20:11:43 <dminuoso> Are you preferrind go the "extensible dynamically-typed hierarchies of exceptions" part?
20:11:50 <dminuoso> Wow. the typos are unreal today.
20:13:29 <janus> i dunno if i prefer it since i havn't used exceptions in haskell yet. but i guess it could be valuable to avoid having dumb down to Either String everywhere. sounds like dynamically typed exceptions could help with that
20:15:11 <janus> if i am injecting a function that can fail into a codebase that i don't want to continually bump versions for, i have the option of making it Either String, but then it is "stringly-typed". if i had my application-specific exception that it was catching, i would could make ad-hoc new "subtypes" of that exception?
20:15:18 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:15:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
20:16:21 <dminuoso> janus: So under the hood, exceptions can only propagate as SomeException. So every time you do throwIO it gets wrapped (upcast) inside SomeException. At the same time, `catch` must be able to downcast it, using `fromException :: Exception e => SomeException -> Maybe e `
20:16:30 <dminuoso> janus: This is how `catch` is able to catch only specific exceptions.
20:16:35 <dminuoso> So far so good?
20:16:54 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
20:17:27 <dminuoso> (so if catch tries to fromException it to the specified exception type, but the underlying type is a different one, it would produce Nothing and the exception is thrown again)
20:17:32 × kayprish quits (~kayprish@46.240.143.86) (Quit: leaving)
20:17:39 ixlun joins (~matthew@213.205.241.86)
20:17:45 <janus> right, makes sense. sounds a bit like subtyping but maybe i shouldn't think that
20:17:59 <dminuoso> You should!
20:18:13 <dminuoso> Using this trick we can build entire subtyping hierarchies
20:18:36 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
20:18:50 <dminuoso> SomeException :> DbException :> (UniquenessViolation | NotNullViolation)
20:19:27 <janus> that looks nice, but is that really code?
20:19:30 <dminuoso> Allowing you to say `(catch action (\e :: DbException -> ... ))` and it would catch any DbException, including UniquenessViolation and NotNullViolation
20:19:55 <dminuoso> No, it's slightly verbose to encode these exceptions - but you get the same semantics
20:20:15 <dminuoso> https://simonmar.github.io/bib/papers/ext-exceptions.pdf
20:20:21 <janus> oh ok, sounds like it's time to crack open TemplateHaskell :satanic_smiley:
20:20:23 <dminuoso> Is the original paper that describes it, it's very readable :)
20:20:33 kuribas joins (~user@ptr-25vy0i96zxjh07ehrri.18120a2.ip6.access.telenet.be)
20:20:34 <dminuoso> Im not sure you can reasonably do this with TemplateHaskell
20:21:08 <janus> i'll take a look at the paper, cool beans
20:21:19 <dminuoso> All of this is driven by Typeable behind the scenes. :)
20:21:29 × gawen quits (~gawen@user/gawen) (Quit: cya)
20:21:40 <dminuoso> base even comes with exceptions structured this way, sadly not too many packages do the same
20:21:48 gawen joins (~gawen@user/gawen)
20:22:41 × adium quits (adium@user/adium) (Quit: Stable ZNC by ##bnc4you)
20:22:52 <dminuoso> It'd be nice if package-foo had some FooException supertype, especially if they have stuff like `withFoo :: (Foo -> IO b) -> IO b` because without a FooException type, you can't reasonably differentiate between any exception that comes from their library and say an IOException from your own continuation
20:23:09 × ent quits (entgod@kapsi.fi) (Ping timeout: 252 seconds)
20:23:26 <dminuoso> At least outside the `withFoo` combinator, of course.
20:23:42 ent joins (entgod@kapsi.fi)
20:24:35 <kuribas> why doesn't "foo {bar = 20}" work, when bar is a duplicate, and the type of foo is known?
20:26:03 <kuribas> and how do I disambiguate?
20:26:42 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
20:26:57 fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
20:27:27 <dminuoso> kuribas: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/duplicate_record_fields.html
20:27:51 <kuribas> ugh, even (foo :: Foo) {bar = 20} doesn't work...
20:28:19 <dminuoso> And: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/disambiguate_record_fields.html#disambiguate-fields
20:28:48 Erutuon joins (~Erutuon@user/erutuon)
20:29:59 <dminuoso> kuribas: And I guess you can use a qualified import and then specify the field with a qualifier?
20:30:53 <kuribas> still doesn't work even with Disambiguate-Fields
20:31:07 ddellaco_ joins (~ddellacos@86.106.121.100)
20:31:20 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 272 seconds)
20:31:20 <kuribas> and foo {bar = 20} :: Foo doesn't work either
20:32:01 AgentM joins (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
20:32:42 × ddellacosta quits (~ddellacos@86.106.121.100) (Ping timeout: 240 seconds)
20:32:58 <kuribas> dminuoso: I could, but I'd like to understand the problem, rather than work around.
20:33:42 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:34:11 Techcable_ is now known as Techcable
20:35:44 Topsi1 joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
20:36:38 <kuribas> ugh, ghc is just plain dumb
20:36:43 Topsi2 joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
20:36:51 × Aighearach quits (~paris@c-71-63-160-210.hsd1.or.comcast.net) (Ping timeout: 268 seconds)
20:37:41 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:38:06 Topsi3 joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
20:38:14 adium joins (adium@user/adium)
20:38:34 × Topsi quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
20:39:37 Topsi joins (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de)
20:40:00 <kuribas> Use an explicit type signature on the record expression, as in: h x = (x :: T) { foo = 3 }
20:40:00 <kuribas>
20:40:00 <kuribas>
20:40:06 <kuribas> Tried that, it doesn't work
20:40:18 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 240 seconds)
20:40:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
20:40:25 × Topsi1 quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
20:41:08 <dminuoso> kuribas: Im guessing at the time it was too complicated to implement DisambiguateRecordFields in the type checker.
20:41:25 <dminuoso> Or maybe there's some complicated interaction with other extensions?
20:41:35 <kuribas> I am using RecordWildCards
20:41:39 × Topsi2 quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
20:42:53 × Topsi3 quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
20:43:19 <kuribas> could be a bug in ghc
20:44:41 <dolio> The help page doesn't say you're allowed to do what you're trying to do.
20:44:57 <kuribas> dolio: update a record?
20:45:05 <dminuoso> kuribas: https://gitlab.haskell.org/ghc/ghc/-/issues/18999
20:45:20 <dminuoso> Adam and SPJ concur that this is a bug.
20:45:32 <kuribas> dminuoso: ok, thanks
20:45:33 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
20:45:36 <kuribas> I'll use genericLens then
20:46:00 <dolio> It says that the extension only does something for updates if there is a non-field named the same as a field.
20:46:20 × mengu quits (~mengu@c188-150-13-129.bredband.tele2.se) (Remote host closed the connection)
20:46:30 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:46:48 mengu joins (~mengu@c188-150-13-129.bredband.tele2.se)
20:48:33 <dminuoso> Oh hold on
20:48:43 <dminuoso> kuribas: are both `bar` fields?
20:48:49 ubert joins (~Thunderbi@p200300ecdf259d17307db39712e8f4a3.dip0.t-ipconnect.de)
20:49:08 <kuribas> dminuoso: what do you mean?
20:49:22 <dminuoso> Maybe I misunderstood
20:49:30 <dminuoso> 22:24:35 kuribas | why doesn't "foo {bar = 20}" work, when bar is a duplicate, and the type of foo is known?
20:49:39 × fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Quit: Bye!)
20:49:44 <dminuoso> You say "duplicate". Are both instances of `bar` fields, or is one a non-field?
20:49:52 <kuribas> there is N.bar, but it is qualified
20:49:54 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds)
20:50:04 fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
20:50:06 <kuribas> the other ones are fields
20:50:09 <dminuoso> dolio is right then
20:50:18 <dminuoso> And even that only applies to 9.2.1
20:50:18 × fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Read error: Connection reset by peer)
20:50:30 <dminuoso> A record update is not possible in this manner
20:50:40 × ixlun quits (~matthew@213.205.241.86) (Read error: Connection reset by peer)
20:50:41 <dminuoso> Im guessing there's good reason for this
20:50:44 <kuribas> so genericLens then?
20:50:47 fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
20:51:07 <kuribas> or just making a new record.
20:51:51 fishfinger_ joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net)
20:51:58 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/wikis/records/overloaded-record-fields/duplicate-record-fields contains some implicit notes
20:52:03 <dminuoso> `Note that we do not look up the types of variables being updated, and no constraint-solving is performed, so for example the following will be rejected as ambiguous:`
20:52:09 × fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Remote host closed the connection)
20:52:51 <dminuoso> 22:40:00 kuribas | Use an explicit type signature on the record expression, as in: h x = (x :: T) { foo = 3 }
20:52:56 <dminuoso> This requires DuplicateRecordFields, mind you
20:53:42 × mengu quits (~mengu@c188-150-13-129.bredband.tele2.se) (Remote host closed the connection)
20:54:02 <kuribas> yes, I have DuplicateRecordFields on
20:54:35 <dminuoso> In the definition sites of these data types too?
20:54:37 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
20:54:42 × muto_ quits (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 240 seconds)
20:54:44 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:55:56 <kuribas> hmm, no
20:56:06 × jrm quits (~jrm@156.34.187.65) (Ping timeout: 264 seconds)
20:56:25 jrm joins (~jrm@156.34.187.65)
20:56:45 tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
20:57:49 <kuribas> that could be it
20:59:32 × fishfinger_ quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 268 seconds)
20:59:58 ephemient joins (uid407513@id-407513.tooting.irccloud.com)
21:01:22 iDead joins (~iDead@254.142.71.148.rev.vodafone.pt)
21:03:14 × kmein quits (~weechat@user/kmein) (Quit: WeeChat 3.1)
21:03:31 kmein joins (~weechat@user/kmein)
21:05:19 <kuribas> it works now :)
21:05:27 <iDead> and a chalenge (yet again) turn that "div" into a "/" : https://paste.tomsmeding.com/luLC15pQ
21:05:59 <kuribas> dminuoso: thanks. Seems missing the DuplicateRecordFields in this module was the problem.
21:06:18 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
21:12:27 <monochrom> Use fromIntegral to convert Int to Float.
21:12:33 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:12:35 <monochrom> or Integer to Float
21:12:52 <monochrom> @quote monochrom fromIntegral
21:12:53 <lambdabot> monochrom says: You've got an Int / But you want Double / Who do you call? / "fromIntegral!"
21:13:20 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.1)
21:13:49 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
21:14:41 bilegeek joins (~bilegeek@2600:1008:b041:5047:48ad:ae3d:d2ea:7d42)
21:15:10 VictorNawothnig[ joins (~dminuosom@2001:470:69fc:105::33bb)
21:17:02 <dminuoso> There should be an emacs minor mode for lsp-haskell that randomly inserts `fromIntegral/realToFrac` whenever there's a "expected/actual" type error between two numeric types until GHC is satisfied.
21:17:14 <dminuoso> It's what the user does anyway. :>
21:18:05 VictorNawothnig[ is now known as dminuoso[m]
21:18:06 Guest8215 joins (~Guest82@host-79-36-63-89.retail.telecomitalia.it)
21:19:20 <monochrom> I would support that if, in the Float->Int direction, the auto-inserted function were truncate.
21:19:42 <monochrom> err no, s/truncate/ceiling/
21:20:11 <monochrom> Either that, or that direction is not entertained at all.
21:21:55 × jao quits (jao@gateway/vpn/protonvpn/jao) (Remote host closed the connection)
21:22:01 <dminuoso> On a slightly more serious note, a suggestion to insert `intCast` from int-cast wouldn't be bad
21:23:21 <monochrom> I like int-case too.
21:23:45 <dminuoso> What is int-case?
21:24:28 jao joins (jao@gateway/vpn/protonvpn/jao)
21:24:38 mengu joins (~mengu@c188-150-13-129.bredband.tele2.se)
21:25:23 dcompoze joins (~dcompoze@5E98D6D9.static.tld.pl)
21:26:47 <monochrom> sorry, int-cast!
21:26:58 <iDead> i don't know if you were talking to me but, i know about the fromInteger... i just can't figure out were...
21:27:05 <iDead> where*
21:27:21 <monochrom> fromIntegral, not fromInteger
21:27:27 funsafe joins (~funsafe@2601:1c1:4200:938f:4e1e:fc56:b28f:5ac7)
21:27:29 <iDead> my bad sry
21:27:36 <monochrom> also I don't know what you mean by "challenge".
21:27:41 <iDead> java is killing me
21:27:52 <iDead> it's just a mood joke =)
21:28:00 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:33:35 kayprish joins (~kayprish@46.240.143.86)
21:37:02 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:40:59 beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net)
21:41:24 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:c958:4e9b:6898:197c) (Read error: Connection reset by peer)
21:43:20 LukeHoersten joins (~LukeHoers@user/lukehoersten)
21:44:37 × Guest8215 quits (~Guest82@host-79-36-63-89.retail.telecomitalia.it) (Quit: Client closed)
21:46:49 × forell quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host)
21:46:49 forell joins (~forell@user/forell)
21:47:23 × acro quits (~acro@user/acro) (Ping timeout: 252 seconds)
21:47:53 × quintasan quits (~quassel@quintasan.pl) (Remote host closed the connection)
21:48:03 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:49:02 quintasan joins (~quassel@quintasan.pl)
21:49:19 acro joins (~acro@user/acro)
21:49:29 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
21:50:04 dhil joins (~dhil@195.213.192.47)
21:50:17 ukari joins (~ukari@user/ukari)
21:51:25 fabfianda joins (~fabfianda@net-93-148-121-206.cust.vodafonedsl.it)
21:54:16 × mengu quits (~mengu@c188-150-13-129.bredband.tele2.se) (Remote host closed the connection)
21:55:31 × jolly quits (~jolly@208.180.97.158) (Quit: Connection closed)
21:59:21 × kuribas quits (~user@ptr-25vy0i96zxjh07ehrri.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
21:59:47 mjs2600_ joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
22:00:38 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 272 seconds)
22:02:10 × Guest9 quits (~Guest9@103.250.137.187) (Quit: Connection closed)
22:05:30 finsternis joins (~Y@23.226.237.192)
22:07:43 zangi joins (~azure@103.154.230.130)
22:07:59 × pavonia quits (~user@user/siracusa) (Ping timeout: 268 seconds)
22:08:07 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:08:31 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
22:09:30 × ubert quits (~Thunderbi@p200300ecdf259d17307db39712e8f4a3.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
22:09:53 timthelion joins (~timothy@185.91.169.13)
22:10:47 × dudek_ quits (~dudek@185.150.236.112) (Quit: Leaving)
22:11:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:12:42 × xff0x quits (~xff0x@2001:1a81:523f:a800:1537:97ed:971:4698) (Ping timeout: 240 seconds)
22:12:42 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
22:13:49 xff0x joins (~xff0x@2001:1a81:523f:a800:2fe9:1383:a8b4:a8ad)
22:15:03 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
22:15:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
22:17:36 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:17:38 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
22:18:36 × ddellaco_ quits (~ddellacos@86.106.121.100) (Remote host closed the connection)
22:18:42 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
22:18:46 ddellacosta joins (~ddellacos@86.106.121.100)
22:18:47 jakalx parts (~jakalx@base.jakalx.net) ()
22:19:15 ukari joins (~ukari@user/ukari)
22:20:58 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
22:21:11 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:21:23 × warnz quits (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Remote host closed the connection)
22:25:00 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:26:19 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
22:26:34 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:29:08 × ddellacosta quits (~ddellacos@86.106.121.100) (Remote host closed the connection)
22:29:11 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:31:22 × ft quits (~ft@shell.chaostreff-dortmund.de) (Quit: leaving)
22:31:35 ft joins (~ft@shell.chaostreff-dortmund.de)
22:33:35 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
22:33:47 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:35:28 × xff0x quits (~xff0x@2001:1a81:523f:a800:2fe9:1383:a8b4:a8ad) (Ping timeout: 272 seconds)
22:36:00 xff0x joins (~xff0x@2001:1a81:523f:a800:5daf:c393:a649:41b5)
22:36:51 × kayprish quits (~kayprish@46.240.143.86) (Remote host closed the connection)
22:37:25 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit)
22:37:37 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:39:28 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection)
22:42:18 × iDead quits (~iDead@254.142.71.148.rev.vodafone.pt) (Ping timeout: 240 seconds)
22:42:20 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:43:11 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
22:43:36 ukari joins (~ukari@user/ukari)
22:45:50 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
22:46:11 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
22:49:15 NoName_ joins (~idk@8.20.127.195)
22:50:01 × Adran quits (adran@botters/adran) (Quit: Este é o fim.)
22:51:42 jakalx joins (~jakalx@base.jakalx.net)
22:53:32 Heffalump joins (~ganesh@urchin.earth.li)
22:53:38 Heffalump parts (~ganesh@urchin.earth.li) ()
22:54:28 × chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 272 seconds)
22:55:57 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
22:56:19 Adran joins (~adran@botters/adran)
22:57:05 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
22:59:50 × learner-monad quits (~ehanneken@user/learner-monad) (Quit: WeeChat 3.1)
23:00:05 derelict joins (~derelict@user/derelict)
23:00:08 × bilegeek quits (~bilegeek@2600:1008:b041:5047:48ad:ae3d:d2ea:7d42) (Quit: Leaving)
23:00:28 ddellacosta joins (~ddellacos@86.106.121.100)
23:01:17 × sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
23:02:58 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
23:03:28 ukari joins (~ukari@user/ukari)
23:03:51 sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
23:04:42 × ddellacosta quits (~ddellacos@86.106.121.100) (Ping timeout: 240 seconds)
23:10:20 × betelgeuse quits (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
23:11:07 trent1 joins (~trent@121.212.178.179)
23:11:55 betelgeuse joins (~john2gb@94-225-47-8.access.telenet.be)
23:18:28 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:20:35 × zeenk quits (~zeenk@188.26.30.39) (Quit: Konversation terminated!)
23:20:37 × tremon quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
23:23:00 × jrm quits (~jrm@156.34.187.65) (Quit: ciao)
23:23:35 gzj joins (~GZJ0X@96.45.188.111.16clouds.com)
23:26:24 × derelict quits (~derelict@user/derelict) (Ping timeout: 244 seconds)
23:30:56 muto joins (~muto@d75-159-225-7.abhsia.telus.net)
23:33:01 ikex1 joins (~ash@user/ikex)
23:34:43 jrm joins (~jrm@156.34.187.65)
23:37:16 ddellacosta joins (~ddellacos@86.106.121.100)
23:38:13 sbmsr joins (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d)
23:38:18 × Topsi quits (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Read error: Connection reset by peer)
23:38:28 fendor_ joins (~fendor@178.165.130.116.wireless.dyn.drei.com)
23:39:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533)
23:40:04 × ikex1 quits (~ash@user/ikex) (Ping timeout: 272 seconds)
23:41:05 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
23:41:20 × fendor quits (~fendor@77.119.128.134.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
23:41:25 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
23:41:30 × ddellacosta quits (~ddellacos@86.106.121.100) (Ping timeout: 240 seconds)
23:41:38 ChaiTRex joins (~ChaiTRex@user/chaitrex)
23:42:51 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 272 seconds)
23:44:31 jespada joins (~jespada@90.254.247.46)
23:44:45 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 272 seconds)
23:45:43 × Deide quits (~Deide@user/deide) (Quit: Seeee yaaaa)
23:48:30 × azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer)
23:49:49 delYsid joins (~user@84-115-55-45.cable.dynamic.surfer.at)
23:52:08 × natechan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
23:52:14 × trent1 quits (~trent@121.212.178.179) (Ping timeout: 244 seconds)
23:52:38 natechan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
23:52:54 pavonia joins (~user@user/siracusa)
23:57:06 um joins (di6qsqm189@user/um)
23:57:10 um parts (di6qsqm189@user/um) ()
23:57:55 × NoName_ quits (~idk@8.20.127.195) (Quit: https://www.endfgm.eu/what-can-you-do/donate/)

All times are in UTC on 2021-06-15.