2021/01/26

2021-01-26 00:01:10 +0100 <ij> so each tiem I read from the unboxed array, I access memory from 4 distant places in the memory? I have four fields for my array
2021-01-26 00:01:17 +0100 <dolio> Since Unboxed is SOA, you can also just get the underlying portion you want and just read it.
2021-01-26 00:02:24 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2021-01-26 00:02:25 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-01-26 00:03:07 +0100Alleria(~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com)
2021-01-26 00:03:13 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-26 00:03:31 +0100AlleriaGuest32940
2021-01-26 00:03:53 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-01-26 00:04:07 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-01-26 00:04:41 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 00:04:59 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
2021-01-26 00:06:34 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 00:06:45 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 00:07:32 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 265 seconds)
2021-01-26 00:09:33 +0100 <ij> I replaced with boxed vectors and it became 2x faster
2021-01-26 00:09:44 +0100 <ij> apparently I didn't know what I was doing
2021-01-26 00:09:48 +0100 <ij> super easy rewrite, though
2021-01-26 00:10:08 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 00:10:13 +0100 <ij> http://sprunge.us/HObJkS?diff
2021-01-26 00:10:55 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
2021-01-26 00:12:17 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-01-26 00:12:43 +0100 <dolio> Well, that's why I said cache effects might not be your bottleneck.
2021-01-26 00:13:17 +0100 <dolio> I assume that means that the reason that unsafeRead is taking your time is that it's re-allocating your stuff on the heap.
2021-01-26 00:13:40 +0100 <dolio> So the rest of your program isn't written for everything to remain unboxed.
2021-01-26 00:14:05 +0100 <dolio> That also suggests that Storable wouldn't have helped.
2021-01-26 00:15:47 +0100catt(~r@31.124.181.226)
2021-01-26 00:16:45 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-26 00:16:55 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 00:19:33 +0100 <ij> now the bottleneck is sortOn, which really is "head . dropWhile bad . sort" and the rest don't need sorting
2021-01-26 00:19:53 +0100 <ij> is it haskell underneath or optimized C?
2021-01-26 00:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 00:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 00:20:58 +0100ADG1089__(~aditya@223.226.145.125) (Remote host closed the connection)
2021-01-26 00:22:45 +0100 <monochrom> Hrm, is that Data.List's sort?
2021-01-26 00:22:52 +0100 <ij> yeah
2021-01-26 00:26:07 +0100 <monochrom> Under most models (or aka theories), using Haskell immutable list nodes for sorting is less efficient than using a mutable array. But I don't think anyone bothered to implement mutable array in-place sorting. Without an empircal comparison, you may as well sign it off as necessary cost.
2021-01-26 00:26:39 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-01-26 00:26:55 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 00:27:14 +0100 <ij> is it C under the hood though?
2021-01-26 00:27:39 +0100 <monochrom> It would be easier said than done to code up an in-place mutable array sorting algorithm that would beat Data.List.sort in practice, because Data.List.sort went through very clever, benchmart-driven, benchmark-proven optimizations.
2021-01-26 00:28:15 +0100 <dolio> vector-algorithms has mutable array sorting.
2021-01-26 00:28:26 +0100 <monochrom> Ah my bad.
2021-01-26 00:28:43 +0100 <ij> I don't strictly need sorting though
2021-01-26 00:29:12 +0100 <ij> I need (head:rest) of dropWhileBad . sortOn score
2021-01-26 00:29:14 +0100 <monochrom> I wonder if "head . sort . filter bad" is better.
2021-01-26 00:29:25 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 00:29:26 +0100 <ij> I'll try that
2021-01-26 00:29:35 +0100 <monochrom> err, "head . sort . filter (not . bad)".
2021-01-26 00:29:39 +0100 <ij> right
2021-01-26 00:30:06 +0100 <monochrom> taking advantage that "head . sort" ends up being linear time.
2021-01-26 00:30:15 +0100xsperry(~as@unaffiliated/xsperry) ()
2021-01-26 00:30:24 +0100 <ij> I tried writing code that would be "linear', but it was slower
2021-01-26 00:30:53 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 00:30:57 +0100aveltras(uid364989@gateway/web/irccloud.com/x-nmyboiqscnptuzez) (Quit: Connection closed for inactivity)
2021-01-26 00:32:26 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2021-01-26 00:32:26 +0100mango(~mangohask@121-200-5-34.79c805.syd.nbn.aussiebb.net) (Read error: Connection reset by peer)
2021-01-26 00:32:49 +0100 <ij> 1.35x slower for the whole solve
2021-01-26 00:33:02 +0100 <ij> eye-balled difference
2021-01-26 00:33:13 +0100 <ij> > 390/430.0
2021-01-26 00:33:14 +0100 <lambdabot> 0.9069767441860465
2021-01-26 00:33:22 +0100 <ij> > 430.0/390
2021-01-26 00:33:23 +0100 <lambdabot> 1.1025641025641026
2021-01-26 00:33:34 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 00:33:52 +0100 <ij> needless to say, I was quite off
2021-01-26 00:35:32 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-26 00:36:26 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-01-26 00:38:33 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-26 00:39:40 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 00:40:56 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 00:42:05 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 00:42:34 +0100conal(~conal@64.71.133.70)
2021-01-26 00:42:57 +0100xsperry(~as@unaffiliated/xsperry)
2021-01-26 00:42:59 +0100benb(52456307@82-69-99-7.dsl.in-addr.zen.co.uk) (Quit: Ping timeout (120 seconds))
2021-01-26 00:45:07 +0100 <ij> this would put min up first: http://sprunge.us/vEFeHJ
2021-01-26 00:45:17 +0100 <ij> I'll test it again, but I see no reason why it would be faster this time around
2021-01-26 00:46:29 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 00:49:23 +0100pengjiz(~user@2601:547:901:fab0:4223:43ff:febc:71e1) (Quit: ERC (IRC client for Emacs 27.1))
2021-01-26 00:49:30 +0100cafce25(~jona@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 00:50:07 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-26 00:50:16 +0100 <ij> ah, but this time I correctly implemented the iteration count, so it turns out it impacts the order
2021-01-26 00:52:51 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-01-26 00:52:51 +0100bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Remote host closed the connection)
2021-01-26 00:53:24 +0100xff0x(~xff0x@2001:1a81:5363:7e00:cb6f:f3:b273:90be) (Ping timeout: 264 seconds)
2021-01-26 00:53:27 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-01-26 00:55:07 +0100xff0x(~xff0x@2001:1a81:5363:7e00:cb6f:f3:b273:90be)
2021-01-26 00:56:58 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 00:57:43 +0100chirpsalot(~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 240 seconds)
2021-01-26 00:58:15 +0100Chobbes(~Chobbes@unaffiliated/chobbes) (Ping timeout: 246 seconds)
2021-01-26 00:58:55 +0100conal(~conal@64.71.133.70) (Ping timeout: 272 seconds)
2021-01-26 00:59:29 +0100benb(52456307@82-69-99-7.dsl.in-addr.zen.co.uk)
2021-01-26 01:01:15 +0100carlomagno(~cararell@148.87.23.5) (Remote host closed the connection)
2021-01-26 01:01:22 +0100carlomagno1(~cararell@148.87.23.5)
2021-01-26 01:01:45 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 246 seconds)
2021-01-26 01:01:54 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Ping timeout: 240 seconds)
2021-01-26 01:03:00 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 01:04:07 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-26 01:06:17 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 01:06:21 +0100joaj(~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Quit: WeeChat 3.0)
2021-01-26 01:08:23 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 240 seconds)
2021-01-26 01:10:32 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 01:10:50 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-01-26 01:11:25 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 01:12:54 +0100forgottenone(~forgotten@176.42.20.27) (Quit: Konversation terminated!)
2021-01-26 01:13:04 +0100knupfer(~Thunderbi@200116b82cb5de00b8530b9ff2c8fc98.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-26 01:13:12 +0100knupfer(~Thunderbi@200116b82cb5de0034b1fc93289b63eb.dip.versatel-1u1.de)
2021-01-26 01:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 01:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 01:23:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 01:23:27 +0100deviantfero(~deviantfe@190.150.27.58)
2021-01-26 01:23:45 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-01-26 01:24:33 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-01-26 01:25:54 +0100 <Squarism> im planning on using Data.Either.Validation (an Applicative Functor) to do a bunch of expressions. I feel i need if-then-else possibilities so I feel i need to unbox my expression results. Not seeing how that could be done wo some box / pattern match trickery.
2021-01-26 01:26:00 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 01:27:46 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-01-26 01:27:49 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 01:29:54 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 260 seconds)
2021-01-26 01:30:40 +0100carlomagno1(~cararell@148.87.23.5) (Ping timeout: 265 seconds)
2021-01-26 01:32:12 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 01:33:38 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 244 seconds)
2021-01-26 01:35:25 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-01-26 01:35:41 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 01:36:50 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 01:37:43 +0100 <Athas> ij: in my case it was because it was very fast to load and write to files, compared to indexing and processing element-by-element.
2021-01-26 01:40:09 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 01:40:31 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-01-26 01:40:42 +0100Tops2(~Tobias@dyndsl-095-033-021-044.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-01-26 01:42:41 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-01-26 01:45:07 +0100cafce25(~jona@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: Lost terminal)
2021-01-26 01:45:23 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 01:46:55 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 01:46:57 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 01:47:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 01:51:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-26 01:54:17 +0100MarcelineVQ(~anja@198.254.199.42)
2021-01-26 01:55:06 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-26 01:57:42 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.0)
2021-01-26 01:57:56 +0100niklasb_(~niklasb@unaffiliated/codeslay0r) (Ping timeout: 240 seconds)
2021-01-26 02:00:14 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 260 seconds)
2021-01-26 02:00:16 +0100niklasb_(~niklasb@unaffiliated/codeslay0r)
2021-01-26 02:00:30 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-26 02:03:23 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds)
2021-01-26 02:03:38 +0100carrera(~Carrera@109.162.211.145) (Quit: Leaving)
2021-01-26 02:03:54 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving)
2021-01-26 02:04:03 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 02:04:12 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-01-26 02:05:18 +0100chirpsalot(~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net)
2021-01-26 02:05:23 +0100Chobbes(~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net)
2021-01-26 02:07:13 +0100dftxbs3e_(~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 260 seconds)
2021-01-26 02:07:49 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com)
2021-01-26 02:09:19 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2021-01-26 02:11:00 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds)
2021-01-26 02:11:00 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds)
2021-01-26 02:11:23 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-26 02:11:24 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-26 02:11:24 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-01-26 02:11:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-26 02:11:47 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 02:12:00 +0100conal(~conal@64.71.133.70)
2021-01-26 02:14:50 +0100JJ15_JJ15
2021-01-26 02:14:52 +0100deviantfero(~deviantfe@190.150.27.58)
2021-01-26 02:15:31 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2021-01-26 02:16:34 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-01-26 02:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 02:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 02:21:22 +0100 <whataday> null of Java is like Nothing of Haskell?
2021-01-26 02:21:44 +0100 <whataday> what 1/0 will produce?
2021-01-26 02:22:19 +0100 <whataday> a failure computation?
2021-01-26 02:23:08 +0100 <whataday> IO could produce failure computation?
2021-01-26 02:24:12 +0100oisdk(~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) (Quit: oisdk)
2021-01-26 02:24:17 +0100rajivr(uid269651@gateway/web/irccloud.com/x-xfgarcdyypwphfai)
2021-01-26 02:24:22 +0100 <koz_> whataday: Nothing is a bit more specific than null.
2021-01-26 02:24:27 +0100 <koz_> 1/0 actually throws an error.
2021-01-26 02:24:38 +0100 <koz_> A good example of where Nothing is used:
2021-01-26 02:24:44 +0100 <koz_> % :t lookup
2021-01-26 02:24:44 +0100 <yahb> koz_: Eq a => a -> [(a, b)] -> Maybe b
2021-01-26 02:24:59 +0100 <koz_> So the idea is that if it gives back 'Nothing', it means 'I didn't find what you were asking for'.
2021-01-26 02:25:34 +0100 <koz_> Slightly off-topic perhaps, but in cabal.project, if I need a lot of 'packages' entries, how do I split them over multiple lines?
2021-01-26 02:25:44 +0100 <koz_> Do I do it 'line below, one per line, indented'?
2021-01-26 02:25:50 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 264 seconds)
2021-01-26 02:25:51 +0100 <koz_> Or does it have to be one big line?
2021-01-26 02:25:59 +0100 <c_wraith> I put a newline after each comma, align the package names
2021-01-26 02:26:35 +0100 <c_wraith> wait, I misread what you were asking. But that's still what I'd try :)
2021-01-26 02:26:44 +0100 <c_wraith> (I just might be wrong about it working)
2021-01-26 02:27:14 +0100 <koz_> c_wraith: Those aren't normally comma-separated as far as I can tell from the cabal docs.
2021-01-26 02:27:27 +0100 <koz_> That's why I'm asking really.
2021-01-26 02:27:58 +0100 <c_wraith> you can comma-separate it, though
2021-01-26 02:27:59 +0100 <ski> whataday : "null of Java is like Nothing of Haskell?" -- sort of, kind of, not really
2021-01-26 02:28:24 +0100borne(~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) (Ping timeout: 240 seconds)
2021-01-26 02:28:29 +0100 <koz_> Null in Java does about ten different things.
2021-01-26 02:28:45 +0100 <ski> every object type in Java includes a `null' value
2021-01-26 02:28:49 +0100 <koz_> Including 'lets Java weenies yell at you that Java is nothing like C despite the fact that objects are pointers in the most literal sense imaginable'.
2021-01-26 02:29:01 +0100 <ski> only `Maybe T' (for whatever `T' you like) in Haskell includes `Nothing'
2021-01-26 02:29:06 +0100 <koz_> (no jokes, I've had people damn-near punch me for making such a claim despite it being 100% true)
2021-01-26 02:29:14 +0100 <whataday> 1/0 is a failure computation?
2021-01-26 02:29:16 +0100 <ski> you can't implicitly convert from `T' to `Maybe T', or vice versa
2021-01-26 02:29:21 +0100 <whataday> or just an errort
2021-01-26 02:29:25 +0100 <ski> > 1/0
2021-01-26 02:29:27 +0100 <lambdabot> Infinity
2021-01-26 02:29:27 +0100 <koz_> whataday: It's just an error.
2021-01-26 02:29:35 +0100 <koz_> (or should be)
2021-01-26 02:29:37 +0100 <c_wraith> > 1 `div` 0
2021-01-26 02:29:39 +0100 <lambdabot> *Exception: divide by zero
2021-01-26 02:29:40 +0100 <koz_> > (1 :: Int) / 0
2021-01-26 02:29:42 +0100 <lambdabot> error:
2021-01-26 02:29:42 +0100 <lambdabot> • No instance for (Fractional Int) arising from a use of ‘/’
2021-01-26 02:29:42 +0100 <lambdabot> • In the expression: (1 :: Int) / 0
2021-01-26 02:29:45 +0100 <koz_> LOL
2021-01-26 02:29:47 +0100 <ski> it's floating-point infinity, if you use a floating-point type
2021-01-26 02:29:49 +0100 <whataday> and Nothing is a failure computation not error?
2021-01-26 02:29:51 +0100 <ski> > 1 / 0 :: Rational
2021-01-26 02:29:53 +0100 <lambdabot> *Exception: Ratio has zero denominator
2021-01-26 02:30:13 +0100 <koz_> whataday: Nothing specifically says 'in the context where we _expect_ we might not get an answer, a non-answer'.
2021-01-26 02:30:14 +0100 <ski> whataday : `Nothing' is just a value, which is often used to *represent* failure
2021-01-26 02:30:20 +0100 <koz_> See my example with 'lookup' above.
2021-01-26 02:30:38 +0100 <koz_> When we do a lookup in a dictionary, we should _expect_ the possibility that we don't find anything.
2021-01-26 02:30:49 +0100ystael(~ystael@209.6.50.55) (Ping timeout: 256 seconds)
2021-01-26 02:30:49 +0100 <koz_> Having the return be 'Maybe b' basically forces us to deal with this fact.
2021-01-26 02:31:03 +0100 <ski> whataday : you can think of a value of type `Maybe T' as a container that can hold at most one value of type `T'. then `Nothing' is an empty container, and `Just x' is a filled one, containing a value `x'
2021-01-26 02:31:05 +0100jackk_(~jackk@205.178.111.134) (Quit: Going offline, see ya! (www.adiirc.com))
2021-01-26 02:31:09 +0100 <ski> (of type `T')
2021-01-26 02:31:50 +0100 <ski> `Maybe' is just a regular data-type, defined in the language
2021-01-26 02:32:15 +0100 <whataday> in Java it may read null from socket, what Haskell read from socket?
2021-01-26 02:32:24 +0100 <ski> treating `Nothing' as ("anonymous") failure, and `Just x' as success is an interpretation one can put of its values
2021-01-26 02:32:54 +0100 <koz_> whataday: Reading from a socket in Haskell is in IO.
2021-01-26 02:33:01 +0100 <koz_> Which can basically do whatever it damn well feels like.
2021-01-26 02:33:34 +0100dddddd(~dddddd@unaffiliated/dddddd)
2021-01-26 02:33:50 +0100 <koz_> Also, c_wraith: It seems 'new lines, indented' was the correct answer.
2021-01-26 02:33:54 +0100 <koz_> TIL I guess.
2021-01-26 02:35:22 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-01-26 02:35:35 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 02:35:44 +0100 <whataday> could it read null ?
2021-01-26 02:36:16 +0100 <koz_> There is no 'null' in Haskell, so I don't understand the question.
2021-01-26 02:36:32 +0100 <koz_> You can't just one-for-one translate Java into Haskell. They're different languages, with different ways of doing things.
2021-01-26 02:36:41 +0100 <koz_> It's like asking 'how do i object in haskal'.
2021-01-26 02:36:57 +0100 <koz_> The answer is 'I dunno, there's no such concept, what are you trying to do?'.
2021-01-26 02:39:31 +0100Wuzzy(~Wuzzy@p549c95a3.dip0.t-ipconnect.de)
2021-01-26 02:40:31 +0100 <ski> <https://hackage.haskell.org/package/network-3.1.2.1/docs/Network-Socket-ByteString.html#g:3> is for reading a `ByteString' (up to a given length) from a socket
2021-01-26 02:41:56 +0100 <ski> (there is no `null' `ByteString'. a `ByteString' can be empty (contain no/zero bytes) though, of course)
2021-01-26 02:43:11 +0100 <ski> whataday : because there is no `null' value inhabiting most or all types, there is no need to keep checking whether some value is `null' (and so no way to forget checking that by mistake)
2021-01-26 02:43:28 +0100YellowOnion(~YellowOni@222-152-181-96-fibre.sparkbb.co.nz)
2021-01-26 02:44:04 +0100 <ski> if you want to allow for the possibility of absence of a value, you must use `Maybe' (or perhaps some other means of indicating absense, like maybe an empty list, or whatever seems appropriate)
2021-01-26 02:44:23 +0100 <ski> @type M.lookup
2021-01-26 02:44:24 +0100 <lambdabot> Ord k => k -> M.Map k a -> Maybe a
2021-01-26 02:44:58 +0100 <ski> is for looking up a key in a finite map, maybe getting back a corresponding value (wrapped in `Just'), or else `Nothing', if the key wasn't found
2021-01-26 02:45:11 +0100 <koz_> "At the moment, it’s not possible to set with-compiler on a per-package basis, but eventually we plan on relaxing this restriction. If this is something you need, give us a shout."
2021-01-26 02:45:19 +0100 <koz_> Who do I need to give a shout for this to become a reality?
2021-01-26 02:45:47 +0100 <ski> > M.lookup 3 (M.fromList [(2,"two"),(3,"three"),(5,"five"),(7,"seven")])
2021-01-26 02:45:49 +0100 <lambdabot> Just "three"
2021-01-26 02:45:54 +0100 <ski> > M.lookup 4 (M.fromList [(2,"two"),(3,"three"),(5,"five"),(7,"seven")])
2021-01-26 02:45:56 +0100 <lambdabot> Nothing
2021-01-26 02:47:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 02:48:35 +0100knupfer1(~Thunderbi@200116b82cf5ad00d1848027e4ca07e4.dip.versatel-1u1.de)
2021-01-26 02:49:36 +0100 <monochrom> Relatedly, I had a student who pressed the question "Does my function have to handle null?" in the context that the homework was to write a function that took an ADT value as input parameter. (I defined the ADT for them.)
2021-01-26 02:50:05 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2021-01-26 02:50:08 +0100mirrorbird(~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0)
2021-01-26 02:50:11 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 02:50:15 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-26 02:50:18 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 02:50:23 +0100knupfer(~Thunderbi@200116b82cb5de0034b1fc93289b63eb.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-26 02:50:23 +0100knupfer1knupfer
2021-01-26 02:50:32 +0100 <monochrom> So I pressed back with "WTF is this 'null' you're talking about? Is it from the standard library? Or is it your invention?"
2021-01-26 02:51:30 +0100 <monochrom> The student was never able to make more sense than perhaps "null pointer" (but then you know I could simply press back "WTH is 'null pointer' in Haskell?")
2021-01-26 02:51:58 +0100 <ski> (and you did ?)
2021-01-26 02:52:00 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 02:52:04 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 02:52:05 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-26 02:52:05 +0100 <monochrom> Not surprisingly, that student was a very weak student, and dropped the course very soon.
2021-01-26 02:52:36 +0100 <monochrom> I forgot whether they replied "null pointer" actually. If they did, then I did.
2021-01-26 02:52:39 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 02:52:53 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-26 02:52:56 +0100 <hololeap> monochrom: did you make it clear that haskell is different from what they are used to?
2021-01-26 02:53:24 +0100 <monochrom> But generally, weak minds are just going to assume that a notion applies to Haskell just because it applies to their favourite language.
2021-01-26 02:53:37 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 02:53:51 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 02:53:53 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 02:54:23 +0100 <koz_> I have a view pattern like this: (DataConstructor -> helperFunctionTakingInnards -> Just x)
2021-01-26 02:54:25 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 02:54:27 +0100 <monochrom> No. I think it's better for them to discover it themselves, under my guiding question "is it a reserved word? is it from the standard library? or is it your fiction?"
2021-01-26 02:54:47 +0100 <koz_> GHC insists that helperFunctionTakingInnards :: WrapperType -> Maybe Result
2021-01-26 02:54:56 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 02:55:07 +0100 <koz_> How would I write it so that it types as 'WrappedType -> Maybe Result'?
2021-01-26 02:55:26 +0100 <ski> use `unDataConstructor' ?
2021-01-26 02:55:29 +0100 <koz_> (given 'newtype WrapperType = DataConstructor WrappedType')
2021-01-26 02:55:40 +0100 <koz_> Oh wait, is that it?
2021-01-26 02:55:42 +0100 <ski> or `DataConstructor (helperFunctionTakingInnards -> Just x)' ?
2021-01-26 02:55:51 +0100Feuermagier(~Feuermagi@213.178.26.41) (Quit: Leaving)
2021-01-26 02:56:03 +0100 <koz_> Oh, excellent, thank you!
2021-01-26 02:56:13 +0100 <koz_> I guess my view pattern game is still a bit weak.
2021-01-26 02:56:16 +0100Feuermagier(~Feuermagi@213.178.26.41)
2021-01-26 02:56:18 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2021-01-26 02:56:34 +0100Feuermagier(~Feuermagi@213.178.26.41)
2021-01-26 02:56:51 +0100 <ski> (fwiw, `unDataConstructor -> helperFunctionTakingInnards -> Just x' would be equal to `helperFunctionTakingInnards . unDataConstructor -> Just x')
2021-01-26 02:56:53 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 256 seconds)
2021-01-26 02:57:25 +0100 <koz_> Also, if I have two patterns, either of which is sufficient for 'coverage of all cases in a pattern match', would having two COMPLETE pragmata do what I expect?
2021-01-26 02:58:23 +0100 <nshepperd> your answer was for the student to prove the absence of it by exhaustively exploring compiler documentation?
2021-01-26 02:58:25 +0100 <ski> monochrom : being forced to scrutinize the (lack of) support for one's misconception can sure help dispell it, yea
2021-01-26 02:58:52 +0100 <ski> koz_ : i think so
2021-01-26 03:00:09 +0100 <whataday> how we escape 1/0?
2021-01-26 03:00:40 +0100 <monochrom> nshepperd, I also asked "show me actual code that passes 'null' to this function".
2021-01-26 03:00:41 +0100dddddd(~dddddd@unaffiliated/dddddd)
2021-01-26 03:00:42 +0100 <ski> (occasionally i realize that i've conflated two things, and i can't fathom how i could've conflated them, since as soon as i thought of both at the same time, it was obvious they were not the same thing)
2021-01-26 03:00:43 +0100 <koz_> whataday: What do you mean 'escape'?
2021-01-26 03:00:55 +0100 <ski> whataday : don't divide by zero ?
2021-01-26 03:02:35 +0100 <monochrom> My course web page had a link to the Haskell 2010 Report. It was fair to ask "is 'null' a reserved word?", they could look there.
2021-01-26 03:02:57 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-01-26 03:03:39 +0100 <monochrom> The course web page also had a link to Prelude doc. It was also fair to ask "is 'null' from the standard library", and they would found 'null' there, and also that it totally means something else.
2021-01-26 03:04:29 +0100 <whataday> I'm confused about error, null, failure computation
2021-01-26 03:04:41 +0100 <nshepperd> if you're at the level of Haskell ability where you're not sure whether null exists, not being able to come up with code that creates it is not very strong evidence
2021-01-26 03:04:51 +0100 <monochrom> On the question "show me actual code that makes what you call 'null'", they could also reply to me "I can't for now, but I still suspect it could be done", you know? And they didn't.
2021-01-26 03:04:51 +0100 <whataday> 1/0 would case an error, right?
2021-01-26 03:04:59 +0100 <ski> depends on the type
2021-01-26 03:05:07 +0100 <ski> for floating-point types, no
2021-01-26 03:05:13 +0100 <ski> for `Rational', yes
2021-01-26 03:05:16 +0100 <monochrom> nshepperd, I do guiding questions, I don't do straight answers.
2021-01-26 03:05:56 +0100 <monochrom> At the very least, you could say "I don't know how" and I would know how to move forward the conversation.
2021-01-26 03:06:09 +0100 <ski> `error' is a way to plug a hole in the program, when you don't know what to do. if your program ever gets to that point, it'll abort
2021-01-26 03:06:16 +0100 <monochrom> What the student did was to evade all my guiding questions.
2021-01-26 03:07:24 +0100 <monochrom> Also, the student was not at the level of not sure. The student was at the level of so-sure.
2021-01-26 03:07:25 +0100 <ski> you should normally only use `error' either when there's a bug in your program (perhaps a violated invariant or postcondition), or else when some precondition is violated (so, whoever called you has a bug)
2021-01-26 03:07:58 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-pohbnfozrhmuhvuq)
2021-01-26 03:08:23 +0100tinwood(~tinwood@general.default.akavanagh.uk0.bigv.io) (Remote host closed the connection)
2021-01-26 03:09:02 +0100 <ski> whataday : another example of an erronous computation would be trying to take the first element (or the element at any index, say) of an empty list
2021-01-26 03:09:05 +0100 <ski> > head []
2021-01-26 03:09:06 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-01-26 03:09:07 +0100 <lambdabot> *Exception: Prelude.head: empty list
2021-01-26 03:09:32 +0100tsandstr(~user@cpe-74-74-192-114.rochester.res.rr.com) (Ping timeout: 272 seconds)
2021-01-26 03:09:49 +0100harshkell(465fa714@cpe-70-95-167-20.san.res.rr.com)
2021-01-26 03:10:41 +0100 <ski> whataday : what do you mean by a "failure computation" ? (where did you get the term from ?)
2021-01-26 03:10:53 +0100 <whataday> ski, so we check that list if it's empty before head? if it's empty we can return Nothing?
2021-01-26 03:11:20 +0100 <whataday> ski I forgot where I saw that term
2021-01-26 03:11:32 +0100 <whataday> <|>?
2021-01-26 03:11:33 +0100tinwood(~tinwood@general.default.akavanagh.uk0.bigv.io)
2021-01-26 03:11:40 +0100 <whataday> related to <|>?
2021-01-26 03:11:44 +0100 <ski> `head' can't return `Nothing', in case of an empty list. but your code could possibly, if you check the list before using `head'
2021-01-26 03:12:09 +0100 <ski> usually, it's better to not use `head' and `tail', but rather e.g. pattern-match (and then handle the empty list case explicitly)
2021-01-26 03:12:44 +0100 <ski> `(<|>)' is a type class method .. it's unclear whether talking about it here would be of any help
2021-01-26 03:14:41 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
2021-01-26 03:14:43 +0100 <monochrom> There is also a whole mile of cognitive difference between "is null a possible input?" and "what if the input is null?", as a student question. I would gladly reply "no" directly for the former.
2021-01-26 03:14:44 +0100 <ski> @let scaleByFirst :: Integer -> [Integer] -> Maybe [Integer]; scaleByFirst [] = Nothing; scaleByFirst (x:ys) = Just [x * y | y <- ys]
2021-01-26 03:14:44 +0100 <hololeap> :t listToMaybe
2021-01-26 03:14:45 +0100 <lambdabot> .L.hs:161:14: error:
2021-01-26 03:14:45 +0100 <lambdabot> • Couldn't match expected type ‘Integer’ with actual type ‘[a0]’
2021-01-26 03:14:45 +0100 <lambdabot> • In the pattern: []
2021-01-26 03:14:46 +0100 <lambdabot> [a] -> Maybe a
2021-01-26 03:14:54 +0100 <hololeap> % :t listToMaybe
2021-01-26 03:14:55 +0100 <yahb> hololeap: [a] -> Maybe a
2021-01-26 03:14:56 +0100 <ski> @let scaleByFirst :: [Integer] -> Maybe [Integer]; scaleByFirst [] = Nothing; scaleByFirst (x:ys) = Just [x * y | y <- ys]
2021-01-26 03:14:58 +0100 <lambdabot> Defined.
2021-01-26 03:15:06 +0100 <ski> > scaleByFirst [2,3,5,7]
2021-01-26 03:15:10 +0100 <lambdabot> Just [6,10,14]
2021-01-26 03:15:10 +0100 <whataday> main = (gerLine >>= print) <|> (print "interrupted ")
2021-01-26 03:15:11 +0100 <ski> > scaleByFirst [2]
2021-01-26 03:15:14 +0100 <lambdabot> Just []
2021-01-26 03:15:15 +0100 <ski> > scaleByFirst []
2021-01-26 03:15:17 +0100 <lambdabot> Nothing
2021-01-26 03:15:21 +0100 <whataday> then you press C-c
2021-01-26 03:15:22 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Quit: finn_elija)
2021-01-26 03:15:25 +0100 <monochrom> But the latter, since you are so sure it would happen, let's see some actual code. I call you bluff. (I now remember I said that, too.)
2021-01-26 03:16:07 +0100Tario(~Tario@201.192.165.173)
2021-01-26 03:16:23 +0100 <ski> whataday : `scaleByFirst' is an example of a function that gives `Nothing', if given an empty list. otherwise, it uses the first number to multiply the remaining numbers with (wrapping the resulting list in a `Just', because otherwise the types won't fit)
2021-01-26 03:16:56 +0100gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-01-26 03:18:34 +0100 <ski> whataday : `main',`getLine',`print x' are all `IO'-actions (not functions). I/O (Input/Output) actions have a notion of failure (exceptions). `<|>' will in this case catch exceptions encountered during execution of its left operand, and in that case switch to executing its right operand
2021-01-26 03:18:49 +0100reaverb(~reaverb@071-008-105-088.res.spectrum.com)
2021-01-26 03:19:50 +0100 <ski> (although, `print' itself is a function. a function that takes some `Show'able value, and computes an I/O action for you .. that, when (later, maybe never) executed, will print a corresponding `String' on standard output ..)
2021-01-26 03:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 03:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 03:20:53 +0100harshkell(465fa714@cpe-70-95-167-20.san.res.rr.com) (Quit: Connection closed)
2021-01-26 03:21:20 +0100geyaeb_(~geyaeb@gateway/tor-sasl/geyaeb)
2021-01-26 03:21:42 +0100 <whataday> functions can be failed computation?
2021-01-26 03:21:59 +0100stevenxl(uid133530@gateway/web/irccloud.com/x-smbmognhpdzvkoox) (Quit: Connection closed for inactivity)
2021-01-26 03:22:32 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds)
2021-01-26 03:23:33 +0100 <koz_> whataday: If you're asking 'is Maybe (a -> b) a thing?', then yes absolutely.
2021-01-26 03:23:41 +0100 <koz_> Imagine a dictionary whose values are functions, for example.
2021-01-26 03:23:51 +0100 <koz_> (some might even call this an 'object' rofl)
2021-01-26 03:24:01 +0100 <ski> <ski> whataday : what do you mean by a "failure computation" ? (where did you get the term from ?)
2021-01-26 03:25:14 +0100 <whataday> as I said I forgot where I saw that, you can think that's something I made up, ok?
2021-01-26 03:25:28 +0100perdent(~perdent@101.175.77.209)
2021-01-26 03:25:35 +0100 <ski> mhm
2021-01-26 03:26:16 +0100 <monochrom> whataday, you're in for a shock because in Haskell, we draw a line between trying to divide by zero (I/O, aka interacting with the outside world, is not involved) and trying to open a file that the OS doesn't let you (I/O is involved, in fact the root cause of the failure).
2021-01-26 03:26:19 +0100 <ski> `Maybe' is one way to represent failure. but there's other things one could mean by "failure" as well, so it's not clear what "functions can be failed computation?" is asking about
2021-01-26 03:26:26 +0100 <whataday> anything produce an error, I call it a failure computation, ok?
2021-01-26 03:26:48 +0100 <ski> koz_ was talking about "maybe we get a function, or maybe that fails, and we have no function"
2021-01-26 03:27:16 +0100 <ski> however, perhaps you were thinking about "maybe the function produces a result, or maybe it fails to produce a result, when called on some input"
2021-01-26 03:27:29 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2021-01-26 03:27:33 +0100 <monochrom> In fact we draw that same line between non-I/O and yes-I/O for all computations, too, and that's why we draw the same line between the two kinds of failures.
2021-01-26 03:27:34 +0100 <whataday> Nothing is not a failure
2021-01-26 03:27:37 +0100 <ski> "error" is similarly vague, as a general term
2021-01-26 03:28:33 +0100 <ski> `Nothing' can be used to represent failure
2021-01-26 03:28:59 +0100 <ski> but `Nothing' is a legitimate value. it doesn't magically cause a computation to abort
2021-01-26 03:29:30 +0100 <ski> see e.g. `M.lookup' from above, which uses `Nothing' to represent failure to find a corresponding value for a key, in a finite map
2021-01-26 03:30:05 +0100SevenK(~sevenk@64.85.149.202) (Ping timeout: 264 seconds)
2021-01-26 03:30:09 +0100 <ski> for your convenience :
2021-01-26 03:30:13 +0100 <ski> @type M.lookup
2021-01-26 03:30:15 +0100 <lambdabot> Ord k => k -> M.Map k a -> Maybe a
2021-01-26 03:31:58 +0100 <ski> (.. otoh, the function `error' is not vague, of course. it definitely causes the computation to abort, rather than produce a value for you. perhaps by "failure computation", you meant any computation that ends up calling `error', and thus aborting ?)
2021-01-26 03:33:06 +0100Sonderblade(~helloman@94.191.137.103.mobile.tre.se)
2021-01-26 03:33:41 +0100nineonin_(~nineonine@50.216.62.2) (Ping timeout: 264 seconds)
2021-01-26 03:34:02 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 246 seconds)
2021-01-26 03:35:07 +0100Sonderblade(~helloman@94.191.137.103.mobile.tre.se) (Read error: Connection reset by peer)
2021-01-26 03:35:24 +0100Sonderblade(~helloman@94.191.137.103.mobile.tre.se)
2021-01-26 03:35:31 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 03:36:34 +0100conal(~conal@64.71.133.70)
2021-01-26 03:37:41 +0100dddddd(~dddddd@unaffiliated/dddddd)
2021-01-26 03:38:26 +0100YellowOnion(~YellowOni@222-152-181-96-fibre.sparkbb.co.nz) (Read error: Connection reset by peer)
2021-01-26 03:39:20 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-26 03:40:33 +0100xff0x(~xff0x@2001:1a81:5363:7e00:cb6f:f3:b273:90be) (Ping timeout: 260 seconds)
2021-01-26 03:41:09 +0100threestrikes(~haskell@cpe-24-243-229-2.hot.res.rr.com) (Quit: WeeChat 2.9)
2021-01-26 03:42:23 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:5e6d:d66d:350c:80ac)
2021-01-26 03:44:36 +0100conal(~conal@64.71.133.70)
2021-01-26 03:46:16 +0100viluon(uid453725@gateway/web/irccloud.com/x-qwufrlkefmuaynwu) (Quit: Connection closed for inactivity)
2021-01-26 03:47:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 03:52:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-01-26 03:52:58 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-01-26 03:54:22 +0100 <whataday> yes, abort computation I think it's called failure computation
2021-01-26 03:54:42 +0100catt(~r@31.124.181.226) (Ping timeout: 265 seconds)
2021-01-26 03:55:01 +0100alx741(~alx741@181.196.68.167) (Quit: alx741)
2021-01-26 03:55:11 +0100brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Ping timeout: 265 seconds)
2021-01-26 03:55:37 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 03:58:04 +0100 <ski> ok
2021-01-26 03:58:14 +0100 <ski> @src head
2021-01-26 03:58:14 +0100 <lambdabot> head (x:_) = x
2021-01-26 03:58:14 +0100 <lambdabot> head [] = error "Prelude.head: empty list"
2021-01-26 03:58:29 +0100 <ski> see, `head' calls `error', in case of empty-list
2021-01-26 04:00:30 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 265 seconds)
2021-01-26 04:00:44 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-26 04:00:57 +0100Tario(~Tario@201.192.165.173)
2021-01-26 04:02:02 +0100j3r3my(~jeremym@68-73-116-155.lightspeed.rlghnc.sbcglobal.net)
2021-01-26 04:02:50 +0100krkinikini
2021-01-26 04:03:14 +0100jchia__(~jchia@58.32.38.49) (Quit: Leaving.)
2021-01-26 04:03:41 +0100jchia__(~jchia@jungle.jchia.net)
2021-01-26 04:04:31 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-26 04:05:27 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-26 04:05:35 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-01-26 04:07:54 +0100jchia__(~jchia@jungle.jchia.net) (Remote host closed the connection)
2021-01-26 04:08:36 +0100jchia__(~jchia@jungle.jchia.net)
2021-01-26 04:09:25 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2021-01-26 04:10:05 +0100vikid(~vikid@94.206.199.164) ("Leaving")
2021-01-26 04:10:41 +0100vikid(~vikid@94.206.199.164)
2021-01-26 04:11:12 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
2021-01-26 04:11:50 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru)
2021-01-26 04:12:03 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 04:16:47 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 256 seconds)
2021-01-26 04:18:08 +0100shailangsa(~shailangs@host86-162-150-221.range86-162.btcentralplus.com) (Ping timeout: 246 seconds)
2021-01-26 04:19:40 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2021-01-26 04:19:42 +0100dddddd(~dddddd@unaffiliated/dddddd)
2021-01-26 04:19:59 +0100jackk_(~jackk@205.178.111.134)
2021-01-26 04:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 04:20:34 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 04:22:54 +0100jchia__(~jchia@jungle.jchia.net) (Remote host closed the connection)
2021-01-26 04:23:31 +0100jchia__(~jchia@58.32.38.49)
2021-01-26 04:23:43 +0100j3r3my(~jeremym@68-73-116-155.lightspeed.rlghnc.sbcglobal.net) (Ping timeout: 260 seconds)
2021-01-26 04:24:48 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
2021-01-26 04:25:13 +0100benb(52456307@82-69-99-7.dsl.in-addr.zen.co.uk) (Quit: Ping timeout (120 seconds))
2021-01-26 04:25:34 +0100plutoniix(~q@184.82.219.212)
2021-01-26 04:25:43 +0100plutoniix(~q@184.82.219.212) (Max SendQ exceeded)
2021-01-26 04:25:44 +0100nineonine(~nineonine@50.216.62.2)
2021-01-26 04:26:09 +0100plutoniix(~q@184.82.219.212)
2021-01-26 04:30:21 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-26 04:31:35 +0100theDon(~td@muedsl-82-207-238-131.citykom.de) (Ping timeout: 256 seconds)
2021-01-26 04:31:40 +0100 <siraben> @src error
2021-01-26 04:31:40 +0100 <lambdabot> error s = throw (ErrorCall s)
2021-01-26 04:33:23 +0100theDon(~td@94.134.91.108)
2021-01-26 04:33:53 +0100sucre(bab702c7@186.183.2.199)
2021-01-26 04:34:19 +0100Wamanuz2(~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Quit: Konversation terminated!)
2021-01-26 04:39:19 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds)
2021-01-26 04:39:35 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-01-26 04:39:37 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi)
2021-01-26 04:40:36 +0100notzmv(~user@unaffiliated/zmv)
2021-01-26 04:42:05 +0100conal(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2021-01-26 04:43:01 +0100conal(~conal@64.71.133.70)
2021-01-26 04:43:24 +0100sucre(bab702c7@186.183.2.199) ()
2021-01-26 04:44:54 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-26 04:45:30 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2021-01-26 04:45:30 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services)))
2021-01-26 04:45:30 +0100xirhtogallagothrix
2021-01-26 04:46:57 +0100sucre(bab702c7@186.183.2.199)
2021-01-26 04:48:21 +0100sucre(bab702c7@186.183.2.199) ()
2021-01-26 04:48:42 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 04:48:46 +0100f-a(~f-a@151.68.4.77)
2021-01-26 04:50:45 +0100shailangsa(~shailangs@host86-162-150-221.range86-162.btcentralplus.com)
2021-01-26 04:52:20 +0100deviantfero(~deviantfe@190.150.27.58)
2021-01-26 04:53:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-26 04:56:01 +0100edrx(~Eduardo@2804:56c:d2ec:c100:b9cf:4552:2518:d38c)
2021-01-26 04:57:18 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-01-26 04:58:32 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 04:59:47 +0100 <edrx> hi... where can I find the reference documentation on how "where" works? I think that I stumbled on a case in which writing one of the equations (is this the right term?) as "foo bar = plic" works, but writing it as "foo = \ bar -> plic" doesn't...
2021-01-26 05:00:49 +0100 <edrx> I have the source for ghc here and I am running "make html" in its tree right now - so hints like "grep for bla bla blah" are fine
2021-01-26 05:01:26 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2021-01-26 05:01:38 +0100f-a(~f-a@151.68.4.77) ()
2021-01-26 05:01:58 +0100 <ephemient> that sounds more like MonomorphismRestriction than an issue with where
2021-01-26 05:02:10 +0100 <edrx> can be
2021-01-26 05:03:05 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-26 05:03:38 +0100zaquest(~notzaques@5.128.210.178)
2021-01-26 05:04:16 +0100Rudd0(~Rudd0@185.189.115.108)
2021-01-26 05:04:52 +0100 <edrx> https://wiki.haskell.org/Monomorphism_restriction
2021-01-26 05:07:03 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 05:09:45 +0100dandart(~Thunderbi@home.dandart.co.uk)
2021-01-26 05:11:15 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-01-26 05:11:15 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-26 05:11:39 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 05:12:15 +0100reaverb(~reaverb@071-008-105-088.res.spectrum.com) (Quit: Leaving)
2021-01-26 05:12:17 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-01-26 05:12:25 +0100fiQ2(~fiQ@mirkk.ninja) (Quit: ZNC - https://znc.in)
2021-01-26 05:12:35 +0100fiQ-(~fiQ@mirkk.ninja)
2021-01-26 05:12:39 +0100jrm(~jrm@freebsd/developer/jrm) (Quit: ciao)
2021-01-26 05:12:44 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 05:12:58 +0100jrm(~jrm@freebsd/developer/jrm)
2021-01-26 05:13:54 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 260 seconds)
2021-01-26 05:14:53 +0100 <koz_> :t ($>)
2021-01-26 05:14:54 +0100 <lambdabot> error:
2021-01-26 05:14:54 +0100 <lambdabot> • Variable not in scope: $>
2021-01-26 05:14:54 +0100 <lambdabot> • Perhaps you meant one of these:
2021-01-26 05:14:59 +0100 <koz_> :t (<$)
2021-01-26 05:15:00 +0100 <lambdabot> Functor f => a -> f b -> f a
2021-01-26 05:15:11 +0100 <koz_> > 1 <$ Nothing
2021-01-26 05:15:13 +0100 <lambdabot> Nothing
2021-01-26 05:15:17 +0100 <koz_> :D
2021-01-26 05:16:21 +0100HiRE_(~HiRE@104.128.237.40)
2021-01-26 05:16:22 +0100 <jle`> @let import Data.Functor
2021-01-26 05:16:23 +0100 <lambdabot> Defined.
2021-01-26 05:16:28 +0100 <jle`> :t ($>)
2021-01-26 05:16:29 +0100 <lambdabot> Functor f => f a -> b -> f b
2021-01-26 05:16:43 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-01-26 05:19:44 +0100HiRE(~HiRE@104.128.237.40) (Ping timeout: 260 seconds)
2021-01-26 05:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 05:20:18 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 05:20:32 +0100pjb(~t@2a01cb04063ec500dc318125de0674a0.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-01-26 05:20:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 05:21:22 +0100 <koz_> @pl \x -> guard (x == Foo) $> Bar (x + 3)
2021-01-26 05:21:22 +0100 <lambdabot> ap (($>) . guard . (Foo ==)) (Bar . (3 +))
2021-01-26 05:21:40 +0100 <koz_> Shockingly it could be more APLy.
2021-01-26 05:22:00 +0100 <koz_> (($>) . guard . (Foo ==)) <$> (Bar . (3 +))
2021-01-26 05:22:07 +0100 <koz_> (and then all your colleagues want to murder you)
2021-01-26 05:23:13 +0100pjb(~t@2a01cb04063ec50061b948e81b7ea004.ipv6.abo.wanadoo.fr)
2021-01-26 05:26:09 +0100howdoi(uid224@gateway/web/irccloud.com/x-atttjcsneckauiyy) (Quit: Connection closed for inactivity)
2021-01-26 05:29:36 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-01-26 05:30:44 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds)
2021-01-26 05:31:25 +0100dandart(~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds)
2021-01-26 05:33:44 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 260 seconds)
2021-01-26 05:34:58 +0100dandart(~Thunderbi@home.dandart.co.uk)
2021-01-26 05:35:37 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-okhfxjstomyzycod) (Quit: Connection closed for inactivity)
2021-01-26 05:36:26 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 05:37:39 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-26 05:38:47 +0100syd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net)
2021-01-26 05:43:40 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-01-26 05:45:15 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-hmlvzlbwqsspjwdw) ()
2021-01-26 05:45:48 +0100Wuzzy(~Wuzzy@p549c95a3.dip0.t-ipconnect.de) (Quit: Wuzzy)
2021-01-26 05:47:10 +0100shoojii(99f23802@p699003-ipoe.ipoe.ocn.ne.jp)
2021-01-26 05:48:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 05:48:41 +0100dandart(~Thunderbi@home.dandart.co.uk) (Ping timeout: 264 seconds)
2021-01-26 05:49:40 +0100knupfer(~Thunderbi@200116b82cf5ad00d1848027e4ca07e4.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-26 05:49:52 +0100knupfer(~Thunderbi@200116b82cf5ad00396a310140ae67fd.dip.versatel-1u1.de)
2021-01-26 05:50:39 +0100catt(~r@31.124.181.226)
2021-01-26 05:51:33 +0100Glyde_(~glyde@90.221.74.173)
2021-01-26 05:52:08 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 05:52:24 +0100glyde(~glyde@90.221.74.173) (Ping timeout: 260 seconds)
2021-01-26 05:52:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-01-26 05:54:02 +0100rowbee(~augh@theguntretort.com) ("WeeChat 3.0")
2021-01-26 05:58:14 +0100xacktm(xacktm@gateway/shell/panicbnc/x-jvtlirfmskjbwohd) (Ping timeout: 264 seconds)
2021-01-26 05:59:45 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds)
2021-01-26 06:00:02 +0100Klumben(Nsaiswatch@gateway/shell/panicbnc/x-fomxhgfovyvqanep) (Ping timeout: 264 seconds)
2021-01-26 06:00:12 +0100SolarAquarion(SolarAquar@gateway/shell/panicbnc/x-vaxxzctuxkewousu) (Ping timeout: 258 seconds)
2021-01-26 06:00:40 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-26 06:01:45 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-01-26 06:02:10 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 06:02:47 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-01-26 06:03:14 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 06:04:38 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 06:06:06 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-26 06:06:06 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-01-26 06:06:14 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net)
2021-01-26 06:09:33 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 265 seconds)
2021-01-26 06:10:29 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 260 seconds)
2021-01-26 06:13:12 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: Ping timeout (120 seconds))
2021-01-26 06:13:31 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2021-01-26 06:16:56 +0100 <zebrag> `data FreeA f a where Return :: a -> FreeA f a; (:$:) :: forall b . f (b -> a) -> FreeA f b -> FreeA f a` "not in scope f"
2021-01-26 06:17:18 +0100 <zebrag> It must be some kind of syntax error, but I cant find which
2021-01-26 06:17:30 +0100 <zebrag> {-# LANGUAGE GADTs, RankNTypes, DeriveFunctor #-}
2021-01-26 06:17:46 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 06:18:00 +0100 <\2E0KNO> i hope you find an answer mate
2021-01-26 06:18:18 +0100 <\2E0KNO> tell me what its doing in peices?
2021-01-26 06:20:05 +0100epicte7us(~epictetus@ip184-187-162-163.sb.sd.cox.net)
2021-01-26 06:20:13 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 06:20:16 +0100 <glguy> data FreeA f a where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a
2021-01-26 06:20:34 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 06:20:38 +0100 <\2E0KNO> lol
2021-01-26 06:20:43 +0100 <glguy> or: data FreeA f a where Return :: a -> FreeA f a; (:$:) :: forall f a b. f (b -> a) -> FreeA f b -> FreeA f a
2021-01-26 06:21:53 +0100 <glguy> Keep in mind in "data FreeA f a where" those f and a are NOT in scope in the constructors
2021-01-26 06:22:08 +0100 <glguy> the GADT syntax is a bit garbage , and the fix is to turn on KindSignatures
2021-01-26 06:22:20 +0100 <zebrag> (reading)
2021-01-26 06:22:33 +0100 <glguy> data FreeA :: (* -> *) -> * -> * where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a
2021-01-26 06:22:38 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 256 seconds)
2021-01-26 06:25:33 +0100 <zebrag> glguy: isn't the `a` in the scope of the constructor there? https://en.wikibooks.org/wiki/Haskell/GADT#GADTs
2021-01-26 06:26:21 +0100 <glguy> data FreeA un related where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a
2021-01-26 06:27:09 +0100 <zebrag> (weird)
2021-01-26 06:27:35 +0100 <zebrag> Where can I find information about that?
2021-01-26 06:27:48 +0100 <zebrag> I wouldn't even know how to describe it
2021-01-26 06:28:46 +0100 <glguy> There's this https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#generalised-algeb…
2021-01-26 06:29:15 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-loxocsvrmbkkjpqg)
2021-01-26 06:33:47 +0100 <zebrag> glguy: in the following expression, `a` is available, but not `f`?! `data FreeA f a where Return :: a -> FreeA f a; (:$:) :: forall b. f (b -> a) -> FreeA f b -> FreeA f a`
2021-01-26 06:34:07 +0100 <zebrag> if `f` is not available, why then is `a`?
2021-01-26 06:34:13 +0100 <glguy> which a?
2021-01-26 06:34:31 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 06:34:37 +0100 <zebrag> `Return :: a -> FreeA f a`
2021-01-26 06:34:57 +0100 <zebrag> it doesn't say `not in scope ` for this one
2021-01-26 06:35:13 +0100 <zebrag> and even `f` is available in that place
2021-01-26 06:35:15 +0100 <glguy> because you didn't write 'forall' on that constructor
2021-01-26 06:35:31 +0100 <zebrag> ok, dort of
2021-01-26 06:35:36 +0100 <zebrag> sort*
2021-01-26 06:35:44 +0100 <glguy> it's like a normal type signature as if you'd written: mymap :: (a -> b) -> [a] -> [b]
2021-01-26 06:35:46 +0100JJ15(~JJ@2a00:23a8:4382:a900:3dfb:7375:916f:d8c3) (Read error: Connection reset by peer)
2021-01-26 06:36:04 +0100 <zebrag> right
2021-01-26 06:36:46 +0100 <zebrag> I think I understand
2021-01-26 06:37:07 +0100winnywInNy
2021-01-26 06:37:10 +0100 <glguy> but once you toss a 'forall' in then you have to actually introduce all your variables
2021-01-26 06:37:13 +0100 <glguy> no more free lunch
2021-01-26 06:37:25 +0100 <glguy> (:$:) :: forall f a b. f (b -> a) -> FreeA f b -> FreeA f a
2021-01-26 06:37:34 +0100 <glguy> gotta mention f and a there if you're going to mention forall b
2021-01-26 06:37:40 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-26 06:38:01 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
2021-01-26 06:38:30 +0100raym(~ray@45.64.220.55)
2021-01-26 06:38:58 +0100 <zebrag> What about "Notice that GADT-style syntax generalises existential type" (https://downloads.haskell.org/~ghc/7.4.2/docs/html/users_guide/data-type-extensions.html)
2021-01-26 06:38:59 +0100 <monochrom> I don't think you're supposed to use forall for existential purposes in GADTs.
2021-01-26 06:39:36 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 06:40:23 +0100 <monochrom> Yes, notice that there is no "forall" in the examples.
2021-01-26 06:40:51 +0100ixaxaar(~ixaxaar@49.207.210.215)
2021-01-26 06:40:51 +0100 <monochrom> Unless you're fixated on "data Foo = forall a. MkFoo a (a -> Bool)" which is neither GADTs nor GADT-syntax.
2021-01-26 06:41:12 +0100 <monochrom> Also why are you looking at version 7.4.2?
2021-01-26 06:41:56 +0100 <zebrag> (not really looking a 7.4, it's google fault)
2021-01-26 06:42:54 +0100 <zebrag> error: parse error on input ‘{’
2021-01-26 06:43:25 +0100 <zebrag> `{ (:$:) :: f (b -> a) -> FreeA f b -> FreeA f b }`
2021-01-26 06:43:50 +0100 <zebrag> `data FreeA f a where { (:$:) :: f (b -> a) -> FreeA f b -> FreeA f b }`
2021-01-26 06:43:52 +0100 <monochrom> % data FreeA f a where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a
2021-01-26 06:43:52 +0100 <yahb> monochrom:
2021-01-26 06:43:59 +0100 <monochrom> worksforyahb
2021-01-26 06:44:40 +0100 <zebrag> monochrom: thanks
2021-01-26 06:44:49 +0100 <zebrag> I missed that permutation
2021-01-26 06:45:37 +0100nineonin_(~nineonine@50.216.62.2)
2021-01-26 06:46:11 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
2021-01-26 06:46:11 +0100 <monochrom> s/permutation/deletion/
2021-01-26 06:46:24 +0100 <zebrag> ;)
2021-01-26 06:46:32 +0100 <monochrom> Like glguy, I simply deleted "forall b." from your code.
2021-01-26 06:47:27 +0100 <zebrag> yeah, but there were `data FreeA :: (* -> *) -> * -> * where`, so I missed the deletion point
2021-01-26 06:47:30 +0100conal(~conal@209.58.139.237)
2021-01-26 06:47:49 +0100 <zebrag> Probably missed plenty of other things
2021-01-26 06:48:21 +0100 <zebrag> glguy: much appreciated
2021-01-26 06:49:35 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 06:50:43 +0100 <zebrag> (I can now go back to why free applicatives in the first place)
2021-01-26 06:51:58 +0100edrx(~Eduardo@2804:56c:d2ec:c100:b9cf:4552:2518:d38c) ("Killed buffer")
2021-01-26 06:53:04 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-26 06:54:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-26 06:58:25 +0100vikid(~vikid@94.206.199.164) (Remote host closed the connection)
2021-01-26 06:59:29 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-01-26 07:00:01 +0100shoojii(99f23802@p699003-ipoe.ipoe.ocn.ne.jp) (Ping timeout: 248 seconds)
2021-01-26 07:02:00 +0100seneca(~epictetus@ip184-187-162-163.sb.sd.cox.net)
2021-01-26 07:03:32 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-26 07:03:55 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-01-26 07:04:04 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 07:05:05 +0100epicte7us(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 246 seconds)
2021-01-26 07:07:17 +0100nineonin_(~nineonine@50.216.62.2) (Ping timeout: 264 seconds)
2021-01-26 07:08:22 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-26 07:10:24 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 07:12:09 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 07:14:38 +0100conal(~conal@209.58.139.237) (Ping timeout: 260 seconds)
2021-01-26 07:15:09 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 272 seconds)
2021-01-26 07:19:36 +0100conal(~conal@209.58.139.237)
2021-01-26 07:22:54 +0100catt(~r@31.124.181.226) (Remote host closed the connection)
2021-01-26 07:26:14 +0100mirrorbird(~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0) (Quit: Leaving)
2021-01-26 07:27:32 +0100conal(~conal@209.58.139.237) (Remote host closed the connection)
2021-01-26 07:28:30 +0100Beetstra(~Beetstra@185.244.214.217) ()
2021-01-26 07:30:38 +0100syd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-01-26 07:30:39 +0100conal(~conal@209.58.139.237)
2021-01-26 07:31:52 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-01-26 07:36:49 +0100mrchampion(~mrchampio@38.18.109.23) (Remote host closed the connection)
2021-01-26 07:37:36 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 07:37:50 +0100plutoniix(~q@184.82.219.212) (Read error: Connection reset by peer)
2021-01-26 07:39:32 +0100waskell_(~quassel@d66-183-230-153.bchsia.telus.net)
2021-01-26 07:41:50 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 246 seconds)
2021-01-26 07:43:46 +0100waskell(~quassel@d172-218-41-115.bchsia.telus.net) (Ping timeout: 272 seconds)
2021-01-26 07:45:08 +0100syd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net)
2021-01-26 07:46:45 +0100seneca(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-01-26 07:48:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 07:51:16 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 07:52:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-26 07:54:11 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-26 07:55:19 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 07:56:29 +0100banjiewen__(sid115913@gateway/web/irccloud.com/x-wejejmvcskdsoppk) (Ping timeout: 264 seconds)
2021-01-26 07:56:29 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 264 seconds)
2021-01-26 07:56:32 +0100bcmiller(~bm3719@66.42.95.185) (Ping timeout: 246 seconds)
2021-01-26 07:56:53 +0100fissureman_(~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 07:57:05 +0100orhan89(~orhan89@151.91.188.35.bc.googleusercontent.com) (Ping timeout: 264 seconds)
2021-01-26 07:57:06 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-26 07:57:19 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 07:57:23 +0100banjiewen__(sid115913@gateway/web/irccloud.com/x-dghcdnstvrjlfegj)
2021-01-26 07:58:26 +0100fissureman(~quassel@c-73-163-84-25.hsd1.dc.comcast.net)
2021-01-26 07:58:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-26 07:58:56 +0100orhan89(~orhan89@151.91.188.35.bc.googleusercontent.com)
2021-01-26 07:58:59 +0100vappend(~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 260 seconds)
2021-01-26 08:00:01 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
2021-01-26 08:00:01 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 08:00:14 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 265 seconds)
2021-01-26 08:01:38 +0100bcmiller(~bm3719@66.42.95.185)
2021-01-26 08:02:15 +0100plutoniix(~q@184.82.219.212)
2021-01-26 08:04:48 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 260 seconds)
2021-01-26 08:08:28 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-26 08:11:48 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
2021-01-26 08:13:00 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-01-26 08:15:10 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-26 08:15:30 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-26 08:15:56 +0100 <dminuoso> @tell geeokosaur Mmm. Fair enough, I guess the consistency makes somewhat sense, I was just surprise because I didn't see this documented anywhere. And it's mildly annoying that cabal appears to look in a super directory for a cabal.project, which means I cant just zoom into a vendored package and modify its constraints freely.
2021-01-26 08:15:56 +0100 <lambdabot> Consider it noted.
2021-01-26 08:18:45 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-26 08:19:00 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-26 08:21:01 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds)
2021-01-26 08:22:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 08:24:29 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-26 08:25:40 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-26 08:28:07 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-01-26 08:29:26 +0100hiroaki(~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2021-01-26 08:29:32 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 08:29:34 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke)
2021-01-26 08:30:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 08:30:38 +0100knupfer(~Thunderbi@200116b82cf5ad00396a310140ae67fd.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-26 08:30:46 +0100knupfer(~Thunderbi@200116b82cf5ad00ed5db529763d9f59.dip.versatel-1u1.de)
2021-01-26 08:31:59 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-01-26 08:32:20 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-26 08:32:40 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-01-26 08:34:14 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-01-26 08:34:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-26 08:37:44 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 08:38:37 +0100gaussian(uid482612@gateway/web/irccloud.com/x-zrgzbdjjyrntrmry) (Quit: Connection closed for inactivity)
2021-01-26 08:42:59 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds)
2021-01-26 08:43:23 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi)
2021-01-26 08:44:16 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-01-26 08:46:44 +0100paolo|out(~paolo|out@s91904426.blix.com)
2021-01-26 08:46:48 +0100 <ij> is there some code to insert into list without changing the sort order?
2021-01-26 08:47:07 +0100 <koz_> ij: Like a sorted insert?
2021-01-26 08:47:30 +0100 <dminuoso> What does "changing the sort order" mean to you?
2021-01-26 08:47:33 +0100 <koz_> Do you have duplicates or something?
2021-01-26 08:48:33 +0100 <ij> I have very few new elements and my solver is constantly sorting next choices according to how good they are
2021-01-26 08:48:56 +0100forgottenone(~forgotten@176.42.20.27)
2021-01-26 08:49:39 +0100 <ij> dminuoso, so that (sort $ more ++ existing) would be the same as insertSorted more existing
2021-01-26 08:50:24 +0100 <Uniaika> ij: like an ordered set?
2021-01-26 08:50:34 +0100 <ij> dminuoso, how should I call it?
2021-01-26 08:50:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 08:50:49 +0100 <koz_> I was also going to ask why you're not using Set.
2021-01-26 08:50:59 +0100 <koz_> Hence my 'do you have possible duplicates' question.
2021-01-26 08:51:35 +0100 <ij> I'm not quite sure what that has to do with duplicates, though I do have some
2021-01-26 08:52:05 +0100 <koz_> ij: Set is automagically sorted for you, and allows rapid removal of smallest/largest items.
2021-01-26 08:52:15 +0100 <koz_> However, if you have 2 identical things, they'll coalesce into 1 thing.
2021-01-26 08:52:39 +0100conal(~conal@209.58.139.237) (Ping timeout: 260 seconds)
2021-01-26 08:54:14 +0100 <ij> I looked and I didn't find deleteFindMin the previous time
2021-01-26 08:55:25 +0100 <ij> I could supply my own Ord and Eq then and might be able to get rid of duplicates
2021-01-26 08:55:53 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 264 seconds)
2021-01-26 08:55:58 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2021-01-26 08:56:01 +0100ADG1089__(~aditya@223.226.145.125)
2021-01-26 08:56:38 +0100 <koz_> General rule: if you don't care about duplicates and need sorted insertion/finding/deletion, Set is probably the _first_ place to look.
2021-01-26 08:56:45 +0100 <koz_> (possibly Map as well depending on your data)
2021-01-26 08:56:51 +0100 <ij> I did have Set, but I didn't see Min/Max, somehow
2021-01-26 08:57:24 +0100 <koz_> Another general rule: containers, unordered-containers and vector hide _many_ treasures amid their APIs. :D
2021-01-26 08:57:32 +0100 <ij> one question: how much memory, comparatively, should it cost to insert another element into a Set of size N?
2021-01-26 08:57:37 +0100 <ij> koz_, :)
2021-01-26 08:57:49 +0100 <ij> I even wrote my own Set pop >_<
2021-01-26 08:58:03 +0100 <koz_> ij: Set is a red-black tree underneath, so it's logarithmic copying.
2021-01-26 08:58:21 +0100 <koz_> (well, it's the _immutable_ red-black tree I should say)
2021-01-26 08:58:23 +0100 <ij> log_2?
2021-01-26 08:58:26 +0100 <koz_> Yes.
2021-01-26 08:58:37 +0100 <ij> that shouldn't be that bad
2021-01-26 08:58:41 +0100 <koz_> (up to constant factors)
2021-01-26 08:58:49 +0100 <koz_> It's about as good as it gets in the general case for immutable structures.
2021-01-26 08:59:01 +0100 <koz_> (you can do better sometimes under specific conditions, but not generally as a rule)
2021-01-26 08:59:09 +0100 <ij> yeah, sounds pretty good
2021-01-26 08:59:22 +0100 <xsperry> ij, see S.elemAt. min should be first, and max last element
2021-01-26 09:00:21 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-01-26 09:01:20 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Client Quit)
2021-01-26 09:03:35 +0100plutoniix(~q@184.82.219.212) (Read error: Connection reset by peer)
2021-01-26 09:04:29 +0100plutoniix(~q@184.82.219.212)
2021-01-26 09:07:01 +0100 <ij> thankfully choice between duplicates (of same score) doesn't seem to change the iteration count
2021-01-26 09:07:08 +0100conal(~conal@209.58.139.237)
2021-01-26 09:07:45 +0100 <ij> I'm just really surprising that putting minimal element as first, leaving rest unsorted didn't work out
2021-01-26 09:12:42 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 09:14:33 +0100p7lpa1ugixavugu(~atomic@host160.186-111-133.telecom.net.ar)
2021-01-26 09:14:49 +0100p7lpa1ugixavugu(~atomic@host160.186-111-133.telecom.net.ar) (Client Quit)
2021-01-26 09:18:17 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-26 09:18:29 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-26 09:19:44 +0100pera(~pera@unaffiliated/pera)
2021-01-26 09:22:33 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 09:22:33 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-26 09:23:23 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-26 09:26:16 +0100Graf_Blutwurst(~grafblutw@2001:171b:226e:adc0:ccb1:a006:be48:6a3e)
2021-01-26 09:27:14 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-01-26 09:27:24 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-01-26 09:29:15 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-26 09:29:58 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 09:31:47 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-01-26 09:39:49 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 244 seconds)
2021-01-26 09:41:00 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2021-01-26 09:41:05 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-01-26 09:44:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 09:47:22 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-26 09:47:28 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 246 seconds)
2021-01-26 09:47:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 09:49:00 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 09:49:59 +0100 <ij> but inserting without changing the order might still be even simpler
2021-01-26 09:50:13 +0100borne(~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce)
2021-01-26 09:50:18 +0100 <ij> I will always have only < 3 elements being inserted
2021-01-26 09:52:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-26 09:53:11 +0100frozenErebus(~frozenEre@94.128.80.70)
2021-01-26 09:53:28 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds)
2021-01-26 09:54:26 +0100borne(~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) (Ping timeout: 240 seconds)
2021-01-26 09:55:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds)
2021-01-26 10:00:04 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-26 10:00:07 +0100agentofuser(agentofuse@gateway/shell/matrix.org/x-ggyzyeajezksfxkt) (Quit: Idle for 30+ days)
2021-01-26 10:01:14 +0100ADG1089__(~aditya@223.226.145.125) (Remote host closed the connection)
2021-01-26 10:01:16 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-26 10:01:49 +0100borne(~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce)
2021-01-26 10:01:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 10:03:49 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-01-26 10:05:01 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-26 10:06:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 10:07:31 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 10:09:57 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-01-26 10:11:16 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 246 seconds)
2021-01-26 10:12:40 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 264 seconds)
2021-01-26 10:12:52 +0100chele(~chele@91.64.35.125)
2021-01-26 10:15:58 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-01-26 10:16:07 +0100_linker_(~linker@2a02:a31a:a045:3500:edc4:9fc5:d992:6c7e)
2021-01-26 10:17:09 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 10:17:14 +0100Tario(~Tario@201.192.165.173)
2021-01-26 10:17:24 +0100 <ij> well, there's https://hackage.haskell.org/package/sorted-list-0.2.1.0/docs/Data-SortedList.html
2021-01-26 10:17:24 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 10:18:54 +0100 <ij> but the again, maybe Set will be a better choice
2021-01-26 10:18:57 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:5e6d:d66d:350c:80ac) (Ping timeout: 260 seconds)
2021-01-26 10:19:29 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 10:19:33 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da)
2021-01-26 10:21:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 10:21:30 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2021-01-26 10:24:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 10:24:21 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 10:24:37 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 10:25:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 10:25:48 +0100pera(~pera@unaffiliated/pera)
2021-01-26 10:26:35 +0100hastronauta(~hastronau@ip-103-85-38-61.syd.xi.com.au)
2021-01-26 10:27:47 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-26 10:27:56 +0100frozenErebus(~frozenEre@94.128.80.70) (Ping timeout: 240 seconds)
2021-01-26 10:30:01 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-26 10:30:12 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 10:31:36 +0100ubert(~Thunderbi@p200300ecdf25d943ca5b76fffe29f233.dip0.t-ipconnect.de)
2021-01-26 10:32:27 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-26 10:35:08 +0100__monty__(~toonn@unaffiliated/toonn)
2021-01-26 10:36:16 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 10:37:29 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-cbzowztxbjyvafew) (Quit: Connection closed for inactivity)
2021-01-26 10:37:55 +0100 <hastronauta> hi folks, I am trying to understand the comparison between 2 functions to sort a list (in a naive way) but I don't understand what the author of the book I'm reading means with "recursive function calls on the conditional part of guards"
2021-01-26 10:38:38 +0100 <hastronauta> the function that is worse in regards of performance is the one using this recursive function calls on the conditional part of guards
2021-01-26 10:38:59 +0100 <hastronauta> but to me, it seems that the best approach isn't that different
2021-01-26 10:39:25 +0100 <hastronauta> isn't the otherwise part of guards, also conditional part of guards?
2021-01-26 10:40:38 +0100 <idnar> is there a way to be able to access a Map through two different keys
2021-01-26 10:41:42 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-26 10:42:53 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-26 10:43:03 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-26 10:44:42 +0100 <idnar> (well, something like a Map)
2021-01-26 10:44:42 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-26 10:45:06 +0100 <maerwald> @hackage ixset-typed
2021-01-26 10:45:06 +0100 <lambdabot> https://hackage.haskell.org/package/ixset-typed
2021-01-26 10:45:08 +0100ph88(~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb) (Ping timeout: 260 seconds)
2021-01-26 10:45:55 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds)
2021-01-26 10:46:04 +0100denisse_(~spaceCat@gateway/tor-sasl/alephzer0)
2021-01-26 10:46:34 +0100 <merijn> hastronauta: tbh, I don't understand that description/question without a code example
2021-01-26 10:46:46 +0100 <merijn> idnar: "have two maps"? :p
2021-01-26 10:46:59 +0100borne(~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) (Ping timeout: 244 seconds)
2021-01-26 10:47:33 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-26 10:47:44 +0100 <idnar> maerwald: oooh thanks
2021-01-26 10:48:02 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-26 10:48:23 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-loxocsvrmbkkjpqg) (Quit: Connection closed for inactivity)
2021-01-26 10:49:43 +0100 <idnar> merijn: how do I synchronize them? to clarify, I need update as well as ordered fold
2021-01-26 10:51:48 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 10:52:14 +0100Guest32940(~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-26 10:54:15 +0100vikid(~vikid@bba428846.alshamil.net.ae)
2021-01-26 10:55:19 +0100 <merijn> idnar: I meant, like, having a newtype/datatype that just has two maps inside and exposes a unified API that access either and updates them simultaneously
2021-01-26 10:55:37 +0100 <merijn> although I don't really know what you wanna use this for
2021-01-26 10:56:18 +0100 <maerwald> with ixset-typed you can have as many indices as you want
2021-01-26 10:56:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-26 10:56:39 +0100 <maerwald> but at that point, you might want to consider a database
2021-01-26 10:57:10 +0100 <merijn> Yeah, any type I looked at ixset it just seemed "SQLite, but bad" :p
2021-01-26 10:57:53 +0100 <merijn> I think people like using it with acid-state, but I can't recommend that since I discovered the "acid" in it's name is more...aspirational, rather than an indication of robustness >.>
2021-01-26 10:58:19 +0100 <maerwald> ixset-typed is definitely used in production
2021-01-26 10:58:32 +0100niekvand_(~niekvande@89.205.132.51)
2021-01-26 10:58:40 +0100 <merijn> I mean, that's not really any indication of quality
2021-01-26 10:58:52 +0100 <merijn> I've worked as a sysadmin, I've *seen* the shit people deploy to production
2021-01-26 10:59:13 +0100 <maerwald> it works ok
2021-01-26 10:59:38 +0100 <maerwald> but I'd not recommend it for large datasets
2021-01-26 11:00:01 +0100 <maerwald> the re-indexing is sometimes inefficient afair
2021-01-26 11:00:02 +0100Alleria(~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com)
2021-01-26 11:00:26 +0100AlleriaGuest21252
2021-01-26 11:00:31 +0100 <maerwald> and you don't have the same safety guarantees as with real sql
2021-01-26 11:00:49 +0100 <idnar> currently I'm using Data.Map with the index I'm updating by, then toList + sort to access, but since I only use the top 10 elems this is fairly wasteful
2021-01-26 11:00:58 +0100Rudd0(~Rudd0@185.189.115.103)
2021-01-26 11:01:25 +0100 <merijn> idnar: Sounds like a usecase for sqlite :p
2021-01-26 11:01:26 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-26 11:01:46 +0100 <merijn> Then again, I'm increasingly convinced that a solid 80% of problems sound like a usecase of sqlite
2021-01-26 11:02:55 +0100 <idnar> I don't think the latency of SQLite will be acceptable
2021-01-26 11:03:08 +0100 <merijn> What latency do you need?
2021-01-26 11:03:22 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-01-26 11:03:45 +0100 <merijn> I'm confused why you'd think "toList + sort" would be better for latency than SQLite
2021-01-26 11:04:04 +0100 <merijn> Unless your dataset is tiny, in which case there's no reason to switch anyway
2021-01-26 11:04:04 +0100danza(~francesco@151.53.68.90)
2021-01-26 11:04:50 +0100Guest21252(~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com) (Ping timeout: 264 seconds)
2021-01-26 11:05:37 +0100 <idnar> it's thousands of elements, probably
2021-01-26 11:05:46 +0100 <maerwald> that's tiny
2021-01-26 11:05:52 +0100 <idnar> yup
2021-01-26 11:06:14 +0100 <merijn> And even then I'm skeptical about performance problems with SQLite
2021-01-26 11:06:22 +0100 <hastronauta> merijn I just pushed the two sort functions that I'm talking about to my gist: https://gist.github.com/adolfoweloy/8f73f5ebd42363bb3e9a9f6b418ba979
2021-01-26 11:06:32 +0100 <idnar> it'll also mean forcing a lot of unforced thunks
2021-01-26 11:07:14 +0100 <maerwald> give ixset-typed a try, there's also a fork with some improvements: https://github.com/capital-match/ixset-typed
2021-01-26 11:07:56 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-26 11:10:34 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-01-26 11:11:19 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Quit: jpds)
2021-01-26 11:13:18 +0100ph88(~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb)
2021-01-26 11:13:31 +0100 <hastronauta> sorry merijn I just figured it out. The first and worse piece of code recursivelly calls the same function actually within the condition expression and these expressions will be always evaluated. That's why the first approach is a bad strategy
2021-01-26 11:14:29 +0100 <__monty__> hastronauta: The only bad part is remove_smaller. There's barely any difference otherwise.
2021-01-26 11:14:51 +0100 <__monty__> This looks to me like pretty terrible code to illustrate anything tbh.
2021-01-26 11:15:36 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 240 seconds)
2021-01-26 11:15:44 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-01-26 11:15:52 +0100nehsou^(nehsou@ip98-184-89-2.mc.at.cox.net) ()
2021-01-26 11:17:25 +0100 <hastronauta> __monty__ the function smaller also calls itself while evaluating the guard `| a < (smaller c)`
2021-01-26 11:17:56 +0100 <hastronauta> when operating on n elements, for each condition evaluated I will have more n recursive calls
2021-01-26 11:18:26 +0100 <hastronauta> so smaller as a whole would have an average amount of calls as (n*(n-1))/2
2021-01-26 11:18:50 +0100MarcelineVQ(~anja@198.254.199.42) (Read error: Connection reset by peer)
2021-01-26 11:18:54 +0100 <hastronauta> on the second strategy, as I don't have recursive calls on the conditions, it reduces the complexity to O(N)
2021-01-26 11:19:26 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-01-26 11:19:32 +0100MarcelineVQ(~anja@198.254.199.42)
2021-01-26 11:19:56 +0100dandart(~Thunderbi@home.dandart.co.uk)
2021-01-26 11:20:14 +0100 <hastronauta> also you are right about the example. It's actually a contrived example but the idea of the author is just to show operations on lists. There will be a chapter with proper implementation of sort algorithms (mergesort, quicksort to name a few)
2021-01-26 11:21:16 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-01-26 11:21:16 +0100Lord_of_Life_Lord_of_Life
2021-01-26 11:21:52 +0100 <maerwald> I'd be surprised if the quicksort example is correct
2021-01-26 11:22:16 +0100thc202(~thc202@unaffiliated/thc202)
2021-01-26 11:24:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 11:24:52 +0100ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2021-01-26 11:26:44 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-26 11:27:55 +0100 <__monty__> hastronauta: Ok, you're right for the *worst* case. But only because it's written without sharing. `let smal = smaller c in if a < small = a else small` wouldn't be quadratic. So it doesn't really have anything to do with function calls in the guards imo.
2021-01-26 11:27:59 +0100fendor(~fendor@178.165.131.27.wireless.dyn.drei.com)
2021-01-26 11:28:52 +0100perdent(~perdent@101.175.77.209) (Ping timeout: 264 seconds)
2021-01-26 11:29:02 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-01-26 11:29:07 +0100ph88(~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb) (Ping timeout: 272 seconds)
2021-01-26 11:32:33 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds)
2021-01-26 11:33:02 +0100son0p(~son0p@181.58.39.182)
2021-01-26 11:33:32 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-26 11:39:56 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da) (Ping timeout: 240 seconds)
2021-01-26 11:41:46 +0100xff0x(xff0x@gateway/vpn/mullvad/xff0x)
2021-01-26 11:42:15 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2021-01-26 11:43:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 11:44:41 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-26 11:47:04 +0100xff0x(xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 260 seconds)
2021-01-26 11:47:19 +0100Alleria__(~textual@mskresolve-a.mskcc.org)
2021-01-26 11:48:02 +0100dandart(~Thunderbi@home.dandart.co.uk) (Quit: dandart)
2021-01-26 11:48:57 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da)
2021-01-26 11:49:23 +0100Widget(~widget@2a04:ee41:6:7207:540b:3b8:842a:e218) (Ping timeout: 272 seconds)
2021-01-26 11:51:27 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-26 11:55:14 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da) (Quit: xff0x)
2021-01-26 11:55:15 +0100borne(~fritjof@2001:638:708:30da:bf60:e341:502c:8f25)
2021-01-26 11:56:40 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net)
2021-01-26 11:57:14 +0100frozenErebus(~frozenEre@94.128.80.70)
2021-01-26 11:57:58 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-26 11:58:14 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-01-26 11:58:22 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-26 11:59:37 +0100kuribas(~user@ptr-25vy0i7k6wy863qxr1f.18120a2.ip6.access.telenet.be)
2021-01-26 12:03:24 +0100AakashYadav(67f0ee02@103.240.238.2)
2021-01-26 12:04:52 +0100AakashYadav(67f0ee02@103.240.238.2) (Client Quit)
2021-01-26 12:05:05 +0100Stanley00(~stanley00@unaffiliated/stanley00) ()
2021-01-26 12:05:14 +0100AakashYadav(67f0ee02@103.240.238.2)
2021-01-26 12:06:42 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 12:07:10 +0100Widget(~widget@2a04:ee41:6:7207:2113:b8a0:61a4:72c7)
2021-01-26 12:07:53 +0100AakashYadav(67f0ee02@103.240.238.2) (Client Quit)
2021-01-26 12:08:35 +0100phaul(~phaul@ruby/staff/phaul)
2021-01-26 12:09:55 +0100turion(~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0)
2021-01-26 12:13:27 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Remote host closed the connection)
2021-01-26 12:13:36 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-26 12:19:41 +0100berberman[T](berberma4@gateway/shell/matrix.org/x-wboyhejwnhmrrzsk) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100fgaz(fgazmatrix@gateway/shell/matrix.org/x-erioxuklbyevzyfa) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100domenkozar[m](domenkozar@NixOS/user/domenkozar) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100Ericson2314(ericson231@gateway/shell/matrix.org/x-qqjbagbwnixhuagj) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100sajith[m](sajithmatr@gateway/shell/matrix.org/x-tzagtgtauouklmud) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100maralorn(maralornma@gateway/shell/matrix.org/x-ccwyimxyipipxott) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-ppaxyyarqdmborcj) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:41 +0100psamim(samimpmatr@gateway/shell/matrix.org/x-hmcuinycqtxqonvf) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100SlackIntegration(slackbotma@gateway/shell/matrix.org/x-ibsgyezzjxunhilp) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100sm[m](simonmicma@gateway/shell/matrix.org/x-cruwxmqhnqtnfubj) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100psydruid(psydruidma@gateway/shell/matrix.org/x-fxgmtntgcwdkuqcz) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100rednaZ[m](r3dnazmatr@gateway/shell/matrix.org/x-poqwudtpjwrggild) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100jtojnar(jtojnarmat@gateway/shell/matrix.org/x-vyzjwthzutoaikeu) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100Hatsue[m](berbermanm@gateway/shell/matrix.org/x-ectisystfrreelxj) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100lambdaclan(lambdaclan@gateway/shell/matrix.org/x-tjjalgckilcqtkmd) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100srid(sridmatrix@gateway/shell/matrix.org/x-inhuutdnxqdpopdo) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100jesser[m](jessermatr@gateway/shell/matrix.org/x-srqnhhbvqfdsyemz) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100noIOBeforeBedtim(dissatisfi@gateway/shell/matrix.org/x-lnslivqcvcehdsfj) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100siraben(sirabenmat@gateway/shell/matrix.org/x-vshhzbemomocaeeu) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100metamod[m](metamodmat@gateway/shell/matrix.org/x-sxmfwvmmnwryhory) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:42 +0100ThaEwat(thaewraptm@gateway/shell/matrix.org/x-gbznnmkcjmqvxbxy) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:43 +0100immae(immaematri@gateway/shell/matrix.org/x-dkrlbqbvjibkkbju) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:43 +0100kadoban(kadobanmat@gateway/shell/matrix.org/x-bezqkfeaojhralis) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:43 +0100PotatoHatsue(berbermanp@gateway/shell/matrix.org/x-dnpxuvpjeaoflzep) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:43 +0100unclechu(unclechuma@gateway/shell/matrix.org/x-omzmjwbzkozodzzi) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:43 +0100lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-ayuqsvefripndnee) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:43 +0100michaelpj(michaelpjm@gateway/shell/matrix.org/x-nwhnsnsuwqaixwkn) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:44 +0100DamienCassou(damiencass@gateway/shell/matrix.org/x-qtejztrrfkbzhyxa) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:44 +0100bitonic(bitonicmat@gateway/shell/matrix.org/x-izldntyefnqmmayg) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:44 +0100bsima[m](bensimatim@gateway/shell/matrix.org/x-fzaguuzoesdluffp) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:45 +0100VarikValefor[m](varikvalef@gateway/shell/matrix.org/x-ctmjkdnzgqsjtani) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:45 +0100lierdakil[m](lierdakilm@gateway/shell/matrix.org/x-eeuxsijgzkfksifa) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:45 +0100shutendoji[m](shutendoji@gateway/shell/matrix.org/x-nrvdlftgadvhjfvm) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:46 +0100rab24ack[m](rab24ackma@gateway/shell/matrix.org/x-wcltiphggarhrfns) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:46 +0100svc0[m](svc0matrix@gateway/shell/matrix.org/x-askcybmyzohsngft) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:46 +0100Noughtmare[m](naughtmare@gateway/shell/matrix.org/x-nafwkykzttetzvfv) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100ManofLetters[m](manoflette@gateway/shell/matrix.org/x-yinlcqowagvydijh) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100alexfmpe(alexfmpema@gateway/shell/matrix.org/x-zesrxqjkddyfeatl) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100sawmon-and-natal(sawmon-and@gateway/shell/matrix.org/x-dndrhkihzbqovlmw) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100tomsen[m](tfbiomatri@gateway/shell/matrix.org/x-luejkvdbwddoecid) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100itai33[m](itai33matr@gateway/shell/matrix.org/x-qumypgvhpxfpeofl) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100ichor[m](hakonmatri@gateway/shell/matrix.org/x-xrkebsocverrqdpa) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100meckse[m](mecksematr@gateway/shell/matrix.org/x-ywskaitxgtetdrma) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:47 +0100joshualit140[m](joshualit1@gateway/shell/matrix.org/x-bxgihovyyteqkrke) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100jamesfielder[m](jamesfield@gateway/shell/matrix.org/x-oqksgxbgfcqxxzsx) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100ciderpunx[m](ciderpunxm@gateway/shell/matrix.org/x-iwhlrvomzhfrmvun) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100Vanilla[m](danielm14@gateway/shell/matrix.org/x-iclzzboaitsvqoij) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100peterstorm[m](peterstorm@gateway/shell/matrix.org/x-ehcczugpqfhgrcec) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100pedrorubster[m](pedrorubst@gateway/shell/matrix.org/x-umdxltgranshpsvy) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100sigmacool[m](sigmacoolm@gateway/shell/matrix.org/x-cdzslubatisxyxll) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:48 +0100MrMuffles[m](mrmufflesm@gateway/shell/matrix.org/x-cffceolgaibiqsjv) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:49 +0100pythag76[m](pythag76ma@gateway/shell/matrix.org/x-nqoqwjpmazlcibsv) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:49 +0100materialfuture[m(materialfu@gateway/shell/matrix.org/x-btgqgvtxrhzyyhhq) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:49 +0100Lurkki[m]1(lurkkifene@gateway/shell/matrix.org/x-adyiczqhehhbgzyo) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:50 +0100Wraul[m](wraulmatri@gateway/shell/matrix.org/x-hvxhhucngddotwlw) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:51 +0100Poscat[m](poscatmatr@gateway/shell/matrix.org/x-wkwjcgotvlsdgkxc) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:52 +0100plumenator[m](plumenator@gateway/shell/matrix.org/x-wddgljrrirfsqanf) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:52 +0100pqwy[m](pqwymatrix@gateway/shell/matrix.org/x-lzlhtwhlfzajbeaz) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:52 +0100Lurkki[m](lurkkipriv@gateway/shell/matrix.org/x-sisndylvdaopfdec) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:52 +0100phittacus(bklmatrixo@gateway/shell/matrix.org/x-hhimzwizefxkoire) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:52 +0100freeman42x[m](freeman42x@gateway/shell/matrix.org/x-rpnozwbuibjuytqu) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:53 +0100xosdy[m]1(xosdyaleth@gateway/shell/matrix.org/x-ovojdgglgmvnarni) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:55 +0100hsiktas[m](hsiktasmat@gateway/shell/matrix.org/x-wieotahuivyfales) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:55 +0100cnmne[m](cnmnematri@gateway/shell/matrix.org/x-qvxmprftwpuespcw) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:55 +0100tomferon[m](tomferonmo@gateway/shell/matrix.org/x-pakzypimmvvdmzsu) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:55 +0100doct0rhu[m](doct0rhumo@gateway/shell/matrix.org/x-qgqckihwphobyqnp) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:56 +0100AmitLevy[m](amitmostly@gateway/shell/matrix.org/x-leuuyxhgckvvgiry) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:19:56 +0100falling-edge[m](falling-ed@gateway/shell/matrix.org/x-wwccpmkdjdbnhgdw) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:14 +0100boistordu(boistordum@gateway/shell/matrix.org/x-zrckddvacurpkhaf) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:14 +0100alvinsj[m](alvinsjmat@gateway/shell/matrix.org/x-enkqzdniyvtgfppk) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:14 +0100jeffcasavant[m](jeffcasava@gateway/shell/matrix.org/x-clfilslbehuictox) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:14 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-pleykzjzkzayglon) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:14 +0100Hanma[m](hanmamatri@gateway/shell/matrix.org/x-oawexhhctjfbiwqz) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:15 +0100jkaye[m](jkayematri@gateway/shell/matrix.org/x-bgmgpmnisxsypztt) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:15 +0100speakerspivakeem(speakerdea@gateway/shell/matrix.org/x-toxtysqenwxqnkty) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:20:15 +0100bram[m]1(bramvdbnet@gateway/shell/matrix.org/x-ivgrjcqhxwxhnknr) (Quit: Bridge terminating on SIGTERM)
2021-01-26 12:21:49 +0100conal(~conal@209.58.139.237) (Ping timeout: 245 seconds)
2021-01-26 12:21:55 +0100mly[m](mlydisenco@gateway/shell/matrix.org/x-mebwepyglgvvpmzb)
2021-01-26 12:21:56 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 265 seconds)
2021-01-26 12:25:12 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
2021-01-26 12:25:26 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 12:26:53 +0100bitmagie(~Thunderbi@200116b806facd00d0d7127d7911c11a.dip.versatel-1u1.de)
2021-01-26 12:27:04 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-01-26 12:27:36 +0100conal(~conal@209.58.139.237)
2021-01-26 12:29:01 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 12:29:01 +0100niekvand_(~niekvande@89.205.132.51) (Read error: Connection reset by peer)
2021-01-26 12:29:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-26 12:30:08 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-01-26 12:30:49 +0100hastronauta(~hastronau@ip-103-85-38-61.syd.xi.com.au) (Ping timeout: 258 seconds)
2021-01-26 12:30:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 12:30:56 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:11b1:198b:f2c6:97cd)
2021-01-26 12:31:10 +0100joshualit140[m](joshualit1@gateway/shell/matrix.org/x-rvnsgfgpwjtkzpgq)
2021-01-26 12:32:24 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2021-01-26 12:32:30 +0100DTZUZU_(~DTZUZU@205.ip-149-56-132.net)
2021-01-26 12:33:16 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2021-01-26 12:36:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-01-26 12:36:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 12:36:57 +0100hastronauta(~hastronau@ip-103-85-38-61.syd.xi.com.au)
2021-01-26 12:37:01 +0100phaul(~phaul@ruby/staff/phaul)
2021-01-26 12:41:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-26 12:42:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 12:45:23 +0100bogdanp(~bogdanp@188.24.80.165) (Ping timeout: 258 seconds)
2021-01-26 12:46:35 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-pdeauzqtzbyjklyl)
2021-01-26 12:47:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-26 12:48:32 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 12:52:12 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-26 12:52:20 +0100lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-svydbisbbanoiqnb)
2021-01-26 12:52:20 +0100srid(sridmatrix@gateway/shell/matrix.org/x-wybkacjomlvhmhep)
2021-01-26 12:52:20 +0100Noughtmare[m](naughtmare@gateway/shell/matrix.org/x-grnqieitxhaltrhd)
2021-01-26 12:52:20 +0100pqwy[m](pqwymatrix@gateway/shell/matrix.org/x-mhknjrvluwjnndnv)
2021-01-26 12:52:20 +0100rednaZ[m](r3dnazmatr@gateway/shell/matrix.org/x-xxoijqgskmviruli)
2021-01-26 12:52:20 +0100Ericson2314(ericson231@gateway/shell/matrix.org/x-xthspoakrpftlnep)
2021-01-26 12:52:20 +0100freeman42x[m](freeman42x@gateway/shell/matrix.org/x-jwjegsrnkpqjuedy)
2021-01-26 12:52:20 +0100Hatsue[m](berbermanm@gateway/shell/matrix.org/x-egksqudvykogopex)
2021-01-26 12:52:20 +0100johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-cgvmuuzunazrkwqa)
2021-01-26 12:52:21 +0100PotatoHatsue(berbermanp@gateway/shell/matrix.org/x-fxplenydhghvqfud)
2021-01-26 12:52:21 +0100alvinsj[m](alvinsjmat@gateway/shell/matrix.org/x-scbhmacnhtaahjvl)
2021-01-26 12:52:21 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-imzjrhaeqamvjnpm)
2021-01-26 12:52:21 +0100domenkozar[m](domenkozar@NixOS/user/domenkozar)
2021-01-26 12:52:21 +0100berberman[T](berberma4@gateway/shell/matrix.org/x-kykkodkydikhaoso)
2021-01-26 12:52:21 +0100DamienCassou(damiencass@gateway/shell/matrix.org/x-hgyskvlfmnnbjqqg)
2021-01-26 12:52:21 +0100bitonic(bitonicmat@gateway/shell/matrix.org/x-gycivwdjxapldsrb)
2021-01-26 12:52:21 +0100xosdy[m](xosdyaleth@gateway/shell/matrix.org/x-slrtkdsrssunucrv)
2021-01-26 12:52:21 +0100psamim(samimpmatr@gateway/shell/matrix.org/x-toflizfrhzgrrvgo)
2021-01-26 12:52:21 +0100rab24ack[m](rab24ackma@gateway/shell/matrix.org/x-ltlugmpozzsdocqy)
2021-01-26 12:52:21 +0100jkaye[m](jkayematri@gateway/shell/matrix.org/x-xhnltlzoccoukkax)
2021-01-26 12:52:21 +0100shutendoji[m](shutendoji@gateway/shell/matrix.org/x-zdconxksxigpjvlq)
2021-01-26 12:52:21 +0100falling-edge[m](falling-ed@gateway/shell/matrix.org/x-bmqfekqfidosfzkb)
2021-01-26 12:52:22 +0100fgaz(fgazmatrix@gateway/shell/matrix.org/x-lwklqfukjicenddd)
2021-01-26 12:52:22 +0100kadoban(kadobanmat@gateway/shell/matrix.org/x-xxiahydccaxwjydt)
2021-01-26 12:52:22 +0100plumenator[m](plumenator@gateway/shell/matrix.org/x-mprhlxtouacwgnfj)
2021-01-26 12:52:22 +0100SlackIntegration(slackbotma@gateway/shell/matrix.org/x-blvfwjgjibanjfug)
2021-01-26 12:52:22 +0100lierdakil[m](lierdakilm@gateway/shell/matrix.org/x-wxkqeectrhaxulep)
2021-01-26 12:52:22 +0100boistordu(boistordum@gateway/shell/matrix.org/x-fvliptsrotihqqii)
2021-01-26 12:52:22 +0100psydruid(psydruidma@gateway/shell/matrix.org/x-pvrfkocvnvsjhcpf)
2021-01-26 12:52:22 +0100metamod[m](metamodmat@gateway/shell/matrix.org/x-jlrazuivzgxfhjsz)
2021-01-26 12:52:22 +0100alexfmpe(alexfmpema@gateway/shell/matrix.org/x-ptykqhwmxrxjxtso)
2021-01-26 12:52:22 +0100Lurkki[m](lurkkipriv@gateway/shell/matrix.org/x-gmmphzgcuicxkmso)
2021-01-26 12:52:22 +0100lambdaclan(lambdaclan@gateway/shell/matrix.org/x-qqxzhumcgwqvmtom)
2021-01-26 12:52:22 +0100sm[m](simonmicma@gateway/shell/matrix.org/x-fdjebgfbtxmweyff)
2021-01-26 12:52:22 +0100jtojnar(jtojnarmat@gateway/shell/matrix.org/x-axagyhlilqixfxpn)
2021-01-26 12:52:22 +0100Poscat[m](poscatmatr@gateway/shell/matrix.org/x-brhkoifvfpycykgg)
2021-01-26 12:52:22 +0100ThaEwat(thaewraptm@gateway/shell/matrix.org/x-pkuhbjyzjismlmbf)
2021-01-26 12:52:22 +0100tomferon[m](tomferonmo@gateway/shell/matrix.org/x-gtfkedtbnyxjujpm)
2021-01-26 12:52:22 +0100jesser[m](jessermatr@gateway/shell/matrix.org/x-smvyzlrgvurabfeg)
2021-01-26 12:52:23 +0100siraben(sirabenmat@gateway/shell/matrix.org/x-cionylmbkjxcauue)
2021-01-26 12:52:23 +0100pythag76[m](pythag76ma@gateway/shell/matrix.org/x-twqotglipymwxtge)
2021-01-26 12:52:23 +0100doct0rhu[m](doct0rhumo@gateway/shell/matrix.org/x-gqhrzgusqtdmolib)
2021-01-26 12:52:23 +0100jeffcasavant[m](jeffcasava@gateway/shell/matrix.org/x-adgeihqhlrrfgtvn)
2021-01-26 12:52:23 +0100Hanma[m](hanmamatri@gateway/shell/matrix.org/x-lkesxilepgwfnbtc)
2021-01-26 12:52:23 +0100tomsen[m](tfbiomatri@gateway/shell/matrix.org/x-nnhgmibleesprsdo)
2021-01-26 12:52:23 +0100hsiktas[m](hsiktasmat@gateway/shell/matrix.org/x-rsetqhyodtnutfmu)
2021-01-26 12:52:23 +0100noIOBeforeBedtim(dissatisfi@gateway/shell/matrix.org/x-xnujhcnzeqxwkxsl)
2021-01-26 12:52:23 +0100sajith[m](sajithmatr@gateway/shell/matrix.org/x-snjgycuexgykrnsk)
2021-01-26 12:52:24 +0100immae(immaematri@gateway/shell/matrix.org/x-wkunwohucmwdkpfx)
2021-01-26 12:52:24 +0100ichor[m](hakonmatri@gateway/shell/matrix.org/x-dxkvjuoidfoxqcgp)
2021-01-26 12:52:24 +0100michaelpj(michaelpjm@gateway/shell/matrix.org/x-caqdqtdktwyfnezj)
2021-01-26 12:52:24 +0100svc0[m](svc0matrix@gateway/shell/matrix.org/x-caompvataepmaobl)
2021-01-26 12:52:24 +0100unclechu(unclechuma@gateway/shell/matrix.org/x-xumekjrwbrxbusqa)
2021-01-26 12:52:24 +0100VarikValefor[m](varikvalef@gateway/shell/matrix.org/x-lrmbrmwxobqiwzne)
2021-01-26 12:52:24 +0100maralorn(maralornma@gateway/shell/matrix.org/x-dwcdnhqdavrlyqse)
2021-01-26 12:52:24 +0100cnmne[m](cnmnematri@gateway/shell/matrix.org/x-vbfrtiykiqwuxvdo)
2021-01-26 12:52:26 +0100MrMuffles[m](mrmufflesm@gateway/shell/matrix.org/x-tywvsihrwcwllwjt)
2021-01-26 12:52:26 +0100Wraul[m](wraulmatri@gateway/shell/matrix.org/x-bwwvgdnfglqthamt)
2021-01-26 12:52:26 +0100ciderpunx[m](ciderpunxm@gateway/shell/matrix.org/x-kusesqbejmfxgbyz)
2021-01-26 12:52:27 +0100ManofLetters[m](manoflette@gateway/shell/matrix.org/x-jymnpfjxdpvmnsgv)
2021-01-26 12:52:27 +0100sawmon-and-natal(sawmon-and@gateway/shell/matrix.org/x-cscjypogcezlgmfd)
2021-01-26 12:52:27 +0100sigmacool[m](sigmacoolm@gateway/shell/matrix.org/x-xyicnfygipeqcibh)
2021-01-26 12:52:27 +0100itai33[m](itai33matr@gateway/shell/matrix.org/x-fgufxklaqllxzsct)
2021-01-26 12:52:27 +0100bram[m]1(bramvdbnet@gateway/shell/matrix.org/x-seupfpxurapwgndl)
2021-01-26 12:52:27 +0100phittacus(bklmatrixo@gateway/shell/matrix.org/x-wexpwavgpadvdewf)
2021-01-26 12:52:27 +0100bsima[m](bensimatim@gateway/shell/matrix.org/x-ufjetevsqtlsokqi)
2021-01-26 12:52:28 +0100speakerspivakeem(speakerdea@gateway/shell/matrix.org/x-ovnnhanylbxmvbgs)
2021-01-26 12:52:28 +0100Vanilla[m](danielm14@gateway/shell/matrix.org/x-zqwoyuugjawliavy)
2021-01-26 12:52:28 +0100meckse[m](mecksematr@gateway/shell/matrix.org/x-jrshlopxonixnfxl)
2021-01-26 12:52:29 +0100jamesfielder[m](jamesfield@gateway/shell/matrix.org/x-xkmfkbfyeckadssc)
2021-01-26 12:52:29 +0100peterstorm[m](peterstorm@gateway/shell/matrix.org/x-kqzznbrmnkquyykd)
2021-01-26 12:52:29 +0100AmitLevy[m](amitmostly@gateway/shell/matrix.org/x-plqcnvarzmrefmiq)
2021-01-26 12:52:30 +0100Lurkki[m]1(lurkkifene@gateway/shell/matrix.org/x-daxqomnczybnfzav)
2021-01-26 12:52:30 +0100pedrorubster[m](pedrorubst@gateway/shell/matrix.org/x-yjwoxjqzjuopvomf)
2021-01-26 12:52:30 +0100materialfuture[m(materialfu@gateway/shell/matrix.org/x-elhtmafbmxwlxiqx)
2021-01-26 12:52:41 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-01-26 12:53:03 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 244 seconds)
2021-01-26 12:56:25 +0100bogdanp(~bogdanp@188.24.80.165)
2021-01-26 12:57:00 +0100isBEKaml(~isBEKaml@unaffiliated/isbekaml)
2021-01-26 12:58:12 +0100Tario(~Tario@201.192.165.173)
2021-01-26 12:58:13 +0100 <ph88^> could anyone tell me what this lambda is doing ? https://youtu.be/Lxl8EmUQM70?t=524
2021-01-26 13:03:46 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 13:06:21 +0100 <kuribas> that's \. 2
2021-01-26 13:06:45 +0100 <kuribas> since \. n (\. m) == n * m if n is a church encoded numeral
2021-01-26 13:07:43 +0100 <idnar> @hoogle Monad m => Bool -> m () -> m ()
2021-01-26 13:07:44 +0100 <lambdabot> XMonad.Util.PureX when' :: (Monad m, Monoid a) => Bool -> m a -> m a
2021-01-26 13:07:44 +0100 <lambdabot> Control.Conditional when :: (ToBool bool, Monad m) => bool -> m () -> m ()
2021-01-26 13:07:44 +0100 <lambdabot> Control.Monad when :: Applicative f => Bool -> f () -> f ()
2021-01-26 13:09:09 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 13:09:40 +0100 <idnar> @hoogle (Monad m, Monad m') => Bool -> m (m' ()) -> m (m' ())
2021-01-26 13:09:41 +0100 <lambdabot> No results found
2021-01-26 13:09:54 +0100_linker_(~linker@2a02:a31a:a045:3500:edc4:9fc5:d992:6c7e) (Remote host closed the connection)
2021-01-26 13:09:56 +0100oisdk(~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd)
2021-01-26 13:10:03 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 265 seconds)
2021-01-26 13:11:30 +0100 <kuribas> ph88^: sorry, forget that. It looks like the numbers here are the the bruyn indexes
2021-01-26 13:12:15 +0100 <ph88^> im already forgetting :P
2021-01-26 13:12:21 +0100 <ph88^> thanks for trying though
2021-01-26 13:12:41 +0100 <ph88^> just a bit tough to understand de bruijn indices when i dont even understand the lambda
2021-01-26 13:12:49 +0100 <kuribas> ph88^: I think this lambda expression is just to explain the bruin indices...
2021-01-26 13:13:03 +0100 <ph88^> ya ok but what does it do ?
2021-01-26 13:13:17 +0100 <kuribas> I don't know? Try to reduce it...
2021-01-26 13:13:32 +0100 <merijn> ph88^: Define "do"
2021-01-26 13:13:53 +0100 <ph88^> its a function right ... functions do stuff ?
2021-01-26 13:14:08 +0100 <kuribas> ph88^: no they don't
2021-01-26 13:14:27 +0100 <kuribas> ph88^: functions represent relations.
2021-01-26 13:14:34 +0100 <ph88^> what relation
2021-01-26 13:14:50 +0100 <merijn> I mean, what does "\x -> \y -> z (x y) x (y x)" do?
2021-01-26 13:14:52 +0100 <merijn> It just is
2021-01-26 13:14:54 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-26 13:15:14 +0100 <kuribas> ph88^: depends on the function
2021-01-26 13:15:26 +0100 <ph88^> this function https://youtu.be/Lxl8EmUQM70?t=524
2021-01-26 13:15:26 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-01-26 13:15:39 +0100 <merijn> ph88^: It's just some randomly made up function
2021-01-26 13:16:07 +0100 <merijn> it doesn't have a purpose beyond being an example
2021-01-26 13:16:14 +0100 <ph88^> i dont understand this function
2021-01-26 13:16:29 +0100neiluj_(~jco@91-167-203-101.subs.proxad.net)
2021-01-26 13:16:29 +0100 <merijn> What don't you understand about it?
2021-01-26 13:16:31 +0100 <kuribas> ph88^: there is nothing to understand
2021-01-26 13:16:33 +0100turion(~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0) (Ping timeout: 265 seconds)
2021-01-26 13:16:45 +0100 <ph88^> -__-
2021-01-26 13:16:52 +0100 <kuribas> ph88^: lambda calculus is meaningless playing with symbols
2021-01-26 13:17:12 +0100 <ph88^> why is it on his presentation slides then if there is nothing to understand ??
2021-01-26 13:17:29 +0100 <merijn> ph88^: It's explaining De Bruijn indices
2021-01-26 13:17:32 +0100 <kuribas> ph88^: because you need to understand the rules for manipulating the symbols
2021-01-26 13:17:42 +0100 <ph88^> i dont know these rules
2021-01-26 13:17:53 +0100 <kuribas> then you have to watch the video :)
2021-01-26 13:18:15 +0100aveltras(uid364989@gateway/web/irccloud.com/x-bkzrcfsztuusppij)
2021-01-26 13:18:18 +0100 <merijn> ph88^: What does "a*10 + b = 2*b - c" mean?
2021-01-26 13:18:20 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-26 13:18:59 +0100 <ph88^> that you can express a b and c in relation to each other
2021-01-26 13:19:34 +0100 <ph88^> or if you plot it as two geometric shapes that you can see some figures
2021-01-26 13:19:57 +0100 <merijn> I was gonna go with "it doesn't mean anything, it's just a definition that can get meaning depending on context"
2021-01-26 13:20:43 +0100 <merijn> I mean, you can come up with arbitrary lambda functions without them meaning anything the same way you can come up with arbitrary meaningless equations
2021-01-26 13:21:01 +0100 <idnar> for `newtype Box = MkBox Blah` is there any advantage in using `coerce :: Blah -> Box` in place of `MkBox`?
2021-01-26 13:21:01 +0100 <merijn> The goal isn't to understand the equation, the goal is to understand how you can manipulate it
2021-01-26 13:21:12 +0100 <merijn> idnar: No
2021-01-26 13:21:15 +0100 <kuribas> math itself has no meaning, the meaning comes when you observe that the patterns in math match patterns in reality.
2021-01-26 13:21:23 +0100 <merijn> idnar: Or rather "it depends" :p
2021-01-26 13:21:45 +0100 <merijn> idnar: "coerce" instead of "map coerce"/"map MkBox" is (obviously) more efficient
2021-01-26 13:22:05 +0100 <merijn> idnar: Which is why coerce was invented
2021-01-26 13:22:24 +0100 <kuribas> I would be surprised if MkBox is not just a specialized coerce...
2021-01-26 13:22:45 +0100 <kuribas> I think the language standard garantuees it...
2021-01-26 13:22:50 +0100 <merijn> kuribas: newtype constructors don't exist at runtime, so...
2021-01-26 13:23:40 +0100 <merijn> idnar: Basically the wrapping/unwrapping of applying constructors/pattern matching are no-ops at runtime
2021-01-26 13:24:05 +0100 <idnar> merijn: *nod*
2021-01-26 13:25:04 +0100gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 13:25:41 +0100fendor_(~fendor@178.165.129.60.wireless.dyn.drei.com)
2021-01-26 13:26:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 13:27:56 +0100fendor(~fendor@178.165.131.27.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-01-26 13:30:13 +0100 <kuribas> ph88^: in fact, the very same expression is on the wikipedia page: https://en.wikipedia.org/wiki/De_Bruijn_index
2021-01-26 13:30:25 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2021-01-26 13:31:06 +0100 <ph88^> so wikipedia can explain it
2021-01-26 13:31:08 +0100 <ph88^> thanks
2021-01-26 13:31:25 +0100 <merijn> Almost certainly not :p
2021-01-26 13:31:41 +0100 <ph88^> :P
2021-01-26 13:31:49 +0100 <ph88^> i had high hopes haha
2021-01-26 13:31:56 +0100MrMobius(~MrMobius@208.58.206.154) (Ping timeout: 240 seconds)
2021-01-26 13:32:00 +0100 <idnar> this subexpression is of type `STM (IO ())` which is not a type I would have expected to want (I check if a thing already happened, if so `pure ()`, if not `atomically (takeTMVar anewvar)`)
2021-01-26 13:32:31 +0100plutoniix(~q@184.82.219.212) (Quit: Leaving)
2021-01-26 13:38:05 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke) (Ping timeout: 265 seconds)
2021-01-26 13:40:03 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net) (Remote host closed the connection)
2021-01-26 13:41:25 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-26 13:42:27 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net)
2021-01-26 13:42:27 +0100MrMobius(~MrMobius@208.58.206.154)
2021-01-26 13:43:37 +0100hastronauta(~hastronau@ip-103-85-38-61.syd.xi.com.au) (Ping timeout: 265 seconds)
2021-01-26 13:44:52 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90)
2021-01-26 13:46:12 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 13:46:36 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-26 13:48:52 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-26 13:50:20 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-wsemnvfqnkpogxix)
2021-01-26 13:50:35 +0100ADG1089__(~aditya@223.226.145.125)
2021-01-26 13:50:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 13:52:06 +0100troydm(~troydm@unaffiliated/troydm) (Ping timeout: 265 seconds)
2021-01-26 13:53:29 +0100troydm(~troydm@unaffiliated/troydm)
2021-01-26 13:56:52 +0100stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.0)
2021-01-26 13:59:16 +0100turion(~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0)
2021-01-26 13:59:47 +0100 <ADG1089__> I have had lot of troubles with using ghc tooling for past couple of years. Currently I use ghcup to install cabal and ghc then cabal for any library. But in cases where I have to use stack what should I use?
2021-01-26 13:59:59 +0100 <ADG1089__> should I use cabal or stack official method or pacman?
2021-01-26 14:00:49 +0100alx741(~alx741@181.196.68.167)
2021-01-26 14:00:51 +0100urodna(~urodna@unaffiliated/urodna)
2021-01-26 14:01:06 +0100 <__monty__> Definitely not pacman.
2021-01-26 14:01:12 +0100 <yushyin> use the prebuild binary from the stack website or don't use it at all
2021-01-26 14:01:35 +0100 <__monty__> You could either use stack or hpack to create a cabal file and then cabal.
2021-01-26 14:02:01 +0100 <__monty__> I'm not a fan of "cabal install"ing stuff though, especially libraries.
2021-01-26 14:06:04 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-26 14:06:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 14:11:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-26 14:18:11 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-26 14:18:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 14:19:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-01-26 14:20:20 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90)
2021-01-26 14:20:53 +0100geekosaur(82650c7c@130.101.12.124)
2021-01-26 14:21:35 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-26 14:21:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-26 14:22:30 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2021-01-26 14:24:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds)
2021-01-26 14:25:11 +0100neiluj_(~jco@91-167-203-101.subs.proxad.net) (Quit: leaving)
2021-01-26 14:25:16 +0100brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net)
2021-01-26 14:25:55 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0)
2021-01-26 14:26:54 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-01-26 14:27:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 14:28:12 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 14:28:45 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 14:28:49 +0100 <maerwald> Try both, they're all free
2021-01-26 14:30:28 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Remote host closed the connection)
2021-01-26 14:30:38 +0100 <maerwald> free of charge not free of bugs
2021-01-26 14:30:41 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-26 14:30:59 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-01-26 14:32:26 +0100 <merijn> maerwald: Free as in puppies!
2021-01-26 14:32:42 +0100frozenErebus(~frozenEre@94.128.80.70) (Ping timeout: 265 seconds)
2021-01-26 14:32:48 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-26 14:33:05 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-26 14:33:19 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 256 seconds)
2021-01-26 14:33:25 +0100 <merijn> maerwald: Free to pick up, but you'll have to pay to get it fixed ;)
2021-01-26 14:34:47 +0100 <MarcelineVQ> ADG1089__: I ​get cabal and ghc via ghcup these days but if I wanted stack I would install it via pacman, 'stack upgrade' via cli to get the latest stack in ~/.local/bin, add ~/.local/bin to my path (in its absolute form), and remove the pacman stack afterwards.
2021-01-26 14:37:45 +0100nect(~nect@pool-108-11-28-155.atclnj.fios.verizon.net)
2021-01-26 14:38:51 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90)
2021-01-26 14:39:17 +0100motherfsck(~motherfsc@unaffiliated/motherfsck) (Quit: quit)
2021-01-26 14:41:28 +0100jiribenes(~jiribenes@rosa.jiribenes.com) (Ping timeout: 260 seconds)
2021-01-26 14:48:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 14:49:24 +0100nly(~user@unaffiliated/nly)
2021-01-26 14:50:13 +0100son0p(~son0p@181.136.122.143)
2021-01-26 14:50:37 +0100smerdyakov0(~dan@5.146.195.145) ("Leaving")
2021-01-26 14:51:09 +0100smerdyakov(~dan@5.146.195.145)
2021-01-26 14:53:01 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 14:53:27 +0100paolo|out(~paolo|out@s91904426.blix.com) (Remote host closed the connection)
2021-01-26 14:55:20 +0100puke(~vroom@217.138.252.167)
2021-01-26 14:55:35 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 14:57:05 +0100urodna_(~urodna@unaffiliated/urodna)
2021-01-26 14:57:31 +0100turion(~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0) (Quit: Leaving.)
2021-01-26 14:57:49 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-01-26 14:58:56 +0100urodna(~urodna@unaffiliated/urodna) (Ping timeout: 240 seconds)
2021-01-26 14:59:27 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 15:00:01 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds)
2021-01-26 15:01:48 +0100retroj(~retroj@217.146.82.202)
2021-01-26 15:02:16 +0100j3r3my(~jeremym@68-73-116-155.lightspeed.rlghnc.sbcglobal.net)
2021-01-26 15:02:38 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 15:02:43 +0100Tops2(~Tobias@dyndsl-095-033-093-253.ewe-ip-backbone.de)
2021-01-26 15:03:04 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-26 15:04:41 +0100berberman_(~berberman@unaffiliated/berberman)
2021-01-26 15:05:26 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-26 15:07:25 +0100jiribenes(~jiribenes@rosa.jiribenes.com)
2021-01-26 15:08:37 +0100 <maerwald> I think ghcup is also in AUR
2021-01-26 15:08:54 +0100 <maerwald> but check the hash first...
2021-01-26 15:09:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 15:12:51 +0100 <maerwald> https://aur.archlinux.org/packages/ghcup-hs-bin/ the maintainer seems legit
2021-01-26 15:13:51 +0100frozenErebus(~frozenEre@94.128.80.70)
2021-01-26 15:14:07 +0100gaussian(uid482612@gateway/web/irccloud.com/x-nimvwshqdwcnlciq)
2021-01-26 15:14:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 15:14:35 +0100rotaerk(rotaerk@2600:3c02::f03c:91ff:fe70:4a45) (Ping timeout: 272 seconds)
2021-01-26 15:18:37 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-01-26 15:18:37 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-01-26 15:18:37 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-26 15:19:23 +0100ubert(~Thunderbi@p200300ecdf25d943ca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-01-26 15:19:45 +0100ubert(~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-26 15:20:34 +0100 <ADG1089__> getting this error (https://pastebin.com/KQKrs08R) while building bloodhound examples (https://github.com/bitemyapp/bloodhound/tree/master/examples) which passes on their travisCI
2021-01-26 15:25:17 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 15:27:28 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Quit: finn_elija)
2021-01-26 15:27:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 15:28:31 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-01-26 15:29:00 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke)
2021-01-26 15:29:19 +0100shailangsa(~shailangs@host86-162-150-221.range86-162.btcentralplus.com) (Ping timeout: 260 seconds)
2021-01-26 15:29:22 +0100JadedImpression(~rubenpiet@d51A484F8.access.telenet.be)
2021-01-26 15:29:54 +0100Wuzzy(~Wuzzy@p549c95a3.dip0.t-ipconnect.de)
2021-01-26 15:30:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 15:31:53 +0100metreo(Thunderbir@gateway/vpn/mullvad/metreo)
2021-01-26 15:32:38 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-01-26 15:34:36 +0100superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
2021-01-26 15:35:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 15:35:11 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 15:36:07 +0100 <superstar64> does `Free (Yoneda f) a` mean anything? https://gist.github.com/Superstar64/9226e1a2b670ff7805a1b8b7ce857d02
2021-01-26 15:36:08 +0100 <superstar64> i'm not entirely sure what this does
2021-01-26 15:38:28 +0100 <JadedImpression> are you confused about the Yoneda part in particular, or the Free Yoneda construction as a whole?
2021-01-26 15:38:36 +0100 <superstar64> both
2021-01-26 15:39:26 +0100ADG1089__(~aditya@223.226.145.125) (Remote host closed the connection)
2021-01-26 15:40:00 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-01-26 15:40:03 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-01-26 15:41:58 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-26 15:44:18 +0100 <JadedImpression> So, Free is a data structure that transforms a functor into a monad freely. In practice this can be used for representing an abstract set of operations using a functor and then obtain a data type which can represent syntax trees utilizing these abstract operations.
2021-01-26 15:44:32 +0100knupfer(~Thunderbi@200116b82cf5ad00ed5db529763d9f59.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-26 15:44:41 +0100knupfer(~Thunderbi@200116b82cf5ad00d5c5795f8615d409.dip.versatel-1u1.de)
2021-01-26 15:44:43 +0100 <JadedImpression> Yoneda can be used to transform a type constructor into a functor
2021-01-26 15:45:17 +0100rotaerk(~rotaerk@ender.afternet.org)
2021-01-26 15:45:46 +0100 <superstar64> is this the same thing as the `Freer` monad? is it different?
2021-01-26 15:46:13 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 260 seconds)
2021-01-26 15:46:22 +0100raym(~ray@45.64.220.55)
2021-01-26 15:46:50 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-01-26 15:47:30 +0100 <lyxia> yes that's it
2021-01-26 15:47:47 +0100jedws(~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-26 15:48:38 +0100 <lyxia> oh wait no actually, Freer is Free (Coyoneda f)
2021-01-26 15:48:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-26 15:49:12 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 15:49:33 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-26 15:49:58 +0100 <superstar64> so what is this exactly? what can you do with it?
2021-01-26 15:51:06 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 15:51:43 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-26 15:53:01 +0100ystael(~ystael@209.6.50.55)
2021-01-26 15:53:14 +0100shinobi_(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 15:53:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-26 15:55:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 15:56:00 +0100 <merijn> superstar64: Coyoneda = generalised DList :p
2021-01-26 15:57:14 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
2021-01-26 15:58:10 +0100shailangsa(~shailangs@host86-162-150-221.range86-162.btcentralplus.com)
2021-01-26 16:00:56 +0100shieru[m](shierualet@gateway/shell/matrix.org/x-mmnahmoiniexbost)
2021-01-26 16:02:36 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-26 16:02:47 +0100shinobi_(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-01-26 16:03:11 +0100shinobi_(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 16:05:15 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 272 seconds)
2021-01-26 16:08:22 +0100earldouglas(~james@unaffiliated/jamestastic)
2021-01-26 16:11:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 16:14:50 +0100 <ph88^> is there any way to extract the grammar from a parser implementation ?
2021-01-26 16:14:51 +0100mrchampion(~mrchampio@38.18.109.23)
2021-01-26 16:16:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 16:16:40 +0100 <ski> for a monadic parser ?
2021-01-26 16:17:58 +0100CaptainYukinoshi(captain-yu@gateway/shell/matrix.org/x-xdwwxdmbypnirhgv)
2021-01-26 16:20:36 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-01-26 16:22:23 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-26 16:22:59 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2021-01-26 16:26:44 +0100Sarievo[m](sarievoale@gateway/shell/matrix.org/x-ajvjnddetyqkqfac)
2021-01-26 16:32:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 16:35:34 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-26 16:36:09 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-01-26 16:36:40 +0100syd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-01-26 16:37:50 +0100danza(~francesco@151.53.68.90) (Ping timeout: 264 seconds)
2021-01-26 16:37:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-26 16:38:07 +0100 <dolio> merijn: You ever get a segfault/bus error using blobs in sqlite-simple?
2021-01-26 16:38:34 +0100 <merijn> dolio: I (sadly) don't use sqlite-simple >.>
2021-01-26 16:38:41 +0100 <dolio> Oh, okay. :)
2021-01-26 16:39:23 +0100 <kuribas> the <db>-simple libraries are pretty braindead
2021-01-26 16:39:36 +0100 <kuribas> not better than jdbc in java...
2021-01-26 16:40:28 +0100 <merijn> kuribas: That's why they're good
2021-01-26 16:40:38 +0100 <merijn> all the non-braindead ones have dysfunctional brains
2021-01-26 16:40:47 +0100 <kuribas> merijn: until you want to compose queries
2021-01-26 16:40:56 +0100 <kuribas> or do something mildy complicated
2021-01-26 16:41:23 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-01-26 16:41:25 +0100 <merijn> Simple solution
2021-01-26 16:41:28 +0100 <merijn> Stop wanting that
2021-01-26 16:41:40 +0100 <kuribas> composing queries is very useful
2021-01-26 16:41:52 +0100 <kuribas> for adding custom filters, etc...
2021-01-26 16:43:18 +0100hiroaki(~hiroaki@ip4d167562.dynamic.kabel-deutschland.de)
2021-01-26 16:43:29 +0100 <kuribas> or programmatically generating queries, like for graphql
2021-01-26 16:44:57 +0100raym(~ray@45.64.220.55) (Remote host closed the connection)
2021-01-26 16:45:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 16:45:38 +0100 <dolio> Yeah, but a lot of people just want to use SQL as a data store with a known, relatively fixed schema.
2021-01-26 16:45:55 +0100 <kuribas> dolio: I didn't imply the schema isn't known :)
2021-01-26 16:46:14 +0100fendor_fendor
2021-01-26 16:48:19 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-01-26 16:48:40 +0100Glyde_(~glyde@90.221.74.173) (Ping timeout: 264 seconds)
2021-01-26 16:48:52 +0100frozenErebus(~frozenEre@94.128.80.70) (Ping timeout: 246 seconds)
2021-01-26 16:49:19 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-26 16:50:42 +0100 <carbolymer> I'm building a list with a lot of appends - I guess I would get better performance using DList rather than regular [] list, right?
2021-01-26 16:50:44 +0100 <kuribas> dolio: how would you write a query if your schema isn't known?
2021-01-26 16:50:53 +0100 <kuribas> carbolymer: yes
2021-01-26 16:51:08 +0100carbolymerget back to rewriting [] into DList
2021-01-26 16:51:11 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net)
2021-01-26 16:51:24 +0100 <dolio> What I mean is that they don't need to be dynamically generating arbitrary queries. They just need to write relatively fixed quries to access the data.
2021-01-26 16:51:42 +0100 <ski> carbolymer : assuming they're left-associated
2021-01-26 16:52:26 +0100 <kuribas> dolio: if you have a rest api with many options, dynamic queries are pretty useful.
2021-01-26 16:52:46 +0100 <ph88^> ski, yes for monadic parser
2021-01-26 16:52:52 +0100shinobi_(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 264 seconds)
2021-01-26 16:52:53 +0100 <oats> this just in, DLists are communist!
2021-01-26 16:52:55 +0100 <kuribas> dolio: different search criteria, etc... I cannot imagine why people wouldn't use them.
2021-01-26 16:53:07 +0100 <oats> sorry, dumb joke lol
2021-01-26 16:53:08 +0100 <carbolymer> ski, so building those lists [] using foldr should be fine too?
2021-01-26 16:53:25 +0100 <carbolymer> ski, I mean, foldr on original collection then prepending to the []
2021-01-26 16:53:33 +0100 <kuribas> carbolymer: yes
2021-01-26 16:53:47 +0100 <kuribas> carbolymer: that is, if you do it in one go.
2021-01-26 16:53:55 +0100 <carbolymer> yeah, that's the plan
2021-01-26 16:54:00 +0100carbolymermashes U in vim
2021-01-26 16:54:27 +0100 <dolio> I worked on implementing a language that was exactly what you're talking about, because we had the idea that people would be writing their own custom queries in our 'simplified' composable language. But then that never happened, and probably was impossible, because I (or maybe two other people) had to be rewriting the queries our own team wrote, because I knew how the compiler worked well enough to write the right composable query to actually be comp
2021-01-26 16:54:27 +0100 <dolio> iled to fast-enough SQL.
2021-01-26 16:55:18 +0100 <ski> ph88^ : i think not, since what parser you decide to apply later may depend on what values you parsed, earlier
2021-01-26 16:55:47 +0100 <ski> (maybe could work for idiomatic parser. although reifying the recursion would be a problem)
2021-01-26 16:55:51 +0100raym(~ray@45.64.220.55)
2021-01-26 16:55:55 +0100 <kuribas> dolio: yeah, I was thinking about such a language, but the thing I came up with just resembled SQL :-)
2021-01-26 16:56:03 +0100 <zebrag> ph88^: I think I know the answer to that one, and that'd be: no, for many reasons. Like what do you call a grammar
2021-01-26 16:56:20 +0100 <superstar64> if i recall, applicative parsers correspond to context free grammers and monadic parsers corrispond to context dependent
2021-01-26 16:56:24 +0100 <merijn> dolio: I did a quick scan and sqlite-simple/direct-sqlite don't seem to do anything dumb, so sounds like user error ;)
2021-01-26 16:56:29 +0100 <kuribas> dolio: unless your database schema is so clean and regular you can abstract it a way.
2021-01-26 16:56:32 +0100 <ph88^> ski .. zebrag ok understood
2021-01-26 16:56:42 +0100 <ski> carbolymer : yes, assuming you mean something like `foldr (\x ys -> ..x.. ++ ys)'
2021-01-26 16:57:10 +0100 <dolio> merijn: Yeah, I looked too and didn't see anything obvious. I was more curious if you had encountered something weird before, since I'd seen you recommend the library.
2021-01-26 16:57:22 +0100 <kuribas> dolio: for example, a filter in the REST API would just become an extra where clause.
2021-01-26 16:57:49 +0100 <kuribas> dolio: and a sort param another SORT BY clauses.
2021-01-26 16:58:09 +0100 <ph88^> does someone know of a library that can help to analyze the flow of data ? specifcially it would be interesting if it can proof if a data transform function is reversible or not (and when it is give the inverse function)
2021-01-26 16:58:17 +0100 <merijn> dolio: tbh, it's mostly me recommending sqlite and people seem to 1) like sqlite-simple, 2) it seems a fairly straightforward wrapper :p
2021-01-26 16:58:17 +0100 <kuribas> dolio: but we do have an abstraction on top of it to do pagination in a consisten way.
2021-01-26 16:58:19 +0100 <ski> something looking more like predicate logic would be nicer, over SQL
2021-01-26 16:59:17 +0100 <kuribas> dolio: that "abstraction" consistem simply of rewriting the query, nothing more.
2021-01-26 17:00:37 +0100 <kuribas> dolio: it works pretty fine for us. But it is clojure code :-(
2021-01-26 17:00:52 +0100knupfer(~Thunderbi@200116b82cf5ad00d5c5795f8615d409.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-26 17:01:27 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-01-26 17:01:33 +0100 <kuribas> if you pass something wrong to it, it has no problem generating a complete nonsense query. So I set out of porting the ideas of this library (honeysql) to haskell.
2021-01-26 17:03:16 +0100 <kuribas> dolio: I evaluated quite a few database libraries, but none of them were both expressive, composable, and simple.
2021-01-26 17:03:19 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-01-26 17:07:35 +0100 <zebrag> ph88^: Developing a pretty-printer mirroring the parser, with an ast in the middle to make things more tidy. If the results match then it is likely reversible. Many time a context free grammar is not reversible, though.
2021-01-26 17:07:49 +0100oisdk(~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) (Quit: oisdk)
2021-01-26 17:07:52 +0100Junotrix(~Junotrix@90.221.74.173)
2021-01-26 17:08:00 +0100plutoniix(~q@node-uml.pool-125-24.dynamic.totinternet.net)
2021-01-26 17:08:02 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 17:08:17 +0100 <ph88^> zebrag, that was a separate question about dataflow and parsing
2021-01-26 17:08:38 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 17:08:44 +0100 <ph88^> i found this now https://www.reddit.com/r/haskell/comments/25ujqk/is_there_any_implementation_for_this_paper_about/
2021-01-26 17:09:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 17:09:50 +0100 <zebrag> nice
2021-01-26 17:13:48 +0100JadedImpression(~rubenpiet@d51A484F8.access.telenet.be) (Quit: Lost terminal)
2021-01-26 17:14:05 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com) (Ping timeout: 240 seconds)
2021-01-26 17:14:08 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 265 seconds)
2021-01-26 17:14:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-01-26 17:14:55 +0100writenix(~quassel@89-180-204-230.net.novis.pt)
2021-01-26 17:15:05 +0100 <zebrag> Really nice. I'm spending a heck lot of time reading something likely far less difficult than Amr Sabry ;) (https://legacy.cs.indiana.edu/~sabry/papers/rational.pdf)
2021-01-26 17:15:16 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-26 17:15:41 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-26 17:16:06 +0100writenix(~quassel@89-180-204-230.net.novis.pt) (Client Quit)
2021-01-26 17:22:38 +0100shailangsa(~shailangs@host86-162-150-221.range86-162.btcentralplus.com) (Ping timeout: 272 seconds)
2021-01-26 17:23:39 +0100kuribas(~user@ptr-25vy0i7k6wy863qxr1f.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-01-26 17:27:12 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-26 17:27:48 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-26 17:28:18 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-26 17:29:58 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2021-01-26 17:30:41 +0100frozenErebus(~frozenEre@94.128.80.70)
2021-01-26 17:32:37 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 246 seconds)
2021-01-26 17:33:07 +0100zar(~zar@fw1.ciirc.cvut.cz) (Quit: Leaving)
2021-01-26 17:34:03 +0100syd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net)
2021-01-26 17:35:10 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2021-01-26 17:38:02 +0100Skyds(~Skyds@host-187-73-245-9.consoftmg.com.br)
2021-01-26 17:38:28 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Read error: Connection reset by peer)
2021-01-26 17:39:00 +0100Skyds(~Skyds@host-187-73-245-9.consoftmg.com.br) (Client Quit)
2021-01-26 17:39:31 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-01-26 17:41:09 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 260 seconds)
2021-01-26 17:42:54 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-26 17:43:03 +0100son0p(~son0p@181.136.122.143)
2021-01-26 17:43:59 +0100isBEKaml(~isBEKaml@unaffiliated/isbekaml) (Quit: leaving)
2021-01-26 17:46:26 +0100shailangsa(~shailangs@host86-162-150-221.range86-162.btcentralplus.com)
2021-01-26 17:47:14 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:5976:80b4:6657:63a8)
2021-01-26 17:47:27 +0100Boomerang_(~Boomerang@xd520f68c.cust.hiper.dk)
2021-01-26 17:47:54 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-01-26 17:48:43 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds)
2021-01-26 17:48:59 +0100oisdk(~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd)
2021-01-26 17:49:04 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-26 17:49:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-26 17:51:26 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb)
2021-01-26 17:52:18 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 17:52:39 +0100geyaeb_(~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds)
2021-01-26 17:54:59 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: jksvkjsd)
2021-01-26 17:58:59 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 18:01:08 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 18:01:54 +0100geekosaur(82650c7c@130.101.12.124)
2021-01-26 18:02:51 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-omgbgaryvteqjbfy)
2021-01-26 18:03:26 +0100howdoi(uid224@gateway/web/irccloud.com/x-mfmeefvgugjfkaha)
2021-01-26 18:03:31 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net) (Remote host closed the connection)
2021-01-26 18:05:13 +0100bitmagie(~Thunderbi@200116b806facd00d0d7127d7911c11a.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-26 18:05:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 18:05:50 +0100conal(~conal@209.58.139.237) (Quit: Computer has gone to sleep.)
2021-01-26 18:06:36 +0100conal(~conal@209.58.139.237)
2021-01-26 18:06:59 +0100Deide(~Deide@217.155.19.23)
2021-01-26 18:07:14 +0100Boom_Rang(~Boomerang@2a05:f6c7:2179:0:c036:de39:661c:4d95)
2021-01-26 18:07:14 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 18:09:18 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
2021-01-26 18:10:13 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-01-26 18:10:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-26 18:13:55 +0100frozenErebus(~frozenEre@94.128.80.70) (Ping timeout: 246 seconds)
2021-01-26 18:15:51 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 18:16:28 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-26 18:16:44 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 18:18:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-26 18:19:34 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 18:22:07 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2021-01-26 18:22:22 +0100Jbreezy(9c1a2d12@156.26.45.18)
2021-01-26 18:23:51 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 18:24:01 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi) (Quit: WeeChat 2.3)
2021-01-26 18:24:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds)
2021-01-26 18:24:06 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-26 18:24:33 +0100 <ep1ctetus> Is there a way to go through all the fields of a record, and run a function on all the ones that are a certain type? (In my case, Double)
2021-01-26 18:25:46 +0100conal(~conal@209.58.139.237) (Quit: Computer has gone to sleep.)
2021-01-26 18:25:53 +0100 <glguy> ep1ctetus: you could do that with the syb package (Data.Generics)
2021-01-26 18:26:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 18:26:16 +0100 <glguy> doing things based on the types of fields doesn't make for good programming, but in a pinch it can be convenient
2021-01-26 18:26:34 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-26 18:27:42 +0100borne(~fritjof@2001:638:708:30da:bf60:e341:502c:8f25) (Ping timeout: 258 seconds)
2021-01-26 18:28:03 +0100 <ep1ctetus> glguy, thank you. Our use case is that we have a record with a few fields and a lot of Doubles, and we want to round all the Doubles
2021-01-26 18:29:25 +0100 <glguy> that's fine for some throw-away code, but it's trouble if you later add an extra double field to the record that shouldn't have been rounded and it won't be obvious at the definition site that someone might be doing something so careless
2021-01-26 18:29:31 +0100Wamanuz(~wamanuz@78-70-34-81-no84.tbcn.telia.com)
2021-01-26 18:29:41 +0100 <ski> you could define a traversal
2021-01-26 18:30:20 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-26 18:30:40 +0100 <ski> traverseMyDoubles :: Applicative f => (Double -> f Double) -> MyRecord -> f MyRecord
2021-01-26 18:30:41 +0100 <ep1ctetus> glguy: that makes sense. It's just tedious to enumerate every field. And we'll have to add to the enumeration each time we add a field
2021-01-26 18:31:08 +0100Jbreezy(9c1a2d12@156.26.45.18) (Quit: Connection closed)
2021-01-26 18:31:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-26 18:31:17 +0100 <ski> that's the price you'd have to pay, for not automatically having every (including future) `Double's picked up
2021-01-26 18:31:46 +0100 <ep1ctetus> ski: I assume we would also have to enumerate all of them to define traverseMyDoubles
2021-01-26 18:31:52 +0100raym(~ray@45.64.220.55) (Ping timeout: 264 seconds)
2021-01-26 18:32:32 +0100 <ski> that's how i interpreted "enumerate every field", namely by defining `traverseMyDoubles'
2021-01-26 18:32:53 +0100 <ski> (would you need to enumerate them, anywhere else, too ?)
2021-01-26 18:34:25 +0100 <ep1ctetus> ski: right now we have a function that calls `round` on each field, it sounds like we would replace that with a call to `traverseMyDoubles` and pass the `round` function
2021-01-26 18:35:00 +0100 <ski> yes
2021-01-26 18:38:59 +0100 <ep1ctetus> ok, for now we just have a single use for this, but if we need to run more than one function on all the double's we'll do that
2021-01-26 18:39:27 +0100 <ep1ctetus> I'm curious, why do you have it wrapped in an Applicative?
2021-01-26 18:40:47 +0100 <ep1ctetus> why not: traverseMyDoubles :: (Double -> Double) -> MyRecord -> MyRecord ?
2021-01-26 18:42:12 +0100 <ski> to be able to do lensy stuff, e.g. like computing the sum of all the (traversed) `Double's in `MyRecord', &c.
2021-01-26 18:43:06 +0100 <ski> your version is just like a monomorphic version of `fmap' (for the particular "collection" and "element" type). the one i suggested is like a monomorphic version of `traverse'
2021-01-26 18:43:27 +0100 <ski> note that if you set `f = Identity', you get back your version
2021-01-26 18:44:00 +0100stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-01-26 18:44:09 +0100 <ep1ctetus> I see, thanks
2021-01-26 18:44:24 +0100 <ski> but you can use other `f's, like `Const (Sum Double)' (to just compute a sum, not reconstructing a new `MyRecord', &c.
2021-01-26 18:44:58 +0100 <ski> (there are lens combinators that does this specializing to different useful `f's for you, so you don't have to think much about that)
2021-01-26 18:45:24 +0100conal(~conal@64.71.133.70)
2021-01-26 18:47:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 18:50:11 +0100 <ski> (if you decide to also use other lens stuff, by using the above form, you can then compose your traversal with them easily. e.g. to access all your selected `Double's within the odd-indexed elements of lists, being values in some `Map', or whatever)
2021-01-26 18:50:45 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-01-26 18:51:17 +0100ukari(~ukari@unaffiliated/ukari)
2021-01-26 18:51:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 18:52:16 +0100 <ski> myRecord & traverseMyDoubles %~ round -- would call `round' on each `Double'
2021-01-26 18:53:47 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Remote host closed the connection)
2021-01-26 18:55:16 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-01-26 18:55:24 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke) (Quit: WeeChat 3.0)
2021-01-26 18:55:56 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:11b1:198b:f2c6:97cd) (Ping timeout: 240 seconds)
2021-01-26 18:56:25 +0100metro(~Thunderbi@unaffiliated/metreo)
2021-01-26 18:56:56 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi)
2021-01-26 18:57:09 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke)
2021-01-26 18:57:10 +0100frozenErebus(~frozenEre@94.128.80.70)
2021-01-26 18:57:12 +0100xff0x(~xff0x@2001:1a81:53a3:2a00:2952:f390:3ed9:c90f)
2021-01-26 18:57:34 +0100metreo(Thunderbir@gateway/vpn/mullvad/metreo) (Ping timeout: 260 seconds)
2021-01-26 18:57:36 +0100metrometreo
2021-01-26 18:58:43 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-01-26 18:59:02 +0100metreo(~Thunderbi@unaffiliated/metreo) (Client Quit)
2021-01-26 18:59:16 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-01-26 18:59:29 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds)
2021-01-26 19:00:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-01-26 19:01:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 19:04:30 +0100d3od(~nickmeno3@78-0-101-252.adsl.net.t-com.hr)
2021-01-26 19:05:22 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 246 seconds)
2021-01-26 19:05:56 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 19:06:28 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-26 19:06:29 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 19:06:30 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-01-26 19:07:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-01-26 19:07:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 19:10:31 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-26 19:10:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 19:11:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-01-26 19:11:28 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds)
2021-01-26 19:12:45 +0100rajivr(uid269651@gateway/web/irccloud.com/x-xfgarcdyypwphfai) (Quit: Connection closed for inactivity)
2021-01-26 19:12:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 19:12:50 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-01-26 19:15:02 +0100d3od(~nickmeno3@78-0-101-252.adsl.net.t-com.hr) (Remote host closed the connection)
2021-01-26 19:15:39 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 19:18:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-26 19:18:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 19:19:08 +0100ubert(~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-26 19:19:08 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-26 19:19:08 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-01-26 19:19:08 +0100neiluj(~jco@unaffiliated/neiluj)
2021-01-26 19:21:09 +0100ubert(~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-26 19:24:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-26 19:24:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-26 19:27:46 +0100Graf_Blutwurst(~grafblutw@2001:171b:226e:adc0:ccb1:a006:be48:6a3e) (Quit: WeeChat 3.0)
2021-01-26 19:28:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 19:30:35 +0100raym(~ray@45.64.220.55)
2021-01-26 19:31:53 +0100 <hololeap> i'm looking for a way to change this cabal file so that `data-files` can be toggled with a flag: https://hackage.haskell.org/package/fourmolu-0.3.0.0/fourmolu.cabal
2021-01-26 19:32:09 +0100darccc-aster(~darccc-as@ool-18bcd822.dyn.optonline.net)
2021-01-26 19:32:16 +0100 <darccc-aster> hello
2021-01-26 19:32:36 +0100darccc-aster(~darccc-as@ool-18bcd822.dyn.optonline.net) (Client Quit)
2021-01-26 19:32:48 +0100 <merijn> hololeap: eh...why?
2021-01-26 19:33:01 +0100 <glguy> hololeap: I wouldn't expect to be able to change the data files with a flag since because sdist needs to know all the files in a package independent of flags
2021-01-26 19:33:07 +0100 <koz_> I'm trying to come up with 'Foo p a b' such that: Foo p is a Profunctor and Category irrespective of p, and 'Foo p a' is a Functor and Applicative, again irrespective of p.
2021-01-26 19:33:19 +0100 <koz_> I can't quite find the thing I need anywhere, but whenever I try to write it, I trip.
2021-01-26 19:33:22 +0100 <glguy> but maybe sdist just takes the union of all of them or something (I'm just guessing)
2021-01-26 19:33:32 +0100 <koz_> A naive representation is fine - I don't need a final encoding or anything like that.
2021-01-26 19:33:40 +0100 <merijn> glguy: I don't think you can use flags at the top level
2021-01-26 19:33:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 19:33:43 +0100 <koz_> Can someone help? Do you happen to know dolio?
2021-01-26 19:33:51 +0100 <merijn> glguy: And that's a change I can already tell you will never go in :p
2021-01-26 19:33:54 +0100 <monochrom> Then again, maybe the flag just has to control which data files are installed upon "cabal install"
2021-01-26 19:34:10 +0100 <hololeap> i'm packaging it for gentoo, and i'd like to be able to make those examples optional with a flag
2021-01-26 19:34:14 +0100 <merijn> monochrom: Those already exist in Cabal/Setup.hs
2021-01-26 19:34:45 +0100 <hololeap> i could patch the cabal file to remove those lines, but i'd like a solution using cabal
2021-01-26 19:34:53 +0100ubert(~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-26 19:35:14 +0100 <hololeap> merijn: which flags are you talking about?
2021-01-26 19:35:27 +0100 <merijn> hololeap: --datadir
2021-01-26 19:35:47 +0100 <merijn> hololeap: Not installing data files is not an option and I wouldn't hold my breathe for it if I were you
2021-01-26 19:35:51 +0100 <monochrom> That only controls which directory.
2021-01-26 19:35:52 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-26 19:36:06 +0100 <merijn> hololeap: This seems trivially solved by "not including the datadir in the gentoo package"
2021-01-26 19:36:09 +0100 <merijn> monochrom: Sure
2021-01-26 19:36:22 +0100 <merijn> monochrom: As it should be
2021-01-26 19:36:44 +0100 <merijn> Not including them in an OS package is trivial
2021-01-26 19:37:11 +0100 <merijn> monochrom: "runghc Setup.hs --datadir=foo/ && rm -r foo && continue packaging"
2021-01-26 19:37:43 +0100 <monochrom> Interesting trick.
2021-01-26 19:38:11 +0100 <merijn> To be argued "Real Soon (TM)" in my blogpost series called "Cabal is right and you are wrong, stop bitching and trying to make CABAL worse because you are lazy" >.>
2021-01-26 19:38:53 +0100 <merijn> Other highlights to include: wildcard/autogenerated module lists, 90% of all uses of flags on Hackage, and not writing down upperbounds
2021-01-26 19:39:20 +0100 <monochrom> I just think you could have said the part about "rm -r" earlier.
2021-01-26 19:39:31 +0100 <merijn> monochrom: That seems fairly obvious, though?
2021-01-26 19:39:36 +0100 <monochrom> No.
2021-01-26 19:39:40 +0100 <dolio> koz_: Well, there's always a formulaic way to try if you don't mind relying on type class 'convention'.
2021-01-26 19:39:45 +0100viluon(uid453725@gateway/web/irccloud.com/x-nehqwnpkvzlvoyom)
2021-01-26 19:39:50 +0100 <koz_> dolio: Explain?
2021-01-26 19:39:56 +0100darccc-aster(~darccc-as@ool-18bcd822.dyn.optonline.net)
2021-01-26 19:40:12 +0100 <merijn> monochrom: "I don't wanna include files X?" 'So, remove them before finishing your packaging...' is not obvious?
2021-01-26 19:40:36 +0100 <monochrom> counterstrike: From how I responded to you back then, it seemed very obvious to you that your suggestion was not obvious to me, ja?
2021-01-26 19:41:12 +0100 <dolio> data Foo p a b = Foo (forall r. (Profunctor r, Category r, Applicative (r a)) => (forall x y. p x y -> r x y) -> r a b)
2021-01-26 19:41:23 +0100merijnshrugs
2021-01-26 19:41:24 +0100 <koz_> dolio: Yeah, that's a final encoding right?
2021-01-26 19:41:40 +0100 <hololeap> <merijn> hololeap: This seems trivially solved by "not including the datadir in the gentoo package" -- yes, that's the other option besides patching, but it's also ~1100 files that cabal copies over by default, which then need to be removed
2021-01-26 19:41:54 +0100 <koz_> It's similar to the ones for Alt and Ap in free, with .Final module names.
2021-01-26 19:42:06 +0100 <merijn> hololeap: That sounds like a reason to open a PR to the package author to "not do that" then?
2021-01-26 19:42:07 +0100 <hololeap> not a huge deal, but it merited looking for another alternative
2021-01-26 19:42:34 +0100 <merijn> hololeap: If the author is including 1100 data files that seems...dumb
2021-01-26 19:42:40 +0100 <dolio> It is using a formula for right Kan extensions. There should be an analogous left one, too.
2021-01-26 19:42:43 +0100nly(~user@unaffiliated/nly) (Remote host closed the connection)
2021-01-26 19:42:56 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com)
2021-01-26 19:43:06 +0100 <hololeap> merijn: what would you suggest to them instead?
2021-01-26 19:43:21 +0100 <geekosaur> separate package
2021-01-26 19:43:30 +0100 <dolio> Basically you want `forall (r:Special). r^(p ~> r)`
2021-01-26 19:43:38 +0100 <geekosaur> foo-examples packages aren't that uncommon
2021-01-26 19:43:50 +0100 <merijn> hololeap: "Don't include so many examples in a package"? :p
2021-01-26 19:43:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-01-26 19:44:03 +0100superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed)
2021-01-26 19:44:30 +0100 <merijn> OTOH, I'm torn, because I'm wholly in favour of anything that makes packaging auto-formatters harder :p
2021-01-26 19:44:58 +0100 <merijn> "auto-formatters are bad" is the controversial and unpopular hill I will die on!
2021-01-26 19:45:03 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 19:45:03 +0100juuandyy(~juuandyy@90.106.228.121)
2021-01-26 19:45:23 +0100 <monochrom> In the case of examples, I would take the stance of unconditionally including them in the distro package.
2021-01-26 19:45:46 +0100pavonia(~user@unaffiliated/siracusa)
2021-01-26 19:45:53 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 19:45:54 +0100 <merijn> hololeap: tbh, I'm not even sure what the point of those examples is? Is it what source will look like after formatting? Why is that in the package? Maybe it's tests?
2021-01-26 19:45:59 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
2021-01-26 19:46:32 +0100 <merijn> monochrom: In principle yes, but I can't even figure out what these "examples" are examples off...
2021-01-26 19:46:45 +0100 <dolio> The other one is `exists (r:Special). (r ~> p) * r`
2021-01-26 19:47:35 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-26 19:48:10 +0100 <monochrom> I think you would be amicable to the idea of making any auto-formatter package look like bloatware. :)
2021-01-26 19:48:36 +0100 <merijn> monochrom: Well, yes, that's what I said above in my "I'm torn" comment ;)
2021-01-26 19:48:57 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net)
2021-01-26 19:49:13 +0100 <koz_> dolio: r:Special is a constraint?
2021-01-26 19:49:15 +0100 <dolio> And the point is that `Special` means you constrain `r`, and the construction works point-wise. So like, since `Foo p = forall r. r^(p ~> r) :: * -> * -> *` in this case, we do: `Foo p a b = forall r. (p ~> r) -> r a b`.
2021-01-26 19:49:22 +0100 <koz_> Ah.
2021-01-26 19:49:59 +0100 <dolio> Special is like, "I want the category of things that are Profunctors, Categories, and Applicative wrt. to their second argument."
2021-01-26 19:50:11 +0100fendor(~fendor@178.165.129.60.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-26 19:50:23 +0100 <dolio> Instead of just * -> * -> *.
2021-01-26 19:50:31 +0100 <koz_> Ah, right.
2021-01-26 19:50:56 +0100 <dolio> So you are quantifying only over those.
2021-01-26 19:51:14 +0100 <koz_> So what that is basically saying 'if you can NT p into _anything_ in that Special category, I can give you the same structure, but over that thing in the Special category.'?
2021-01-26 19:51:57 +0100fendor(~fendor@178.165.129.60.wireless.dyn.drei.com)
2021-01-26 19:51:58 +0100 <dolio> Yeah.
2021-01-26 19:52:05 +0100 <koz_> (I am probably getting the vocabulary wrong, so apologies if so)
2021-01-26 19:52:17 +0100 <koz_> (my knowledge of category theory anything fits on a postage stamp)
2021-01-26 19:52:42 +0100 <koz_> But then what about the 'naive' encodings, like naive Free, or Ap, or Alt?
2021-01-26 19:52:51 +0100 <koz_> I assume there's no 'systemic' way to roll those?
2021-01-26 19:52:57 +0100 <dolio> Which ones are naive?
2021-01-26 19:53:31 +0100 <dolio> If you want some more explicit construction, you need to figure it out and prove it equivalent to the formula, basically.
2021-01-26 19:53:46 +0100 <koz_> Say, this one: http://hackage.haskell.org/package/free-5.1.6/docs/Control-Applicative-Free.html
2021-01-26 19:53:56 +0100 <koz_> As opposed to: http://hackage.haskell.org/package/free-5.1.6/docs/Control-Applicative-Free-Final.html
2021-01-26 19:54:01 +0100 <koz_> (which uses the method you talked about)
2021-01-26 19:54:34 +0100 <dolio> Yeah. I don't know of a formula for figuring that out.
2021-01-26 19:54:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 19:54:45 +0100 <koz_> dolio: OK, thanks.
2021-01-26 19:54:51 +0100 <koz_> I'll have a think and see.
2021-01-26 19:55:03 +0100 <dolio> For monads it's a recognition that you are composing F with itself arbitrarily many times.
2021-01-26 19:55:17 +0100 <dolio> For applicatives it is placing many Fs beside one another in a list.
2021-01-26 19:55:23 +0100 <koz_> And for Alternatives, it's a list of Applicative 'choices'?
2021-01-26 19:55:34 +0100 <koz_> (which can be empty)
2021-01-26 19:56:11 +0100darccc-asterC4ladbolg
2021-01-26 19:56:54 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 19:57:03 +0100C4ladbolg(~darccc-as@ool-18bcd822.dyn.optonline.net) (Quit: C4ladbolg)
2021-01-26 19:57:05 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
2021-01-26 19:57:20 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-26 19:57:31 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 19:57:42 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 19:57:52 +0100aveltras(uid364989@gateway/web/irccloud.com/x-bkzrcfsztuusppij) (Quit: Connection closed for inactivity)
2021-01-26 19:57:58 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-26 19:58:12 +0100darccc-aster(~darccc-as@ool-18bcd822.dyn.optonline.net)
2021-01-26 19:58:19 +0100darccc-aster(~darccc-as@ool-18bcd822.dyn.optonline.net) ()
2021-01-26 19:58:23 +0100 <dolio> When you combine something like Category and Applicative, it's not immediately clear what kind of structure to keep track of.
2021-01-26 19:58:53 +0100 <koz_> Yeah. It's not helped by the fact that Category wants Type -> Type -> Type, but Applicative Type -> Type.
2021-01-26 19:59:09 +0100 <koz_> Something that's freely Profunctor and Category is fairly straightforward.
2021-01-26 19:59:16 +0100 <dolio> It's two different sorts of putting things next to each other in order.
2021-01-26 20:00:04 +0100ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2021-01-26 20:01:43 +0100frozenErebus(~frozenEre@94.128.80.70) (Ping timeout: 246 seconds)
2021-01-26 20:01:45 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-26 20:02:23 +0100 <hololeap> monochrom: unfortunately it is an optional dependency of haskell-language-server, so i have to make a package for it
2021-01-26 20:02:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-26 20:02:45 +0100C4ladbolg(~darccc-as@ool-18bcd822.dyn.optonline.net)
2021-01-26 20:03:03 +0100 <merijn> Clearly I have a very different interpretation of "optional" :p
2021-01-26 20:03:08 +0100 <monochrom> Yeah, but I don't think it's worth your time making the example files optional.
2021-01-26 20:03:14 +0100dddddd_(~dddddd@unaffiliated/dddddd)
2021-01-26 20:03:34 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-26 20:03:36 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
2021-01-26 20:04:05 +0100wonko7(~wonko7@2a01:e34:ec7b:7040:7096:fa79:315b:1372)
2021-01-26 20:04:14 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-26 20:04:22 +0100 <monochrom> 1. How many people actually care? 0. I believe in "put your money where your mouth is". So, by "care", I mean would they pay you on Patreon if you did it?
2021-01-26 20:05:11 +0100 <merijn> monochrom: oh, you'd like this essay I read years ago :)
2021-01-26 20:05:11 +0100 <monochrom> To be fair, I don't have any understanding of gentoo user logic. So meh.
2021-01-26 20:05:15 +0100 <hololeap> i created a patch for the cabal file, which is toggled with a gentoo flag. this seems to be the best option
2021-01-26 20:05:41 +0100 <merijn> monochrom: It was titled "Money is the universal unit of caring" :)
2021-01-26 20:06:31 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2021-01-26 20:07:47 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 20:08:12 +0100conal(~conal@64.71.133.70)
2021-01-26 20:08:15 +0100 <monochrom> In my case, I developed that attitude over a long time gradually from various inputs. But two highlights.
2021-01-26 20:08:30 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-26 20:08:44 +0100 <merijn> My appreciation/internalising of that topic are more "lowlights" than highlights :p
2021-01-26 20:09:00 +0100Boomerang_(~Boomerang@xd520f68c.cust.hiper.dk) (Quit: Leaving)
2021-01-26 20:09:17 +0100Boom_Rang(~Boomerang@2a05:f6c7:2179:0:c036:de39:661c:4d95) (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
2021-01-26 20:09:29 +0100 <monochrom> The ObHaskell one is seeing Windows GHC users whining "GHC is not ready for prime time", and upon detailed reading of their messages, they mean (and sometimes they wrote explicitly) "this is blocking me from making money".
2021-01-26 20:09:38 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-26 20:09:41 +0100 <monochrom> Heh
2021-01-26 20:09:42 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-01-26 20:10:01 +0100 <merijn> Which essentially boil down to "we should do something about the mental health situation of our phds! any suggestions?" 'well, here's a short list of fairly simple things' "oh, lol, we meant without actually spending money and ideally something we can blame on phds/tenure trackers for not doing"
2021-01-26 20:10:09 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-26 20:10:28 +0100jespada(~jespada@90.254.242.138) (Ping timeout: 272 seconds)
2021-01-26 20:10:36 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:6c28:450f:9830:3db8)
2021-01-26 20:11:03 +0100 <monochrom> The humorous one is https://xkcd.com/1132/
2021-01-26 20:11:20 +0100conal(~conal@64.71.133.70)
2021-01-26 20:11:25 +0100 <merijn> But hey! Who gives a shit of tenure trackers are all burning out and phds have clinical depression and burnout at twice the rate of the average populace! \o/
2021-01-26 20:11:36 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-26 20:12:14 +0100jespada(~jespada@90.254.242.138)
2021-01-26 20:12:30 +0100conal(~conal@64.71.133.70)
2021-01-26 20:12:46 +0100 <merijn> We should just ban academia under the Geneva convention >.>
2021-01-26 20:12:54 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 20:13:21 +0100 <Uniaika> merijn: when is your thesis jury?
2021-01-26 20:13:40 +0100 <merijn> Uniaika: Have they not heard of trigger warnings where you live? :(
2021-01-26 20:13:46 +0100 <monochrom> Ugh, friends don't ask friends that question :)
2021-01-26 20:13:54 +0100 <pjb> merijn: I fail to see the justification? Is academia torture?
2021-01-26 20:13:58 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 20:14:01 +0100 <merijn> pjb: Yes
2021-01-26 20:14:46 +0100 <merijn> I'm honestly not even joking when I say that academia is just abusive relationships distilled and perfected to an art form
2021-01-26 20:16:17 +0100 <aldum> sounds about right
2021-01-26 20:17:08 +0100 <merijn> aldum: I might have said that was just the finishing up part of your thesis, but my copromotor was a tenure tracker and I wouldn't wish that upon my enemies >.>
2021-01-26 20:17:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 20:17:58 +0100 <monochrom> OK, I'm just as guilty, but it's time to remind us of #haskell-offtopic
2021-01-26 20:18:26 +0100stree_(~stree@50-108-110-177.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2021-01-26 20:18:26 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-01-26 20:18:40 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-26 20:18:45 +0100stree(~stree@50-108-110-177.adr01.mskg.mi.frontiernet.net)
2021-01-26 20:19:12 +0100 <Uniaika> merijn: oops sorry :(
2021-01-26 20:19:30 +0100 <Uniaika> I thought the hard limit was "don't ask a new doctoral student their thesis subject"
2021-01-26 20:20:47 +0100juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-01-26 20:21:47 +0100Sonderblade(~helloman@94.191.137.103.mobile.tre.se) (Read error: Connection reset by peer)
2021-01-26 20:22:04 +0100Sonderblade(~helloman@94.191.137.103.mobile.tre.se)
2021-01-26 20:27:23 +0100nak_cuthill[m](nakcuthill@gateway/shell/matrix.org/x-cabzdeunviavraxd)
2021-01-26 20:27:36 +0100tzh(~xax@c-24-21-73-154.hsd1.or.comcast.net)
2021-01-26 20:28:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 20:28:28 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-01-26 20:29:43 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-26 20:29:46 +0100geekosaur(82650c7c@130.101.12.124)
2021-01-26 20:29:58 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-26 20:30:28 +0100elfets(~elfets@2002:25c9:1760:0:f1f5:a00b:b4e:bbc1)
2021-01-26 20:30:41 +0100nak_cuthill[m](nakcuthill@gateway/shell/matrix.org/x-cabzdeunviavraxd) ("User left")
2021-01-26 20:32:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 20:33:17 +0100Klumben(Nsaiswatch@gateway/shell/panicbnc/x-fknfgxuqgasbqquy)
2021-01-26 20:33:42 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: Lost terminal)
2021-01-26 20:33:47 +0100 <geekosaur> in this channel (and #ghc for that matter) the thesis subject is often on topic, so I'd expect other limitations (—with only half a smiley)
2021-01-26 20:34:16 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 20:35:20 +0100SolarAquarion(SolarAquar@gateway/shell/panicbnc/x-ewqhcftneclrtzod)
2021-01-26 20:35:27 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-01-26 20:35:45 +0100Sonderblade(~helloman@94.191.137.103.mobile.tre.se) (Ping timeout: 240 seconds)
2021-01-26 20:36:52 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 20:37:10 +0100borne(~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de)
2021-01-26 20:39:04 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-01-26 20:39:24 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 20:39:50 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-26 20:41:21 +0100 <ph88^> what are superclasses ?
2021-01-26 20:42:30 +0100 <ski> restrictions/constraints that the parameters of a class has to obey, in order for one to be able to declare an instance of the type class, with some particular parameters
2021-01-26 20:44:07 +0100 <ski> e.g. `Ord a' has `Eq a' as super-class constraint. this means (a) for every type `T' for which you declare an instance `Ord T', there must also be an instance `Eq T' declared; and (b) when you have both an `Ord a' and an `Eq a' constraint on an overloaded operation, you can omit the `Eq a', since it follows from the `Ord a' one
2021-01-26 20:44:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 20:45:05 +0100 <ski> in the case of `Ord', `Eq' is a superclass since being able to compare values for ordering implies being able to compare them for equality. if you can check order, you can already check equality
2021-01-26 20:45:36 +0100 <texasmynsted> Okay. Any refactoring advice before I simply jump in?
2021-01-26 20:46:02 +0100 <ph88^> thanks ski :)
2021-01-26 20:46:10 +0100 <ski> (and so, there's no point in not requiring `Eq', since you can always make such an instance, if you can make an `Ord' instance .. and doing so will cut down on how many constraints you have to type in signatures of overloaded operations, which helps brevity)
2021-01-26 20:46:12 +0100 <texasmynsted> I have some code where one module is almost 600 lines. I can clearly be divided into many smaller modules
2021-01-26 20:46:15 +0100 <ski> @src Ord
2021-01-26 20:46:15 +0100 <lambdabot> class (Eq a) => Ord a where
2021-01-26 20:46:16 +0100 <lambdabot> compare :: a -> a -> Ordering
2021-01-26 20:46:16 +0100 <lambdabot> (<), (<=), (>), (>=) :: a -> a -> Bool
2021-01-26 20:46:16 +0100 <lambdabot> max, min :: a -> a -> a
2021-01-26 20:46:24 +0100 <texasmynsted> s/I/It/
2021-01-26 20:46:37 +0100ADG1089__(~aditya@223.226.145.125)
2021-01-26 20:46:44 +0100 <ski> texasmynsted : perhaps put common types in a `Blah.Types' module ?
2021-01-26 20:47:09 +0100boristheblade(~boristheb@87-95-28-43.bb.dnainternet.fi)
2021-01-26 20:47:26 +0100wonko7(~wonko7@2a01:e34:ec7b:7040:7096:fa79:315b:1372) (Ping timeout: 264 seconds)
2021-01-26 20:47:29 +0100 <texasmynsted> yes. I think I will try to divide into modules then try to golf down the code...
2021-01-26 20:47:58 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 20:48:04 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds)
2021-01-26 20:48:16 +0100 <texasmynsted> I suppose if I over module it, I can always consolidate again later.
2021-01-26 20:49:42 +0100 <ski> texasmynsted : often, it can help making helper operations more polymorphic than what you actually need. the extra polymorphism will (by parametricity) ensure that the implementation of the operation can't reach into innards you don't want it to be able to. sometimes, in order to do this, one can abstract out some particular concrete part (which was preventing the operation from being polymorphic), making it
2021-01-26 20:49:42 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-26 20:49:48 +0100 <ski> a parameter instead
2021-01-26 20:50:55 +0100 <texasmynsted> Okay I will think in those terms
2021-01-26 20:50:57 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-26 20:51:17 +0100 <merijn> texasmynsted: 600 doesn't sound so bad
2021-01-26 20:52:14 +0100 <texasmynsted> It is not the number of lines. It is that I know there is duplication and disorder. It is difficult to see at the moment.
2021-01-26 20:52:26 +0100 <texasmynsted> Moving to other files does not exactly make it easier to see.
2021-01-26 20:52:32 +0100stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.0)
2021-01-26 20:52:44 +0100 <merijn> texasmynsted: My advice for refactoring is: newtypes are a great idea, do more of those!
2021-01-26 20:53:05 +0100 <texasmynsted> Yes. Love newtype. I will see what I can do
2021-01-26 20:53:22 +0100catt(~r@31.124.181.226)
2021-01-26 20:54:24 +0100nineonin_(~nineonine@50.216.62.2)
2021-01-26 20:54:35 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net) (Remote host closed the connection)
2021-01-26 20:55:45 +0100 <mananamenos> hi, in an example where there is a vector of actions (IOs is haskell) which one traverses then to execute those actions. Is there any advantage of this, I mean being able to have action in a type IO and be able to accumulate them in a vector and map over, traverse etc). versus wraping the actions in simple anonymous functions in a language like javascript?
2021-01-26 20:57:32 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2021-01-26 20:57:41 +0100xacktm(xacktm@gateway/shell/panicbnc/x-wuwjorqmtuodwktb)
2021-01-26 20:57:43 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 260 seconds)
2021-01-26 20:58:35 +0100 <merijn> mananamenos: In what sense?
2021-01-26 20:59:00 +0100 <merijn> mananamenos: I mean, in Haskell you obviously can't do that, because you can't do side-effects outside of IO
2021-01-26 21:02:46 +0100 <mananamenos> merijn, i dont know, just thinking :) I remember reading about how nice it is that you can use actions, IOs as data, put them in a vector, map them, etc. in haskell. But actually this is nothing special right? In javascript you wrap actions in annonomyous functions and you achieve the same. You can put those anonymous functions in vector too. Or am I missing/misunderstanding something?
2021-01-26 21:03:19 +0100 <geekosaur> many times those actions are pure and you don't need IO
2021-01-26 21:03:30 +0100 <merijn> mananamenos: Right, but in JS you can't tell the different between "a vector of functions that don't do IO" and "a vector of function that *do* do IO"
2021-01-26 21:03:53 +0100 <mananamenos> merijn, yes, that advantage i do understand
2021-01-26 21:04:02 +0100 <merijn> mananamenos: So can you do "more things" this way? No. Well, maybe, you can make a distinction that you otherwise can't
2021-01-26 21:04:25 +0100 <mananamenos> thank you!
2021-01-26 21:04:37 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-01-26 21:04:37 +0100wonko7(~wonko7@78.199.183.4)
2021-01-26 21:04:49 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-01-26 21:05:33 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net)
2021-01-26 21:06:02 +0100borne(~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-01-26 21:06:45 +0100andrei(~user@c-66-31-23-28.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 21:07:13 +0100petersen(~petersen@redhat/juhp)
2021-01-26 21:07:31 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 246 seconds)
2021-01-26 21:07:38 +0100ixaxaar(~ixaxaar@49.207.210.215) (Ping timeout: 260 seconds)
2021-01-26 21:08:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 21:10:04 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving)
2021-01-26 21:10:31 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 21:12:31 +0100 <ukari> any refactor tool recommand for do some renaming work?
2021-01-26 21:12:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 21:13:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-01-26 21:13:11 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke) (Quit: WeeChat 3.0)
2021-01-26 21:13:18 +0100 <ukari> I fount hare but it seems not active
2021-01-26 21:13:26 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 21:13:46 +0100wpcarro_(sid397589@gateway/web/irccloud.com/x-zzhkvsrdvhwinnhy) (Read error: Connection reset by peer)
2021-01-26 21:13:47 +0100 <ski> mananamenos : one advantage is to be able to use equational reasoning, when refactoring ?
2021-01-26 21:14:06 +0100wpcarro_(sid397589@gateway/web/irccloud.com/x-zgqajpsrxalumqef)
2021-01-26 21:14:19 +0100natim87(sid286962@gateway/web/irccloud.com/x-odydcenqlgwctmgx) (Ping timeout: 272 seconds)
2021-01-26 21:14:19 +0100jared-w(uid405292@gateway/web/irccloud.com/x-govctxymqrkyayxh) (Ping timeout: 272 seconds)
2021-01-26 21:14:19 +0100davetapley(sid666@gateway/web/irccloud.com/x-jurdyklfaflvzitt) (Ping timeout: 272 seconds)
2021-01-26 21:14:19 +0100Kronic(sid480486@gateway/web/irccloud.com/x-almohcvmnnoykmog) (Ping timeout: 272 seconds)
2021-01-26 21:14:26 +0100banjiewen__(sid115913@gateway/web/irccloud.com/x-dghcdnstvrjlfegj) (Ping timeout: 264 seconds)
2021-01-26 21:14:26 +0100gOOgler(uid125351@gateway/web/irccloud.com/x-riiuuixzxrygbcpq) (Ping timeout: 264 seconds)
2021-01-26 21:14:39 +0100d0liver(sid363046@gateway/web/irccloud.com/x-omtscczkwsswnebs) (Ping timeout: 260 seconds)
2021-01-26 21:14:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 21:15:03 +0100hazard-pointer(sid331723@gateway/web/irccloud.com/x-qdevggjfcrxqfirm) (Ping timeout: 265 seconds)
2021-01-26 21:15:16 +0100natim87(sid286962@gateway/web/irccloud.com/x-keqjykwadnvnrzdp)
2021-01-26 21:15:29 +0100banjiewen__(sid115913@gateway/web/irccloud.com/x-swyinzaexfseazpo)
2021-01-26 21:15:35 +0100liquorice(sid267884@gateway/web/irccloud.com/x-rnqbjsuaamxzrxpj) (Ping timeout: 272 seconds)
2021-01-26 21:15:38 +0100ryjm(sid383513@gateway/web/irccloud.com/x-jzsjrhnsjcknljvk) (Ping timeout: 264 seconds)
2021-01-26 21:15:46 +0100davetapley(sid666@gateway/web/irccloud.com/x-uljdakpxqusbmkrn)
2021-01-26 21:15:55 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 21:16:01 +0100benwr____(sid372383@gateway/web/irccloud.com/x-slmnyhhliphrhekz) (Ping timeout: 265 seconds)
2021-01-26 21:16:01 +0100hazard-pointer(sid331723@gateway/web/irccloud.com/x-jexlyihounqhstao)
2021-01-26 21:16:03 +0100liquorice(sid267884@gateway/web/irccloud.com/x-iprmunndccrrjvmh)
2021-01-26 21:16:17 +0100Kronic(sid480486@gateway/web/irccloud.com/x-hcjtgntdllwzeidr)
2021-01-26 21:16:19 +0100d0liver(sid363046@gateway/web/irccloud.com/x-arwegohpxpzewdwu)
2021-01-26 21:16:21 +0100jared-w(uid405292@gateway/web/irccloud.com/x-pxkkfiwciuetexio)
2021-01-26 21:16:48 +0100ryjm(sid383513@gateway/web/irccloud.com/x-ttpidntygpyuywtj)
2021-01-26 21:17:04 +0100gOOgler(uid125351@gateway/web/irccloud.com/x-gfilmilvhpkykezo)
2021-01-26 21:18:13 +0100benwr____(sid372383@gateway/web/irccloud.com/x-wzdnlzkwvgrcsrfa)
2021-01-26 21:18:13 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-01-26 21:19:03 +0100 <merijn> ukari: Eh, your favourite editor? >.>
2021-01-26 21:19:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-26 21:19:29 +0100 <merijn> tbh, I'm just a luddite who just manually searches+replaces in various files
2021-01-26 21:19:55 +0100 <ukari> merjin: emacs
2021-01-26 21:20:12 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 21:20:14 +0100 <ukari> fix merjin -> merijn
2021-01-26 21:20:32 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 21:20:39 +0100 <merijn> ukari: No, I meant that as answer to "what tool" ;)
2021-01-26 21:21:13 +0100 <ski> > fix merjin
2021-01-26 21:21:15 +0100 <lambdabot> merijn
2021-01-26 21:21:23 +0100catt(~r@31.124.181.226) (Remote host closed the connection)
2021-01-26 21:21:41 +0100 <ukari> why lambdabot could do this right
2021-01-26 21:22:36 +0100 <ski> lambdabot has some kind of edit-distance spelling correct/guess thing
2021-01-26 21:22:44 +0100 <ski> @tyep length
2021-01-26 21:22:45 +0100 <lambdabot> Foldable t => t a -> Int
2021-01-26 21:23:24 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-26 21:24:19 +0100Guest_47(5204811b@cpc1-nott20-2-0-cust282.12-2.cable.virginm.net)
2021-01-26 21:24:24 +0100 <hololeap> +1 to guess thing
2021-01-26 21:24:56 +0100Guest_47(5204811b@cpc1-nott20-2-0-cust282.12-2.cable.virginm.net) (Client Quit)
2021-01-26 21:25:11 +0100 <merijn> Pretty sure some sneaky @define happened in the background :p
2021-01-26 21:25:13 +0100 <merijn> :t merjin
2021-01-26 21:25:15 +0100 <lambdabot> error: Variable not in scope: merjin
2021-01-26 21:25:18 +0100 <merijn> :t fix
2021-01-26 21:25:20 +0100 <lambdabot> (a -> a) -> a
2021-01-26 21:25:29 +0100skiglances sideways
2021-01-26 21:25:33 +0100merijnsmells hijinx
2021-01-26 21:25:53 +0100 <ukari> merijn, I don't understand 'what tool' means. my favourite editor is emacs, and I want to find a tool integrated with emacs which could do some haskell refactor works like rename a variable or a data declaration. maybe I should use HaRe
2021-01-26 21:26:17 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-01-26 21:26:29 +0100 <merijn> ukari: I was implying "using emacs' search&replace" was my recommended tool :p
2021-01-26 21:26:41 +0100 <fresheyeball> I am looking to run a series of IO actions
2021-01-26 21:26:48 +0100 <fresheyeball> only one is likely to succeed
2021-01-26 21:26:54 +0100 <fresheyeball> the others will fail
2021-01-26 21:26:58 +0100 <fresheyeball> each has the same type
2021-01-26 21:26:59 +0100 <merijn> fail how?
2021-01-26 21:27:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 21:27:04 +0100 <merijn> exception?
2021-01-26 21:27:06 +0100 <fresheyeball> I expect an exception
2021-01-26 21:27:08 +0100 <fresheyeball> yes
2021-01-26 21:27:27 +0100 <fresheyeball> I need to write an IO that gets the project's git hash
2021-01-26 21:27:31 +0100 <merijn> I think the Alternative instance of IO already does that?
2021-01-26 21:28:11 +0100 <ukari> :)
2021-01-26 21:28:22 +0100ADG1089__(~aditya@223.226.145.125) (Remote host closed the connection)
2021-01-26 21:28:23 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 21:28:36 +0100 <ski> @type asum :: [IO a] -> IO a
2021-01-26 21:28:37 +0100 <lambdabot> [IO a] -> IO a
2021-01-26 21:28:52 +0100 <merijn> % throwIO (ErrorCall "test") <|> return True
2021-01-26 21:28:53 +0100 <yahb> merijn: *** Exception: test
2021-01-26 21:28:56 +0100 <merijn> hmm
2021-01-26 21:28:58 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 21:29:00 +0100 <merijn> Apparently not?
2021-01-26 21:29:11 +0100 <fresheyeball> merijn: hmm
2021-01-26 21:29:15 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 21:29:17 +0100 <opqdonut> % guard False <> return True
2021-01-26 21:29:17 +0100 <yahb> opqdonut: ; <interactive>:45:16: error:; * Couldn't match type `Bool' with `()'; Expected type: f (); Actual type: f Bool; * In the second argument of `(<>)', namely `return True'; In the expression: guard False <> return True; In an equation for `it': it = guard False <> return True
2021-01-26 21:29:20 +0100 <fresheyeball> so it works but in reverse order
2021-01-26 21:29:28 +0100 <opqdonut> oh well
2021-01-26 21:29:30 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 21:29:31 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 21:30:14 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 21:30:52 +0100 <monochrom> Sorry, how does "reverse order" explain that?
2021-01-26 21:30:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-26 21:31:09 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-26 21:31:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 21:31:17 +0100 <opqdonut> % guard False <|> return True --that's what I meant
2021-01-26 21:31:18 +0100 <yahb> opqdonut: ; <interactive>:46:17: error:; * Couldn't match type `Bool' with `()'; Expected type: f (); Actual type: f Bool; * In the second argument of `(<|>)', namely `return True'; In the expression: guard False <|> return True; In an equation for `it': it = guard False <|> return True
2021-01-26 21:31:45 +0100 <opqdonut> % guard False <|> return () --argh
2021-01-26 21:31:45 +0100 <yahb> opqdonut:
2021-01-26 21:31:54 +0100 <opqdonut> as opposed to
2021-01-26 21:32:01 +0100 <opqdonut> % guard False <|> guard False
2021-01-26 21:32:01 +0100 <yahb> opqdonut: *** Exception: user error (mzero)
2021-01-26 21:32:02 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) ()
2021-01-26 21:32:16 +0100 <opqdonut> so at least that type of error is handled by the Alternative instance
2021-01-26 21:33:07 +0100 <opqdonut> https://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.IO.html#mplusIO the implementation is via catchException
2021-01-26 21:34:40 +0100elfets(~elfets@2002:25c9:1760:0:f1f5:a00b:b4e:bbc1) (Quit: Leaving)
2021-01-26 21:35:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-26 21:36:24 +0100 <ski> % readIO "Flase" <|> pure True
2021-01-26 21:36:25 +0100 <yahb> ski: True
2021-01-26 21:37:26 +0100fendor(~fendor@178.165.129.60.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-26 21:38:03 +0100 <hololeap> % :i readIO
2021-01-26 21:38:04 +0100 <yahb> hololeap: readIO :: Read a => String -> IO a -- Defined in `System.IO'
2021-01-26 21:38:33 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 21:39:05 +0100 <geekosaur> throws a synchronous IO exception with throwIO instead of using error, I think
2021-01-26 21:39:40 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 264 seconds)
2021-01-26 21:42:42 +0100kobaam(~manjaro-u@2601:285:c000:a6c0::4713)
2021-01-26 21:42:56 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
2021-01-26 21:42:58 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 21:43:16 +0100 <kobaam> How might I get an object out of a key value pair like so: pesuedo code:get f from
2021-01-26 21:43:23 +0100 <kobaam> sorry, hit enter too soon
2021-01-26 21:43:33 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 21:44:25 +0100 <kobaam> `get f from [('a',22),('b',33),('f',81)]` would return 81
2021-01-26 21:44:48 +0100 <geekosaur> :t Data.List.lookup
2021-01-26 21:44:49 +0100 <lambdabot> Eq a => a -> [(a, b)] -> Maybe b
2021-01-26 21:45:35 +0100 <merijn> kobaam: Although you probably want Map from containers rather than lookup
2021-01-26 21:45:41 +0100 <merijn> @hackage containers
2021-01-26 21:45:41 +0100 <lambdabot> https://hackage.haskell.org/package/containers
2021-01-26 21:47:19 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-26 21:47:36 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-26 21:48:16 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
2021-01-26 21:48:47 +0100 <koz_> Yeah, don't use assoc lists, they're not great dictionaries.
2021-01-26 21:50:41 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-26 21:50:53 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-26 21:52:06 +0100 <kobaam> It's a really simple static use case, but if I ever need something more dynamic, I'll look into it
2021-01-26 21:52:18 +0100 <kobaam> really it's just about keeping a namespace clean
2021-01-26 21:53:22 +0100 <geekosaur> it's not so much about static, as about how much it'll suck with more than about 5 entries in it
2021-01-26 21:53:44 +0100 <kobaam> noted
2021-01-26 21:55:29 +0100 <merijn> kobaam: Basically, Map is a proper dictionary type like you'd see in other languages, whereas "list of tuples" is just a terrible O(n) complexity nightmare :p
2021-01-26 21:56:14 +0100 <monochrom> On the bright side, a list takes less space than a binary tree.
2021-01-26 21:56:46 +0100 <ij> if I have a small Map that is used for lookups very often, but isn't referenced by gc roots, then will it be constantly created because of use / deleted by gc back and forth?
2021-01-26 21:56:46 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-26 21:57:12 +0100 <merijn> ij: Anyway, as I said in -offtopic
2021-01-26 21:57:16 +0100merijnpresses X to doubt
2021-01-26 21:57:29 +0100 <merijn> You cannot use things that aren't referenced by gc roots
2021-01-26 21:57:31 +0100 <monochrom> How do you know it isn't referenced by GC roots?
2021-01-26 21:57:42 +0100 <ij> merijn, re X: haha
2021-01-26 21:57:54 +0100 <ij> well, it is my undeveloped understanding of gc roots that says so
2021-01-26 21:58:05 +0100 <geekosaur> I was wondring that one as well (about gc roots)
2021-01-26 21:58:16 +0100 <merijn> ij: anything *transitively* referenced from a GC root is part of that root
2021-01-26 21:58:28 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-01-26 21:58:33 +0100 <merijn> ij: If you have a name/reference to something it is, by definition referenced from a GC root
2021-01-26 21:58:40 +0100 <ij> it is never referenced in the data, it's only used to compute something to be stored
2021-01-26 21:58:51 +0100 <monochrom> I was hoping that you would explain, step by step, no grossing over, and then you would see your error.
2021-01-26 21:59:27 +0100 <monochrom> Instead, using "it's my undeveloped understanding" for grossing over is counterproductive.
2021-01-26 21:59:35 +0100 <ij> monochrom, :) I was just making sure I discredit myself as a noob first
2021-01-26 21:59:37 +0100 <geekosaur> if it's not reachable from a gc root, it's not reachable at all and will be garbage collected. if you mean you are repeatedly creating a map inside some function (that s, foo x = let bar = M.fromList whatever … in …), then you want to find some way to make it persistent
2021-01-26 21:59:55 +0100 <ij> monochrom, data. it won't be in the data, it will only be in the code
2021-01-26 22:00:11 +0100 <geekosaur> unless it's small in which case it may not be worth persisting it
2021-01-26 22:01:02 +0100 <merijn> ij: Anything referenced by code/the stack is referenced, because the code *is* a GC root
2021-01-26 22:01:14 +0100 <kobaam> another thing, if I'm certain that something will return a Maybe value, but need for it to return a non maybe answer. How would I do so? I've tried using Just, but that didn't do the trick
2021-01-26 22:01:27 +0100 <monochrom> You can use Debug.Trace stuff to observe re-computation.
2021-01-26 22:01:43 +0100 <ij> monochrom, forgot about trying that
2021-01-26 22:01:46 +0100 <fresheyeball> merijn: ok so <|> just doesn't work for this
2021-01-26 22:01:53 +0100 <ij> geekosaur, ah, but it is defined in top level
2021-01-26 22:02:05 +0100 <monochrom> If something isn't re-computed despite multiple runtime uses, then you know it's retained.
2021-01-26 22:02:06 +0100 <merijn> ij: The top level is *also* a GC root
2021-01-26 22:02:10 +0100 <geekosaur> then it's a gc root
2021-01-26 22:02:38 +0100 <ij> so even if I don't use it, it's going to be evaluated in this case?
2021-01-26 22:02:48 +0100 <merijn> what?
2021-01-26 22:02:55 +0100 <geekosaur> evaluation is unrelated to gc roots
2021-01-26 22:02:57 +0100 <fresheyeball> I really just want Haskell to keep trying IO's until we get to the end
2021-01-26 22:03:29 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 22:03:29 +0100 <fresheyeball> (putStrLn "foo" >> error "oof") <|> return "bar"
2021-01-26 22:03:35 +0100 <fresheyeball> does try the first Monad
2021-01-26 22:03:37 +0100 <ij> merijn, if you don't create it, there's no need to collect it
2021-01-26 22:03:41 +0100 <fresheyeball> but it never trys the second
2021-01-26 22:03:52 +0100 <fresheyeball> in this case, I am looking to get "bar"
2021-01-26 22:04:07 +0100 <ij> but I guess that doesn't make sense
2021-01-26 22:04:24 +0100 <monochrom> Perhaps you should look into which exceptions <|> catches and which others <|> looks the other way.
2021-01-26 22:04:36 +0100 <geekosaur> ij, you still have a thunk that can be garbage collected
2021-01-26 22:04:53 +0100 <fresheyeball> monochrom: it just appears to not continue
2021-01-26 22:04:59 +0100 <fresheyeball> when it hits an error, it's an error
2021-01-26 22:05:09 +0100 <ij> geekosaur, but it still wouldn't, because it's top level...
2021-01-26 22:05:14 +0100 <ij> *at the
2021-01-26 22:05:15 +0100 <fresheyeball> which makes sense with my intuition from the Maybe instance of <|>
2021-01-26 22:05:21 +0100 <geekosaur> except that here it's a top level CAF so won't be, it'll just be a thunk that sits around
2021-01-26 22:05:22 +0100 <merijn> ij: Why wouldn't top level things be able to be GCed?
2021-01-26 22:05:24 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-01-26 22:05:30 +0100 <dolio> fresheyeball: That's not a thrown exception. It's an undefined IO value.
2021-01-26 22:05:33 +0100 <monochrom> Then how do you explain ski's readIO example?
2021-01-26 22:05:39 +0100 <monochrom> <ski> % readIO "Flase" <|> pure True
2021-01-26 22:05:39 +0100 <monochrom> <yahb> ski: True
2021-01-26 22:05:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-01-26 22:05:51 +0100 <ij> merijn, able to, but you/geekosaur said that it's a GC root
2021-01-26 22:05:59 +0100 <fresheyeball> dolio: I don't understand, ghci says it's an exception
2021-01-26 22:06:18 +0100 <ij> still collectable, though. wasn't saying that :)
2021-01-26 22:06:26 +0100 <merijn> ij: GC roots can disappear
2021-01-26 22:06:31 +0100kaboom(~manjaro-u@2601:285:c000:a6c0::4713)
2021-01-26 22:06:32 +0100 <merijn> They're not fixed forever
2021-01-26 22:06:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 22:06:56 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-26 22:07:02 +0100 <ij> how? when?
2021-01-26 22:07:02 +0100 <merijn> When GC is triggered you identify the roots and anything (transitively) referenced from the roots is alive
2021-01-26 22:07:04 +0100 <dolio> fresheyeball: What you wrote is like saying _what_ to do is undefined. It's not saying that what to do is throw an exception.
2021-01-26 22:07:11 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-26 22:07:15 +0100 <geekosaur> in the example I gave earlier, bar was a gc root but it went away when an activation of foo went away
2021-01-26 22:07:39 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-01-26 22:07:50 +0100 <geekosaur> moer precisely it went away when the value of the second … was fully evaluated with respect to bar
2021-01-26 22:07:56 +0100 <ij> geekosaur, missed that message, I'll read it now
2021-01-26 22:08:03 +0100 <ij> got lost amidst other
2021-01-26 22:08:15 +0100 <dolio> (<|>) recovers from throwing exceptions as well-defined IO actions, not from undefined IO actions.
2021-01-26 22:08:26 +0100 <ij> or at least the code I didn't notice
2021-01-26 22:08:52 +0100 <geekosaur> it just defined a list inside a function, such that it only exists while the function is being evaluated. which is a bit more complicated than it sounds in the face of lazy evaluation, but it's still only a temporary gc root
2021-01-26 22:09:04 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 264 seconds)
2021-01-26 22:09:08 +0100 <geekosaur> well, a map
2021-01-26 22:09:47 +0100 <fresheyeball> dolio: you are right!
2021-01-26 22:09:56 +0100 <fresheyeball> what a subtle little distinction
2021-01-26 22:10:07 +0100 <fresheyeball> readFile "bad" <|> return "foo"
2021-01-26 22:10:13 +0100 <fresheyeball> does provide "foo"
2021-01-26 22:10:18 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Client Quit)
2021-01-26 22:10:25 +0100 <geekosaur> actually it's not a gc root, come to think of it, since it's reachable via the expression
2021-01-26 22:10:26 +0100kobaam(~manjaro-u@2601:285:c000:a6c0::4713) (Ping timeout: 240 seconds)
2021-01-26 22:10:59 +0100 <geekosaur> roots are how the whole thing gets started, else no data would ever be gc-d
2021-01-26 22:11:39 +0100 <fresheyeball> dolio:++
2021-01-26 22:11:48 +0100 <ij> geekosaur, so, if I have f x = g x; main = mapM (\x -> print $ if odd x then f x else 0) [1..]
2021-01-26 22:12:25 +0100 <ij> sometimes the GC could be started when evaluation of print was when x is even, so g wouldn't be accessible
2021-01-26 22:12:36 +0100 <ij> would g then be picked up, if it's a function that uses a Map?
2021-01-26 22:12:44 +0100 <ij> I mean the map that's used in g
2021-01-26 22:13:27 +0100oisdk(~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) (Quit: oisdk)
2021-01-26 22:13:27 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-26 22:13:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 22:14:04 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-01-26 22:14:15 +0100 <geekosaur> g wouldn't exist in the even case. the odd case, it would exist until printed (presuming nothing else forced its evaluation) and then the next gc would collect the map because it was unreferenced from a root
2021-01-26 22:14:20 +0100 <merijn> ij: tbh, I don't think you have sufficient understanding how GC and evaluation works to get anything useful from reasoning about this
2021-01-26 22:15:02 +0100deviantfero(~deviantfe@190.150.27.58)
2021-01-26 22:15:18 +0100 <geekosaur> and possibly not enough about the difference between (thunks vs. evaluate values) and gc
2021-01-26 22:15:24 +0100 <geekosaur> *evaluated
2021-01-26 22:15:37 +0100zaquest(~notzaques@5.128.210.178)
2021-01-26 22:15:50 +0100 <nshepperd> things are never GCd then created again
2021-01-26 22:16:19 +0100 <nshepperd> but sometimes functions create a second thing which is different from the first thing
2021-01-26 22:16:48 +0100 <geekosaur> even if it has the same value as you'd think of it
2021-01-26 22:17:01 +0100 <ph88^> hi fresheyeball
2021-01-26 22:17:09 +0100 <fresheyeball> hi!
2021-01-26 22:18:34 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-26 22:18:51 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:5976:80b4:6657:63a8) (Ping timeout: 265 seconds)
2021-01-26 22:19:37 +0100joseph(~joseph@cpe-65-31-18-174.insight.res.rr.com)
2021-01-26 22:19:47 +0100retroj(~retroj@217.146.82.202) (Remote host closed the connection)
2021-01-26 22:19:52 +0100josephGuest64710
2021-01-26 22:20:14 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 22:20:28 +0100plutoniix(~q@node-uml.pool-125-24.dynamic.totinternet.net) (Ping timeout: 264 seconds)
2021-01-26 22:20:33 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 22:21:21 +0100 <Guest64710> /
2021-01-26 22:21:40 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds)
2021-01-26 22:21:40 +0100Guest64710(~joseph@cpe-65-31-18-174.insight.res.rr.com) ()
2021-01-26 22:23:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-26 22:24:07 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-26 22:24:41 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-26 22:24:51 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-26 22:25:09 +0100plutoniix(~q@node-uml.pool-125-24.dynamic.totinternet.net)
2021-01-26 22:25:26 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Client Quit)
2021-01-26 22:25:28 +0100 <ezzieyguywuf> hm, I want to take a bash script, and read it into haskell, and then get information about it, i.e. "Is there a variable FOO? what is its value? How about a function bar()? what are its contents"
2021-01-26 22:25:44 +0100 <ezzieyguywuf> I see the language-bash package - is this my best bet?
2021-01-26 22:25:57 +0100 <ezzieyguywuf> or are there other options? or is this a silly endeavour?
2021-01-26 22:26:44 +0100jedi1(~jedi@185.204.1.185)
2021-01-26 22:27:00 +0100 <geekosaur> checking for a variable FOO is probably doable. getting its contents would worst-case require reimplementing bash in Haskell, which seems unlikely
2021-01-26 22:27:20 +0100SwarmCollective(~joseph@cpe-65-31-18-174.insight.res.rr.com)
2021-01-26 22:27:37 +0100 <ezzieyguywuf> yikes, I thought that might be the case
2021-01-26 22:28:24 +0100 <ezzieyguywuf> hrm, maybe I just execute bash on the file then, i.e. I think `env` command gives me info about the environment.
2021-01-26 22:28:43 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-a4c2-7b90-773e-683c.res6.spectrum.com) (Ping timeout: 260 seconds)
2021-01-26 22:28:52 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Ping timeout: 264 seconds)
2021-01-26 22:29:01 +0100 <geekosaur> not all variables end up in the environment
2021-01-26 22:29:19 +0100 <pjb> ezzieyguywuf: bash is a scripting language. It means that to learn anything about a script, you must execute it. In a given environment.
2021-01-26 22:29:26 +0100 <geekosaur> and, well, it'll run stuff. you may want to be careful about that :)
2021-01-26 22:29:45 +0100 <pjb> and I don't mean setenv, but the whole world accessible to bash, including the network.
2021-01-26 22:29:58 +0100neiluj(~jco@unaffiliated/neiluj) (Remote host closed the connection)
2021-01-26 22:30:02 +0100zdenal__(uid235212@gateway/web/irccloud.com/x-oxlfvkqxdkwnotwq)
2021-01-26 22:30:04 +0100 <ezzieyguywuf> geekosaur: lol indeed.
2021-01-26 22:30:11 +0100 <pjb> ezzieyguywuf: the first problem you'll have with variables, and others, is that bash has an eval command.
2021-01-26 22:30:18 +0100 <ezzieyguywuf> hm
2021-01-26 22:30:30 +0100fresheyeball(~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com)
2021-01-26 22:30:50 +0100 <pjb> ezzieyguywuf: variables are defined dynamically, by running the script, but they may even not appear in the script source, but being generated at run-time!
2021-01-26 22:30:51 +0100 <nshepperd> the 'set' command prints all variables
2021-01-26 22:31:05 +0100 <pjb> IF you ran the script and you run the set command.
2021-01-26 22:31:13 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-8467-207c-08dd-9d84.res6.spectrum.com)
2021-01-26 22:32:06 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-01-26 22:32:08 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 22:32:14 +0100 <pjb> ezzieyguywuf: so you can do an half assed job for "static" scripts that are "well behavied" (actually that use a subset of bash), but if your specification is just what you wrote, unless you re-implement bash in haskell, forget it. Just use bash to extract dynamically the info you need.
2021-01-26 22:33:44 +0100 <pjb> Note: you have the same problem with other system, eg. make. To extract information from a makefile, the best way is just to run make. Of course, you may want to avoid running the command (there are options), but this is also quite unsatisfactory. Sometimes you have to duplicate an environment (with sources, etc) and run make with some stubbed stuff to help you collect the information you want, and then re-run make in the or
2021-01-26 22:33:44 +0100 <pjb> environment using the info you collected.
2021-01-26 22:33:55 +0100 <pjb> This is what we call "usines à gas"…
2021-01-26 22:34:05 +0100 <pjb> But there's no better way.
2021-01-26 22:34:13 +0100conal(~conal@64.71.133.70)
2021-01-26 22:34:44 +0100 <pjb> The correct solution would be to forget bash, and to design a functionnal "scripting" language.
2021-01-26 22:35:42 +0100denisse_(~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds)
2021-01-26 22:35:55 +0100 <geekosaur> well, until you wamnt to analyze someone else's script and they will only use bash
2021-01-26 22:35:55 +0100borne(~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de)
2021-01-26 22:36:11 +0100 <pjb> Scripting is perticular, fundamentally, what it means is that the semantics of the program can be altered at run-time. You cannot compile a script. If you could compile a script, it wouldn't be a script, it would be a program (and indeed, some bash scripts can be compiled, they're not scripts, they're programs written in bash). Obviously, it'd be silly to write programs in bash, better use lisp, smalltalk or haskell.
2021-01-26 22:36:31 +0100notzmv(~user@unaffiliated/zmv) (Ping timeout: 265 seconds)
2021-01-26 22:36:54 +0100 <ezzieyguywuf> pjb: I think "static" and "well behaved" are fair assumptions actually, I'm trying to read gentoo ebuild files which use a subset of bash
2021-01-26 22:37:06 +0100 <pjb> geekosaur: now of course, you can also apply NLP and AI to code… It's possible to learn something. But not formally, not without accepting the same misinterpretations and bug you get with a human programmer.
2021-01-26 22:37:18 +0100 <pjb> ezzieyguywuf: indeed.
2021-01-26 22:37:32 +0100 <pjb> You can restrict yourself to those kinds of files.
2021-01-26 22:38:06 +0100 <merijn> I'd say a better idea is just "insert some printf" :p
2021-01-26 22:38:15 +0100 <ezzieyguywuf> the guys in #bash sugessted shfmt, which can output to json
2021-01-26 22:38:49 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-01-26 22:40:09 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2021-01-26 22:40:15 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Client Quit)
2021-01-26 22:40:38 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-01-26 22:40:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 22:40:52 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2021-01-26 22:41:08 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-01-26 22:42:22 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-01-26 22:43:17 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-01-26 22:43:47 +0100ukari(~ukari@unaffiliated/ukari)
2021-01-26 22:44:25 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 22:44:27 +0100 <pjb> ezzieyguywuf: for example, if you consider this bash JSON parser library: https://github.com/informatimago/bash-tidbits/blob/main/ios/json.bash
2021-01-26 22:45:32 +0100 <ezzieyguywuf> hrm, perhaps a better approach would be to simply write a parser for https://dev.gentoo.org/~ulm/pms/head/pms.html
2021-01-26 22:45:38 +0100 <pjb> ezzieyguywuf: you will notice eg. https://github.com/informatimago/bash-tidbits/blob/main/ios/json.bash#L290 that it creates array variables named cell${something} dynamically.
2021-01-26 22:45:59 +0100 <pjb> ezzieyguywuf: you cannot know what variables are created unless you run the code.
2021-01-26 22:46:31 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving)
2021-01-26 22:46:48 +0100 <pjb> on the other hand, indeed, often static files use the bash variable setting syntax, so they can easily be processed by bash by just sourcing them and getting thus the variables loaded and defined in bash.
2021-01-26 22:46:52 +0100 <ezzieyguywuf> maybe another approach is to simply run the script in a sandbox
2021-01-26 22:46:57 +0100 <pjb> It would be abusive to call them bash files.
2021-01-26 22:47:09 +0100 <pjb> It's just files with a syntax that bash can source.
2021-01-26 22:47:35 +0100 <pjb> ezzieyguywuf: in general yes, run the scriptin a sandbox, and use bash itself to extract the info you want.
2021-01-26 22:47:58 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:6b54:95a3:2572:ac11)
2021-01-26 22:48:44 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-01-26 22:53:02 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-01-26 22:53:13 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 246 seconds)
2021-01-26 22:58:47 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 23:01:23 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:6b54:95a3:2572:ac11) (Ping timeout: 265 seconds)
2021-01-26 23:02:19 +0100boristhe1lade(~boristheb@87-95-88-1.bb.dnainternet.fi)
2021-01-26 23:02:25 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 23:03:28 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-01-26 23:03:59 +0100conal(~conal@64.71.133.70)
2021-01-26 23:04:52 +0100boristheblade(~boristheb@87-95-28-43.bb.dnainternet.fi) (Ping timeout: 264 seconds)
2021-01-26 23:06:55 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-01-26 23:07:40 +0100Guest_56(5afef702@90.254.247.2)
2021-01-26 23:09:30 +0100oisdk(~oisdk@2001:bb6:3329:d100:200f:d320:3f34:cf24)
2021-01-26 23:10:25 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2021-01-26 23:11:39 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 23:12:00 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-01-26 23:13:26 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:d5c7:b208:461b:d132)
2021-01-26 23:13:50 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-01-26 23:13:52 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds)
2021-01-26 23:15:34 +0100LKoen(~LKoen@19.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-01-26 23:15:48 +0100Rudd0(~Rudd0@185.189.115.108)
2021-01-26 23:17:48 +0100conal(~conal@64.71.133.70)
2021-01-26 23:18:47 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:d5c7:b208:461b:d132) (Ping timeout: 265 seconds)
2021-01-26 23:19:31 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-01-26 23:19:48 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-26 23:20:12 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-26 23:20:32 +0100zebrag(~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr)
2021-01-26 23:22:09 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 23:22:36 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 240 seconds)
2021-01-26 23:24:05 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-26 23:24:27 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-26 23:25:50 +0100 <koz_> :t foldM
2021-01-26 23:25:52 +0100 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
2021-01-26 23:26:29 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 260 seconds)
2021-01-26 23:28:42 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2021-01-26 23:29:37 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-01-26 23:30:08 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 23:30:16 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-26 23:30:25 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:d456:e802:34bc:cee)
2021-01-26 23:30:53 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-26 23:31:41 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 258 seconds)
2021-01-26 23:32:26 +0100kaboom(~manjaro-u@2601:285:c000:a6c0::4713) (Ping timeout: 264 seconds)
2021-01-26 23:32:54 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-01-26 23:33:04 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 23:33:09 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-26 23:33:45 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-26 23:33:54 +0100C4ladbolg(~darccc-as@ool-18bcd822.dyn.optonline.net) ()
2021-01-26 23:34:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 23:35:00 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-26 23:35:13 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-01-26 23:38:01 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds)
2021-01-26 23:38:57 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-01-26 23:39:09 +0100hololeap(~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
2021-01-26 23:39:29 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-01-26 23:39:45 +0100Mr_Cue(~Mr._Cue@pengyuzhou.com)
2021-01-26 23:40:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-01-26 23:42:00 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-01-26 23:44:35 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-26 23:44:46 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-26 23:47:28 +0100ADG1089__(~aditya@223.226.145.125)
2021-01-26 23:48:28 +0100 <koz_> @unmtl MaybeT (Either e) a
2021-01-26 23:48:29 +0100 <lambdabot> Either e (Maybe a)
2021-01-26 23:48:32 +0100 <koz_> :D
2021-01-26 23:48:39 +0100 <koz_> Finally I get a use for that transformer.
2021-01-26 23:48:41 +0100forgottenone(~forgotten@176.42.20.27) (Remote host closed the connection)
2021-01-26 23:49:19 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-01-26 23:51:12 +0100forgottenone(~forgotten@176.42.20.27)
2021-01-26 23:52:26 +0100conal(~conal@64.71.133.70)
2021-01-26 23:53:41 +0100gaussian(uid482612@gateway/web/irccloud.com/x-nimvwshqdwcnlciq) (Quit: Connection closed for inactivity)
2021-01-26 23:57:49 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-26 23:57:59 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
2021-01-26 23:59:33 +0100dustinm(~dustinm@static.38.6.217.95.clients.your-server.de) (Quit: Leaving)