Home liberachat/#haskell: Logs Calendar

Logs on 2022-08-01 (liberachat/#haskell)

00:01:50 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb2 - https://znc.in)
00:01:52 <pavonia> Yeah, good point
00:02:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
00:02:42 geekosaur joins (~geekosaur@xmonad/geekosaur)
00:03:18 <Axman6> and if you know the numbers will always be larger than an Int, then you could use its underlying BigNat https://hackage.haskell.org/package/integer-gmp-1.0.3.0/docs/GHC-Integer-GMP-Internals.html#t:BigNat
00:04:38 <Axman6> hmm, perhaps not, there's no Num instance, which is probably sensible
00:07:05 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds)
00:08:09 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
00:08:29 haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
00:08:29 × haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
00:08:29 haritz joins (~hrtz@user/haritz)
00:14:37 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
00:18:50 × stilgart quits (~Christoph@chezlefab.net) (Remote host closed the connection)
00:24:42 <EvanR> Natural hypothetically is optimized for positive only or that's actually a thing?
00:26:03 <Axman6> Integer is basically Natural + sign, so every Integer operation needs to branch on sign. it's not a huge cost but if it's unnecessary you might as well avoid it
00:26:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
00:26:52 × Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.203) (Quit: Leaving)
00:28:00 <hpc> is that what libgmp does?
00:28:07 matthewmosior joins (~matthewmo@173.170.253.91)
00:28:19 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
00:29:39 <Axman6> actually that's a good point, I can't remember what happens when using GHP
00:29:41 <Axman6> GMP*
00:30:08 <hpc> hmm, seems to be that's what it does
00:30:11 <hpc> https://github.com/sethtroisi/libgmp/blob/master/mpz/aors_ui.h
00:30:37 <hpc> except not quite branching on sign, but (x + y) branches on if x and y are the same sign or different signs
00:31:16 <hpc> also a bunch of checks for if it has to grow the integer's memory
00:31:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:31:54 <Axman6> I wish we had mutable Integers, the algorithm pavonia is working on could very easily reuse storage
00:35:42 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
00:39:56 <EvanR> IOInteger, STInteger xD
00:40:15 <EvanR> LinearInteger
00:40:21 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
00:41:21 <monochrom> Uh then you will also need LinearNatural...
00:43:31 <hpc> we need a type system that's like that new state of matter they made last week, with two time dimensions
00:43:38 <hpc> we can call it euclidean types instead of linear types
00:44:07 <hpc> useful applications to be determined later :D
00:44:09 <monochrom> >_<
00:45:30 <hpc> actually hmm... would that be useful in some way?
00:45:43 <EvanR> instead of time crystals it'll be type crystals?
00:47:02 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
00:50:15 <pavonia> Axman6: What algorithm am I working on? :p
00:58:12 <Axman6> well you were wortking on fermat factorisation
00:59:19 naso joins (~naso@193-116-244-197.tpgi.com.au)
01:02:07 × xff0x quits (~xff0x@ap007189.d.east.v6connect.net) (Ping timeout: 245 seconds)
01:02:42 <pavonia> Ah right, but I moved forward to Lehman's optimization, and now I'm looking at Shank's algorithm
01:04:04 <pavonia> Also I read through the paper for fast square root finding, but it seems to be a bit to compilcated
01:05:52 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
01:06:00 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:06:20 califax joins (~califax@user/califx)
01:06:28 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
01:07:12 Batzy_ joins (~quassel@user/batzy)
01:07:37 × Batzy_ quits (~quassel@user/batzy) (Client Quit)
01:08:08 Batzy joins (~quassel@user/batzy)
01:10:52 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
01:17:07 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
01:18:13 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 244 seconds)
01:24:19 Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
01:24:25 Guest3 parts (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) ()
01:30:39 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
01:31:08 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
01:31:46 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:31:54 × noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds)
01:32:23 noteness joins (~noteness@user/noteness)
01:32:37 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:38:36 × sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 268 seconds)
01:38:48 <mon_aaraj> so I have something like this: ``[ max (show x) (y <> z) | x <- [1..100] | y <- cycle ["","","Fizz"] | z <- cycle ["","","","","Buzz"] ]`` any idea how i'd only specify `cycle` once for both of the lists to cycle? It reminds me of the ``on`` function, but this isn't a zip, this is only a list comprehension
01:40:34 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:42:47 × ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds)
01:43:25 matthewmosior joins (~matthewmo@173.170.253.91)
01:46:19 Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
01:46:26 × Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host)
01:46:26 Guest3 joins (~textual@user/polo)
01:47:35 × Guest3 quits (~textual@user/polo) (Client Quit)
01:47:51 Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
01:50:26 × Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host)
01:50:26 Guest3 joins (~textual@user/polo)
01:50:27 Guest3 is now known as Polo
01:58:08 <[Leary]> mon_aaraj: Looks like a zip to me: (zipWith3 (\x y z -> ...) [1..100] `on` cycle) [...] [...]
01:58:44 <mon_aaraj> yep, i had that, though it was longer.. this is sort of a golf
01:59:57 <mon_aaraj> i suppose i just need a readable way to shorten ``\x y z -> max (show x) (y <> z)``
02:02:55 × lemonsni- quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
02:04:44 <mon_aaraj> maybe the `cycle` with the lists empty strings are also long, but i think i might know a way to get it shorter
02:06:41 × Dashkal quits (~dashkal@user/dashkal) (Ping timeout: 255 seconds)
02:12:58 mokee joins (~mokee@37.228.215.83)
02:20:12 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
02:22:43 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:22:43 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:22:43 finn_elija is now known as FinnElija
02:23:32 mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi)
02:25:39 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
02:28:05 <Axman6> yeah I didn't like it much as a paper, I wanted to see code, I have a feeling a lot of the formulae would actually be straight forward code. I hate it when papers which are definitely software related opt to use only maths - it may be universal but it also usually misses the optimisations in the algorithm
02:31:35 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:32:38 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
02:32:47 × zebrag quits (~chris@user/zebrag) (Read error: Connection reset by peer)
02:33:02 zebrag joins (~chris@user/zebrag)
02:33:12 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:33:32 naso joins (~naso@193-116-244-197.tpgi.com.au)
02:35:27 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 245 seconds)
02:37:16 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
02:37:32 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
02:37:50 × Polo quits (~textual@user/polo) (Quit: Textual IRC Client: www.textualapp.com)
02:37:50 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 240 seconds)
02:38:46 naso joins (~naso@193-116-244-197.tpgi.com.au)
02:39:57 Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
02:40:19 × Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host)
02:40:19 Guest3 joins (~textual@user/polo)
02:40:25 Guest3 is now known as Gambino
02:40:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:41:22 × Gambino quits (~textual@user/polo) (Client Quit)
02:42:32 × td_ quits (~td@94.134.91.252) (Ping timeout: 245 seconds)
02:42:38 geekosaur joins (~geekosaur@xmonad/geekosaur)
02:42:44 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
02:44:18 td_ joins (~td@muedsl-82-207-238-015.citykom.de)
02:44:43 jargon joins (~jargon@184.101.188.251)
02:45:27 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
02:48:41 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:53:57 × Me-me quits (~me-me@user/me-me) (Remote host closed the connection)
02:54:44 Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
02:59:03 <onosendi> "Couldn't match type ‘t0 a0 -> Char -> [Char]" - What's the difference between [Char] and Char?
02:59:12 matthewmosior joins (~matthewmo@173.170.253.91)
02:59:18 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
03:00:12 <mon_aaraj> ``[Char]`` is a list of ``Char``, ``[Char]`` is just ``String``
03:00:50 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
03:00:52 <mon_aaraj> huh.. i found this piece of code from 10 years ago: ``[ maybe (show x) id $ [ "fizz" | rem x 3 < 1 ] [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]``, and it supposedly worked? it uses monad comprehensions.. I can't figure out how to get it to work though
03:03:42 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
03:03:56 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:04:23 <onosendi> I just did a fizzbuzz :P
03:04:46 frost joins (~frost@user/frost)
03:05:46 <pavonia> > [ maybe (show x) id $ [ "fizz" | rem x 3 < 1 ] [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]
03:05:48 <lambdabot> error:
03:05:48 <lambdabot> • Couldn't match expected type ‘[[Char]] -> Maybe String’
03:05:48 <lambdabot> with actual type ‘[[Char]]’
03:05:52 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
03:06:36 <pavonia> > [ maybe (show x) id $ listToMaybe [ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]
03:06:38 <lambdabot> error:
03:06:38 <lambdabot> • Couldn't match expected type ‘Maybe [Char]’
03:06:38 <lambdabot> with actual type ‘[[Char]]’
03:06:49 <pavonia> > [ maybe (show x) id $ listToMaybe $ [ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]
03:06:51 <lambdabot> ["1","2","fizz","4","buzz","fizz","7","8","fizz","buzz","11","fizz","13","14...
03:16:24 × frost quits (~frost@user/frost) (Quit: Client closed)
03:16:30 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:21:35 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
03:29:50 × mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 240 seconds)
03:30:43 mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi)
03:35:32 frost joins (~frost@user/frost)
03:43:47 × naso quits (~naso@193-116-244-197.tpgi.com.au) ()
03:50:25 × lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
03:53:52 × lechner quits (lechner@debian/lechner) (Quit: WeeChat 3.5)
03:54:47 lbseale joins (~quassel@user/ep1ctetus)
03:57:12 × lbseale quits (~quassel@user/ep1ctetus) (Client Quit)
03:59:11 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
03:59:35 noteness joins (~noteness@user/noteness)
03:59:47 Inst joins (~Inst@2601:6c4:4080:3f80:e980:509e:df5:6868)
04:02:10 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
04:02:30 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
04:04:35 lbseale joins (~quassel@user/ep1ctetus)
04:07:03 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
04:07:28 noteness joins (~noteness@user/noteness)
04:10:13 × lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
04:13:22 Dashkal joins (~dashkal@user/dashkal)
04:17:13 lbseale joins (~quassel@user/ep1ctetus)
04:19:33 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 268 seconds)
04:20:10 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
04:20:27 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
04:20:40 Batzy joins (~quassel@user/batzy)
04:24:51 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
04:31:12 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
04:32:37 matthewmosior joins (~matthewmo@173.170.253.91)
04:33:47 × mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 245 seconds)
04:33:47 × lbseale quits (~quassel@user/ep1ctetus) (Read error: Connection reset by peer)
04:35:39 lbseale joins (~quassel@user/ep1ctetus)
04:37:07 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
04:44:07 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
04:49:47 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
04:50:23 vglfr joins (~vglfr@194.9.14.33)
04:51:43 azimut joins (~azimut@gateway/tor-sasl/azimut)
04:53:49 matthewmosior joins (~matthewmo@173.170.253.91)
04:54:09 mbuf joins (~Shakthi@122.165.55.71)
04:54:33 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
04:54:39 vglfr joins (~vglfr@194.9.14.33)
04:58:57 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
04:59:08 vglfr joins (~vglfr@194.9.14.33)
05:03:25 <mon_aaraj> ah, nice! thank you
05:05:48 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
05:07:04 gmg joins (~user@user/gehmehgeh)
05:10:54 notzmv joins (~zmv@user/notzmv)
05:12:31 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 252 seconds)
05:13:40 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
05:19:15 elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
05:21:07 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 272 seconds)
05:21:07 elkcl_ is now known as elkcl
05:23:10 trillp joins (~trillp@69.233.98.238)
05:24:12 <mon_aaraj> hmm, though it seems to misbehave a bit. is there a way to make it so that without listToMaybe, ``[ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ]``, would never return a Char? because it seems GHC thinks there's a char here for whatever reason. My guess is because on empty cases, it would return one empty character or some such.
05:24:48 <mon_aaraj> fwiw, the piece of code i am trying is ``[ max (show x) $ [ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]``
05:29:47 acidjnk joins (~acidjnk@p200300d6e705867880cba01054dd5d6a.dip0.t-ipconnect.de)
05:30:05 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
05:31:57 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds)
05:34:19 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Client Quit)
05:34:50 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
05:36:06 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
05:36:41 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
05:42:33 elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
05:43:55 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 272 seconds)
05:43:56 elkcl_ is now known as elkcl
05:44:12 wootehfoot joins (~wootehfoo@user/wootehfoot)
05:49:35 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 268 seconds)
05:50:49 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
05:52:16 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:53:05 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
05:53:25 yin joins (~yin@user/zero)
06:02:45 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
06:02:57 vglfr joins (~vglfr@194.9.14.33)
06:05:49 matthewmosior joins (~matthewmo@173.170.253.91)
06:10:02 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
06:12:36 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:12:53 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:15:27 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
06:16:26 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
06:17:40 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
06:22:04 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer)
06:22:04 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
06:22:04 × califax quits (~califax@user/califx) (Read error: Connection reset by peer)
06:22:04 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
06:22:04 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:22:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
06:22:04 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
06:22:25 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:22:45 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:22:51 noteness joins (~noteness@user/noteness)
06:22:55 gmg joins (~user@user/gehmehgeh)
06:22:56 califax joins (~califax@user/califx)
06:22:57 × mokee quits (~mokee@37.228.215.83) (Ping timeout: 245 seconds)
06:23:03 × gmg quits (~user@user/gehmehgeh) (Client Quit)
06:23:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:23:39 × trillp quits (~trillp@69.233.98.238) (Ping timeout: 252 seconds)
06:23:48 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
06:24:56 mokee joins (~mokee@37.228.215.83)
06:26:29 michalz joins (~michalz@185.246.204.97)
06:26:42 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
06:32:32 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
06:32:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
06:32:51 lortabac joins (~lortabac@2a01:e0a:541:b8f0:93dd:6a2f:9b9:59b0)
06:33:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
06:34:07 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:36:27 × mokee quits (~mokee@37.228.215.83) (Ping timeout: 268 seconds)
06:38:01 mokee joins (~mokee@37.228.215.83)
06:38:27 × Digit quits (~user@user/digit) (*.net *.split)
06:38:27 × nibelungen quits (~asturias@2001:19f0:7001:638:5400:3ff:fef3:8725) (*.net *.split)
06:38:27 × glider quits (~glider@user/glider) (*.net *.split)
06:38:27 × CAT_S quits (apic@brezn3.muc.ccc.de) (*.net *.split)
06:38:27 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
06:38:27 × jakalx quits (~jakalx@base.jakalx.net) (*.net *.split)
06:38:27 × acro quits (~acro@user/acro) (*.net *.split)
06:38:27 × nonzen quits (~nonzen@user/nonzen) (*.net *.split)
06:38:27 × _\_ quits (~o@user/offon) (*.net *.split)
06:38:27 × degraafk quits (sid71464@id-71464.lymington.irccloud.com) (*.net *.split)
06:38:27 × glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (*.net *.split)
06:38:27 × edwtjo quits (~edwtjo@fsf/member/edwtjo) (*.net *.split)
06:38:27 × Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (*.net *.split)
06:38:27 × sooch_ quits (sid533113@id-533113.hampstead.irccloud.com) (*.net *.split)
06:38:27 × xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
06:38:27 × laman quits (~laman@rego.ai) (*.net *.split)
06:38:27 × dispater quits (~dispater@user/brprice) (*.net *.split)
06:38:27 × siers quits (~ij@user/ij) (*.net *.split)
06:38:27 × Unhammer quits (~Unhammer@user/unhammer) (*.net *.split)
06:38:27 × mvanderhallen[m] quits (~mvanderha@2001:470:69fc:105::2:3a88) (*.net *.split)
06:38:27 × Teacup quits (~teacup@user/teacup) (*.net *.split)
06:38:27 × mrkajetanp quits (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (*.net *.split)
06:38:27 × welterde quits (welterde@thinkbase.srv.welterde.de) (*.net *.split)
06:38:27 × Guest585 quits (~mike@2406:d501::79ae:5f3e) (*.net *.split)
06:38:27 × krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split)
06:38:27 × nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split)
06:38:27 × berberman quits (~berberman@user/berberman) (*.net *.split)
06:38:27 × arkeet quits (arkeet@moriya.ca) (*.net *.split)
06:38:27 × rodental quits (~rodental@38.146.5.222) (Remote host closed the connection)
06:38:34 xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1)
06:38:37 arkeet joins (arkeet@moriya.ca)
06:38:38 sooch_ joins (sid533113@id-533113.hampstead.irccloud.com)
06:38:38 glowcoil joins (sid3405@id-3405.tinside.irccloud.com)
06:38:38 CAT_S joins (apic@brezn3.muc.ccc.de)
06:38:39 degraafk joins (sid71464@id-71464.lymington.irccloud.com)
06:38:41 Noinia joins (~Frank@77-162-168-71.fixed.kpn.net)
06:38:44 Teacup joins (~teacup@user/teacup)
06:38:44 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
06:38:45 edwtjo joins (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se)
06:38:59 Unhammer joins (~Unhammer@2a01:799:61:c500::237)
06:38:59 nshepperd joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
06:39:01 × edwtjo quits (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host)
06:39:01 edwtjo joins (~edwtjo@fsf/member/edwtjo)
06:39:02 Guest585 joins (~mike@2406:d501::79ae:5f3e)
06:39:07 nibelungen joins (~asturias@2001:19f0:7001:638:5400:3ff:fef3:8725)
06:39:07 laman joins (~laman@rego.ai)
06:39:10 × Unhammer quits (~Unhammer@2a01:799:61:c500::237) (Signing in (Unhammer))
06:39:10 Unhammer joins (~Unhammer@user/unhammer)
06:39:11 × Guest585 quits (~mike@2406:d501::79ae:5f3e) (Signing in (Guest585))
06:39:11 Guest585 joins (~mike@user/feetwind)
06:39:15 dispater joins (~dispater@user/brprice)
06:39:21 welterde joins (welterde@thinkbase.srv.welterde.de)
06:39:29 _\_ joins (~o@user/offon)
06:39:29 acro joins (~acro@user/acro)
06:39:30 siers joins (~ij@user/ij)
06:39:32 mrkajetanp joins (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88)
06:39:32 nonzen joins (~nonzen@user/nonzen)
06:39:34 berberman joins (~berberman@user/berberman)
06:39:46 glider joins (~glider@user/glider)
06:40:31 krjst joins (~krjst@2604:a880:800:c1::16b:8001)
06:41:59 Digit joins (~user@user/digit)
06:41:59 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
06:42:18 × acidjnk quits (~acidjnk@p200300d6e705867880cba01054dd5d6a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
06:42:34 × nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Client Quit)
06:42:42 nshepperd joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
06:43:07 mvanderhallen[m] joins (~mvanderha@2001:470:69fc:105::2:3a88)
06:43:34 vglfr joins (~vglfr@194.9.14.33)
06:47:57 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
06:48:26 vglfr joins (~vglfr@194.9.14.33)
06:50:55 ccntrq joins (~Thunderbi@exit-3.office.han.de.mhd.medondo.com)
06:50:57 × goran[m] quits (~goranoour@2001:470:69fc:105::2:1b44) (*.net *.split)
06:50:57 × bjobjo quits (~bjobjo@user/bjobjo) (*.net *.split)
06:50:57 × even4void[m] quits (~even4void@2001:470:69fc:105::2:4b9c) (*.net *.split)
06:50:57 × entheogenesis[m] quits (~entheogen@2001:470:69fc:105::1:e7c4) (*.net *.split)
06:50:57 × Yumemi quits (~Yumemi@chamoin.net) (*.net *.split)
06:50:57 × dragestil quits (~znc@user/dragestil) (*.net *.split)
06:50:57 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (*.net *.split)
06:50:57 × megeve quits (sid523379@id-523379.hampstead.irccloud.com) (*.net *.split)
06:50:57 × sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (*.net *.split)
06:50:57 × scav quits (sid309693@user/scav) (*.net *.split)
06:50:57 × nrr____ quits (sid20938@id-20938.lymington.irccloud.com) (*.net *.split)
06:50:57 × jocke-l quits (jocke-l@a.x0.is) (*.net *.split)
06:50:57 × nisstyre quits (wes@user/nisstyre) (*.net *.split)
06:50:57 × liskin quits (~liskin@xmonad/liskin) (*.net *.split)
06:50:57 × eternalforms quits (~obsrwr@46.101.168.131) (*.net *.split)
06:50:57 × df quits (~ben@justworks.xyz) (*.net *.split)
06:50:57 × sphynx quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split)
06:50:57 × ysh_ quits (sid6017@id-6017.ilkley.irccloud.com) (*.net *.split)
06:50:57 × macabre quits (~m@161.35.15.236) (*.net *.split)
06:50:57 × tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split)
06:50:57 × jamestmartin quits (~james@jtmar.me) (*.net *.split)
06:50:57 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (*.net *.split)
06:50:57 × steve[m] quits (~stevetrou@2001:470:69fc:105::e0b) (*.net *.split)
06:50:57 × chessai quits (sid225296@id-225296.lymington.irccloud.com) (*.net *.split)
06:50:57 × philpax_ quits (sid516926@id-516926.lymington.irccloud.com) (*.net *.split)
06:50:57 × mesaoptimizer quits (sid546676@user/PapuaHardyNet) (*.net *.split)
06:50:57 × dyniec_ quits (~dyniec@mail.dybiec.info) (*.net *.split)
06:50:57 × immae1 quits (~immae@2a01:4f8:141:53e7::) (*.net *.split)
06:50:57 × cjay quits (cjay@nerdbox.nerd2nerd.org) (*.net *.split)
06:50:57 × bw quits (sid2730@user/betawaffle) (*.net *.split)
06:50:57 × agander_m_ quits (sid407952@id-407952.tinside.irccloud.com) (*.net *.split)
06:50:57 × Boarders__ quits (sid425905@id-425905.lymington.irccloud.com) (*.net *.split)
06:50:57 × kevinsjoberg quits (sid499516@id-499516.lymington.irccloud.com) (*.net *.split)
06:50:57 × jmct quits (sid160793@id-160793.tinside.irccloud.com) (*.net *.split)
06:50:57 × gonz______ quits (sid304396@id-304396.lymington.irccloud.com) (*.net *.split)
06:50:57 × wallymathieu quits (sid533252@id-533252.uxbridge.irccloud.com) (*.net *.split)
06:50:58 × brprice quits (~brprice@user/brprice) (*.net *.split)
06:50:58 × bah quits (~bah@l1.tel) (*.net *.split)
06:50:58 × xerox quits (~edi@user/edi) (*.net *.split)
06:50:58 × LambdaDuck quits (~anka@ksit.fixme.fi) (*.net *.split)
06:50:58 × Ristovski quits (~Ristovski@hellomouse/perf/ristovski) (*.net *.split)
06:50:58 × davl_ quits (~davl@207.154.228.18) (*.net *.split)
06:50:58 × Hafydd quits (~Hafydd@user/hafydd) (*.net *.split)
06:50:58 × dka_ quits (~code-is-a@ns3059207.ip-193-70-33.eu) (*.net *.split)
06:50:58 × ringo__ quits (~ringo@157.230.117.128) (*.net *.split)
06:50:58 × mht-wtf quits (~mht@2a03:b0c0:3:e0::1e2:c001) (*.net *.split)
06:50:58 × relrod quits (~relrod@redhat/ansible.staff.relrod) (*.net *.split)
06:51:04 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:51:06 jamestmartin joins (~james@jtmar.me)
06:51:06 ysh_ joins (sid6017@id-6017.ilkley.irccloud.com)
06:51:07 scav joins (sid309693@user/scav)
06:51:07 sa1 joins (sid7690@id-7690.ilkley.irccloud.com)
06:51:07 LambdaDuck joins (~anka@ksit.fixme.fi)
06:51:09 dka joins (~code-is-a@ns3059207.ip-193-70-33.eu)
06:51:10 mesaoptimizer joins (sid546676@user/PapuaHardyNet)
06:51:11 df joins (~ben@justworks.xyz)
06:51:11 hongminhee joins (sid295@id-295.tinside.irccloud.com)
06:51:12 sphynx joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288)
06:51:13 bah joins (~bah@l1.tel)
06:51:13 xerox joins (~edi@user/edi)
06:51:13 eternalforms joins (~obsrwr@46.101.168.131)
06:51:13 dyniec_ joins (~dyniec@mail.dybiec.info)
06:51:15 philpax_ joins (sid516926@id-516926.lymington.irccloud.com)
06:51:21 chessai joins (sid225296@id-225296.lymington.irccloud.com)
06:51:23 cjay joins (cjay@nerdbox.nerd2nerd.org)
06:51:24 jmct joins (sid160793@id-160793.tinside.irccloud.com)
06:51:28 liskin joins (~liskin@ackle.nomi.cz)
06:51:28 Hafydd joins (jc@owlchat.newnet.net)
06:51:30 nrr____ joins (sid20938@id-20938.lymington.irccloud.com)
06:51:30 immae1 joins (~immae@2a01:4f8:141:53e7::)
06:51:31 nisstyre joins (wes@2600:3c00::f03c:91ff:fe69:7f3d)
06:51:32 mht-wtf joins (~mht@2a03:b0c0:3:e0::1e2:c001)
06:51:35 jocke-l joins (jocke-l@a.x0.is)
06:51:37 relrod joins (~relrod@redhat/ansible.staff.relrod)
06:51:37 tolt joins (~weechat-h@li219-154.members.linode.com)
06:51:39 macabre joins (~m@161.35.15.236)
06:51:45 gonz______ joins (sid304396@id-304396.lymington.irccloud.com)
06:51:49 wallymathieu joins (sid533252@id-533252.uxbridge.irccloud.com)
06:51:50 kevinsjoberg joins (sid499516@id-499516.lymington.irccloud.com)
06:51:50 × liskin quits (~liskin@ackle.nomi.cz) (Changing host)
06:51:50 liskin joins (~liskin@xmonad/liskin)
06:51:50 agander_m_ joins (sid407952@id-407952.tinside.irccloud.com)
06:51:52 megeve joins (sid523379@id-523379.hampstead.irccloud.com)
06:51:53 Boarders__ joins (sid425905@id-425905.lymington.irccloud.com)
06:52:07 bw joins (sid2730@user/betawaffle)
06:52:14 brprice joins (~brprice@user/brprice)
06:52:19 Ristovski joins (~Ristovski@hellomouse/perf/ristovski)
06:52:27 dragestil joins (~znc@user/dragestil)
06:52:28 Yumemi joins (~Yumemi@chamoin.net)
06:52:29 davl joins (~davl@207.154.228.18)
06:52:42 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:52:47 ringo__ joins (~ringo@157.230.117.128)
06:52:59 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
06:54:09 steve[m] joins (~stevetrou@2001:470:69fc:105::e0b)
06:54:28 entheogenesis[m] joins (~entheogen@2001:470:69fc:105::1:e7c4)
06:54:53 even4void[m] joins (~even4void@2001:470:69fc:105::2:4b9c)
06:54:55 matthewmosior joins (~matthewmo@173.170.253.91)
06:55:35 goran[m] joins (~goranoour@2001:470:69fc:105::2:1b44)
06:56:12 bjobjo joins (~bjobjo@user/bjobjo)
07:00:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:02:37 coot joins (~coot@213.134.190.95)
07:06:57 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 244 seconds)
07:09:56 chele joins (~chele@user/chele)
07:16:03 gurkenglas joins (~gurkengla@p548ac71b.dip0.t-ipconnect.de)
07:16:05 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Ping timeout: 252 seconds)
07:18:33 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:20:27 × lagash quits (lagash@2605:6400:20:b4:9c76:1538:3398:ce71) (Quit: ZNC - https://znc.in)
07:20:27 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
07:20:39 lagash joins (lagash@lagash.shelltalk.net)
07:27:03 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:27:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:37:14 mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi)
07:48:01 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
07:48:52 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:52:01 benin0 joins (~benin@183.82.177.174)
07:55:52 machined1od joins (~machinedg@d172-219-86-154.abhsia.telus.net)
07:56:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:59:09 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
08:01:03 yin joins (~yin@user/zero)
08:02:14 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
08:03:28 × GoldsteinQ quits (~goldstein@goldstein.rs) (Ping timeout: 268 seconds)
08:05:27 × mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 245 seconds)
08:20:36 mncheck joins (~mncheck@193.224.205.254)
08:23:09 zxx7529 joins (~Thunderbi@user/zxx7529)
08:27:49 matthewmosior joins (~matthewmo@173.170.253.91)
08:29:50 eod|fserucas joins (~eod|fseru@83.223.235.72)
08:30:00 × eod|fserucas quits (~eod|fseru@83.223.235.72) (Client Quit)
08:30:19 fserucas joins (~fserucas@83.223.235.72)
08:32:28 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
08:32:57 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
08:35:24 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:37:24 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
08:37:58 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
08:38:02 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:39:40 azimut joins (~azimut@gateway/tor-sasl/azimut)
08:39:54 __monty__ joins (~toonn@user/toonn)
08:40:46 cyphase is now known as cyphase_eviltwin
08:47:59 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
08:49:37 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 245 seconds)
08:49:52 __monty__ joins (~toonn@user/toonn)
08:50:13 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
08:50:22 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
08:55:27 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
08:56:36 MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl)
08:57:55 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
08:58:07 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:01:51 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
09:03:54 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
09:05:39 sandydoo joins (~sandydoo@185.209.196.136)
09:05:46 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
09:06:08 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
09:07:34 acidjnk joins (~acidjnk@p200300d6e70586787d91d659871fc0c4.dip0.t-ipconnect.de)
09:07:55 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 252 seconds)
09:08:42 Colere joins (~colere@about/linux/staff/sauvin)
09:11:05 Furor joins (~colere@about/linux/staff/sauvin)
09:11:29 wootehfoot joins (~wootehfoo@user/wootehfoot)
09:14:28 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds)
09:14:53 × ridcully_ quits (~ridcully@p508ac7ad.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
09:16:14 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds)
09:16:37 mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi)
09:17:05 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:17:50 matthewmosior joins (~matthewmo@173.170.253.91)
09:17:51 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
09:19:13 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
09:20:11 zaquest joins (~notzaques@5.130.79.72)
09:21:48 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
09:22:19 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
09:22:19 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
09:22:33 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
09:23:20 Furor is now known as Colere
09:24:40 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
09:25:01 ridcully joins (~ridcully@p57b5218b.dip0.t-ipconnect.de)
09:26:59 × jargon quits (~jargon@184.101.188.251) (Remote host closed the connection)
09:27:17 jargon joins (~jargon@184.101.188.251)
09:29:45 vglfr joins (~vglfr@194.9.14.33)
09:33:31 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
09:35:14 ChaiTRex joins (~ChaiTRex@user/chaitrex)
09:37:35 matthewmosior joins (~matthewmo@173.170.253.91)
09:39:40 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
09:43:22 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
09:52:05 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
09:55:12 × mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection)
09:57:24 × bilegeek quits (~bilegeek@2600:1008:b008:7f81:14bd:cb07:613d:3322) (Quit: Leaving)
09:58:35 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:02:38 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
10:09:37 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
10:10:41 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:11:43 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
10:25:10 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
10:26:32 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
10:28:14 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 240 seconds)
10:28:54 vglfr joins (~vglfr@194.9.14.33)
10:32:32 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
10:35:15 × mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 268 seconds)
10:38:37 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
10:40:05 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
10:40:16 × tcard quits (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection)
10:40:31 tcard joins (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp)
10:43:30 yaroot_ joins (~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp)
10:43:41 mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi)
10:44:07 × yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 272 seconds)
10:44:07 yaroot_ is now known as yaroot
10:48:37 stilgart joins (~Christoph@chezlefab.net)
10:51:36 CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
10:51:50 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
10:52:13 matthewmosior joins (~matthewmo@173.170.253.91)
10:52:57 × mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 245 seconds)
10:54:06 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:54:47 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer)
10:54:47 × noteness quits (~noteness@user/noteness) (Write error: Connection reset by peer)
10:54:47 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Write error: Connection reset by peer)
10:54:47 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Write error: Connection reset by peer)
10:54:47 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
10:55:21 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
10:55:26 ChaiTRex joins (~ChaiTRex@user/chaitrex)
10:55:45 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
10:56:05 noteness joins (~noteness@user/noteness)
10:57:29 Midjak joins (~Midjak@82.66.147.146)
10:58:58 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
11:05:56 xff0x joins (~xff0x@2405:6580:b080:900:66f:76f7:bef0:7fa2)
11:16:15 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:20:55 mncheck joins (~mncheck@193.224.205.254)
11:29:19 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
11:33:22 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
11:38:07 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
11:40:32 rembo10 joins (~rembo10@main.remulis.com)
11:41:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:42:57 Tuplanolla joins (~Tuplanoll@91-159-68-204.elisa-laajakaista.fi)
11:43:04 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6)
11:43:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:46:36 mncheckm joins (~mncheck@193.224.205.254)
11:49:02 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 240 seconds)
11:52:26 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
11:52:44 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Remote host closed the connection)
11:53:59 <perrierjouet> stack install pandoc ... no setup information found
11:54:25 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
11:55:16 × kaskal- quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Ping timeout: 268 seconds)
11:56:18 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
11:56:56 Pickchea joins (~private@user/pickchea)
11:59:06 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:00:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:05:13 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
12:05:17 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
12:07:26 × acidjnk quits (~acidjnk@p200300d6e70586787d91d659871fc0c4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
12:07:38 acidjnk joins (~acidjnk@p200300d6e70586787c323b0967d8caa3.dip0.t-ipconnect.de)
12:08:16 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
12:08:58 matthewmosior joins (~matthewmo@173.170.253.91)
12:11:11 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in)
12:13:15 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
12:14:37 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
12:15:02 vglfr joins (~vglfr@194.9.14.33)
12:15:53 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
12:18:20 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Client Quit)
12:19:49 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
12:25:06 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:27:50 <chreekat> mon_aaraj: the Char is from the Strings `"fizz"` and `"buzz"` :)
12:30:24 × coot quits (~coot@213.134.190.95) (Quit: coot)
12:33:26 × lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:34:24 <mon_aaraj> huh, how come? i mean, in all cases they should always return strings
12:34:33 <mon_aaraj> it's a moand comprehension after all
12:34:58 <mon_aaraj> wait... i think i might understand... the `[]` is the monad, so GHC infers `Char` to be the actual type, is that the case
12:36:03 coot joins (~coot@213.134.190.95)
12:39:40 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:42:54 × Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds)
12:44:44 <mon_aaraj> Well, Identity functor, here we go!
12:45:51 <geekosaur> that code is very confused
12:46:15 <mon_aaraj> i agree! the resources that exist on monad comprehensions are about non-existent
12:46:43 <merijn> mon_aaraj: Have you checked the GHC User Guide on them?
12:46:43 × Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
12:46:51 <mon_aaraj> yep, i have
12:47:12 <mon_aaraj> it's really the only maybe-kind-of decent resource i can find
12:47:21 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
12:48:08 jpds1 is now known as jpds
12:48:08 tdkilus^ joins (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net)
12:49:11 ggVGc does not really know anything about monad comprehensions at all
12:49:31 <merijn> ggVGc: List comprehensions, but for monads other than list :p
12:49:56 <ggVGc> oh, well, that makes sense I guess
12:50:14 <ggVGc> I really don't use list comprehensions as much as I probably should
12:50:15 <ggVGc> not sure why
12:50:28 <mon_aaraj> yeah, they used to exist 10 years ago but then were removed for weird reasons then added back, which is generally why all the resources you can find are probably outdated by now
12:51:13 <ggVGc> I also want to get into using applicative and ApplicativeDo more
12:51:18 <ggVGc> but old habits die hard
12:51:20 <mon_aaraj> one other thing i know people would be surprised: TransformListComp exists! it really surprised me when i first saw it
12:51:56 <merijn> ggVGc: tbh, in practice most people rarely use list comprehensions
12:52:05 <merijn> function composition usually composes better
12:52:18 <ggVGc> yeah I guess that's why I mostly don't end up using it
12:52:30 <ggVGc> also, I generally have the attitude, in any language, to just use as few things as possible
12:52:36 <ggVGc> and Haskell has... too many things
12:55:59 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
12:56:09 <mon_aaraj> yeah, using as few things may be the most productive way to do things. i like to do things the best way possible, and that generally causes me to hurt my productivity a lot
12:57:04 <mon_aaraj> i think, after toying with list comprehensions via ParallelListComp, TransformListComp, MonadComprehensions... I can safely say I prefer ``zipWith`` over list comprehensions whenever possible :P
12:57:12 <chreekat> mon_aaraj: I don't think you are using monad comprehensions. It's just a list there
12:57:31 <mon_aaraj> ``[ "fizz" | rem x 3 < 1 ]``
12:57:49 <mon_aaraj> GHC itself thinks (rightfully so) I am using monad comprehensions in these cases
12:58:12 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:58:28 <chreekat> hm ok I was looking at the examples with `... x <- [1..100] ]`
12:58:32 <mon_aaraj> though I don't really know any good replacements for monad comprehensions that are short-hand and simple other than good ole do notation, and also Idris 2's bang notation
12:59:05 Guest3 joins (~textual@user/polo)
12:59:15 <mon_aaraj> which I suppose isn't a replacement for monad comprehensions, it's just a very short and readable way to get a value from inside a monad which makes things shorter and easier to read
13:01:09 Guest3 is now known as Polo
13:02:23 <chreekat> what value are you expected from `["fizz" | rem x 3 < 1]` ?
13:02:29 <chreekat> *expecting
13:06:25 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:07:16 <geekosaur> @undo ["fizz" | rem x 3 < 1]
13:07:16 <lambdabot> if rem x 3 < 1 then ["fizz"] else []
13:09:05 × frost quits (~frost@user/frost) (Quit: Client closed)
13:09:33 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
13:10:03 <mon_aaraj> chreekat: i honestly don't know myself. the way it was used in the wild 10 years ago was ``[ max (show x) $ [ "fizz" | rem x 3 < 1 ] [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]``, which didn't make sense to me
13:10:41 <mon_aaraj> fwiw, here's the exact comment: https://www.codefugue.com/fizzbuzz-in-haskell/#comment-1381730105
13:10:54 <ggVGc> that's pretty confusing to me (["fizz" | rem x 3 < 1])
13:10:59 <ggVGc> the expanded form is much clearer
13:11:06 <ggVGc> and I'd probably disagree with the former in a core review
13:11:10 naso joins (~naso@193-116-244-197.tpgi.com.au)
13:11:11 <ggVGc> code*
13:11:31 × Polo quits (~textual@user/polo) (Quit: Textual IRC Client: www.textualapp.com)
13:11:46 <ggVGc> it adds a lot of mental overhead for barely any syntactical gain
13:11:57 <mon_aaraj> i really like how ``["fizz" | rem x 2 == 0 ]`` reads, personally, and also how it functions because it kind of resembles sending events
13:12:07 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
13:13:14 <ggVGc> well, is the "I think it reads nicely" worth it relative the overhead it adds, in the context of working with others, project growing in complexity, ageing, being taken over by someone else etc.
13:13:33 <naso> using `Debug.trace x` we can print a message immediately before x was evaluated. is there somehow we can also get a message immediately AFTER x is evaluated?
13:13:33 <ggVGc> or "myself at 4am doing a quickfix"
13:13:51 <naso> that should be ... `Debug.trace "msg" x`
13:14:13 <ggVGc> naso: for this reason I usually use these, https://gist.github.com/e127758549621bbe189211c9500eafde
13:15:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
13:15:43 <ggVGc> ah, wait, I misunderstood
13:15:44 <ggVGc> sorry :(
13:16:14 <ggVGc> or...maybe not, not sure what you meant I think
13:17:02 <ggVGc> debug = flip trace allows: (some expression) `debug` "Title:"
13:17:12 <naso> not sure i understand what tracef does
13:17:26 <ggVGc> it allows a transformation before tracing
13:17:28 <mon_aaraj> ggVGc: I think for this case, it very much is worth it for everything you were talking about... if it's a case that fits nicely for monad comprehensions, monad comprehensions are readable enough and easy to understand and maintain, that i think it's overall a plus. but that's just my opinion and the FP people I'm usually around with
13:19:20 <ggVGc> naso: sometimes I'm not interested in the actual Show instance of the thing I am printing (or it doesn't have one). So I then use debugf like something `debugf` ("Some property", \something -> show (property something))
13:19:40 <naso> ggVGc: maybe it helps if i explain why i want this. often there is an exception in my program but i dont know where it is, so i use a Debug.trace. If I see the trace message i confirm that the exception occurs later in the evaluation, but i dont know how much later. In particularm if I do `Debug.trace msg x` I don't know if it was x that caused the exception. If I could also have a message immediately after evaluting x, i could get im
13:19:40 <naso> mediate feedback if x is the problem
13:19:43 <ggVGc> in a case where "something" might not have a show instance, but I want to trace the value of "property"
13:20:20 <geekosaur> naso, sounds to me like you want -prof and +RTS -xc
13:20:23 <ggVGc> naso: sounds like you need to trace the thing that uses the result then, rather than the value itself
13:20:48 <naso> ggVGc: this is the actual function i use to trace https://paste.tomsmeding.com/c1t0IOBG
13:20:55 <ggVGc> print debugging Haskell is... intersting, compared to other languages
13:21:40 <merijn> naso: FYI, you can get stack traces from exceptions :p
13:21:55 <ggVGc> also, yeah, maybe try to get rid of the code that produces exceptions also :)
13:22:09 <ggVGc> And use HasCallstack to get stack traces from functions that crash
13:22:21 <ggVGc> HasCallstack has made my haskell experience a lot better
13:22:31 <naso> any good guides to learn about this?
13:22:33 <mon_aaraj> oh, ``debugf`` is interesting. i always had the problem of not wanting to implement show instance because they'd be useless or are frusturating to create (in the context of Trees That Grow), so I wondered if there was something to inspect types without having the show instance
13:22:52 <ggVGc> naso: maybe read through this, https://maksbotan.github.io/posts/2021-01-20-callstacks.html
13:22:57 <merijn> naso: See geekosaur's comments. A profile binary with +RTS -xc will log callstacks to stderr
13:23:06 <naso> mon_aaraj: anythingToString is good for that too
13:23:08 <merijn> naso: The GHC User's Guide has a bunch of info
13:23:25 <mon_aaraj> that's the first time i've heard about anythingToString
13:23:57 <ggVGc> mon_aaraj: yeah it's a simple little helper :) It basically allows for defining local Show implementations for logging things
13:24:00 <naso> merijn: geekosaur: thanks i was aware of that but it requires a recompile right? i usually go for that when i can't solve the problem quickly with tracing
13:24:35 <geekosaur> with exceptions what you really want is a backtrace of the exception itself. it'd be nice if that didn't require a profiling executable, but…
13:24:41 <ggVGc> merijn: HasCallstack is a much more pleasant experience than doing the profiling dance, imo
13:25:04 <merijn> ggVGc: Only works if you can change the code throwing the exception
13:25:13 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
13:25:17 <merijn> if the exception is thrown in some library that doesn't use HasCallstack, it doesn't work
13:25:20 <ggVGc> sure, but most of the time we can, for use-cases like this, I think?
13:25:27 <ggVGc> At leat that's the case for me
13:25:31 <ggVGc> but I don't work in industry :)
13:25:38 <ggVGc> ah, right, that's true
13:25:47 <ggVGc> well, don't use libraries that throw. Simple.
13:26:48 <mon_aaraj> i don't know how to find where anythingToString is defined, it isn't in hoogle
13:26:52 <geekosaur> like base?
13:27:07 <ggVGc> yeah, don't use base
13:27:09 <ggVGc> who needs it
13:27:31 <naso> mon_aaraj: https://hackage.haskell.org/package/recover-rtti
13:28:28 kuribas joins (~user@ptr-17d51eouctrvjmo29s7.18120a2.ip6.access.telenet.be)
13:28:38 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
13:28:55 <mon_aaraj> would've been nice if that was in base
13:29:43 <ggVGc> naso: Imo this is the issue with logging in haskell through Debug.Trace. We get logs backwards, since the last thing you'll see is what was last evaluated, not what triggered the evaluation of that thing. Which is not what we're used to from other platforms. Hence the proper way is to do logging through a monad I reckon
13:30:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
13:32:24 matthewmosior joins (~matthewmo@173.170.253.91)
13:32:41 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:33:33 <naso> it would be nice if the breakpoint functionality was integrated into HLS somehow
13:34:06 <naso> i don;t want to have to change my type signatures for debugging
13:36:40 dualnygma_ joins (~dualnygma@2601:152:100:b460:1bb6:449a:fb92:4b09)
13:38:48 <ggVGc> I've never used a breakpoint in haskell
13:39:39 <ggVGc> actually, the only times I've ever used them is ages ago when doing game development in C++ and wanting to inspect memory at certain times (since memory corruption is a real risk always looming :) )
13:39:51 <ggVGc> when do you use breakpoints during haskell development?
13:40:59 <naso> i've never actually used it, i just recently read about it (https://downloads.haskell.org/~ghc/7.4.1/docs/html/users_guide/ghci-debugger.html) and it sounds potentially useful but kind of clunky using it from the repl
13:41:57 <ggVGc> If you're referring to HasCallstack, I don't use it as a temporary thing when debugging. Rather, whever a crash pops up in my program, I add a chain of HasCallstack that lets me get enough information from where the crash originated, or try to remove the thing that caused it in the first place. This is prefixed by habitually adding a HasCallstack to any function which uses `error` or some other
13:41:59 <ggVGc> non-total function (like fromJust for example)
13:43:49 <naso> ggVGc: i was referring to the logging through the monad. The HasCallStack looks helpful, thanks. So if I add that constraint to every function that uses `error` that should be helpful?
13:44:23 ystael joins (~ystael@user/ystael)
13:45:23 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:49:37 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:49:54 × mikail quits (~mikail@2a02:c7f:bc47:8c00:5aa7:b193:11e3:d108) (Remote host closed the connection)
13:52:12 <naso> but in the guide you linked, we also need HasCallStack on the function `bar` which doesnt itself ues error (it calls `foo` that uses `error`). Is there anywhere where it is bad to put `HasCallStack`? if not why is it not on by default
13:52:32 × sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 245 seconds)
13:52:59 <geekosaur> it causes overhead
13:53:12 × zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds)
13:53:48 <naso> compilation time? performance?
13:53:50 hasbae is now known as hippoid
13:53:54 <merijn> naso: performance overhead
13:55:07 <naso> in that case, it would be nice if there was a compilation flag to globall switch on/off HasCallStack for everything ?
13:55:17 <ggVGc> yeah, but as long as the program runs well enough for the use-case I personally can live with that
13:55:40 <naso> because performance is important to me, i need an easy way to switch it off...
13:56:14 × acidjnk quits (~acidjnk@p200300d6e70586787c323b0967d8caa3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:56:14 <ggVGc> naso: what I do is I put it on the level where I know there'a a risk of a crash, and if it happens I add it to where it was called from (as far up as I deem necessary). The good thing is you'll always know one step, so you can easily decide how far you want to go
13:56:21 <ggVGc> this all relies on being able to reproduce the issue though
13:56:43 <ggVGc> but the upside is that eventuelly your codebase will be structured so that when issues happen in the wild you get decent traces
13:57:15 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
13:58:17 <ggVGc> naso: performance is important to everyone, but there's a tradeoff to be made between wanting good error traces without needing to recompile and re-run, and faster runtime
13:58:20 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
13:58:33 <ggVGc> the latter can be measured and then decided if it's acceptable or not
13:58:38 × CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:58:50 <ggVGc> for my use-cases HasCallstack has not added any noticable overhead
13:59:12 zxx7529 joins (~Thunderbi@user/zxx7529)
14:00:06 <ggVGc> meanwhile I've gained something I always wanted from haskell, e.g the ability to actually use non-total functions where I really think they should be safe, and having an informative trace when my expection breaks
14:01:06 <naso> ggVGc: cool, sounds like good advice thanks. i'll experiment with it. yes in what i'm doing i have partial functions all over the place
14:01:45 <[exa]> ggVGc: I think you can alias HasCallStack for a trivial constraint to switch off the performance overhead (like #ifdef DEBUG in Cs)
14:01:58 <geekosaur> there isn't a ghc issue to decorate all functions but there's one to decorate all partial functions
14:02:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:04:21 <naso> https://gitlab.haskell.org/ghc/ghc/-/issues/13360
14:05:04 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
14:05:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:05:33 <naso> "Thanks for sharing the benchmarks. They seem to be reporting a 50-250% slowdown with HasCallstack. My hunch is that the slowdown is linear wrt the depth of the call-stack. Will need to do some benchmarking to be sure of this."
14:05:38 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:06:38 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
14:06:53 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
14:07:05 × dualnygma_ quits (~dualnygma@2601:152:100:b460:1bb6:449a:fb92:4b09) (Ping timeout: 255 seconds)
14:07:40 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
14:08:50 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
14:12:31 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
14:12:33 <geekosaur> read on
14:12:38 <merijn> naso: That flag exists, it's called --profile ;)
14:13:12 <merijn> naso: basically, the profiling infrastructure needs callstacks for profiling purposes, which is why you can always get stack traces for profiled executables
14:13:50 <geekosaur> there's a difference, profiling has a pretty high overhead, HasCallStack a fairly low one when not triggered
14:14:24 <geekosaur> also HasCallStack doesn't force you to compile every other module with it also
14:14:47 <geekosaur> whereas you can't mix profiled and non-profiled ways
14:16:34 sandydoo joins (~sandydoo@185.209.196.136)
14:18:06 <merijn> geekosaur: Sure, but his original question was "I wanna enable HasCallStack everywhere with a flag"
14:19:43 <naso> merijn: when i compile with the profiling flag, like this: `cabal run --enable-profiling project-exe --ghc-options="-fprof-auto -rtsopts -O2 -optc-O3" -- +RTS -xc` , it recompiles all my dependencie and takes like half an hour.
14:20:28 <naso> (is this the correct command by the way? i've made notes of several different commands like this but not 100% sure about it all)
14:22:26 <geekosaur[m]> -optc-O3 does nothing
14:23:10 <geekosaur[m]> ghc hasn't compiled via C in almost a decade
14:23:43 <geekosaur[m]> Also profiling mostly disables optimization
14:23:57 <merijn> naso: Yeah, I normally compile without -O2 for profiling
14:24:23 <merijn> I generally just do "cabal build --enable-profiling" and run the result, but that cabal run should work too
14:24:36 <merijn> naso: It should only recompile your dependencies the first time, though
14:24:48 <naso> geekosaur[m]: thanks, must have got that from an out of date guide
14:24:51 <merijn> naso: After that they're already available
14:24:59 <naso> ok
14:25:36 <merijn> naso: If you don't normally build with profiling enabled you only install unprofiled dependencies, so the first time you build with profiling it has to compile the profiled versions too, but that should only happen once (unless your dependencies change, obv)
14:26:02 <naso> merijn: ahh i see
14:26:15 GoldsteinQ joins (~goldstein@goldstein.rs)
14:27:00 <merijn> After that it should only recompile your own code for profiling
14:27:47 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:28:07 dualnygma_ joins (~dualnygma@2601:152:100:b460:9acb:38e3:4e54:496f)
14:29:51 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
14:30:19 <ggVGc> naso: the thing is, it's not really a direct comparison. HasCallstack and profile builds give different things. Debugging issues by recompiling and rerunning allows you to avoid the overhead of HasCallstack, but it makes it harder to debug issues that are difficult to reproduce (like ones from users that are not yourself). On the other hand HasCallstack gives the long-term benefit of giving good
14:30:21 <ggVGc> information on the first occurance, with the cost of some overhead. I really think that "overhead" is not something that should be avoided at all costs, in any environment, and I think it's a mistake many developers make. The fact is that the vast majority of functionality in the vast majority of software doesn't need to be that fast
14:30:44 <ggVGc> and the parts that need to be fast can be found through profiling and handled on a case-by-case basis
14:31:08 <ggVGc> In the end we're using a garbage collected language so there's already tradeoffs being made
14:31:56 <ggVGc> or using type classes which might result in dynamic dispatch rather than doing things manually with a lot more code
14:32:00 <ggVGc> etc.
14:32:01 matthewmosior joins (~matthewmo@173.170.253.91)
14:32:03 × tdkilus^ quits (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net) (Ping timeout: 268 seconds)
14:32:17 <naso> ggVGc: agreed
14:33:22 × dualnygma_ quits (~dualnygma@2601:152:100:b460:9acb:38e3:4e54:496f) (Ping timeout: 244 seconds)
14:34:44 jakalx joins (~jakalx@base.jakalx.net)
14:34:44 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer)
14:36:04 × tubogram44 quits (~tubogram@user/tubogram) (Ping timeout: 240 seconds)
14:36:41 tubogram44 joins (~tubogram@user/tubogram)
14:37:11 acidjnk joins (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de)
14:37:42 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in)
14:39:09 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
14:41:24 CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
14:43:27 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
14:44:50 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
14:46:08 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
14:47:17 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Remote host closed the connection)
14:48:00 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
14:48:37 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
14:49:02 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:51:26 × acidjnk quits (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
14:52:32 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
14:59:19 × ccntrq quits (~Thunderbi@exit-3.office.han.de.mhd.medondo.com) (Quit: ccntrq)
15:03:13 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
15:04:04 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
15:04:22 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
15:05:58 × kuribas quits (~user@ptr-17d51eouctrvjmo29s7.18120a2.ip6.access.telenet.be) (Ping timeout: 268 seconds)
15:07:00 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:93dd:6a2f:9b9:59b0) (Quit: WeeChat 2.8)
15:07:07 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 245 seconds)
15:07:35 <albet70> how can I config parameter for Main.hs in my-project.cabal?
15:07:59 <albet70> just in main-is : Main.hs parameter?
15:09:12 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:10:45 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
15:10:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
15:11:19 ChaiTRex joins (~ChaiTRex@user/chaitrex)
15:11:19 <merijn> albet70: Not quite sure what you mean?
15:12:22 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in)
15:12:44 yin joins (~yin@user/zero)
15:13:00 albet70_ joins (~user@114.250.139.224)
15:14:10 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
15:14:52 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
15:14:57 <geekosaur> you can't specify parameters in the cabal file; the whole point of parameters is they're specifies by the user. are you sure you don't want a parameter parser that supports defaults?
15:15:16 naso joins (~naso@193-116-244-197.tpgi.com.au)
15:15:18 <geekosaur> cmdargs and optparse-applicative come to mins
15:15:41 <geekosaur> *specified
15:16:09 sandy_doo joins (~sandydoo@185.209.196.136)
15:17:15 <albet70_> yes, I found it out I can use `cabal v2-run my-project parameter` to do it
15:17:32 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
15:17:57 <merijn> You can just run instead of v2-run (and if you can't, your using a cabal-install that's too old :p)
15:18:04 <geekosaur> you may need to watch out for parameters with leading dashes, which will be eaten by cabal. cabal v2-run -- my-project --whatever
15:18:14 <geekosaur> (the -- is important in that case)
15:18:18 × sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 268 seconds)
15:19:31 <albet70_> geekosaur what -- does there?
15:20:08 <albet70_> merijn: cabal v3's command usage are same as v2?
15:20:26 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
15:20:27 × sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 245 seconds)
15:20:30 <geekosaur> it tells cabal (or stack) to stop reading parameters starting with - for itself, so they go to your program
15:20:33 <geekosaur> as I just said
15:21:00 <geekosaur> cabal v3 defaults to the v2-commands, you have to use v1-… to get the old commands
15:22:01 <geekosaur> so in cabal v3 `cabal run` is the same as `cabal v2-run`, whereas in cabal 2 `cabal run` is the same as `cabal v1-run`
15:25:26 <albet70_> there're `my-code arg1 arg2` and `my-code --arg1 value1 --arg2 value2` two ways to pass parameter to code, cabal can do the second way with --?
15:25:35 <albet70_> sorry, my English is not good
15:25:50 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
15:26:00 <merijn> albet70_: v2 isn't about cabal versions, it's about the UI version (which only has 2)
15:26:20 <geekosaur> albet70_, yes
15:26:36 <albet70_> merijn: cabal is a cmd line tool IIRC, since when it had a UI?
15:26:50 <c_wraith> text is still a user interface
15:26:53 <geekosaur> without the `--` cabal will consume all options of the form `--*` itself, you need the bare `--` to tell it to stop
15:26:57 <yushyin> cli is a UserInterface
15:27:13 <albet70_> c_wraith: is that called TUI nowdays?
15:27:29 <albet70_> nowaday
15:28:17 jakalx joins (~jakalx@base.jakalx.net)
15:28:19 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
15:28:37 <geekosaur> often, yes
15:28:47 zebrag joins (~chris@user/zebrag)
15:28:50 <yushyin> strange how the v2- stuff confuses people rather than helps ^^
15:28:50 <geekosaur> but even so you can have more than one TUI.
15:29:23 <geekosaur> not that strange, text user interfaces are rather limited in that area
15:29:27 naso joins (~naso@193-116-244-197.tpgi.com.au)
15:30:38 <geekosaur> tbh I think I'd have just made all the undecorated commands errors and forced users to say v1-xxx or v2-xxx
15:31:21 <geekosaur> clearer that way, instead of switching what xxx means. (people still follow cabal v1 instructions from a decade ago and get confused when using it with cabal 3.x)
15:32:32 × jespada quits (~jespada@45.162.228.187) (Read error: Connection reset by peer)
15:32:45 jespada_ joins (~jespada@45.162.228.187)
15:33:38 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
15:34:20 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds)
15:34:27 × phma quits (~phma@host-67-44-208-130.hnremote.net) (Read error: Connection reset by peer)
15:35:17 motherfsck joins (~motherfsc@user/motherfsck)
15:36:12 phma joins (phma@2001:5b0:212a:9df8:d7c:fd9f:422b:bc91)
15:36:48 × benin0 quits (~benin@183.82.177.174) (Quit: The Lounge - https://thelounge.chat)
15:37:07 <yushyin> i don't have a problem with non-versioned commands, but for tutorials or instructions, perhaps the versioned commands should be used? but what is the plan? are the v1- to be removed at some point? because then it almost doesn't matter whether you are faced with the problem that at some point there is no longer a v1- or that the commands no longer do what they are supposed to do. and instructions
15:37:09 <yushyin> and tutorials on the internet become obsolete/outdated at some point anyway
15:38:06 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
15:38:27 <geekosaur> supposedly they'll be gone in cabal 4.x
15:39:20 <geekosaur> they want to make sure that all use cases for the v1 commands are covered by v2 commands
15:39:29 <sm> cabal doesn't have enough leadership to make good UI decisions
15:40:34 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:40:52 <albet70_> lack of users?
15:41:23 <sm> no, it has a ton of users
15:41:43 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
15:41:56 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
15:42:31 acidjnk joins (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de)
15:44:31 sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl)
15:45:36 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:46:51 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
15:47:28 yin joins (~yin@user/zero)
15:48:34 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in)
15:49:03 <sclv> i think its more just that switching underlying behavior seamlessly is a hard thing, and there are a lot of options and opinions and also its technically fiddly
15:49:25 <sclv> especially when there's a large established user base
15:50:09 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
15:50:56 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:51:13 naso joins (~naso@193-116-244-197.tpgi.com.au)
15:52:39 × naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
15:53:46 naso joins (~naso@193-116-244-197.tpgi.com.au)
15:54:15 <sm> yes, and pushing through all that is almost impossible unless there's a someone or a group of people with the mandate/power/will to make impactful UI decisions
15:54:19 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Client Quit)
15:55:39 <sm> it needs a bit of ruthlessness
15:55:46 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
15:56:11 × haritz quits (~hrtz@user/haritz) (Read error: Connection reset by peer)
15:56:28 <sm> along with deep expertise and insight and taste. Not so easy
15:56:58 matthewmosior joins (~matthewmo@173.170.253.91)
15:59:36 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:01:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
16:01:21 <sm> as you're saying, it's not at all just a matter of UI; many UI difficulties are a manifestation of structural/architectural difficulties, whether in cabal or Cabal or ghc or ...
16:01:31 <sclv> i mean its almost certain that if another set of decisions had been made people would have been unhappy with that set too. there's no way to change stuff without people feeling frustrated about the process of the change, and about having to learn new things
16:02:15 <yushyin> ^
16:02:19 <sm> this is why some people like stack, it made a big contribution here
16:02:36 <sclv> the main issue that is underattended in UI is a good workflow for cabal env files imho. the ball was dropped there. but less so with the versioning deprecation story which is pretty well worked out and sorted through, tho not necessarily the same plan others would have picked.
16:03:10 zxx7529 joins (~Thunderbi@user/zxx7529)
16:04:20 <sm> that's right, we will complain about any change. Ideally good changes get made anyway.. and before long most of complainers realise they are good and we all move on
16:04:38 × michalz quits (~michalz@185.246.204.97) (Ping timeout: 240 seconds)
16:04:55 matthewmosior joins (~matthewmo@173.170.253.91)
16:05:02 × sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 240 seconds)
16:05:52 michalz joins (~michalz@185.246.204.75)
16:05:54 × kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in)
16:06:24 <[itchyjunk]> Hi, wanted to make sure i understand why my code works here : https://bpa.st/CNRA
16:06:26 <sm> backwards compatibility is generally good, but there needs to be a strategy and plan for evolution and cleanup
16:07:02 <sm> (not saying cabal devs didn't have those, I'm sure they did.. executing them successfully is a whole nother kettle of worms)
16:07:11 <[itchyjunk]> for `addList [1..5] [5..10]`, its going 1:2:3:4, then it hits the addList [] yes case.
16:07:41 <[itchyjunk]> and ys is 5:6:7:8:9:10:[]
16:07:43 kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net)
16:07:44 <[itchyjunk]> oops i forgot a 5
16:07:50 <[itchyjunk]> but that's basically why this works right?
16:08:20 sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl)
16:08:47 <[itchyjunk]> i.e i end up with `1:2:3:4:5:5:6:7:8:9:10:[]`
16:08:47 <sclv> i mean there is literally an executed plan for evolution and cleanup of v1 to v2 to onwards
16:09:12 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
16:09:24 <geekosaur> [itchyjunk], yes
16:09:55 <[itchyjunk]> nice!
16:10:06 × CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
16:10:38 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
16:10:50 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
16:15:19 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:16:20 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
16:16:44 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
16:16:47 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
16:17:48 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
16:20:32 × nisstyre quits (wes@2600:3c00::f03c:91ff:fe69:7f3d) (Changing host)
16:20:32 nisstyre joins (wes@user/nisstyre)
16:20:35 × MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 268 seconds)
16:22:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:23:26 × sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 240 seconds)
16:26:39 × naso quits (~naso@193-116-244-197.tpgi.com.au) ()
16:27:18 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
16:27:46 matthewmosior joins (~matthewmo@173.170.253.91)
16:28:44 sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl)
16:31:50 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
16:32:07 <hippoid> is there a guide for using lambdabot? I want to import a module into it like import Text.ParserCombinators.Parsec and then do :t many
16:33:01 <[exa]> hippoid: you might have better luck with yahb, that behaves pretty much as a normal ghci
16:33:05 <geekosaur> that's generally best done in local ghci
16:33:11 <[exa]> +1 ^
16:33:55 <geekosaur> this reminds me though that I still haven't PRed my updated help docs
16:34:09 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
16:34:46 <hippoid> ok, when I do 'import Text.ParserCombinators.Parsec; :t many' I get many :: Text.Parsec.Prim.ParsecT s u m a -> Text.Parsec.Prim.ParsecT s u m [a]
16:35:13 <geekosaur> you'd get the same from lambdabot, why would you expect otherwise?
16:35:29 × albet70_ quits (~user@114.250.139.224) (Remote host closed the connection)
16:35:42 albet70_ joins (~user@114.250.139.224)
16:35:46 <hippoid> well I didn't get that with lambdabot. I got something about Alternative
16:36:08 <geekosaur> without parsec imported, yes, you'd get the Alternative version of `many`
16:36:10 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds)
16:36:22 <hippoid> but my question is about the type Text.Parsec.Prim.ParsecT. What's the long . separated type name?
16:36:29 haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
16:36:29 × haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
16:36:29 haritz joins (~hrtz@user/haritz)
16:36:29 <geekosaur> parsec provides an optimized version
16:36:59 <geekosaur> you probably want the haddocks
16:37:05 <geekosaur> @haddock ParsecT
16:37:05 <lambdabot> Unknown command, try @list
16:37:14 <geekosaur> @hoogle ParsecT
16:37:14 <lambdabot> Text.Parsec data ParsecT s u m a
16:37:14 <lambdabot> Text.Parsec.Prim data ParsecT s u m a
16:37:14 <lambdabot> Text.Megaparsec data ParsecT e s m a
16:37:18 <geekosaur> derp
16:37:26 <geekosaur> hoogle.haskell.org
16:37:28 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
16:37:50 × sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 240 seconds)
16:38:00 <hippoid> import Text.ParserCombinators.Parsec
16:38:05 <hippoid> :t many
16:38:07 <lambdabot> Alternative f => f a -> f [a]
16:38:29 <geekosaur> @let import Text.ParserCombinators.Parsec
16:38:30 <lambdabot> /sandbox/tmp/.L.hs:142:1: error:
16:38:30 <lambdabot> Text.ParserCombinators.Parsec: Can't be safely imported!
16:38:30 <lambdabot> The package (parsec-3.1.14.0) the module resides in isn't trusted.
16:38:37 <geekosaur> ah, well
16:38:41 <hippoid> lol
16:38:48 <geekosaur> % import Text.ParserCombinators.Parsec
16:38:48 <yahb2> <no output>
16:38:53 <geekosaur> % :t many
16:38:53 <yahb2> many ; :: Text.Parsec.Prim.ParsecT s u m a ; -> Text.Parsec.Prim.ParsecT s u m [a]
16:39:48 <ggVGc> is anyone here working professionally with Haskell, and in that case, what auto-formatter do you use?
16:39:49 <geekosaur> anyway, parsec internally carries around a state, a user defined value you can use for anything you need, and an underlying monad (which is usually but not always IO)
16:40:00 <hippoid> how should I understand Text.Parsec.Prim.ParsecT. like why is it such a long period delimited type name?
16:40:03 <ggVGc> My impression is that ormolu is trying to be the industry standard, but not sure what the reality is
16:40:11 <geekosaur> because that module isn't imported
16:40:20 <geekosaur> % import Text.Parsec.Prim
16:40:20 <yahb2> <no output>
16:40:25 <geekosaur> :t many
16:40:26 <lambdabot> Alternative f => f a -> f [a]
16:40:41 <geekosaur> hm
16:41:18 <geekosaur> % import Text.ParserCombinators.Parsec
16:41:18 <yahb2> <no output>
16:41:21 <geekosaur> :t many
16:41:22 <lambdabot> Alternative f => f a -> f [a]
16:41:30 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
16:41:33 <hippoid> oh. so we imported the module Text.ParserCombinators.Parsec, which imported many, but not all the types that many is comprised of?
16:41:51 <geekosaur> yes, so it fully qualifies the missing types
16:41:56 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
16:41:57 <geekosaur> in ghci (but not ghc) that works
16:42:11 <hippoid> wild
16:42:24 <hippoid> thanks for clarifying
16:45:03 <geekosaur> (also the name "Text.ParserCombinators.Parsec" has been deprecated for a long time; it's just "Text.Parsec" these days_
16:45:05 <geekosaur> )
16:45:58 <geekosaur> that was the hierarchy parsec v1 used. nobody likes typing such a long name, so parsec v2 and later dropped the "ParserCombinators" part
16:46:28 × fserucas quits (~fserucas@83.223.235.72) (Quit: Leaving)
16:46:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:47:25 albet70_ is now known as tmp_away
16:48:07 <pavonia> Is there a way to do something like `_ | even i && (Just j <- foo) -> ...` in one case alternative?
16:48:25 × tmp_away quits (~user@114.250.139.224) (Quit: ERC (IRC client for Emacs 26.3))
16:48:48 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
16:50:56 × mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving)
16:51:26 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
16:52:07 <dolio> `even i, Just j <- foo`
16:52:39 × jespada_ quits (~jespada@45.162.228.187) (Ping timeout: 268 seconds)
16:52:39 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:52:54 <dolio> You can mix boolean and pattern guards, comma separated.
16:53:11 <dolio> It's equivalent to the conjunction of them.
16:53:32 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
16:53:47 <pavonia> Excellent, thanks
16:54:38 × machined1od quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds)
16:56:17 jespada joins (~jespada@45.162.228.190)
16:58:56 tmp_away joins (~user@114.250.139.224)
16:59:31 <tmp_away> how to turn a char to text char?
16:59:48 <tmp_away> like "\123" to a text char
17:00:08 <[exa]> the "\123" is a String?
17:00:39 <geekosaur> do you mean you want the actual display character, or a value of type Text?
17:00:50 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
17:01:07 <hippoid> who does the T at the end of ParsecT signal?
17:01:15 <geekosaur> "transformer"
17:01:17 × lagash quits (lagash@lagash.shelltalk.net) (Ping timeout: 255 seconds)
17:01:24 <hippoid> monad transformer?
17:01:34 <geekosaur> it means the "m" in the type is another monad, which ParsecT transforms into a parser
17:01:39 <geekosaur> yes
17:01:47 <tmp_away> for example, there is text "\123 whatever msg", now I want to filter that "\123"
17:02:03 <tmp_away> remove it
17:03:01 <geekosaur> > filter (/= '\123') "\123 whatever msg"
17:03:03 <lambdabot> " whatever msg"
17:03:22 <tmp_away> [exa]: a string is [Char], what Text is?
17:03:24 matthewmosior joins (~matthewmo@173.170.253.91)
17:03:31 <tmp_away> [Text-Char]?
17:03:50 <merijn> tmp_away: Text is Text
17:03:50 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
17:04:24 <tmp_away> merijn: 'a' is a Text, "ab" is a Text?
17:04:58 <merijn> tmp_away: Neither of those are Text
17:05:01 <geekosaur> 'a' is a Char, "a" aka ('a':[]) is a Strikg aka [Char], Text is a different type entirely representing an optimized representation for strings
17:05:59 <geekosaur> because String is a really wasteful representation for strings, unless you're processing them in a streaming fashion which means the list is never even constructed
17:06:08 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
17:06:16 <geekosaur> for most things you probably want Text
17:06:40 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:07:42 <tmp_away> geekosaur then when haskell would remove String out?
17:08:02 <geekosaur> probably never since all the core APIs are defined in terms of String
17:08:02 <merijn> tmp_away: Never? Why would you do that?
17:08:07 <geekosaur> it's an ongoing argument
17:08:20 <tmp_away> lots of Text.pack and unpack and -XOverloadedStrings
17:08:24 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:08:28 <merijn> geekosaur: I don't see it going away even when APIs are reformulated, it's just to convenient
17:09:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
17:12:19 ski joins (~ski@ext-1-213.eduroam.chalmers.se)
17:13:58 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:14:38 Pickchea joins (~private@user/pickchea)
17:22:13 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
17:22:15 gmg joins (~user@user/gehmehgeh)
17:24:01 <albet70> would there be haskell-2020?
17:24:24 <albet70> just like haskell-98 and haskell-2010
17:26:05 lagash joins (lagash@lagash.shelltalk.net)
17:26:19 <dsal> There's GHC2021 which is close enough.
17:26:47 <sm> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html#extension-GHC2021
17:27:01 <albet70> dsal , but why they are haskell-xx, this is GHC2021?
17:27:08 <merijn> dsal: It's really not
17:27:25 <merijn> dsal: In fact, GHC2021 isn't remotely *close* to a Haskell20XX
17:27:41 <merijn> dsal: It doesn't do any of the actual important (but hard) bits
17:27:43 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:27:50 <geekosaur> albet70, the haskell language committee is waiting for someone to formalize at least some of the extensions that have been made to haskell2010
17:27:55 <sm> not enough demand for a new language report right now, a common set of GHC extensions was much easier
17:28:07 <geekosaur> nothing has been done about this, or documenting how various extensions interact, etc.
17:28:10 econo joins (uid147250@user/econo)
17:28:37 <albet70> merijn , then what's the point of GHC2021?
17:28:37 <merijn> geekosaur: Or more importantl, what they SHOULD do and how they SHOULD interact (as opposed to how they *happen* to interact)
17:28:51 <merijn> albet70: People dislike writing 20 extensions into their files
17:28:56 <merijn> That's the sole point of it
17:29:04 geekosaur does wonder how much of this is also that nobody wants to properly document how base haskell does 🙂
17:29:30 × AlexZenon quits (~alzenon@178.34.150.131) (Ping timeout: 268 seconds)
17:29:30 × Alex_test quits (~al_test@178.34.150.131) (Ping timeout: 268 seconds)
17:30:05 <geekosaur> (go look at the one sentence that describes standard Haskell's type system…)
17:30:40 <geekosaur> one suspects they'd need to expand it in order to fit e.g. type families into it
17:30:52 × AlexNoo quits (~AlexNoo@178.34.150.131) (Ping timeout: 245 seconds)
17:31:02 × lagash quits (lagash@lagash.shelltalk.net) (Ping timeout: 240 seconds)
17:31:19 AlexNoo joins (~AlexNoo@178.34.150.131)
17:35:06 × tmp_away quits (~user@114.250.139.224) (Quit: ERC (IRC client for Emacs 26.3))
17:37:19 Alex_test joins (~al_test@178.34.150.131)
17:38:24 AlexZenon joins (~alzenon@178.34.150.131)
17:38:48 lagash joins (lagash@lagash.shelltalk.net)
17:38:56 <albet70> import qualified lots of modules is also annoying
17:39:35 matthewmosior joins (~matthewmo@173.170.253.91)
17:40:12 <albet70> and all the type signature is like X.Y
17:40:57 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:43:08 <sm> VS Code + HLS helps with that a bit
17:43:12 <yushyin> it's a common pattern to import the types not qualified but only the functions
17:43:30 <sm> it makes adding imports easy. I don't think it adds type signatures for you yet.
17:43:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
17:51:13 <albet70> yushyin , but when functions have same names?
17:51:49 <geekosaur> but it's a single click
17:52:01 <geekosaur> as for qualification, last I checked it had a code action for that
17:54:24 <albet70> which module id or const come from?
17:54:49 <albet70> since it works on arbitrary type
17:55:47 <geekosaur> hls knows what the type is and can do what ghc refuses to: type directed name resolution
17:59:09 <geekosaur> not saying that it does, but it seems to offer that option
18:01:29 Guest|74 joins (~Guest|74@KH42117.karlshof.wh.tu-darmstadt.de)
18:01:57 × Guest|74 quits (~Guest|74@KH42117.karlshof.wh.tu-darmstadt.de) (Client Quit)
18:03:56 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:04:12 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
18:06:37 Lord_of_Life_ is now known as Lord_of_Life
18:15:52 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
18:17:53 matthewmosior joins (~matthewmo@173.170.253.91)
18:21:45 <sm> geekosaur, did you say there's a single click to add a type signature ?
18:22:10 <geekosaur> it shows a type signature above anything missing one. click it and it gets inserted
18:23:22 <geekosaur> (I found that by accident, and it caused my program to not compile because it needed 2 additional imports it didn't bother to add…)
18:23:41 <geekosaur> (so it's not quite perfect as yet)
18:25:20 mikoto-chan joins (~mikoto-ch@85-76-162-130-nat.elisa-mobile.fi)
18:29:00 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
18:30:52 × son0p quits (~ff@181.136.122.143) (Ping timeout: 245 seconds)
18:31:52 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
18:36:52 × mikoto-chan quits (~mikoto-ch@85-76-162-130-nat.elisa-mobile.fi) (Ping timeout: 268 seconds)
18:37:35 × Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving)
18:38:38 mikoto-chan joins (~mikoto-ch@85-76-118-24-nat.elisa-mobile.fi)
18:39:02 Midjak joins (~Midjak@82.66.147.146)
18:40:36 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:42:26 × Midjak quits (~Midjak@82.66.147.146) (Client Quit)
18:48:10 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
18:48:17 matthewmosior joins (~matthewmo@173.170.253.91)
18:50:17 × Tuplanolla quits (~Tuplanoll@91-159-68-204.elisa-laajakaista.fi) (Quit: Leaving.)
18:51:13 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
18:53:01 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:59:12 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
19:03:14 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 268 seconds)
19:04:10 vglfr joins (~vglfr@194.9.14.33)
19:10:10 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds)
19:16:48 × doelie quits (~tom@c-73-17-195-134.hsd1.ma.comcast.net) (Ping timeout: 268 seconds)
19:18:48 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
19:19:03 vglfr joins (~vglfr@194.9.14.33)
19:20:02 × mikoto-chan quits (~mikoto-ch@85-76-118-24-nat.elisa-mobile.fi) (Ping timeout: 268 seconds)
19:22:12 Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
19:23:35 mikoto-chan joins (~mikoto-ch@85-76-40-9-nat.elisa-mobile.fi)
19:24:08 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Write error: Connection reset by peer)
19:24:08 × gmg quits (~user@user/gehmehgeh) (Read error: Connection reset by peer)
19:24:08 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
19:24:33 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
19:25:09 gmg joins (~user@user/gehmehgeh)
19:25:26 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:26:23 × vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer)
19:26:38 × Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit)
19:27:00 <ggVGc> Can someone help correct my thinking here? :( https://gist.github.com/d3234983e9bf086e62378979e6a9890a
19:27:16 vglfr joins (~vglfr@194.9.14.33)
19:28:10 <ggVGc> The whole thing doesn't make much sense I guess
19:28:49 <merijn> ggVGc: Do you have GADTs enabled?
19:28:55 <ggVGc> yes
19:29:37 <merijn> ggVGc: oh, wait, you don't actually have a 'def' value, so assuming getName needs an actual value, you're screwed
19:29:43 <ggVGc> Basically, I want to have a Def class, from which I can create Refs (which hold the Def as a phantom param), and later on be able to get the name of the Def from a Ref
19:30:14 <ggVGc> I feel like this should be achievable without resorting to carrying an instance of Def with each Ref?
19:30:28 VictorHugenay joins (~jh@user/VictorHugenay)
19:30:30 <ggVGc> Since a Ref is statically associated with a Def through the type...
19:30:30 <geekosaur> I think if it's phantom then all you have is the type, not something you can call getName on
19:30:41 <ggVGc> yeah, the getName part is what's wrong I think
19:31:01 × mokee quits (~mokee@37.228.215.83) (Quit: off)
19:31:03 <ggVGc> I need to do it through some other mechanism than a class, but I'm not able to figure out how
19:31:05 <geekosaur> unless you can somehow move the name into the type level, but that probably means a whole new level of pain
19:31:35 <ggVGc> Making Refs have to carry instances of Def also adds some levels of pain for me ;(
19:33:23 sandy_doo joins (~sandydoo@2a03:1b20:6:f011::a07e)
19:33:54 <ggVGc> wait, my mistake is making getName require a dummy value... I don't actually ever need that
19:34:03 <ggVGc> tired and sloppy
19:34:34 <geekosaur> don't you need it to make the typeclass resolve?
19:35:05 <geekosaur> unless you enable AllowAmbiguousTypes and use a TypeApplication
19:35:21 <merijn> geekosaur: I think he just realised he doesn't need 'a -> String'
19:35:27 <merijn> geekosaur: But can use 'Proxy a -> String'
19:36:05 <ggVGc> I mean... I didn't, haha :( Yes, the typeclass resolution is the issue and why I had it from the start
19:37:57 × mikoto-chan quits (~mikoto-ch@85-76-40-9-nat.elisa-mobile.fi) (Ping timeout: 245 seconds)
19:38:59 <geekosaur> @ask int-e COMMANDS seems to no longer be a part of lambdabot (I don't rven remember what used to point to it). Is there somewhere for my replacement to fit, aside from doc/ ?
19:39:00 <lambdabot> Consider it noted.
19:39:14 <mrianbloom> Is it possible to hold a constraint dictionary in a datatype so that anywhere I deconstruct the datatype I can use the constraint?
19:39:18 <geekosaur> "rven". I can type 😛
19:39:34 <geekosaur> mrianbloom, that sounds like a GADT to me
19:40:16 <mrianbloom> I see.
19:40:47 <ski> mrianbloom : yes, `data Foo ... = C a => MkFoo ...' or `data Foo ... :: ... where MkFoo :: C a => ... -> Foo ...' (with optional `forall a.')
19:41:09 <ski> (first is `GADTs', second is `ExistentialQuantification')
19:41:17 <ski> (er .. other way around)
19:42:13 <mrianbloom> I see, so far I haven't been able to really use existential quantification to good effect. I think part of the problem is, I'm using type families.
19:43:14 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
19:43:26 × vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 240 seconds)
19:45:37 <ski> (this is not really existential quantification, but the corresponding "constraint provision" part. also, `ExistentialQuantification' is arguably a misnomer (since it doesn't enable a syntax like `exists a. C a *> ..a..' .. iirc LHC did allow `exists a. ..a..', albeit only in contravariant position (iow to the left of function arrows, in argument types)))
19:46:44 Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi)
19:48:21 <geekosaur> doesn't UHC have `exists`?
19:48:32 <merijn> geekosaur: I think so?
19:48:36 <ski> maybe it was UHC i was thinking about
19:48:38 <geekosaur> granting that nobody outside of Utrecht uses it
19:48:42 <dolio> You can't use it with constraints, though.
19:48:47 <dolio> As I recall.
19:49:08 <ski> (imho, something like `ExistentialDataConstructors' or `ExistentialConstructors', or maybe `ExistentialDataTypes', would be a better name for what the extension actually does .. although, maybe to properly indicate the context provision part, one could imagine something like `BundledConstructors' .. although that may need more work to not sound as vague)
19:49:52 × VictorHugenay quits (~jh@user/VictorHugenay) (Quit: Konversation terminated!)
19:50:24 <ski> (bundling a data constructor with types ior constraints, not visible from the outside, i.e.)
19:58:06 <ggVGc> I'm confused again... https://gist.github.com/d3234983e9bf086e62378979e6a9890a
19:58:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
19:58:53 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
20:00:29 <ggVGc> Adding the HasDefName constraint as suggested yields this instead: https://gist.github.com/d3234983e9bf086e62378979e6a9890a
20:01:43 <geekosaur> don't you actually have to match on the (value) Ref to get at the enclosed HasDefName?
20:03:26 <hippoid> is there an example of a commonly used Functor which is not also a Monad?
20:03:53 <ski> yes, you have to match
20:03:55 <ggVGc> I mean, I'm not entirely sure what I'm doing :) Hence why I am failing... I just feel there should be a way to get the name from Def instances without making a Ref carry a Def value
20:04:58 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
20:05:45 <ski> hippoid : `Coyoneda f' maybe ? (e.g. `Coyoneda IORef' is basically `data ReadIORef a = forall b. MkReadIORef (b -> a) (IORef b)')
20:05:49 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:06:13 <ski> .. i don't recall if we determined `ZipList' to actually satisfy the monad laws or not
20:06:28 matthewmosior joins (~matthewmo@173.170.253.91)
20:08:52 <hippoid> ski: according to this, it does not https://www.reddit.com/r/haskell/comments/nfyvy/instance_monad_ziplist_where/
20:09:01 <ski> ggVGc : hm, looking closer at your code (i guess you replace the middle paste by the last one, so i can't see the middle one), it looks like `getName' for `Def (Ref def)' can't call `getName' for `Def def', without you getting hold of a `Ref def' (which contains the provided/bundled `Def def' instance) there
20:09:10 yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net)
20:09:16 <merijn> ski: It can't, at least not as newtype
20:09:36 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:10:18 <merijn> ski: Simple counter example "foo >>= return" cannot be equivalent to foo
20:10:32 <merijn> because return doesn't know how many initial elements you had
20:10:52 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
20:11:24 <merijn> The applicative uses "pure = repeat"
20:11:41 <ski> i'm not seeing why that would fail
20:11:50 <merijn> But "ZipList [1] >>= return" would produce an infinite ZipList of 1s
20:11:51 <ggVGc> ski: yeah, I gave up and made Refs hold a Def instance for now... https://gist.github.com/4d208a6751919aa39e088605fa7a5a7d (I guess that's what you meant?)
20:11:55 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:12:18 <merijn> ski: Whereas monad laws dictate that "ZipList [1] >>= return" = "ZipList [1]
20:12:35 <ski> merijn : why ? .. you `map repeat', then take the diagonal
20:13:01 <monochrom> Hey that's a much simpler problem than what I ran into :) I ran into associativity problems with join...
20:13:21 <ski> yea, iirc, last i was thinking about it, i was unsure about associativity
20:13:35 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-d0dd-a126-3a7b-298c.res6.spectrum.com) (Remote host closed the connection)
20:13:35 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
20:13:46 <merijn> ski: You do "map repeat" on what?
20:13:52 <ski> (istr i was thinking by making it appropriately partial, one could possibly get associativity)
20:13:57 <ski> merijn : on `foo'
20:14:01 <merijn> monochrom: I had to think of an example on the fly and I'm dumb, so I can only conceive simple examples
20:14:16 <merijn> ski: How does that work out in my example of "ZipList [1] >>= return"?
20:14:19 <ski> `foo >>= repeat = diag (map repeat foo)'
20:14:45 <ski> so you get `diag [repeat 1]', which is `[1]'
20:14:46 <merijn> What does diag do?
20:15:28 <ski> takes 0th element of 0th list, 1st element of 1st list, &c., until some diagonal element fails to exist, at which point we end the list
20:15:31 <merijn> hmmm
20:15:49 <ski> (it's the proper `join' to try with `repeat' as `return'/`pure')
20:15:49 <monochrom> diag [xs0, xs1, xs2, ...] = [xs0 !! 0, xs1 !! 1, xs2 !! 2, ...]
20:16:03 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
20:16:21 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:16:23 <ski> (`join' is not `concat', in this case)
20:16:36 <dolio> Making it partial doesn't help. I've tried.
20:16:41 pavonia joins (~user@user/siracusa)
20:16:50 <ski> associativity still fails ?
20:16:51 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
20:17:03 <dolio> Yes.
20:17:18 <ski> nice. i'll have to check it in detail
20:17:38 <dolio> I think the only way you can make it associative is to use something like codensity to force a canonical associativity of the entire computation.
20:18:00 <ski> mhm .. might be interesting to work out what the resulting behaviour of that would be
20:18:02 <monochrom> Well, stopping early vs bottoming early is only a difference between [] and _|_ that doesn't really matter...
20:18:11 yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net)
20:18:17 <ski> (well, i guess it'll just right-associate the `(>>=)'s)
20:19:03 <ski> istr thinking one could run into problems with diagonal element happening to exist with one way to squash the cube, but not the other way around
20:20:03 <dolio> Right.
20:20:36 <dolio> The essential problem is that you can't really tell what to do with a slice just by looking at a slice. It depends on all the slices involved.
20:22:02 <dolio> E.G. if your strategy is to fill in with bottoms, you don't know how many bottoms to fill without knowing the dimensions of all slices.
20:23:10 <ski> mhm
20:23:33 × yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
20:24:04 matthewmosior joins (~matthewmo@173.170.253.91)
20:24:06 <dolio> And without that global information, you'll end up with different results depending on which direction you slice things.
20:24:29 <ski> yea
20:25:53 <monochrom> The good news is that diagonalling works for infinite lists :)
20:26:22 vglfr joins (~vglfr@194.9.14.33)
20:26:35 <monochrom> It's when you want to truncate that you have inconsistent truncations.
20:26:50 <dolio> Yeah, any fixed size works.
20:27:19 <dolio> Then you do know how big every cube is.
20:27:52 <monochrom> The beautiful correspondences between "it's always 5 items" and SetOf5->a, and between infinite list and Natural->a
20:28:38 <ski> (bag ?)
20:28:39 <monochrom> (I learned it the hard way!)
20:28:47 <ski> (what was the hard way ?)
20:29:15 <monochrom> OK so one day I wondered how to make "data Two a = Two a a" a monod.
20:29:18 <monochrom> err, monad.
20:29:27 <merijn> ski: going over every single natural to check
20:29:30 <ggVGc> Sweet, I got it working :) Now I can make typechecked connections between "things" based on the range of values that inputs and outputs accept: https://gist.github.com/c20c3a04d2516b61db5f8a82e875a162
20:29:33 <ski> hehe
20:30:16 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
20:30:19 <monochrom> So I said "OK this is the composition of two adjoint functors, there is a formula for join = what happens to composing two adjoint functors, let me shut up and calculate..."
20:30:23 <ggVGc> I still feel I shouldn't need that Def value in each Ref instance, but can't figure it out any other way...
20:30:48 × yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection)
20:30:51 <monochrom> Two hours later I got the correct answer. Then I hopped in here to report my achievement.
20:31:00 <ggVGc> SInce the result of getName for each Def doesn't rely on a runtime value, but is a static string based on the type
20:31:08 <monochrom> Then someone bursted the bubble with "dude that's (->) Bool"
20:31:37 <monochrom> (I'm paraphrasing. They didn't say "dude", they were much nicer heh)
20:32:07 <geekosaur> ggVGc, as I mentioned earlier, that puts you into the realm of type level strings (Symbols). you can use the singletons library to get there, if you dare
20:32:21 <ggVGc> yeah, that's what I figured...
20:32:23 <ski> ggVGc : `State' ?
20:32:38 <monochrom> On the bright side, I turned it into many exam questions. :)
20:32:44 <ggVGc> and I do not dare... I think, at least for now. I value my time
20:32:46 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
20:32:48 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
20:33:40 <darkling> Good exam questions are good to find. :)
20:33:41 <ski> ggVGc : how's `HasDefName' and `Pin' defined ?
20:33:52 <ski> merijn : nice :)
20:34:13 <ski> er .. monochrom ^
20:34:32 <ggVGc> ski: you mean to keep the state of the bound instances? Yeah, that's the future plan. Actually, I already have all that working right now (and have been using this software for a few years making music stuff). It's the same idea with defs and refs and input/outputs inside a State monad. But I am trying to transition most of the range checking from runtime to compile-time. So, this is the prototype
20:34:33 <ggVGc> for what I will then gradually sneak into my existing State monad
20:35:04 <ski> mhm
20:35:41 <ggVGc> ski: https://gist.github.com/8b7f276ec0b6b877960bb342e1adf06f
20:36:19 <ski> ok, so no constraint in `Pin'
20:37:06 <monochrom> Whoever invented/discovered representable functors should have named their paper "the next 700 functors" :)
20:37:22 <ski> there's a difference betweem `NonZeroPos' and `Positive' ? you're using french convention for "positive" ? and "negative" ? (or assembler / machine code notion of "positive" ?)
20:37:32 <ggVGc> I don't need it, for now. Since I never extract anything out of it. Pin is just to tie a def to some range, and produce a runtime value which I then use for code generation (spitting out C++)
20:38:25 <ggVGc> I never care about negative numbers, at least not for now. But I do care specifically about non-negative ones, and I do care about non-zero ones :)
20:38:29 <ski> ggVGc : trying to figure out how `HasDefName' get (presumably) used in `connectionTest'
20:39:09 <ski> just saying that it's common for "positive" to already be taken to exclude zero .. unless in the two contexts i mentioned, that i know of
20:39:22 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:39:53 <ggVGc> ski: this is the whole thing: https://gist.github.com/66e360b02ac2a894b06b26a220f0a61b
20:40:10 ski 's been disassembling and trying to grok a piece of software, from 1986, lately
20:40:31 <ggVGc> ah, yeah, for lack of better terminology I use Positive to include zero, since I care about the non-zero positive case specifically
20:40:32 <ski> (more specifically, a Prolog implementation for the Commodore 64)
20:41:08 <monochrom> That's some feat. 64KB does not look like enough for Prolog...
20:41:33 <ggVGc> It's outrageous to me the software that was made for C64s and amigas
20:41:49 <ggVGc> or.. even Amiga OS itself
20:42:08 <monochrom> Next thing you know "ghc -fllvm" works on C64 too.
20:43:27 <ski> (i would use a kind signature for `SRangeType')
20:43:45 <ski> hehe
20:44:16 <ggVGc> there are definitely tons of improvements I could make. I am using this as a chance to get out of my "writing Haskell like a toddler" zone a bit
20:44:36 <ggVGc> while still having the goal of making it practically useful for myself in a near future
20:45:17 <ggVGc> Even after having used Haskell for many years, I never really did much type-level stuff
20:45:50 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
20:48:13 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 268 seconds)
20:48:45 <ski> it's a very basic Prolog .. has only basic Edinburgh compatibility (put/1,get0/1,get/1,see/1,seeing/1,seen/0,tell/1,telling/1,told/1,clause/2,arg/3,(no setarg/3),functor/2,...,(is)/2,basic arithmetic operations and relations, equality and identity checks (negation is indicated with `/', since C64 doesn't have a `\' sign) .. also, no floats, and integers only `0' through `8191' .. relatively low limits on
20:48:51 <ski> arity, number of goals in a rule, number of variables in a clause or query, or in use at the same time (it seems to use a substitution model, rather than using update-in-place). there's some machine specific predicates for graphics (including Turtle), sound, randomness) .. also, i'd like to add Last/Tail Call optimization, and mutatis mutandis for failures rather than successes)
20:50:17 <ski> anyway, the code itself is only 12 K. stack is a bit over 32 K, and heap is 8 K
20:50:24 <ggVGc> haha, "integers only `0' through `8191'"
20:50:26 <ggVGc> beautiful
20:50:54 <ski> they're stored in-word (16 bits), with a few bits used for tagging
20:51:36 <ski> there is firmware (KERNAL ROM) routines for floating-point (an unusual 5-byte one), which i'm thinking about employing
20:53:02 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds)
20:56:11 sts-q joins (~sts-q@2a01:41e1:239e:8600:5ca9:a95b:5e06:aaf8)
20:56:50 <ski> i started with figuring out the format of the symbol table, then the representation for the predicate clauses (some built-in predicates are primitives, defined by a machine code routine, some are defined by Prolog clauses, which are stored as lists of terms). next i figured out the bank-switching (between firmware BASIC ROM, which it reuses a little bit of, for tokens i think. it also uses KERNAL for I/O,
20:56:56 <ski> and the screen editor), and start-up code. then i found the primitive routine table, and now i'm looking at the corresponding routines, and some various other ones
20:58:55 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
21:00:10 causal joins (~user@50.35.83.177)
21:00:35 <ski> (trying to make an assembler source which will assemble to the same as the original file .. then i'll try to think about enhancements, and modifications .. also, there was a few bugs/misfeatures i was looking to improve upon .. but i may need to add some more bank-switching, if i need to use more memory for the code .. and it looks like my assembler (an inline/in-memory one, not offline/to-disk) can't hold
21:00:41 <ski> all the required source, and the object code, in memory at the same time, so i'll need to split and figure out how to resolve the symbol/label interdependencies)
21:02:42 <ski> monochrom : years ago, i was thinking about trying to do a combinator-based architecture on it (for an FPL), inspired by Philip Koopman's Ph. D. thesis ("TIGRE")
21:02:57 <ski> (graph reduction, i.e.)
21:06:23 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:06:47 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
21:08:09 × pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer)
21:09:49 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
21:10:52 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
21:11:27 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
21:13:18 pavonia joins (~user@user/siracusa)
21:13:59 coot joins (~coot@213.134.190.95)
21:20:59 × Inoperable quits (~PLAYER_1@fancydata.science) (Quit: All your buffer are belong to us!)
21:21:06 <EvanR> ggVGc, arguably, "useful for myself" and "type level stuff" are orthogonal xD
21:22:36 <EvanR> ski, do I dare ask what mutatis mutandis is or do I need to go to wizard school
21:23:26 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds)
21:25:11 <ski> "changing what needs to be changed"
21:25:26 × acidjnk quits (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:26:10 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:31:19 × noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds)
21:31:27 wootehfoot joins (~wootehfoo@user/wootehfoot)
21:32:25 <ski> proper tail calls amount to eta-reducing, or rather, not uselessly eta-expanding, the continuation. so `jmp last_call' in place of `jsr last_call' followed by `rts'. in case of logic programming, with backtracking, we have two levels of continuations (`ContT o (ContT p m)'), success continuations and failure continuations (the former takes one of the latter as a parameter, called "redo"). if you say "Last
21:32:31 <ski> Call" (discovered in LP independently of "Tail Call" in FP), you typically mean wrt the success continuations, so calling the last predicate (if no more clauses, and no new choice points are still extant) will reuse (the memory of) the current frame. "tail failure", for failure continuations, means that it doesn't uselessly try to find (the non-existent) clause after the last one, and that there is also no
21:32:37 <ski> choice-point for the last disjunct in a disjunction. so it's reusing the failure continuation (as well), for the last alternative, just like reusing the success continuation, for the last conjunct in a conjunction
21:33:12 <ski> @unmtl ContT o (ContT p m) a
21:33:12 <lambdabot> (a -> (o -> m p) -> m p) -> (o -> m p) -> m p
21:33:56 noteness joins (~noteness@user/noteness)
21:34:33 <EvanR> makes sense
21:34:42 <ski> the first argument is the success continuation, the second is the failure continuation. the success continuation also takes a failure/redo continuation, which tells it where to retry (it amounts to the choice-point), if something later (in the sequence of conjuncts in the conjunction) fails, and we have to backtrack, reversing normal order of execution
21:36:43 Sgeo joins (~Sgeo@user/sgeo)
21:37:47 <ski> (of course, at assembler level, `p' would basically be `Void', so no "final return/answer/result". when encoding backtracking with functions, it's possible (e.g. i've seen this in lambdaProlog (Terzo interpreter),Lolli) to use the implicit continuations in the host language as failure continuations, only having the success continuations as explicit callback function parameters. in that case, the function
21:37:53 <ski> calls its callback deeper, on success, and fails by returning normally. disjunction becomes doing one call after the other has returned, and conjunction is nesting inside the callbacks)
21:39:17 <ski> (both those implementations were written in SML, so could provide an initial success continuation which used side-effects to print out the top-level answer to a query)
21:39:43 tired- joins (~tired@user/tired)
21:39:50 caubert_ joins (~caubert@user/caubert)
21:40:04 matthewmosior joins (~matthewmo@173.170.253.91)
21:40:17 <ski> (hm .. also commit to a solution (avoid generating more) was implemented by throwing a host language exception)
21:40:30 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:40:51 terrorjack5 joins (~terrorjac@2a01:4f8:1c1e:509a::1)
21:41:02 alinab_ joins (sid468903@id-468903.helmsley.irccloud.com)
21:41:03 teehemkay__ joins (sid14792@id-14792.lymington.irccloud.com)
21:41:04 aristid_ joins (sid1599@id-1599.uxbridge.irccloud.com)
21:41:04 alanz_ joins (sid110616@id-110616.uxbridge.irccloud.com)
21:41:04 conjunctive_ joins (sid433686@id-433686.helmsley.irccloud.com)
21:41:05 lightandlight_ joins (sid135476@id-135476.helmsley.irccloud.com)
21:41:05 taktoa[c]_ joins (sid282096@id-282096.tinside.irccloud.com)
21:41:05 sclv_ joins (sid39734@haskell/developer/sclv)
21:41:06 NemesisD_ joins (sid24071@id-24071.lymington.irccloud.com)
21:41:14 another-axel-bee joins (~axel-bee@alexbenishek.com)
21:41:21 dmj`_ joins (sid72307@id-72307.hampstead.irccloud.com)
21:41:38 × micro quits (~micro@user/micro) (Ping timeout: 255 seconds)
21:41:55 jludwig89 joins (~justin@li657-110.members.linode.com)
21:42:08 danso_o joins (~danso@danso.ca)
21:42:14 <EvanR> all you need are exceptions
21:42:24 × Jon quits (jon@dow.land) (Ping timeout: 268 seconds)
21:42:40 kawen_ joins (~quassel@static.208.191.216.95.clients.your-server.de)
21:42:47 koz_ joins (~koz@121.99.240.58)
21:42:50 × robertm quits (robertm@lattice.rojoma.com) (Ping timeout: 244 seconds)
21:42:50 × Hobbyboy quits (Hobbyboy@hobbyboy.co.uk) (Ping timeout: 244 seconds)
21:43:01 × Rembane quits (~Rembane@li346-36.members.linode.com) (Ping timeout: 268 seconds)
21:43:02 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
21:43:15 eldritch_ joins (~eldritch@user/eldritch)
21:43:18 × mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Ping timeout: 264 seconds)
21:43:18 × statusfailed quits (~statusfai@statusfailed.com) (Ping timeout: 264 seconds)
21:43:18 × dexter1 quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Ping timeout: 264 seconds)
21:43:25 × jocke-l quits (jocke-l@a.x0.is) (Ping timeout: 272 seconds)
21:43:44 haveo_ joins (~haveo@sl35.iuwt.fr)
21:43:47 aweinsto1k joins (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com)
21:43:47 hpc_ joins (~juzz@ip98-169-32-242.dc.dc.cox.net)
21:43:58 funsafe_ joins (~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c)
21:44:03 _koolazer joins (~koo@user/koolazer)
21:44:10 rush joins (~sloorush@52.187.184.81)
21:44:12 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
21:44:18 anderson_ joins (~ande@user/anderson)
21:44:31 Patternm1ster joins (~georg@li1192-118.members.linode.com)
21:44:33 heartbur1 joins (~gass@2a00:d880:3:1::b1e4:b241)
21:44:41 fryguybo1 joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
21:45:03 walt joins (~ggVGc@a.lowtech.earth)
21:45:03 ddb1 joins (~ddb@ipv6two.tilde.club)
21:45:19 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
21:46:05 <ski> i might try to implement my goal-implications idea (arbitrary left-nested implications, also goal-universals .. not assuming implications (like lambdaProlog,Lolli), but generate&test .. but better than `forall(A,S)' / `\+ (A,\+ S)' in Prolog, which can't export information (instantiations) on success, due to being based on negation-as-failure .. there's also a foreach/2, but it doesn't interleave the
21:46:11 <ski> execution. basically it generates as many copies of the succedent as there's solutions to the antecedent (also messing up possible variable aliasing, and attributes, due to copying))
21:46:34 nate4 joins (~nate@98.45.169.16)
21:46:41 matthewmosior joins (~matthewmo@173.170.253.91)
21:47:11 Square2 joins (~a@user/square)
21:47:17 <ski> .. but that's more advanced stuff. i'll see how far i get, even with last call/clause, and before that, basic understanding of the system and how it might be extended
21:47:41 adamCS_ joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
21:48:16 × notzmv quits (~zmv@user/notzmv) (*.net *.split)
21:48:16 × funsafe quits (~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c) (*.net *.split)
21:48:16 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (*.net *.split)
21:48:16 × anderson quits (~ande@user/anderson) (*.net *.split)
21:48:16 × andjjj23_ quits (~irc@107.170.228.47) (*.net *.split)
21:48:16 × axel-bee quits (~axel-bee@alexbenishek.com) (*.net *.split)
21:48:16 × arahael quits (~arahael@203.220.205.108) (*.net *.split)
21:48:16 × koolazer quits (~koo@user/koolazer) (*.net *.split)
21:48:16 × haveo quits (~haveo@sl35.iuwt.fr) (*.net *.split)
21:48:16 × Patternmaster quits (~georg@user/Patternmaster) (*.net *.split)
21:48:16 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split)
21:48:16 × kawen quits (~quassel@static.208.191.216.95.clients.your-server.de) (*.net *.split)
21:48:16 × Square quits (~a@user/square) (*.net *.split)
21:48:16 × tired quits (~tired@user/tired) (*.net *.split)
21:48:16 × aweinstock quits (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (*.net *.split)
21:48:16 × APic quits (apic@apic.name) (*.net *.split)
21:48:16 × alinab quits (sid468903@id-468903.helmsley.irccloud.com) (*.net *.split)
21:48:16 × sektor[m] quits (~sektor@2001:470:69fc:105::2:3f60) (*.net *.split)
21:48:16 × hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (*.net *.split)
21:48:16 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split)
21:48:17 × eldritch quits (~eldritch@user/eldritch) (*.net *.split)
21:48:17 × sloorush quits (~sloorush@52.187.184.81) (*.net *.split)
21:48:17 × danso quits (danso@danso.ca) (*.net *.split)
21:48:17 × caubert quits (~caubert@user/caubert) (*.net *.split)
21:48:17 × jludwig quits (~justin@li657-110.members.linode.com) (*.net *.split)
21:48:17 × ddb quits (~ddb@ipv6two.tilde.club) (*.net *.split)
21:48:17 × bastelfreak quits (bastelfrea@libera/staff/VoxPupuli.bastelfreak) (*.net *.split)
21:48:17 × alanz quits (sid110616@id-110616.uxbridge.irccloud.com) (*.net *.split)
21:48:17 × NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (*.net *.split)
21:48:17 × sclv quits (sid39734@haskell/developer/sclv) (*.net *.split)
21:48:17 × lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (*.net *.split)
21:48:17 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (*.net *.split)
21:48:17 × conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (*.net *.split)
21:48:17 × taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (*.net *.split)
21:48:17 × teehemkay_ quits (sid14792@id-14792.lymington.irccloud.com) (*.net *.split)
21:48:17 × aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (*.net *.split)
21:48:17 × koz quits (~koz@121.99.240.58) (*.net *.split)
21:48:17 × bu99ed[m] quits (~bu99edm4t@2001:470:69fc:105::1:bd9e) (*.net *.split)
21:48:17 × adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split)
21:48:17 × ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split)
21:48:17 × heartburn quits (~gass@2a00:d880:3:1::b1e4:b241) (*.net *.split)
21:48:17 aristid_ is now known as aristid
21:48:17 anderson_ is now known as anderson
21:48:17 teehemkay__ is now known as teehemkay_
21:48:17 jludwig89 is now known as jludwig
21:48:17 terrorjack5 is now known as terrorjack
21:48:17 alinab_ is now known as alinab
21:48:17 lightandlight_ is now known as lightandlight
21:48:17 eldritch_ is now known as eldritch
21:48:17 adamCS_ is now known as adamCS
21:48:17 sclv_ is now known as sclv
21:48:17 alanz_ is now known as alanz
21:48:17 taktoa[c]_ is now known as taktoa[c]
21:48:18 NemesisD_ is now known as NemesisD
21:48:18 dmj`_ is now known as dmj`
21:48:18 conjunctive_ is now known as conjunctive
21:49:34 lambdabot joins (~lambdabot@silicon.int-e.eu)
21:49:34 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
21:49:34 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
21:50:59 <ski> (i prototyped the goal-implication idea, years ago, in Haskell. basic idea for doing LP and (typed) logic variables (using update-in-place) was inspired by a paper by Silvija Seres & Mike Spivey, and a response to that by Koen Claessen. but i dreamed up the main goal-implication idea when attempting to port a Common Lisp implementation of Sudoku to Prolog, and getting side-tracked with expressing general
21:51:05 <ski> utility predicates for multi-dimensional arrays -- banging my head into limitations or misunderstandings regarding setarg/3 (mutation) (and friend predicates) in SWI-Prolog ..)
21:52:17 <ski> (.. anyway, the core of it is a way to "backtrack backtracking" (possibly nested more times), and a way of flipping between logic variables and skolems on polarity shift (implication antecedent, negation))
21:52:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:52:54 × zer0bitz quits (~zer0bitz@2001:2003:f748:2000:98f8:2cf6:f3d:5610) (Ping timeout: 264 seconds)
21:54:29 APic joins (apic@apic.name)
21:55:14 arahael joins (~arahael@203.220.205.108)
21:55:47 andjjj23_ joins (~irc@107.170.228.47)
21:55:54 bastelfreak joins (bastelfrea@libera/staff/VoxPupuli.bastelfreak)
21:57:27 bu99ed[m] joins (~bu99edm4t@2001:470:69fc:105::1:bd9e)
21:59:45 sektor[m] joins (~sektor@2001:470:69fc:105::2:3f60)
22:00:34 matthewmosior joins (~matthewmo@173.170.253.91)
22:01:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:05:51 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
22:07:58 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:09:00 × sandy_doo quits (~sandydoo@2a03:1b20:6:f011::a07e) (Ping timeout: 268 seconds)
22:09:37 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:15:17 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:16:18 JannisO joins (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de)
22:18:27 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
22:24:23 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
22:24:29 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
22:24:39 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
22:27:21 codaraxis joins (~codaraxis@user/codaraxis)
22:36:52 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
22:40:18 mikoto-chan joins (~mikoto-ch@85-76-107-45-nat.elisa-mobile.fi)
22:40:25 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 272 seconds)
22:41:14 × yaroot quits (~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp) (Remote host closed the connection)
22:43:32 yaroot joins (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953)
22:45:33 tdkilus^ joins (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net)
22:48:47 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 245 seconds)
22:49:29 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
22:49:46 jonathanx_ joins (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se)
22:52:00 Guest55 joins (~Guest55@c-71-198-235-211.hsd1.ca.comcast.net)
22:52:33 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:53:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:55:47 × tdkilus^ quits (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net) (Remote host closed the connection)
22:57:25 jinsun__ joins (~jinsun@user/jinsun)
22:57:25 × jinsun quits (~jinsun@user/jinsun) (Killed (zinc.libera.chat (Nickname regained by services)))
22:57:25 jinsun__ is now known as jinsun
23:03:30 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:03:49 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
23:05:39 Jon joins (jon@dow.land)
23:06:07 off^ joins (~off@c-73-237-117-119.hsd1.ga.comcast.net)
23:07:26 × JannisO quits (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
23:08:12 micro joins (~micro@user/micro)
23:09:40 dexter1 joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec)
23:10:29 Katarushisu7 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
23:10:30 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Read error: Connection reset by peer)
23:10:30 Katarushisu7 is now known as Katarushisu
23:10:37 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:12:31 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
23:13:45 × micro quits (~micro@user/micro) (Ping timeout: 268 seconds)
23:14:22 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
23:14:35 robertm joins (robertm@lattice.rojoma.com)
23:15:01 jpds joins (~jpds@gateway/tor-sasl/jpds)
23:15:26 Hobbyboy joins (Hobbyboy@hobbyboy.co.uk)
23:16:01 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 252 seconds)
23:17:33 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
23:18:07 matthewmosior joins (~matthewmo@173.170.253.91)
23:18:33 statusfailed joins (~statusfai@statusfailed.com)
23:19:15 Rembane joins (~Rembane@li346-36.members.linode.com)
23:19:24 micro joins (~micro@user/micro)
23:21:09 × off^ quits (~off@c-73-237-117-119.hsd1.ga.comcast.net) (Ping timeout: 268 seconds)
23:22:07 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
23:22:15 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
23:24:51 × mikoto-chan quits (~mikoto-ch@85-76-107-45-nat.elisa-mobile.fi) (Ping timeout: 268 seconds)
23:25:20 × jackhill quits (~jackhill@kalessin.dragonsnail.net) (Remote host closed the connection)
23:25:34 notzmv joins (~zmv@user/notzmv)
23:25:41 jocke-l joins (jocke-l@a.x0.is)
23:28:49 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
23:29:07 TonyStone joins (~TonyStone@2603-7080-8607-c36a-09a8-af8b-6907-6e05.res6.spectrum.com)
23:29:55 jinsun joins (~jinsun@user/jinsun)
23:30:49 jackhill joins (~jackhill@kalessin.dragonsnail.net)
23:31:03 × statusfailed quits (~statusfai@statusfailed.com) (Ping timeout: 252 seconds)
23:31:15 statusfailed joins (~statusfai@statusfailed.com)
23:33:49 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:37:38 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
23:39:00 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
23:39:35 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
23:41:05 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
23:41:05 John_Ivan joins (~John_Ivan@user/john-ivan/x-1515935)
23:47:02 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
23:48:30 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:49:01 × jespada quits (~jespada@45.162.228.190) (Ping timeout: 252 seconds)
23:49:15 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
23:50:51 matthewmosior joins (~matthewmo@173.170.253.91)
23:52:28 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:53:59 jespada joins (~jespada@177.67.80.187)
23:54:37 × gurkenglas quits (~gurkengla@p548ac71b.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
23:55:14 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)

All times are in UTC on 2022-08-01.