2022/01/12

2022-01-12 00:03:28 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-01-12 00:05:08 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 00:06:55 +0100alx741_(~alx741@157.100.93.160)
2022-01-12 00:07:04 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-12 00:07:14 +0100alx741_(~alx741@157.100.93.160) (Client Quit)
2022-01-12 00:10:24 +0100 <geekosaur> seem to have it building locally with --allow-newer and the usual import Prelude mods
2022-01-12 00:10:28 +0100xb0o2(~xb0o2@user/xb0o2) (Quit: Client closed)
2022-01-12 00:13:55 +0100 <janus> how dangerous is it to use a nightly stackage snapshot? it doesn't seem very dangerous to me since the software has already been released to hackage
2022-01-12 00:15:18 +0100 <janus> the only way it could break is if value-level assumptions are suddenly broken, but how often does that happen in haskell? i feel like it doesn't happen very often
2022-01-12 00:15:34 +0100 <janus> if the incompatibility breaks the build, surely it doesn't even stay in the nightly snapshot
2022-01-12 00:20:09 +0100pottsy(~pottsy@129.227.183.244)
2022-01-12 00:21:07 +0100 <janus> i have this perception that lts-14.27 is more trustworthy than stackage nightly, but i never really hit a nightly issue that would confirm that hypothesis. i am curious to hear how others weigh old-vs-new and stable-vs-unstable
2022-01-12 00:21:15 +0100 <geekosaur> the main danger is that something you rely on isn't there any more, or your own software isn't compatible with the compiler it's based on (as with the simplified subsumption changes in 9.0.x)
2022-01-12 00:22:11 +0100 <janus> oh but that isn't an issue because we have parallel builds with lts-14.27 and stackage nightly. we already fixed all the subsumption kinks
2022-01-12 00:22:54 +0100 <jackdk> if stack didn't generate `base >= 4.x && <5` in `package.yaml` or whatever, it wouldn't try to build with breaking changes like that
2022-01-12 00:23:46 +0100 <janus> i am just worried that if we switch production to run with the nightly build instead of lts-14.27, we'll hit some weird runtime issue. i actually worry more about library bugs than compiler bugs
2022-01-12 00:24:33 +0100 <janus> jackdk: sure, lots of libraries had to be fixed before they could go into stackage nightly again. i even had to ask trustees to fix some. but that is all done now
2022-01-12 00:24:34 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 00:25:10 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-01-12 00:25:36 +0100dut(~dut@user/dut)
2022-01-12 00:26:26 +0100 <jackdk> those libraries should have been constraint-solving failures, not build-time failures.
2022-01-12 00:26:31 +0100 <geekosaur> welp. qhong_, got everything and then tripped over a kind change in Language.Haskell.Exts that I have no clue about. I think that means exference is toast. :(
2022-01-12 00:26:38 +0100colton(~colton@2601:681:4c00:96e0:4151:f3f:5fca:73bb)
2022-01-12 00:27:02 +0100 <geekosaur> hm, hexagonel is here. wonder if that means it's been disowned
2022-01-12 00:27:15 +0100 <geekosaur> but exferenceBot isn't
2022-01-12 00:27:20 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 00:28:41 +0100colton(~colton@2601:681:4c00:96e0:4151:f3f:5fca:73bb) ()
2022-01-12 00:29:24 +0100aeka(~aeka@user/hiruji) (Read error: Connection reset by peer)
2022-01-12 00:29:25 +0100emf(~emf@2620:10d:c090:400::5:b9c2) (Ping timeout: 268 seconds)
2022-01-12 00:30:01 +0100alx741(~alx741@157.100.93.160)
2022-01-12 00:30:59 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-01-12 00:31:14 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-01-12 00:34:54 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 00:36:49 +0100emf(~emf@2620:10d:c091:480::1:79e9)
2022-01-12 00:39:46 +0100Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-01-12 00:40:10 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-01-12 00:40:18 +0100alx741(~alx741@157.100.93.160)
2022-01-12 00:42:21 +0100emf_(~emf@2620:10d:c090:400::5:b9c2)
2022-01-12 00:43:27 +0100nvmd(~nvmd@user/nvmd) (Quit: Later, nerds.)
2022-01-12 00:43:36 +0100emf(~emf@2620:10d:c091:480::1:79e9) (Ping timeout: 268 seconds)
2022-01-12 00:46:39 +0100 <geekosaur> qhong_, both of those paqckages depend on (wrapped) compiler internals which change somewhat frequently. I have no idea what the necessary changes are; you'd have to use an older compiler
2022-01-12 00:47:28 +0100 <Henson> I'm having difficulty getting code coverage report to work with "stack test --coverage". This used to work 2 years ago on an older version of stack, but now it doesn't and complains about the coverage report not seeing any code. Does anybody have any suggestions as to what I should look at? I've tried a bunch of things with no luck.
2022-01-12 00:48:16 +0100 <Inst> this is entertaining
2022-01-12 00:48:33 +0100 <EvanR> [itchyjunk], there are haskell libraries with a truckload of abstract algebra (re)defined, or you could just define class Monoid a => Group a where inv :: a -> a, if you want
2022-01-12 00:48:58 +0100 <[itchyjunk]> hmm
2022-01-12 00:49:01 +0100 <EvanR> that defines Group, though now you have to ask what could satisfy it
2022-01-12 00:49:44 +0100 <monochrom> Sum Int satisfies it, for example.
2022-01-12 00:49:47 +0100 <EvanR> maybe more importantly, what are some general algorithms that use it
2022-01-12 00:50:36 +0100 <monochrom> Algorithms that start from a few elements and find the generated subgroup :)
2022-01-12 00:50:43 +0100 <geekosaur> only if you ignore its minBound :þ
2022-01-12 00:50:58 +0100 <monochrom> Haha OK Integer
2022-01-12 00:51:00 +0100 <EvanR> by find the subgroup, do you mean... some kind of enumeration of all the elements? xD
2022-01-12 00:51:05 +0100aeka(~aeka@user/hiruji)
2022-01-12 00:51:13 +0100 <monochrom> That's one version.
2022-01-12 00:51:17 +0100 <EvanR> or do we need a subgroup class
2022-01-12 00:51:29 +0100 <EvanR> (multiparameter)
2022-01-12 00:51:38 +0100 <EvanR> and it starts to get hairy
2022-01-12 00:51:57 +0100 <monochrom> Nah don't define a subgroup class.
2022-01-12 00:53:19 +0100 <EvanR> ok now I want to write that algorithm
2022-01-12 00:53:19 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 00:53:37 +0100 <EvanR> and see what happens with floats lol
2022-01-12 00:53:40 +0100emf(~emf@2620:10d:c091:480::1:147e)
2022-01-12 00:54:37 +0100emf_(~emf@2620:10d:c090:400::5:b9c2) (Ping timeout: 240 seconds)
2022-01-12 00:54:40 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41)
2022-01-12 00:54:49 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-12 00:57:28 +0100emf_(~emf@c-73-97-137-43.hsd1.wa.comcast.net)
2022-01-12 00:57:33 +0100aeka(~aeka@user/hiruji) (Read error: Connection reset by peer)
2022-01-12 00:57:56 +0100 <EvanR> that's funny, Int w/ + breaks group laws?
2022-01-12 00:57:57 +0100emf(~emf@2620:10d:c091:480::1:147e) (Ping timeout: 240 seconds)
2022-01-12 00:58:23 +0100 <EvanR> > -minBound :: Int
2022-01-12 00:58:24 +0100 <lambdabot> -9223372036854775808
2022-01-12 00:58:36 +0100 <EvanR> > -minBound + minBound :: Int
2022-01-12 00:58:37 +0100 <lambdabot> 0
2022-01-12 00:58:39 +0100_xor(~xor@dsl-50-5-233-169.fuse.net)
2022-01-12 00:58:45 +0100alx741(~alx741@157.100.93.160)
2022-01-12 00:58:45 +0100 <EvanR> :sus:
2022-01-12 00:59:12 +0100 <monochrom> Involutions are a thing.
2022-01-12 00:59:51 +0100 <EvanR> > -minBound + (minBound + minBound) :: Int
2022-01-12 00:59:52 +0100 <lambdabot> -9223372036854775808
2022-01-12 01:00:04 +0100 <EvanR> > (-minBound + minBound) + minBound :: Int
2022-01-12 01:00:06 +0100 <lambdabot> -9223372036854775808
2022-01-12 01:00:30 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2022-01-12 01:00:33 +0100 <monochrom> The Klein 4-group is full of involutions. Only the identity element is not an involution.
2022-01-12 01:00:45 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2022-01-12 01:01:04 +0100aeka(~aeka@user/hiruji)
2022-01-12 01:02:39 +0100aeka(~aeka@user/hiruji) (Read error: Connection reset by peer)
2022-01-12 01:03:03 +0100Codaraxis(~Codaraxis@user/codaraxis)
2022-01-12 01:03:38 +0100Alex_test_(~al_test@178.34.151.107)
2022-01-12 01:04:37 +0100Alex_test(~al_test@178.34.151.107) (Ping timeout: 240 seconds)
2022-01-12 01:05:38 +0100aeka(~aeka@user/hiruji)
2022-01-12 01:06:12 +0100 <Axman6> Does it bother anyone else that TIO.putStrLn $ T.reverse "🇦🇺" prints🇺🇦
2022-01-12 01:06:30 +0100 <Axman6> wow, that was not handled well by my terminal
2022-01-12 01:06:30 +0100aeka(~aeka@user/hiruji) (Read error: Connection reset by peer)
2022-01-12 01:06:50 +0100 <EvanR> the aussie flag turns into.. who's that, estonia?
2022-01-12 01:07:01 +0100 <Axman6> ukraine I believe
2022-01-12 01:07:04 +0100 <EvanR> oh right
2022-01-12 01:07:26 +0100max22-(~maxime@2a01cb0883359800decae4ceda35e3bf.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-01-12 01:07:34 +0100 <Axman6> "\127462\127482", regional indicator symbols for a and u
2022-01-12 01:07:38 +0100burnside_(~burnsides@dhcp168-021.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-12 01:08:10 +0100burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk)
2022-01-12 01:09:25 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 01:10:01 +0100SummerSonw(~The_viole@203.77.49.232)
2022-01-12 01:10:37 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 01:10:41 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-12 01:12:13 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-12 01:12:17 +0100burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 240 seconds)
2022-01-12 01:13:48 +0100 <hpc> welcome to ligature hacks :D
2022-01-12 01:14:18 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-01-12 01:14:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 01:14:35 +0100 <Axman6> It's annoyed me for a while that we don't have any decent glyph level handling of text values. Char is not enough!
2022-01-12 01:14:38 +0100goepsilongo(~goepsilon@2806:263:c404:8000:a19a:aab0:db5f:4d8c)
2022-01-12 01:15:01 +0100Tuplanolla(~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
2022-01-12 01:16:10 +0100alx741(~alx741@157.100.93.160)
2022-01-12 01:17:17 +0100 <hpc> it's ridiculously complicated too, probably needs its own entire library
2022-01-12 01:17:18 +0100 <Axman6> IIRC this is something Go does well out of the box. It's like the one thing they've got
2022-01-12 01:17:19 +0100 <hpc> like iconv
2022-01-12 01:17:23 +0100 <Axman6> yeah
2022-01-12 01:17:31 +0100 <hpc> emojis do it in a totally different way too, just for fun
2022-01-12 01:17:36 +0100 <Axman6> https://discourse.haskell.org/t/ann-unicode-data-0-3-0-apis-to-efficiently-access-the-unicode-char… got me interested in it again
2022-01-12 01:17:47 +0100 <hpc> you use a zero-width joiner character and there's a few different ways that can play out
2022-01-12 01:17:56 +0100 <hpc> if your font even supports certain combinations to begin with
2022-01-12 01:18:36 +0100 <Axman6> Hence why I had this open https://en.wikipedia.org/wiki/Emoji#Joining :P
2022-01-12 01:18:51 +0100hpc. o O ( on april 1, have the reverse operation on a unicode string just put the RLO character in front of it )
2022-01-12 01:20:32 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 01:21:45 +0100 <Axman6> "-- | This function is pure-ish, it'll behave exactly as you expect unless called on 1 April UTC time each year, then it'll play pranks on you"
2022-01-12 01:22:47 +0100 <ephemient> > let s = "\128104\8205\129456\8205\128105" in (s, reverse s)
2022-01-12 01:22:48 +0100 <lambdabot> ("\128104\8205\129456\8205\128105","\128105\8205\129456\8205\128104")
2022-01-12 01:22:54 +0100 <ephemient> oh foo
2022-01-12 01:23:29 +0100 <ephemient> > let s = "\128104\8205\129456\8205\128105" in putStr $ s ++ "|" ++ reverse s
2022-01-12 01:23:31 +0100 <lambdabot> <IO ()>
2022-01-12 01:23:47 +0100 <ephemient> wellp, guess I can't get lambdabot to do it
2022-01-12 01:24:18 +0100 <Axman6> > let s = "\128104\8205\129456\8205\128105" in text $ s ++ "|" ++ reverse s
2022-01-12 01:24:19 +0100 <lambdabot> 👨‍🦰‍👩|👩‍🦰‍👨
2022-01-12 01:24:29 +0100 <Axman6> interesting!
2022-01-12 01:24:40 +0100vysn(~vysn@user/vysn)
2022-01-12 01:24:40 +0100 <hpc> Axman6: ooh, use acme-now to detect the date as well
2022-01-12 01:24:50 +0100 <hpc> and https://hackage.haskell.org/package/acme-mutable-package so it doesn't show up in the dependencies
2022-01-12 01:25:06 +0100 <hpc> sneak it into a revision that's created at build timme
2022-01-12 01:25:22 +0100 <Axman6> When running let s = "\128104\8205\129456\8205\128105" :: Text in TIO.putStrLn (s <> "|" <> T.reverse s) I get back 👨‍🦰‍👩|👩‍🦰‍👨
2022-01-12 01:25:44 +0100 <Axman6> uh... even mor einteresting, it removecd the ranga-ness!
2022-01-12 01:26:28 +0100alx741(~alx741@157.100.93.160)
2022-01-12 01:26:32 +0100 <geekosaur> remember yahb can do IO
2022-01-12 01:27:54 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2022-01-12 01:29:37 +0100 <monochrom> It would be funny if the 1 April prank implementation had a Y2K bug so after the year 2000 it mistook every day for 1 April. "The joke is on you."
2022-01-12 01:29:46 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-12 01:32:06 +0100 <hpc> like when microsoft added a teams ad to windows that made your entire system unusable
2022-01-12 01:32:16 +0100 <hpc> good thing they added a policy making easter eggs a fireable offense
2022-01-12 01:33:14 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
2022-01-12 01:33:55 +0100 <monochrom> I would be more impressed if their policy made bugs a fireable offense.
2022-01-12 01:34:18 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2022-01-12 01:34:59 +0100 <monochrom> Banning easter eggs is just banning a symptom, and even among symptoms the most superficial and trivial one.
2022-01-12 01:34:59 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 01:35:06 +0100 <Axman6> Hmmmm: https://hackage.haskell.org/package/unicode-data-0.3.0/docs/src/Unicode.Internal.Char.UnicodeData.…
2022-01-12 01:35:14 +0100 <Axman6> Haddock did noy do well with this...
2022-01-12 01:35:37 +0100 <Axman6> not*
2022-01-12 01:35:50 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-01-12 01:36:07 +0100 <hpc> that crashed my browser lol
2022-01-12 01:36:43 +0100 <monochrom> That is epic.
2022-01-12 01:36:54 +0100 <Axman6> the original haskell file is 3.32 MB
2022-01-12 01:36:59 +0100cheater(~Username@user/cheater)
2022-01-12 01:37:01 +0100 <Axman6> so... understandable
2022-01-12 01:39:16 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-12 01:39:17 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2022-01-12 01:40:11 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-01-12 01:40:39 +0100 <Axman6> uh, wow. ok looking at the code I can see why, bitmap# is an Addr#, presumably ord (maxBound :: Char) in length, and each element takes up four characters as \NUL\NUL etc
2022-01-12 01:40:47 +0100 <Axman6> I wonder if making it use \0 would help at all
2022-01-12 01:40:51 +0100alx741(~alx741@157.100.93.160)
2022-01-12 01:41:37 +0100jkaye(~jkaye@2601:281:8300:7530:a9ff:dc19:c096:5ef5) (Ping timeout: 240 seconds)
2022-01-12 01:42:17 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds)
2022-01-12 01:43:19 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2022-01-12 01:44:00 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 01:44:25 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 01:45:49 +0100SummerSonw(~The_viole@203.77.49.232) (Ping timeout: 240 seconds)
2022-01-12 01:47:39 +0100aeka(~aeka@user/hiruji)
2022-01-12 01:47:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2022-01-12 01:48:20 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 01:48:46 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-12 01:49:37 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net) (Remote host closed the connection)
2022-01-12 01:51:24 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-12 01:51:37 +0100mvk(~mvk@2607:fea8:5cdd:f000::55f8)
2022-01-12 01:53:57 +0100 <[itchyjunk]> Task is to implement zip in terms of zipWith. Here is my solution : https://bpa.st/WRNQ
2022-01-12 01:54:08 +0100alx741(~alx741@157.100.93.160)
2022-01-12 01:54:36 +0100 <geekosaur> I take it go is a leftover?
2022-01-12 01:54:50 +0100 <geekosaur> also as it turns out there's an even shorter version
2022-01-12 01:54:53 +0100aeka(~aeka@user/hiruji) (Read error: Connection reset by peer)
2022-01-12 01:54:57 +0100myrrh(~markus@user/poet) (Ping timeout: 256 seconds)
2022-01-12 01:55:10 +0100 <[itchyjunk]> oh yeah i replaced go with that lambda function
2022-01-12 01:55:13 +0100 <[itchyjunk]> hmm
2022-01-12 01:55:18 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
2022-01-12 01:55:20 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net)
2022-01-12 01:55:24 +0100 <geekosaur> (also the [] [] pattern match is unnecessary, since zipWith already handles it)
2022-01-12 01:55:34 +0100 <geekosaur> :t (,)
2022-01-12 01:55:35 +0100 <lambdabot> a -> b -> (a, b)
2022-01-12 01:55:36 +0100 <[itchyjunk]> ah, i was kinda suspecting it
2022-01-12 01:55:38 +0100 <whatsupdoc> you know a language sucks when hello world is 2 lines
2022-01-12 01:56:03 +0100 <ephemient> and once you take out [], xs and ys are unnecessary
2022-01-12 01:56:09 +0100 <[itchyjunk]> i inquired about "hello world" in riscv and you need to write a library for uART or somesuch to tdo it
2022-01-12 01:56:11 +0100 <[itchyjunk]> so i gave up
2022-01-12 01:56:38 +0100 <[itchyjunk]> ephemient, like _ _ suffices?
2022-01-12 01:56:54 +0100 <ephemient> @src zip
2022-01-12 01:56:54 +0100 <lambdabot> zip (a:as) (b:bs) = (a,b) : zip as bs
2022-01-12 01:56:54 +0100 <lambdabot> zip _ _ = []
2022-01-12 01:57:16 +0100 <ephemient> well I wasn't sure which definition was going to pop out
2022-01-12 01:58:01 +0100 <ephemient> > let zip :: [a] -> [b] -> [(a, b)]; zip = zipWith (,) in zip ['a'..] [1..]
2022-01-12 01:58:03 +0100 <lambdabot> [('a',1),('b',2),('c',3),('d',4),('e',5),('f',6),('g',7),('h',8),('i',9),('j...
2022-01-12 01:58:11 +0100 <geekosaur> [itchyjunk], I showed you the trick already
2022-01-12 01:58:12 +0100aeka(~aeka@2606:6080:1001:18:8d41:9604:d435:36b6)
2022-01-12 01:58:52 +0100 <geekosaur> right, and there's ephemient's version of the same thing
2022-01-12 01:58:57 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 01:59:03 +0100 <geekosaur> (,) is a tuple constructor
2022-01-12 02:00:11 +0100 <geekosaur> (sadly you need to turn on an extension to go the next step and use it as a section)
2022-01-12 02:00:23 +0100 <[itchyjunk]> oh right the constructor
2022-01-12 02:00:46 +0100 <ephemient> (,,,,,,,,,,,,,,,,,,,,,,,,,) is also a constructor
2022-01-12 02:01:27 +0100 <[itchyjunk]> :o
2022-01-12 02:02:08 +0100 <[itchyjunk]> does the fst snd thing works with n-tuples? i think not, right?
2022-01-12 02:02:24 +0100 <ephemient> (1,) and (,1) are sections, but they aren't allowed without {-# LANGUAGE TupleSections #-} (what geekosaur was referring to)
2022-01-12 02:02:51 +0100 <ephemient> Prelude's fst and snd are only defined on pairs (so no, not n-tuples)
2022-01-12 02:03:25 +0100 <geekosaur> right, the fact that each tuple type is its own thing makes defining a general one difficult
2022-01-12 02:03:35 +0100 <geekosaur> you can do it with typeclasses but it's hacky and fragile
2022-01-12 02:03:36 +0100jkaye(~jkaye@2601:281:8300:7530:a78a:7d05:3820:99ae)
2022-01-12 02:03:42 +0100 <ephemient> lens does some magic to make _1 work on tuples of any-ish size
2022-01-12 02:03:43 +0100 <geekosaur> iirc
2022-01-12 02:04:25 +0100alx741(~alx741@157.100.93.160)
2022-01-12 02:04:56 +0100 <geekosaur> pretty sure it does the typeclass thing I just mentioned
2022-01-12 02:06:12 +0100 <geekosaur> :t _1
2022-01-12 02:06:13 +0100 <lambdabot> (Field1 s t a b, Functor f) => (a -> f b) -> s -> f t
2022-01-12 02:06:58 +0100 <ephemient> %% :i Field1
2022-01-12 02:06:58 +0100 <yahb> ephemient: http://qp.mniip.com/y/38
2022-01-12 02:06:59 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 02:06:59 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 02:06:59 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 02:07:01 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
2022-01-12 02:07:45 +0100 <ephemient> looks like it's pre-defined up to… 37-tuples?
2022-01-12 02:08:29 +0100 <ephemient> seems like a pretty arbitrary limit but I guess it doesn't really matter. you can go nuts and define your own instances for larger tuples
2022-01-12 02:08:33 +0100ft(~ft@shell.chaostreff-dortmund.de) (Ping timeout: 256 seconds)
2022-01-12 02:08:42 +0100polyphem(~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) (Ping timeout: 268 seconds)
2022-01-12 02:08:54 +0100 <geekosaur> the Generic default might do it for you, just slower
2022-01-12 02:09:23 +0100aeka(~aeka@2606:6080:1001:18:8d41:9604:d435:36b6) (Read error: Connection reset by peer)
2022-01-12 02:09:50 +0100 <ephemient> > (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)^._1
2022-01-12 02:09:51 +0100 <lambdabot> error:
2022-01-12 02:09:51 +0100 <lambdabot> • Could not deduce (Num a0)
2022-01-12 02:09:51 +0100 <lambdabot> from the context: (Num a, Num b, Num c, Num d, Num e, Num f, Num g,
2022-01-12 02:10:02 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-12 02:10:05 +0100polyphem(~rod@ip5f5bff31.dynamic.kabel-deutschland.de)
2022-01-12 02:10:22 +0100ft(~ft@shell.chaostreff-dortmund.de)
2022-01-12 02:10:50 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 02:10:52 +0100 <ephemient> ... oh is {-# LANGUAGE NumericUnderscores #-} interfering with lens?
2022-01-12 02:10:59 +0100 <ephemient> > (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ^. _1
2022-01-12 02:11:00 +0100 <lambdabot> error:
2022-01-12 02:11:00 +0100 <lambdabot> • Could not deduce (Num a0)
2022-01-12 02:11:00 +0100 <lambdabot> from the context: (Num a, Num b, Num c, Num d, Num e, Num f, Num g,
2022-01-12 02:11:09 +0100 <ephemient> nope, not sure what it is
2022-01-12 02:11:39 +0100 <geekosaur> > (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ^. _1 :: Int
2022-01-12 02:11:41 +0100 <lambdabot> error:
2022-01-12 02:11:41 +0100 <lambdabot> • No instance for (Field1
2022-01-12 02:11:41 +0100 <lambdabot> (Integer, Integer, Integer, Integer, Integer, Integ...
2022-01-12 02:11:47 +0100 <geekosaur> > (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ^. _1 :: Integer
2022-01-12 02:11:48 +0100 <lambdabot> error:
2022-01-12 02:11:48 +0100 <lambdabot> • No instance for (Field1
2022-01-12 02:11:48 +0100 <lambdabot> (Integer, Integer, Integer, Integer, Integer, Integ...
2022-01-12 02:11:57 +0100 <ephemient> I guess the Generic instance doesn't help
2022-01-12 02:12:03 +0100 <geekosaur> doesn't look like it
2022-01-12 02:13:02 +0100aeka(~aeka@user/hiruji)
2022-01-12 02:13:07 +0100little_mac(~little_ma@2601:410:4300:3ce0:86d:17f:4605:4c9d) (Remote host closed the connection)
2022-01-12 02:13:14 +0100geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2022-01-12 02:13:39 +0100jgeerds_(~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 256 seconds)
2022-01-12 02:13:49 +0100acidjnk_new(~acidjnk@p200300d0c7271e52381c42d4d3ad2973.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 02:13:49 +0100acidjnk(~acidjnk@p200300d0c7271e52381c42d4d3ad2973.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 02:14:22 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 02:16:49 +0100aeka(~aeka@user/hiruji) (Read error: Connection reset by peer)
2022-01-12 02:17:09 +0100SummerSonw(~The_viole@203.77.49.232)
2022-01-12 02:17:51 +0100aeka(~aeka@user/hiruji)
2022-01-12 02:19:05 +0100Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-01-12 02:19:48 +0100alx741(~alx741@157.100.93.160)
2022-01-12 02:22:57 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2022-01-12 02:22:57 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 02:24:41 +0100 <[itchyjunk]> in my go, when i > n, it should just return [] and the loop should stop, no?
2022-01-12 02:24:41 +0100 <[itchyjunk]> https://bpa.st/XZWA
2022-01-12 02:26:05 +0100 <[itchyjunk]> myTake 5 [1..10]
2022-01-12 02:26:05 +0100 <[itchyjunk]> [1,2,3,4,5,6,7,8,9,10]
2022-01-12 02:26:13 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2022-01-12 02:26:14 +0100 <[itchyjunk]> :D so the "loop" has an issue
2022-01-12 02:26:45 +0100 <Axman6> comparing to length xs is almost always a mistake in Haskell
2022-01-12 02:27:12 +0100 <[itchyjunk]> hmm
2022-01-12 02:27:38 +0100mmhat(~mmh@55d441e1.access.ecotel.net) (Quit: WeeChat 3.4)
2022-01-12 02:27:42 +0100 <Axman6> also, just count down, once n <= 0 then return []
2022-01-12 02:27:50 +0100 <Axman6> no need to carry around i and n
2022-01-12 02:28:25 +0100 <geekosaur> also it looks to me like if it did work as you have it written it'd always produce []
2022-01-12 02:28:34 +0100 <geekosaur> because you throw away the result
2022-01-12 02:29:04 +0100alx741(~alx741@157.100.93.160)
2022-01-12 02:29:40 +0100 <[itchyjunk]> thats what i was expecting to see, [] everytime :P
2022-01-12 02:29:42 +0100aeka`(~aeka@2606:6080:1001:f:ed79:9361:ea0e:3e88)
2022-01-12 02:29:59 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
2022-01-12 02:30:31 +0100 <[itchyjunk]> tiny bit edit but still with the same bugs
2022-01-12 02:30:32 +0100 <[itchyjunk]> https://bpa.st/LVQA
2022-01-12 02:31:03 +0100 <[itchyjunk]> n should become 0 at some point in go.
2022-01-12 02:31:12 +0100 <[itchyjunk]> i dont see why i am not getting []
2022-01-12 02:31:49 +0100aeka(~aeka@user/hiruji) (Ping timeout: 240 seconds)
2022-01-12 02:33:26 +0100 <xsperry> you don't need lenght, or go. just keeping consing elements until you either 1) run out of elements (check for []) 2) n <= 0
2022-01-12 02:34:30 +0100 <[itchyjunk]> well if i change n in myTake, then hmm
2022-01-12 02:34:34 +0100 <Axman6> take 0 _ = []; take n (x:xs) = ???
2022-01-12 02:34:55 +0100 <[itchyjunk]> yeah i guess i can rethink this a bit
2022-01-12 02:35:03 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-01-12 02:35:45 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2022-01-12 02:36:15 +0100 <Axman6> > zipWith const "Hello, world!" [1..5]
2022-01-12 02:36:16 +0100 <lambdabot> "Hello"
2022-01-12 02:36:25 +0100 <[itchyjunk]> https://bpa.st/6CBA
2022-01-12 02:37:27 +0100 <[itchyjunk]> ah there is an issue still
2022-01-12 02:37:50 +0100 <Axman6> looks good to me, though what happens when I say myTake 10 "Hello"?
2022-01-12 02:37:53 +0100 <xsperry> almost there, just have to handle empty list
2022-01-12 02:38:17 +0100 <Axman6> and if you turn on -Wall in ghci (:set -Wall) it will tell you there are patterns you haven't matched
2022-01-12 02:38:20 +0100 <[itchyjunk]> i get a non exhaustive error
2022-01-12 02:38:37 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
2022-01-12 02:38:37 +0100 <[itchyjunk]> ah
2022-01-12 02:39:10 +0100 <[itchyjunk]> https://bpa.st/WYXA
2022-01-12 02:39:24 +0100 <[itchyjunk]> just needed `myTake n [] = []` to handle the empty list case
2022-01-12 02:39:57 +0100 <Axman6> what happens when I say myTake (-10) "Hello"?
2022-01-12 02:40:06 +0100 <[itchyjunk]> /o\
2022-01-12 02:40:28 +0100 <[itchyjunk]> I get "Hello"
2022-01-12 02:40:49 +0100waleee(~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
2022-01-12 02:41:00 +0100 <Axman6> this is why we usually define take using guards: myTake n (x:xs) | n <= 0 = [] | otherwise = ...
2022-01-12 02:41:05 +0100 <[itchyjunk]> oh it keeps going negative numbers
2022-01-12 02:41:09 +0100 <[itchyjunk]> till the list become empty
2022-01-12 02:41:18 +0100 <[itchyjunk]> then it hits the `myTake n []` case
2022-01-12 02:41:20 +0100 <[itchyjunk]> and ends
2022-01-12 02:41:21 +0100alx741(~alx741@157.100.93.160)
2022-01-12 02:41:32 +0100 <ephemient> > let myTake n = foldr f [] . zip [n, n - 1..] where f (m, a) | m > 0 = (a:) | otherwise = const [] in myTake 10 ['a'..] -- ;-)
2022-01-12 02:41:33 +0100 <lambdabot> "abcdefghij"
2022-01-12 02:41:56 +0100Axman6glares
2022-01-12 02:42:05 +0100 <[itchyjunk]> so it handle case of negative integers as long as the list is finite it seems
2022-01-12 02:42:26 +0100 <[itchyjunk]> there was 2 different take right? take and takeWhile ?
2022-01-12 02:42:31 +0100 <[itchyjunk]> :t takeWhile
2022-01-12 02:42:32 +0100 <lambdabot> (a -> Bool) -> [a] -> [a]
2022-01-12 02:42:36 +0100 <[itchyjunk]> hmm
2022-01-12 02:42:51 +0100 <Axman6> generally people think of take as returning at most n elements. it should never return more than n elements
2022-01-12 02:43:01 +0100 <Axman6> > take 10 "Hello"
2022-01-12 02:43:02 +0100 <lambdabot> "Hello"
2022-01-12 02:43:06 +0100 <Axman6> > take (-10) "Hello"
2022-01-12 02:43:07 +0100 <lambdabot> ""
2022-01-12 02:43:13 +0100 <[itchyjunk]> ahh
2022-01-12 02:43:25 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
2022-01-12 02:43:48 +0100 <[itchyjunk]> can i constraint n to N = {0,..} then ?
2022-01-12 02:44:21 +0100 <[itchyjunk]> as i have it, idk how i would address n < 0
2022-01-12 02:45:25 +0100 <ephemient> one way is to guard first, another way is to rearrange your code so you don't have to address it separately
2022-01-12 02:46:53 +0100 <xsperry> [itchyjunk], the simplest way would be with an if/then/else expression. or guards
2022-01-12 02:47:06 +0100 <xsperry> have you used either?
2022-01-12 02:47:18 +0100 <[itchyjunk]> if
2022-01-12 02:47:24 +0100 <[itchyjunk]> i've used if else
2022-01-12 02:47:39 +0100 <xsperry> then try doing it with that
2022-01-12 02:47:42 +0100pottsy(~pottsy@129.227.183.244) (Ping timeout: 250 seconds)
2022-01-12 02:47:44 +0100 <Axman6> we don't have if else =)
2022-01-12 02:48:44 +0100 <[itchyjunk]> https://bpa.st/DLCA
2022-01-12 02:48:48 +0100ec(~ec@gateway/tor-sasl/ec)
2022-01-12 02:48:56 +0100 <[itchyjunk]> i think my `myTake 0 xs = []` is redundent though
2022-01-12 02:49:04 +0100 <xsperry> yeah
2022-01-12 02:49:08 +0100jackson99(~bc8147f2@cerf.good1.com)
2022-01-12 02:49:15 +0100 <xsperry> it is
2022-01-12 02:50:16 +0100alx741(~alx741@157.100.93.160) (Remote host closed the connection)
2022-01-12 02:51:35 +0100 <EvanR> in haskell it's more conventional to use Int and just put guards to deal sanely with negatives, though some low level modules will use Word which is non negative
2022-01-12 02:51:50 +0100 <EvanR> in other languages you might see Nat which is more appropriate for dealing with lists
2022-01-12 02:52:41 +0100 <EvanR> Nat = 0, 1, 2, ...
2022-01-12 02:53:28 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2022-01-12 02:53:45 +0100 <Axman6> this was discussed on reddit recently, and a good point was made that when thingd go negative with Word, things go very wrong. It's impossible to tell if someone meant to allocate maxBound :: Word bytes or accidentally tried to alocate -1 bytes. The failure modes for using Int are less bad usually, and while they can go equally wrong, doing so is much less common
2022-01-12 02:53:52 +0100 <ephemient> there is Numeric.Natural built-in, although I'm not sure when it was added…
2022-01-12 02:54:17 +0100 <Axman6> having a non wrapping type would help though
2022-01-12 02:54:24 +0100 <Axman6> > (-1) :: Word
2022-01-12 02:54:26 +0100 <lambdabot> 18446744073709551615
2022-01-12 02:54:27 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
2022-01-12 02:54:32 +0100 <ephemient> > 10 ^ 100 :: Natural
2022-01-12 02:54:34 +0100 <lambdabot> error:
2022-01-12 02:54:34 +0100 <lambdabot> Not in scope: type constructor or class ‘Natural’
2022-01-12 02:54:36 +0100 <EvanR> yeah Word is not really for this
2022-01-12 02:54:43 +0100 <ephemient> oh I guess it's not imported in lambdabot
2022-01-12 02:54:50 +0100 <Axman6> % 10 ^ 100 :: Natural
2022-01-12 02:54:53 +0100 <yahb> Axman6: *** Exception: heap overflow
2022-01-12 02:54:55 +0100 <EvanR> and Natural is cool, but a bit heavy weight for usually uses
2022-01-12 02:54:56 +0100 <Axman6> D:
2022-01-12 02:55:01 +0100 <ephemient> @import Data.Natural
2022-01-12 02:55:01 +0100 <lambdabot> Unknown command, try @list
2022-01-12 02:55:17 +0100 <EvanR> @import Numeric.Natural
2022-01-12 02:55:17 +0100 <lambdabot> Unknown command, try @list
2022-01-12 02:55:21 +0100 <ephemient> > 10 ^ 100 :: Data.Natural.Natural
2022-01-12 02:55:23 +0100 <lambdabot> error:
2022-01-12 02:55:23 +0100 <lambdabot> Not in scope: type constructor or class ‘Data.Natural.Natural’
2022-01-12 02:55:23 +0100 <lambdabot> No module named ‘Data.Natural’ is imported.
2022-01-12 02:55:40 +0100 <ephemient> meh, I don't remember how to poke it
2022-01-12 02:55:51 +0100 <ephemient> ah, and it's Numeric.Natural anyway
2022-01-12 02:56:01 +0100 <ephemient> > 10 ^ 100 :: Numeric.Natural.Natural
2022-01-12 02:56:02 +0100 <lambdabot> error:
2022-01-12 02:56:02 +0100 <lambdabot> Not in scope: type constructor or class ‘Numeric.Natural.Natural’
2022-01-12 02:56:02 +0100 <lambdabot> No module named ‘Numeric.Natural’ is imported.
2022-01-12 02:56:11 +0100 <Axman6> % 10 ^ 10 :: Natural
2022-01-12 02:56:13 +0100 <yahb> Axman6: *** Exception: heap overflow
2022-01-12 02:56:18 +0100 <ephemient> ???
2022-01-12 02:56:19 +0100 <Axman6> % 10 ^ 5 :: Natural
2022-01-12 02:56:19 +0100 <yahb> Axman6: 100000
2022-01-12 02:56:25 +0100 <EvanR> lol, that's a small heap
2022-01-12 02:56:26 +0100 <Axman6> crazy
2022-01-12 02:56:31 +0100 <Axman6> yah
2022-01-12 02:56:43 +0100joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 256 seconds)
2022-01-12 02:57:00 +0100 <Axman6> mniip: what's the deal with 10^100 :: Natural getting a heap overflow in yahb?
2022-01-12 02:57:15 +0100 <EvanR> 10^10 even
2022-01-12 02:57:24 +0100 <ephemient> is there a strict (^)?
2022-01-12 02:57:27 +0100nhatanh02(~satori@123.24.172.30)
2022-01-12 02:57:46 +0100 <EvanR> I mean... it shouldn't matter
2022-01-12 02:57:52 +0100 <EvanR> for this
2022-01-12 02:58:07 +0100 <Axman6> yeah it's not like the result is particularly big
2022-01-12 02:58:16 +0100joo-_(~joo-_@80-62-117-53-mobile.dk.customer.tdc.net)
2022-01-12 02:58:16 +0100joo-_(~joo-_@80-62-117-53-mobile.dk.customer.tdc.net) (Changing host)
2022-01-12 02:58:16 +0100joo-_(~joo-_@fsf/member/joo--)
2022-01-12 02:58:52 +0100 <EvanR> a bigint takes up log(n) space
2022-01-12 03:00:01 +0100lavaman(~lavaman@98.38.249.169)
2022-01-12 03:00:02 +0100 <ephemient> % iterate' ((*) 10 $!) 1 :: [Natural]
2022-01-12 03:00:04 +0100 <yahb> ephemient: [1,10,100,1000,10000,100000,*** Exception: heap overflow
2022-01-12 03:00:19 +0100 <Axman6> that's amazing
2022-01-12 03:00:30 +0100 <EvanR> is this not your dad's Natural
2022-01-12 03:00:38 +0100 <EvanR> is it a list
2022-01-12 03:00:47 +0100 <Axman6> D:
2022-01-12 03:00:59 +0100 <Axman6> % 10 ^ 5 :: Numeric.Natural.Natural
2022-01-12 03:01:00 +0100 <yahb> Axman6: 100000
2022-01-12 03:01:05 +0100 <Axman6> % 10 ^ 100 :: Numeric.Natural.Natural
2022-01-12 03:01:05 +0100 <yahb> Axman6: 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2022-01-12 03:01:10 +0100 <Axman6> better
2022-01-12 03:01:38 +0100 <ephemient> hah. wait what Natural is the yahb import then?
2022-01-12 03:01:50 +0100 <ephemient> %% :i Natural
2022-01-12 03:01:50 +0100 <yahb> ephemient: http://qp.mniip.com/y/39
2022-01-12 03:01:58 +0100 <ephemient> ohhhhh
2022-01-12 03:02:02 +0100 <EvanR> bingo
2022-01-12 03:02:25 +0100 <Axman6> yeah that's, uh, not good
2022-01-12 03:02:40 +0100 <dibblego> https://hackage.haskell.org/package/natural/docs/Natural.html
2022-01-12 03:02:42 +0100 <EvanR> that is so not a "Natural", that's Nat, but Nat is already something else I guess
2022-01-12 03:03:38 +0100 <Inst> btw, any ideas of how good Harvard's paper on monads is?
2022-01-12 03:03:39 +0100 <Inst> https://groups.seas.harvard.edu/courses/cs152/2019sp/lectures/lec18-monads.pdf
2022-01-12 03:03:50 +0100 <Inst> At this point I'm less interested in monads than on materials on Haskell's type system
2022-01-12 03:03:58 +0100 <Inst> is it called algebraic structures? algebraic data types? typeclasses?
2022-01-12 03:04:22 +0100 <EvanR> hindly milner types, system F, ...
2022-01-12 03:04:25 +0100 <Axman6> well it starts with proofs... so definitely not a great idea for beginners IMO
2022-01-12 03:05:11 +0100 <EvanR> type classes might be filed away under "constrained polymorphism"
2022-01-12 03:05:19 +0100 <Axman6> looks like a possibly useful paper for a mathematician, but I would never give that to a beginner
2022-01-12 03:06:01 +0100 <Inst> natural numbers (fixed precision) are already in Haskell
2022-01-12 03:06:05 +0100 <Inst> it's called Word
2022-01-12 03:06:15 +0100 <Inst> Axman6: it's taught to their UGs
2022-01-12 03:06:34 +0100 <Axman6> it's lecture 18, so past absolute beginners
2022-01-12 03:06:41 +0100 <Inst> https://groups.seas.harvard.edu/courses/cs152/2021sp/
2022-01-12 03:06:47 +0100 <Axman6> Word is not rewally a suitable type for natural numbers
2022-01-12 03:07:02 +0100 <Inst> why not?
2022-01-12 03:07:10 +0100 <EvanR> we just went over that
2022-01-12 03:07:12 +0100 <Axman6> > maxBound :: Word
2022-01-12 03:07:13 +0100 <lambdabot> 18446744073709551615
2022-01-12 03:07:33 +0100 <Inst> why can't Integral suffice?
2022-01-12 03:07:40 +0100 <Inst> word is more about performance
2022-01-12 03:07:41 +0100 <Axman6> % fromIntegral (maxBound :: Word) + 1 :: Numeric.Natural.Natural
2022-01-12 03:07:41 +0100 <yahb> Axman6: 18446744073709551616
2022-01-12 03:07:52 +0100 <EvanR> Word is more about compatibility with low level stuff
2022-01-12 03:08:05 +0100 <Axman6> Natural is at least one better than Word, I have proved it
2022-01-12 03:08:09 +0100 <Inst> how hard is it to get an arbitrary precision Word?
2022-01-12 03:08:17 +0100 <Axman6> that's exactly what Natural is
2022-01-12 03:08:19 +0100 <Inst> that's Natural?
2022-01-12 03:08:35 +0100 <EvanR> Natural exists and reacts better when you go negative
2022-01-12 03:08:40 +0100 <EvanR> by not becoming huge
2022-01-12 03:08:52 +0100 <Axman6> and Integer is basically defined as data Integer = Neg Natural | Pos Natural -- (not really, but essentially)
2022-01-12 03:09:19 +0100 <EvanR> Integer has two zeros? xD
2022-01-12 03:09:33 +0100 <ephemient> % -1 :: Numeric.Natural.Natural
2022-01-12 03:09:33 +0100 <yahb> ephemient: ; <interactive>:70:2: warning: [-Woverflowed-literals] Literal -1 is negative but GHC.Num.Natural.Natural only supports positive numbers; *** Exception: arithmetic underflow
2022-01-12 03:09:34 +0100 <Axman6> which interestingly means that there are operations on the native Haskell implementation of Integer which run faster than GMP's equivalent
2022-01-12 03:09:45 +0100 <EvanR> (Natural is implemented using Integer)
2022-01-12 03:09:58 +0100 <Inst> GMP?
2022-01-12 03:09:59 +0100 <Axman6> I don't think that's true
2022-01-12 03:10:06 +0100 <EvanR> it was last I checked xD
2022-01-12 03:10:37 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-43-67-70-144-25.dsl.bell.ca) (Ping timeout: 240 seconds)
2022-01-12 03:10:53 +0100 <EvanR> Inst, Gnu Multiprecision, big int lib
2022-01-12 03:11:02 +0100 <Axman6> GMP is https://gmplib.org, which is what GHC uses to implement Integer by default
2022-01-12 03:11:15 +0100 <Inst> commonly used for all GNU compilers (if there's more than gcc?)
2022-01-12 03:11:20 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2022-01-12 03:11:35 +0100 <EvanR> it's used by whoever wants to use it
2022-01-12 03:11:36 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 256 seconds)
2022-01-12 03:11:48 +0100 <Inst> oh hey
2022-01-12 03:11:49 +0100 <Inst> https://groups.seas.harvard.edu/courses/cs152/2019sp/extension.html
2022-01-12 03:11:56 +0100 <Inst> so $2000 for it
2022-01-12 03:12:07 +0100 <Inst> Two points to emphasize: (1) this is not an introduction to programming; students should already know how to program, ideally in at least couple of languages. (2) you must be very comfortable with recursion, basic mathematical ideas and notations, including sets, relations, functions, and induction.
2022-01-12 03:12:51 +0100 <Axman6> yes, not exactly a beginner's course
2022-01-12 03:12:52 +0100 <ephemient> data Integer = IS !Int# | IP !BigNat# | IN !BigNat#; type BigNat# = WordArray# -- https://gitlab.haskell.org/ghc/ghc/-/tree/master/libraries/ghc-bignum/src/GHC/Num
2022-01-12 03:13:05 +0100califax-(~califax@user/califx)
2022-01-12 03:13:31 +0100 <ephemient> current implementation looks like small | positive big | negative big
2022-01-12 03:13:35 +0100 <jkaye> Thoughts on enabling StrictData as a default extension within a package?
2022-01-12 03:13:40 +0100 <EvanR> ah they changed to a big nat
2022-01-12 03:13:43 +0100 <jkaye> I feel like I almost always want it
2022-01-12 03:13:45 +0100 <Axman6> right, IIRC Natural is basically just data Natural = N BigNat#
2022-01-12 03:14:13 +0100 <Inst> is it possible to implement a type of only even integers?
2022-01-12 03:14:23 +0100 <Axman6> jkaye: it would be very unexpected for other developers. I would at the very least do it on a per module basis. most people don't check the cabal file for extensions
2022-01-12 03:14:25 +0100 <Inst> as in, without resorting to extensions / CAPI?
2022-01-12 03:14:40 +0100 <monochrom> My code doesn't need StrictData. But this is precisely the peril of asking total strangers what to do to your code.
2022-01-12 03:14:41 +0100 <Inst> actually, i won't ask
2022-01-12 03:14:49 +0100 <Inst> today, i can finally pick up books, and have tons of books to read
2022-01-12 03:14:56 +0100 <EvanR> I do not want StrictData across the board
2022-01-12 03:14:57 +0100 <Inst> thanks for humoring me, have a good one
2022-01-12 03:15:01 +0100 <Axman6> just use an Integer newtype and store every number as n/2
2022-01-12 03:15:43 +0100 <jkaye> More interested in general thoughts tbh
2022-01-12 03:15:49 +0100 <jkaye> I was expecting most to say not to do it
2022-01-12 03:15:54 +0100 <monochrom> "It depends."
2022-01-12 03:15:56 +0100 <EvanR> viewEven f (Even i) = f (2 * i)
2022-01-12 03:15:57 +0100 <jkaye> But I'm mostly interested in the why
2022-01-12 03:16:00 +0100Cajun(~Cajun@user/cajun)
2022-01-12 03:16:28 +0100 <jkaye> Unexpected I could definitely see in the general case
2022-01-12 03:16:36 +0100 <EvanR> in my case, I am expecting to not look at all the data fields all the time before changing my mind
2022-01-12 03:16:39 +0100 <EvanR> and recomputing
2022-01-12 03:16:49 +0100 <EvanR> only some of them
2022-01-12 03:17:00 +0100califax(~califax@user/califx) (Ping timeout: 276 seconds)
2022-01-12 03:17:01 +0100califax-califax
2022-01-12 03:17:29 +0100 <EvanR> some small types with two Ints, or three Floats, yeah strictify those suckers
2022-01-12 03:18:31 +0100 <EvanR> or the odd field used as a counter that you don't look at often, strict field
2022-01-12 03:18:49 +0100lavaman(~lavaman@98.38.249.169)
2022-01-12 03:19:23 +0100 <EvanR> a field containing a list? What does StrictData do in that case?
2022-01-12 03:19:34 +0100 <EvanR> evaluate the whole list?
2022-01-12 03:20:25 +0100 <ephemient> well, ! always means whnf, doesn't it?
2022-01-12 03:20:31 +0100 <jkaye> StrictData takes fields to whnf
2022-01-12 03:20:34 +0100 <monochrom> If it is your own custom list type and it is defined under StrictData, then yeah it becomes highly non-lazy.
2022-01-12 03:20:38 +0100 <jkaye> So I think that's well-defined?
2022-01-12 03:20:52 +0100 <jkaye> But I see what you're saying
2022-01-12 03:21:06 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-43-67-70-144-114.dsl.bell.ca)
2022-01-12 03:21:30 +0100 <EvanR> ok, so it won't evaluate the whole list, which is good, but like, is it even worth evaluating a list to WHNF xD
2022-01-12 03:22:02 +0100 <ephemient> whnf for tuples isn't very interesting either
2022-01-12 03:22:50 +0100 <EvanR> or a function
2022-01-12 03:24:02 +0100 <monochrom> If you have 100 fields, 99 are Int and need to be strict, and 1 is [()}, entering "{-# language StrictData #-}" and getting a harmless WHNF for the [()] field is probably better than entering "!" 99 times.
2022-01-12 03:24:26 +0100 <EvanR> yeah so that in a separately module sounds reasonable
2022-01-12 03:24:34 +0100 <EvanR> separate
2022-01-12 03:24:38 +0100 <jkaye> Yep right now I'm doing it in modules
2022-01-12 03:24:42 +0100 <jkaye> But it's in most modules
2022-01-12 03:24:51 +0100 <jkaye> So was thinking about just turning it on everywhere
2022-01-12 03:24:53 +0100 <jkaye> Thus the question :)
2022-01-12 03:25:01 +0100 <monochrom> Or rather, s/better/more convenient/
2022-01-12 03:25:14 +0100 <monochrom> And in fact, s/more convenient/more convenient for the author/
2022-01-12 03:25:30 +0100 <monochrom> You see, usually author's stakes conflict with reader's stakes.
2022-01-12 03:25:49 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-43-67-70-144-114.dsl.bell.ca) (Ping timeout: 240 seconds)
2022-01-12 03:26:08 +0100 <monochrom> For the reader, if there is no "!" right next to your Int field, the reader may very well miss your "{-# language StrictData #-}" 945 lines away.
2022-01-12 03:26:11 +0100 <EvanR> and when the author = the reader back in time, there's a paradox
2022-01-12 03:27:29 +0100neurocyte09170(~neurocyte@user/neurocyte)
2022-01-12 03:27:30 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-56.dsl.bell.ca)
2022-01-12 03:28:17 +0100 <jkaye> 945 line module is not my style, but again I see your point
2022-01-12 03:28:53 +0100 <monochrom> We have most people here who prove that they can't even see 10 lines above.
2022-01-12 03:29:25 +0100xff0x(~xff0x@2001:1a81:534d:9900:8245:a333:af79:9a1f) (Ping timeout: 240 seconds)
2022-01-12 03:29:44 +0100neurocyte0917(~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
2022-01-12 03:29:44 +0100neurocyte09170neurocyte0917
2022-01-12 03:31:10 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2022-01-12 03:31:21 +0100puke(~puke@user/puke) (Quit: puke)
2022-01-12 03:31:35 +0100xff0x(~xff0x@2001:1a81:538c:a900:ca7a:63a1:efb3:59ef)
2022-01-12 03:31:44 +0100 <jkaye> :D
2022-01-12 03:31:46 +0100 <jkaye> Lol
2022-01-12 03:32:01 +0100 <jkaye> Yeah, I have seen worse than that
2022-01-12 03:33:59 +0100 <jkaye> Well, thanks for the discussion
2022-01-12 03:35:17 +0100 <Inst> oh god
2022-01-12 03:35:21 +0100 <Inst> how stupid is this?
2022-01-12 03:35:32 +0100 <Inst> it should be possible to pass where blocks between modules
2022-01-12 03:35:41 +0100 <Inst> erm, functions
2022-01-12 03:36:47 +0100 <EvanR> passing functions around?
2022-01-12 03:37:31 +0100 <monochrom> You know you are really better off making your own programming language.
2022-01-12 03:37:32 +0100 <EvanR> you think they're first class values or something?
2022-01-12 03:38:13 +0100 <Inst> not saying it'd be a change to haskell, just WTF coding practice
2022-01-12 03:39:20 +0100x28_girl(~x28girl@user/x28girl) (Read error: Connection reset by peer)
2022-01-12 03:39:45 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 03:40:19 +0100 <Inst> or alternately setting up functions as directories of functions, but modules already do this
2022-01-12 03:41:28 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net)
2022-01-12 03:41:35 +0100 <Inst> i was doing someone's homework assignment after they had finished it (trust me, and I'm not kidding, so that I could show them it's better done in Haskell)
2022-01-12 03:42:05 +0100 <Inst> it was an if-then control flow, I ended up using a where block for the case where "if any of the following are true, do it, then check the next case" and then "if none of them are true, do this"
2022-01-12 03:43:21 +0100 <Inst> then i got to think about problems with record syntax
2022-01-12 03:43:28 +0100 <Inst> (which afaik are solved by lenses)
2022-01-12 03:44:07 +0100 <Inst> which could be passed around as tuples for functions that were designed to support them
2022-01-12 03:44:27 +0100 <Inst> reinventing the wheel, probably
2022-01-12 03:44:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 03:45:37 +0100mbuf(~Shakthi@223.178.108.186)
2022-01-12 03:46:19 +0100puke(~puke@user/puke)
2022-01-12 03:50:55 +0100 <EvanR> specifically what problem with record syntax
2022-01-12 03:52:06 +0100razetime(~quassel@49.207.203.87)
2022-01-12 03:52:30 +0100biog(~user1@static.39.160.132.142.clients.your-server.de) (Quit: ZZZzzz…)
2022-01-12 03:54:35 +0100 <Inst> modifying them and saving the state long enough for them to be useful
2022-01-12 03:55:07 +0100 <Inst> but w/e, it's probably already done
2022-01-12 03:55:14 +0100d0ku(~d0ku@178.43.3.56.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds)
2022-01-12 03:55:24 +0100 <Inst> it came up because a Pythoner I had dragooned complained about having to define custom types for Aeson
2022-01-12 03:55:51 +0100 <Inst> it just feels like bad practice for functions to hold variables
2022-01-12 03:59:24 +0100vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-01-12 03:59:45 +0100 <Inst> and this annoys me
2022-01-12 04:00:39 +0100 <Inst> the python version of this has 40 words, the haskell version has 45 words, the python has 277 characters, the haskell version has 241 characters
2022-01-12 04:01:00 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 04:02:46 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 04:03:02 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 04:03:30 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 04:11:08 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-12 04:12:32 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-01-12 04:12:32 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-01-12 04:12:32 +0100finn_elijaFinnElija
2022-01-12 04:15:15 +0100EsoAlgo4(~EsoAlgo@152.70.142.52)
2022-01-12 04:16:09 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2022-01-12 04:17:48 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-12 04:18:03 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-12 04:18:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2022-01-12 04:19:55 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
2022-01-12 04:23:25 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-01-12 04:24:22 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-12 04:26:49 +0100sagax(~sagax_nb@user/sagax) (Ping timeout: 256 seconds)
2022-01-12 04:29:01 +0100 <EvanR> stupid question, if f is BiApplicative, wouldn't g a b = A -> f a b also be BiApplicative
2022-01-12 04:30:02 +0100 <EvanR> e.g. A -> (a,b)
2022-01-12 04:31:44 +0100 <EvanR> compose a functor and a BiApplicative... ... Tannen
2022-01-12 04:32:09 +0100 <byorgey> intuitively I would expect that g (f a b) is BiApplicative whenever f is BiApplicative and g is Applicative
2022-01-12 04:32:17 +0100 <byorgey> so yes
2022-01-12 04:33:04 +0100 <byorgey> ah, didn't know about Tannen
2022-01-12 04:33:31 +0100 <EvanR> i suspected that would be a hidden gem
2022-01-12 04:34:11 +0100 <byorgey> named after https://directory.seas.upenn.edu/val-b-tannen/ I suppose?
2022-01-12 04:34:42 +0100 <dolio> Nah.
2022-01-12 04:34:50 +0100 <dolio> It's named after Biff Tannen from Back to the Future.
2022-01-12 04:35:00 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2022-01-12 04:35:34 +0100haysh_
2022-01-12 04:35:35 +0100 <EvanR> i see another newtype Biff
2022-01-12 04:35:55 +0100 <EvanR> so it must be true
2022-01-12 04:36:48 +0100 <dolio> Yeah, that is the real answer.
2022-01-12 04:38:05 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-12 04:40:10 +0100 <byorgey> lol
2022-01-12 04:40:22 +0100systemhalted(~systemhal@130.51.137.77)
2022-01-12 04:40:40 +0100 <EvanR> what does Biff Tannen have to do with category theory
2022-01-12 04:41:31 +0100 <dolio> Biff came first. I forget what it actually is. Then someone named the 'opposite' thing Tannen.
2022-01-12 04:41:33 +0100td_(~td@94.134.91.153) (Ping timeout: 256 seconds)
2022-01-12 04:41:42 +0100 <dolio> At least, I think that's how it was.
2022-01-12 04:43:09 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-12 04:43:17 +0100td_(~td@94.134.91.149)
2022-01-12 04:44:05 +0100trillp(~trillp@69.233.98.238)
2022-01-12 04:46:03 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
2022-01-12 04:46:39 +0100systemhalted(~systemhal@130.51.137.77) (Ping timeout: 256 seconds)
2022-01-12 04:49:01 +0100x28__girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 04:49:02 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 04:49:26 +0100x28__girl(~x28girl@user/x28girl)
2022-01-12 04:49:26 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 04:51:54 +0100ishutin(~ishutin@178-164-188-6.pool.digikabel.hu) (Ping timeout: 256 seconds)
2022-01-12 04:53:31 +0100x28__girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 04:54:04 +0100x28__girl(~x28girl@user/x28girl)
2022-01-12 04:54:28 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-01-12 04:54:57 +0100x28__girl(~x28girl@user/x28girl) (Max SendQ exceeded)
2022-01-12 04:55:26 +0100x28__girl(~x28girl@user/x28girl)
2022-01-12 04:56:18 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 04:56:59 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 05:00:24 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
2022-01-12 05:01:06 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 05:05:25 +0100myrrh(~markus@172.58.196.126)
2022-01-12 05:05:45 +0100little_mac(~little_ma@2601:410:4300:3ce0:b189:8cdd:77fb:b913)
2022-01-12 05:06:48 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 05:07:29 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 05:09:25 +0100ishutin(~ishutin@91-83-11-240.pool.digikabel.hu)
2022-01-12 05:13:25 +0100shriekingnoise(~shrieking@186.137.144.80) (Ping timeout: 240 seconds)
2022-01-12 05:14:13 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 05:16:39 +0100 <hololeap> biff stands for "bifunctor functor"
2022-01-12 05:17:15 +0100 <hololeap> tannen was just because edwardk couldn't think of a good name for it
2022-01-12 05:17:18 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 05:17:59 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 05:18:02 +0100 <hololeap> but, yeah it's a back to the future reference
2022-01-12 05:21:35 +0100 <EvanR> runTannen should have been getOuttaHere
2022-01-12 05:23:49 +0100arjun(~arjun@user/arjun)
2022-01-12 05:26:37 +0100euandreh(~euandreh@2804:14c:33:9fe5:4895:4e42:bd43:c273) (Ping timeout: 240 seconds)
2022-01-12 05:26:37 +0100jkaye(~jkaye@2601:281:8300:7530:a78a:7d05:3820:99ae) (Ping timeout: 240 seconds)
2022-01-12 05:27:48 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 05:28:29 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 05:28:35 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 05:28:37 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds)
2022-01-12 05:29:09 +0100waleee(~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2022-01-12 05:33:32 +0100myrrh(~markus@172.58.196.126) (Changing host)
2022-01-12 05:33:32 +0100myrrh(~markus@user/poet)
2022-01-12 05:38:03 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2022-01-12 05:40:12 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-12 05:41:00 +0100rembo10(~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-01-12 05:42:02 +0100rembo10(~rembo10@remulis.com)
2022-01-12 05:44:32 +0100 <EvanR> for several arguments to the function, the number of Tannens multiplies, just like in the Classic Film Series
2022-01-12 05:48:36 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-01-12 05:49:08 +0100 <qhong_> geekosaur: Thanks! I did similar thing trying to fix all those tiny errs in MagicHaskeller but there's always one after another. I ended up running it in another machine with old GHC (the old GHC itself bitrot on my daily drive, oops)
2022-01-12 05:51:32 +0100 <Inst> troll: Does Haskell even exist?
2022-01-12 05:51:51 +0100vicfred(~vicfred@user/vicfred)
2022-01-12 05:53:32 +0100 <Inst> https://hackage.haskell.org/packages/tag/prelude
2022-01-12 05:53:58 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 05:54:42 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 05:56:29 +0100emergence(~emergence@vm0.max-p.me) (Quit: emergence)
2022-01-12 06:02:08 +0100BrokenClutch(~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e)
2022-01-12 06:04:44 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 06:05:12 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 06:06:01 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 06:06:35 +0100emergence(thelounge@2607:5300:60:5910:dcad:beff:feef:5bc)
2022-01-12 06:06:36 +0100biog(~user1@static.39.160.132.142.clients.your-server.de)
2022-01-12 06:07:45 +0100 <EvanR> bizzlelude, a lousy prelude by a lousy dude. Charming
2022-01-12 06:09:01 +0100 <EvanR> protolude seems to be the winner
2022-01-12 06:09:09 +0100 <EvanR> other than just Prelude
2022-01-12 06:11:58 +0100fef(~thedawn@user/thedawn)
2022-01-12 06:15:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 06:15:42 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 06:16:34 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 06:20:49 +0100 <Inst> diehl apparently hasn't updated protolude in more than a year
2022-01-12 06:21:05 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-01-12 06:21:32 +0100x28__girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:21:33 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:22:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-12 06:22:01 +0100 <Inst> almost 2 years since last update
2022-01-12 06:22:06 +0100x28__girl(~x28girl@user/x28girl)
2022-01-12 06:22:06 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 06:22:18 +0100 <EvanR> is there no contravariant bifunctor
2022-01-12 06:23:33 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 256 seconds)
2022-01-12 06:23:35 +0100emf_(~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2022-01-12 06:25:00 +0100antony(~The_viole@203.77.49.232)
2022-01-12 06:25:03 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2022-01-12 06:25:46 +0100Kaipi(~Kaiepi@156.34.47.253)
2022-01-12 06:25:47 +0100 <Axman6> shoudl it be BiCofunctor or CoBifunctor?
2022-01-12 06:25:56 +0100 <Axman6> should*
2022-01-12 06:26:03 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:26:03 +0100x28__girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:26:06 +0100polux8(~polux@51.15.169.172)
2022-01-12 06:26:06 +0100mcglk_(~mcglk@131.191.49.120)
2022-01-12 06:26:11 +0100mrmr3(~mrmr@user/mrmr)
2022-01-12 06:26:12 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 06:26:15 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 06:26:28 +0100SoF4(~skius@user/skius)
2022-01-12 06:26:31 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 06:26:32 +0100x28__girl(~x28girl@user/x28girl)
2022-01-12 06:26:37 +0100 <EvanR> Bicontravariant I guess
2022-01-12 06:26:37 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net) (Remote host closed the connection)
2022-01-12 06:26:54 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 06:27:18 +0100lemonsni-(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-01-12 06:27:18 +0100sndr(~sander@user/sander)
2022-01-12 06:27:19 +0100 <Axman6> or Cobitravariant
2022-01-12 06:27:19 +0100vgtw_(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
2022-01-12 06:27:21 +0100 <Axman6> >_>
2022-01-12 06:27:37 +0100forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
2022-01-12 06:27:42 +0100hgolden_(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2022-01-12 06:28:04 +0100pieguy128_(~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-56.dsl.bell.ca)
2022-01-12 06:28:22 +0100eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 06:28:25 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection)
2022-01-12 06:28:34 +0100hyiltiz_(~quassel@31.220.5.250)
2022-01-12 06:29:20 +0100werneta_(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-01-12 06:29:22 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
2022-01-12 06:29:40 +0100wrengr(~wrengr@150.12.83.34.bc.googleusercontent.com) (Killed (NickServ (GHOST command used by wrengr_)))
2022-01-12 06:29:42 +0100gentauro_(~gentauro@185.107.12.141)
2022-01-12 06:29:49 +0100wrengr(~wrengr@150.12.83.34.bc.googleusercontent.com)
2022-01-12 06:29:54 +0100bliminse_(~bliminse@host86-186-17-7.range86-186.btcentralplus.com)
2022-01-12 06:30:00 +0100tristanC_(~tristanC@user/tristanc)
2022-01-12 06:30:03 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:30:03 +0100x28__girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:30:07 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2022-01-12 06:30:08 +0100aku_(~aku@163.172.137.34)
2022-01-12 06:30:11 +0100 <BrokenClutch> Never heard about this contravariant thing
2022-01-12 06:30:17 +0100 <BrokenClutch> looks cool
2022-01-12 06:30:25 +0100polyphem_(~rod@2a02:810d:840:8754:e450:3ca3:b389:687a)
2022-01-12 06:30:26 +0100trillp_(~trillp@69.233.98.238)
2022-01-12 06:30:27 +0100x28__girl(~x28girl@user/x28girl)
2022-01-12 06:30:27 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 06:30:31 +0100 <Axman6> newtype Predicate a = Predicate (a -> Bool)
2022-01-12 06:31:16 +0100 <Axman6> looks like a Functor, but can't be, but it can be a contravariant functor: (a -> b) -> Predicate b -> Predicate a
2022-01-12 06:31:48 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2022-01-12 06:31:49 +0100 <Axman6> not generally as useful as Functor, but there are some places where contravariant functors are very natural
2022-01-12 06:32:15 +0100hueso_(~root@user/hueso)
2022-01-12 06:32:28 +0100trillp(~trillp@69.233.98.238) (Killed (NickServ (GHOST command used by trillp_)))
2022-01-12 06:32:32 +0100trillp_trillp
2022-01-12 06:33:01 +0100 <BrokenClutch> Man, I feel dumb. Like, where's my for loop? xdxdxd
2022-01-12 06:33:12 +0100 <c_wraith> lens does this weird thing where it puts Functor and Contravariant constraints on the same type as a way of saying "this type variable is phantom"
2022-01-12 06:33:36 +0100 <EvanR> when it can't be a Functor, but it can be a Contravariant, it works very well
2022-01-12 06:33:39 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net)
2022-01-12 06:33:59 +0100 <Axman6> hasql uses them to great effect for writing encoders for SQL values. if you have int :: Enc Int, bool :: Enc Bool, then you can use (fst <$> int) <> (snd >$< bool) to get a Enc (Int,Bool)
2022-01-12 06:33:59 +0100 <EvanR> maybe Bicontravariant can't work because they ran out of vocabulary words
2022-01-12 06:34:34 +0100 <EvanR> BrokenClutch, Traversable
2022-01-12 06:35:10 +0100arjun(~arjun@user/arjun) (*.net *.split)
2022-01-12 06:35:10 +0100razetime(~quassel@49.207.203.87) (*.net *.split)
2022-01-12 06:35:11 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-56.dsl.bell.ca) (*.net *.split)
2022-01-12 06:35:11 +0100SummerSonw(~The_viole@203.77.49.232) (*.net *.split)
2022-01-12 06:35:11 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (*.net *.split)
2022-01-12 06:35:11 +0100polyphem(~rod@ip5f5bff31.dynamic.kabel-deutschland.de) (*.net *.split)
2022-01-12 06:35:11 +0100Codaraxis(~Codaraxis@user/codaraxis) (*.net *.split)
2022-01-12 06:35:11 +0100talismanick(~talismani@c-67-164-73-220.hsd1.ca.comcast.net) (*.net *.split)
2022-01-12 06:35:11 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (*.net *.split)
2022-01-12 06:35:11 +0100bliminse(~bliminse@host86-186-17-7.range86-186.btcentralplus.com) (*.net *.split)
2022-01-12 06:35:11 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (*.net *.split)
2022-01-12 06:35:11 +0100xstill-(xstill@fimu/xstill) (*.net *.split)
2022-01-12 06:35:11 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (*.net *.split)
2022-01-12 06:35:11 +0100sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (*.net *.split)
2022-01-12 06:35:11 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (*.net *.split)
2022-01-12 06:35:11 +0100sus(zero@user/zeromomentum) (*.net *.split)
2022-01-12 06:35:11 +0100sektor|2(~kvirc@87.227.175.182) (*.net *.split)
2022-01-12 06:35:11 +0100mcglk(~mcglk@131.191.49.120) (*.net *.split)
2022-01-12 06:35:11 +0100AlexZenon(~alzenon@178.34.151.107) (*.net *.split)
2022-01-12 06:35:11 +0100gentauro(~gentauro@user/gentauro) (*.net *.split)
2022-01-12 06:35:11 +0100Flonk(~Flonk@vps-zap441517-1.zap-srv.com) (*.net *.split)
2022-01-12 06:35:11 +0100sander(~sander@user/sander) (*.net *.split)
2022-01-12 06:35:11 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (*.net *.split)
2022-01-12 06:35:11 +0100Kaiepi(~Kaiepi@156.34.47.253) (*.net *.split)
2022-01-12 06:35:11 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (*.net *.split)
2022-01-12 06:35:11 +0100mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split)
2022-01-12 06:35:11 +0100tremon(~tremon@217-120-53-183.cable.dynamic.v4.ziggo.nl) (*.net *.split)
2022-01-12 06:35:11 +0100kawpuh(~kawpuh@66.42.81.80) (*.net *.split)
2022-01-12 06:35:11 +0100n3t(n3t@user/n3t) (*.net *.split)
2022-01-12 06:35:11 +0100xsarnik(xsarnik@lounge.fi.muni.cz) (*.net *.split)
2022-01-12 06:35:11 +0100polux(~polux@51.15.169.172) (*.net *.split)
2022-01-12 06:35:11 +0100nurupo(~nurupo.ga@user/nurupo) (*.net *.split)
2022-01-12 06:35:11 +0100hyiltiz(~quassel@31.220.5.250) (*.net *.split)
2022-01-12 06:35:11 +0100byorgey(~byorgey@155.138.238.211) (*.net *.split)
2022-01-12 06:35:11 +0100forell(~forell@user/forell) (*.net *.split)
2022-01-12 06:35:11 +0100koolazer(~koo@user/koolazer) (*.net *.split)
2022-01-12 06:35:11 +0100remedan(~remedan@octo.cafe) (*.net *.split)
2022-01-12 06:35:11 +0100SoF(~skius@user/skius) (*.net *.split)
2022-01-12 06:35:11 +0100tristanC(~tristanC@user/tristanc) (*.net *.split)
2022-01-12 06:35:11 +0100drewr(~drew@user/drewr) (*.net *.split)
2022-01-12 06:35:11 +0100hueso(~root@user/hueso) (*.net *.split)
2022-01-12 06:35:11 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (*.net *.split)
2022-01-12 06:35:11 +0100mrmr(~mrmr@user/mrmr) (*.net *.split)
2022-01-12 06:35:11 +0100aku(~aku@163.172.137.34) (*.net *.split)
2022-01-12 06:35:13 +0100sndrsander
2022-01-12 06:35:14 +0100polux8polux
2022-01-12 06:35:14 +0100mrmr3mrmr
2022-01-12 06:35:16 +0100SoF4SoF
2022-01-12 06:35:46 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-01-12 06:35:59 +0100modnar(~modnar@shell.sonic.net) (Remote host closed the connection)
2022-01-12 06:36:01 +0100bliminse_(~bliminse@host86-186-17-7.range86-186.btcentralplus.com) (Ping timeout: 256 seconds)
2022-01-12 06:36:39 +0100modnar(~modnar@shell.sonic.net)
2022-01-12 06:37:23 +0100 <BrokenClutch> EvanR: why fold? Like, FP.
2022-01-12 06:37:29 +0100erisco_(~erisco@d24-57-249-233.home.cgocable.net)
2022-01-12 06:37:34 +0100 <BrokenClutch> >:(
2022-01-12 06:37:43 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 256 seconds)
2022-01-12 06:37:53 +0100xstill-(xstill@fimu/xstill)
2022-01-12 06:38:09 +0100 <Axman6> @hoogle (a -> m b) -> t a -> m (t b)
2022-01-12 06:38:10 +0100 <lambdabot> Control.Concurrent.Async.Lifted mapConcurrently :: (Traversable t, MonadBaseControl IO m) => (a -> m b) -> t a -> m (t b)
2022-01-12 06:38:10 +0100 <lambdabot> Control.Concurrent.Async.Lifted.Safe mapConcurrently :: (Traversable t, MonadBaseControl IO m, Forall (Pure m)) => (a -> m b) -> t a -> m (t b)
2022-01-12 06:38:10 +0100 <lambdabot> Prelude traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2022-01-12 06:38:17 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 256 seconds)
2022-01-12 06:38:17 +0100jackson99(~bc8147f2@cerf.good1.com) (Ping timeout: 256 seconds)
2022-01-12 06:38:17 +0100erisco_erisco
2022-01-12 06:38:17 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-12 06:38:38 +0100 <Axman6> believe it or not, traverse is just a for loop that returns the same structure you ran it over
2022-01-12 06:38:48 +0100bliminse(~bliminse@host86-188-36-178.range86-188.btcentralplus.com)
2022-01-12 06:38:49 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2022-01-12 06:38:51 +0100tristanC_(~tristanC@user/tristanc) (Ping timeout: 256 seconds)
2022-01-12 06:39:25 +0100hueso_(~root@user/hueso) (Ping timeout: 256 seconds)
2022-01-12 06:39:25 +0100werneta_(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-01-12 06:39:25 +0100biberu(~biberu@user/biberu) (Ping timeout: 256 seconds)
2022-01-12 06:39:40 +0100arjun(~arjun@user/arjun)
2022-01-12 06:39:54 +0100hueso(~root@user/hueso)
2022-01-12 06:40:12 +0100AlexZenon(~alzenon@178.34.151.107)
2022-01-12 06:40:12 +0100xsarnik(xsarnik@lounge.fi.muni.cz)
2022-01-12 06:40:12 +0100sektor(~kvirc@87.227.175.182)
2022-01-12 06:40:12 +0100razetime(~quassel@49.207.203.87)
2022-01-12 06:40:12 +0100talismanick(~talismani@c-67-164-73-220.hsd1.ca.comcast.net)
2022-01-12 06:40:12 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-01-12 06:40:12 +0100sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2022-01-12 06:40:12 +0100sus(zero@user/zeromomentum)
2022-01-12 06:40:12 +0100Flonk(~Flonk@vps-zap441517-1.zap-srv.com)
2022-01-12 06:40:12 +0100kawpuh(~kawpuh@66.42.81.80)
2022-01-12 06:40:12 +0100n3t(n3t@user/n3t)
2022-01-12 06:40:12 +0100nurupo(~nurupo.ga@user/nurupo)
2022-01-12 06:40:12 +0100byorgey(~byorgey@155.138.238.211)
2022-01-12 06:40:12 +0100remedan(~remedan@octo.cafe)
2022-01-12 06:40:12 +0100drewr(~drew@user/drewr)
2022-01-12 06:40:33 +0100tristanC(~tristanC@user/tristanc)
2022-01-12 06:41:24 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-01-12 06:41:33 +0100x28__girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:41:35 +0100koolazer(~koo@user/koolazer)
2022-01-12 06:41:39 +0100tremon(~tremon@217-120-53-183.cable.dynamic.v4.ziggo.nl)
2022-01-12 06:42:15 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-01-12 06:42:42 +0100goepsilongo(~goepsilon@2806:263:c404:8000:a19a:aab0:db5f:4d8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-12 06:43:03 +0100monochrom(trebla@216.138.220.146)
2022-01-12 06:43:52 +0100modnar(~modnar@shell.sonic.net) (Quit: farewell)
2022-01-12 06:45:32 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 06:47:13 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-01-12 06:47:58 +0100 <BrokenClutch> I was not being serious. But I'm going to be a little serious now. I know that this isn't the objective of haskell, but it's too difficult to a layman understand stuff.
2022-01-12 06:48:20 +0100 <BrokenClutch> Like, I'm trying to teach my friends what I know of haskell. It's being quite difficult
2022-01-12 06:48:42 +0100 <BrokenClutch> like, lisp was too. At least haskell is easier to read because it's static typed
2022-01-12 06:49:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2022-01-12 06:49:41 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 06:50:45 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2022-01-12 06:51:33 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 06:52:00 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 06:52:48 +0100 <Axman6> BrokenClutch: maybe you don't yet know enough to be able to effectively teach, which is fine, it just takes time.
2022-01-12 06:52:49 +0100x28_girl(~x28girl@user/x28girl) (Max SendQ exceeded)
2022-01-12 06:53:19 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 06:53:32 +0100 <Axman6> it took me wuite a while before I thought in Haskell, not just understood it. using it for basically all my uni courses helped (even the ones we weren't supposed to, I think I used it to generate python once)
2022-01-12 06:55:07 +0100 <BrokenClutch> Axman6: Yeah, I don't know enough to teach, I can show and explain some definitions, but I don't have practice
2022-01-12 06:56:55 +0100 <BrokenClutch> Some things are easier in haskell than in lisp. Like each symbol in lisp having a value and a function-value, confusing af
2022-01-12 06:57:38 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 06:58:27 +0100 <EvanR> haskell is too good sometimes
2022-01-12 06:58:29 +0100 <c_wraith> just to add to the chaos, not every lisp has that distinction
2022-01-12 06:58:52 +0100puke(~puke@user/puke) (Read error: Connection reset by peer)
2022-01-12 06:59:21 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 07:00:16 +0100 <BrokenClutch> scheme doesn't have
2022-01-12 07:00:59 +0100 <BrokenClutch> I'm more a lisp guy, I like its flexibility. But haskell is helping me a lot to understand some concepts and to do more reasonable stuff
2022-01-12 07:01:22 +0100 <BrokenClutch> reasonable in the sense that's easier to reason about it
2022-01-12 07:01:52 +0100 <Axman6> I don't understand how people program without a decent type system, like, humans are really bad at it, let the completely accurate tool do it for you
2022-01-12 07:02:37 +0100 <BrokenClutch> Letting thing being simple
2022-01-12 07:02:43 +0100 <BrokenClutch> things*
2022-01-12 07:03:08 +0100 <EvanR> back when I first started haskell, it was very fascinating seeing what sort of shenanigas common in dynamic languages could and could not "just work" in haskell
2022-01-12 07:03:14 +0100 <c_wraith> Haskell gets away with a lot fewer special cases because the compiler rejects bad code, instead of libraries trying to make them work anyway.
2022-01-12 07:03:38 +0100 <BrokenClutch> Lisp has good libs, it isn't C
2022-01-12 07:03:43 +0100 <BrokenClutch> the real macro language
2022-01-12 07:04:09 +0100 <EvanR> at first it was like, were those crazy shenanigas wrong the whole time?
2022-01-12 07:04:22 +0100 <EvanR> years later I learned to do crazy shenanigas in haskell xD
2022-01-12 07:04:33 +0100 <BrokenClutch> Same thing was for me in C++
2022-01-12 07:04:44 +0100 <BrokenClutch> was like: Oh man, look at those rules
2022-01-12 07:05:04 +0100 <BrokenClutch> after some time i was just: template template template constexpr template auto
2022-01-12 07:05:17 +0100vglfr(~vglfr@46.96.134.134)
2022-01-12 07:05:45 +0100 <EvanR> it's funny when someone complains about haskell's static types, and you show them Dynamic
2022-01-12 07:06:00 +0100 <BrokenClutch> don't know what this is
2022-01-12 07:06:10 +0100 <BrokenClutch> I'm scared, so won't see
2022-01-12 07:06:13 +0100 <EvanR> and it seems like a bad idea, despite being better than normal dynamic types
2022-01-12 07:06:55 +0100 <BrokenClutch> newForeignPtr gave me an error
2022-01-12 07:06:57 +0100 <BrokenClutch> sad
2022-01-12 07:06:59 +0100 <EvanR> Dynamic is just a wrapped Typeable
2022-01-12 07:07:06 +0100 <EvanR> dynamic types
2022-01-12 07:09:25 +0100 <BrokenClutch> meds are shooting me down
2022-01-12 07:09:26 +0100 <EvanR> what are you doing with ForeignPtr
2022-01-12 07:09:28 +0100 <BrokenClutch> need sleep
2022-01-12 07:09:35 +0100 <EvanR> nvm, go to sleep
2022-01-12 07:09:41 +0100 <BrokenClutch> night
2022-01-12 07:09:44 +0100 <BrokenClutch> byeee
2022-01-12 07:09:49 +0100 <Axman6> Any is also fun, it's even less safe Dynamic!
2022-01-12 07:09:56 +0100 <Axman6> @hoogle Any
2022-01-12 07:09:57 +0100 <lambdabot> Data.Monoid newtype Any
2022-01-12 07:09:57 +0100 <lambdabot> Data.Monoid Any :: Bool -> Any
2022-01-12 07:09:57 +0100 <lambdabot> Data.Semigroup newtype Any
2022-01-12 07:10:00 +0100 <Axman6> :(
2022-01-12 07:10:10 +0100BrokenClutch(~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e) ()
2022-01-12 07:10:11 +0100 <Axman6> those are the safe ones, I want the hard stuff!
2022-01-12 07:10:13 +0100 <EvanR> lambdabot willfully disregards its existence
2022-01-12 07:10:37 +0100 <c_wraith> Any is... not really unsafe. It's just weird.
2022-01-12 07:11:04 +0100 <EvanR> a better void* pointer
2022-01-12 07:11:14 +0100 <c_wraith> That's what it used to be.
2022-01-12 07:11:15 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-01-12 07:11:17 +0100 <c_wraith> It's not that anymore
2022-01-12 07:11:24 +0100 <c_wraith> these days it's a type family
2022-01-12 07:11:48 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net)
2022-01-12 07:12:08 +0100puke(~puke@user/puke)
2022-01-12 07:12:54 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2022-01-12 07:13:05 +0100 <Axman6> yeah just saw that, how interesting
2022-01-12 07:13:21 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2022-01-12 07:13:32 +0100mikoto-chan(~mikoto-ch@194.157.16.89)
2022-01-12 07:14:00 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net)
2022-01-12 07:16:21 +0100 <c_wraith> Hmm. I thought Dynamic was going to change its implementation at some point to data Dynamic where Dynamic :: Typeable a => a -> Dynamic
2022-01-12 07:16:35 +0100 <Axman6> isn't that what it is?
2022-01-12 07:16:50 +0100lavaman(~lavaman@98.38.249.169)
2022-01-12 07:17:11 +0100 <c_wraith> No, it's storing the TypeRep explicitly along with the value, instead of storing the whole Typeable dictionary
2022-01-12 07:17:25 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-12 07:17:45 +0100 <EvanR> is TypeRep particularly compact
2022-01-12 07:17:50 +0100 <c_wraith> This is better than it used to be, as TypeRep now has a parameter so you can actually tie those types together correctly.
2022-01-12 07:18:00 +0100 <Axman6> surely more compact than the whole dictionary
2022-01-12 07:18:09 +0100 <c_wraith> the dictionary is just a pointer
2022-01-12 07:18:26 +0100 <EvanR> i mean...
2022-01-12 07:18:28 +0100 <Axman6> so is the TypeRep, but it's a pointer into the dictionary
2022-01-12 07:18:29 +0100 <c_wraith> if there's a win, it's in less indirection in common operations
2022-01-12 07:18:30 +0100 <EvanR> I guess not then
2022-01-12 07:18:52 +0100 <EvanR> in a dynamically typed language the dynamic type info is likely some bits
2022-01-12 07:19:00 +0100 <EvanR> at least the basic parts
2022-01-12 07:19:04 +0100 <Axman6> yeah, it guarantees avoiding one indirection, but the compiler should be smart enough to remove that anyway
2022-01-12 07:19:31 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 07:19:53 +0100 <Axman6> I wonder if we could have a more compact representation for TypeRep (with pattern synonyms to keep things are they are)
2022-01-12 07:20:28 +0100 <EvanR> well the type universe is a lot bigger and more crazy in haskell so I wouldn't be surprised if it can't be done
2022-01-12 07:22:42 +0100fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2022-01-12 07:23:25 +0100razetime(~quassel@49.207.203.87) (Remote host closed the connection)
2022-01-12 07:25:30 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 07:25:30 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 07:25:30 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 07:25:56 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Quit: emf)
2022-01-12 07:27:25 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-01-12 07:27:57 +0100absence(torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 240 seconds)
2022-01-12 07:28:10 +0100absence(torgeihe@hildring.pvv.ntnu.no)
2022-01-12 07:29:36 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-12 07:29:49 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-12 07:30:35 +0100 <awpr> > Type.Reflection.TypeRep @(GHC.Exts.Any) -- :(
2022-01-12 07:30:36 +0100 <lambdabot> <hint>:1:25: error: parse error on input ‘@’
2022-01-12 07:31:36 +0100 <awpr> well lambdabot failed for a less interesting reason, but the point is since Any is a stuck type family, GHC can't even conceive of looking for a Typeable instance for it
2022-01-12 07:32:38 +0100 <Axman6> % Type.Reflection.TypeRep @(GHC.Exts.Any)
2022-01-12 07:32:38 +0100 <yahb> Axman6: ; <interactive>:71:1: error:; Not in scope: data constructor `Type.Reflection.TypeRep'; No module named `Type.Reflection' is imported.
2022-01-12 07:32:54 +0100 <Axman6> % import Type.Reflection
2022-01-12 07:32:54 +0100 <yahb> Axman6:
2022-01-12 07:32:57 +0100 <Axman6> % Type.Reflection.TypeRep @(GHC.Exts.Any)
2022-01-12 07:32:57 +0100 <yahb> Axman6: ; <interactive>:73:1: error:; Not in scope: data constructor `Type.Reflection.TypeRep'; Perhaps you meant one of these: variable `Type.Reflection.typeRep' (imported from Type.Reflection), variable `Type.Reflection.eqTypeRep' (imported from Type.Reflection), variable `Type.Reflection.rnfTypeRep' (imported from Type.Reflection)
2022-01-12 07:33:15 +0100 <awpr> should've been lower-case, and also I misinterpreted the error -- it actually just says it can't find an instance
2022-01-12 07:33:15 +0100 <Axman6> % :t Type.Reflection.typeRep
2022-01-12 07:33:15 +0100 <yahb> Axman6: forall {k} {a :: k}. Typeable a => Type.Reflection.TypeRep a
2022-01-12 07:33:24 +0100 <Axman6> % Type.Reflection.typeRep @(GHC.Exts.Any)
2022-01-12 07:33:24 +0100 <yahb> Axman6: ; <interactive>:75:1: error:; * No instance for (Typeable GHC.Exts.Any) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
2022-01-12 07:33:55 +0100 <awpr> I think it would be illegal to have an instance for it, but not illegal to ask for one / try to search for one
2022-01-12 07:34:16 +0100fef(~thedawn@user/thedawn)
2022-01-12 07:37:03 +0100chomwitt(~chomwitt@2a02:587:dc11:fb00:12c3:7bff:fe6d:d374)
2022-01-12 07:38:08 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2022-01-12 07:39:01 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2022-01-12 07:42:56 +0100 <EvanR> is Any a type family now because of levity or
2022-01-12 07:43:13 +0100mikoto-chan(~mikoto-ch@194.157.16.89) (Quit: mikoto-chan)
2022-01-12 07:45:22 +0100 <awpr> hmm, I can't find a version of base that has a definition that's not the type family. caveat: only looked in GHC.Exts, so if it's somewhere else, I'd have missed it
2022-01-12 07:49:31 +0100 <awpr> https://github.com/ghc/ghc/commit/24d761531cfc18152598becc0aeb90376fd19198
2022-01-12 07:49:41 +0100 <Axman6> GHC.see https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Builtin/Types.hs#L427
2022-01-12 07:50:24 +0100 <Axman6> which is interesting because that file doesn't contain the definition for Any
2022-01-12 07:51:00 +0100 <awpr> ghc-prim/GHC/Types.hs
2022-01-12 07:51:26 +0100 <Axman6> yeah, that's where I found the reference to the [Any types] note
2022-01-12 07:56:50 +0100 <awpr> oh nice, this note is real documentation of the behavior I noticed a few times where GHC "doesn't care" about ambiguity when there are no constraints to solve
2022-01-12 07:56:52 +0100phma(~phma@host-67-44-208-198.hnremote.net) (Read error: Connection reset by peer)
2022-01-12 07:57:13 +0100 <awpr> turns out the answer is that it defaults to `Any`
2022-01-12 07:58:02 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2022-01-12 08:00:15 +0100phma(phma@2001:5b0:212a:9158:a864:46d6:7a87:abb)
2022-01-12 08:00:51 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 08:01:22 +0100 <dolio> That doesn't really matter at a surface level. You can only really observe that occurring in ghci.
2022-01-12 08:02:17 +0100 <awpr> it means something like `data SomeList = forall a. SomeList [a]` followed by `SomeList []` is accepted rather than rejected for ambiguity
2022-01-12 08:03:28 +0100 <dolio> No, it doesn't. Because you don't actually need to pick a concrete type for `a` to have a sensible type inference/checking algorithm.
2022-01-12 08:03:55 +0100 <dolio> Many algorithms just let the variables drop without solving them.
2022-01-12 08:04:36 +0100 <awpr> that's approximately what my mental model of GHC's behavior was. but this note says that GHC chooses `Any`, which is interesting
2022-01-12 08:04:50 +0100 <dolio> GHC needs to put something there because core is explicitly typed, but that's at a lower level.
2022-01-12 08:04:58 +0100nhatanh02(~satori@123.24.172.30)
2022-01-12 08:06:24 +0100 <dolio> And if you do something like `l <- pure []` in ghci, l can't have a polymorphic type, so the variable has to be solved to something. But that situation can't ever happen in a program.
2022-01-12 08:07:48 +0100Akiva(~Akiva@user/Akiva)
2022-01-12 08:08:14 +0100 <awpr> `do l <- pure []; return (length l)` should still have an unconstrained type variable and be usable in a compiled module
2022-01-12 08:08:47 +0100 <dolio> That's a situation where you don't have to solve the variable.
2022-01-12 08:09:06 +0100Jing(~hedgehog@240e:390:7c53:a7e1:7492:3e11:3d28:6977)
2022-01-12 08:09:18 +0100 <dolio> It needs to be solved in ghci because everything is happening incrementally, so you can ask what type `l` is.
2022-01-12 08:09:43 +0100 <dolio> (And ghci will tell you `[Any]`.
2022-01-12 08:11:12 +0100myrrh(~markus@user/poet) (Remote host closed the connection)
2022-01-12 08:20:11 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net)
2022-01-12 08:20:25 +0100alfonsox(~quassel@103.92.42.80)
2022-01-12 08:21:26 +0100little_mac(~little_ma@2601:410:4300:3ce0:b189:8cdd:77fb:b913) (Remote host closed the connection)
2022-01-12 08:27:57 +0100shapr(~user@2601:7c0:c202:5190:c2c1:1b44:a2c4:880c) (Ping timeout: 240 seconds)
2022-01-12 08:29:34 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2022-01-12 08:29:44 +0100emf_(~emf@c-73-97-137-43.hsd1.wa.comcast.net)
2022-01-12 08:30:29 +0100antony(~The_viole@203.77.49.232) (Ping timeout: 256 seconds)
2022-01-12 08:33:45 +0100michalz(~michalz@185.246.204.107)
2022-01-12 08:37:24 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-12 08:38:15 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-12 08:42:22 +0100x28girl(~x28girl@user/x28girl)
2022-01-12 08:43:06 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 256 seconds)
2022-01-12 08:45:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 08:47:04 +0100x28girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 08:47:30 +0100x28girl(~x28girl@user/x28girl)
2022-01-12 08:48:33 +0100antony(~The_viole@203.77.49.232)
2022-01-12 08:48:51 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2022-01-12 08:51:27 +0100gehmehgeh(~user@user/gehmehgeh)
2022-01-12 08:56:35 +0100coot(~coot@89-64-85-93.dynamic.chello.pl)
2022-01-12 09:01:17 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2022-01-12 09:04:44 +0100trillp(~trillp@69.233.98.238) (Quit: WeeChat 3.3)
2022-01-12 09:06:04 +0100MajorBiscuit(~MajorBisc@c-001-022-052.client.tudelft.eduvpn.nl)
2022-01-12 09:11:45 +0100dsal(sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 268 seconds)
2022-01-12 09:11:54 +0100dsal(sid13060@id-13060.lymington.irccloud.com)
2022-01-12 09:11:57 +0100emf_(~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Quit: emf_)
2022-01-12 09:12:22 +0100ephemient(uid407513@id-407513.lymington.irccloud.com) (Ping timeout: 268 seconds)
2022-01-12 09:12:22 +0100jmct_(sid160793@id-160793.tinside.irccloud.com) (Ping timeout: 268 seconds)
2022-01-12 09:12:22 +0100astra(sid289983@user/amish) (Ping timeout: 268 seconds)
2022-01-12 09:12:29 +0100jmct_(sid160793@id-160793.tinside.irccloud.com)
2022-01-12 09:13:52 +0100astra(sid289983@id-289983.hampstead.irccloud.com)
2022-01-12 09:13:58 +0100ephemient(uid407513@id-407513.lymington.irccloud.com)
2022-01-12 09:18:05 +0100haskl(~haskl@user/haskl) (Ping timeout: 256 seconds)
2022-01-12 09:19:24 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-01-12 09:19:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2022-01-12 09:20:45 +0100max22-(~maxime@2a01cb08833598001d140f792dd3c52e.ipv6.abo.wanadoo.fr)
2022-01-12 09:21:40 +0100chele(~chele@user/chele)
2022-01-12 09:24:01 +0100acidjnk(~acidjnk@p200300d0c7271e52381c42d4d3ad2973.dip0.t-ipconnect.de)
2022-01-12 09:24:01 +0100acidjnk_new(~acidjnk@p200300d0c7271e52381c42d4d3ad2973.dip0.t-ipconnect.de)
2022-01-12 09:24:20 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it)
2022-01-12 09:25:50 +0100 <Aleksejs> Hi, I wrote this line in ghci `let a f = return . f; foo = a (*2); bar = a (+1) in (foo >=> bar) 1` ((>=>) is from Control.Monad) and it gave me the result equal to 3. However, the type of this expression is (Monad m, Num c) => m c. My question is what is m in this case?
2022-01-12 09:28:53 +0100 <c_wraith> in ghci, it'll pick IO if it has an instance of Monad that is otherwise unconstrained at the top level
2022-01-12 09:30:37 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-01-12 09:30:55 +0100mc47(~mc47@xmonad/TheMC47)
2022-01-12 09:31:02 +0100 <siers> which intuitively is kind of the Identity functor, if you only use pure code, because it only contains a single value
2022-01-12 09:33:49 +0100acidjnk(~acidjnk@p200300d0c7271e52381c42d4d3ad2973.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 09:33:49 +0100acidjnk_new(~acidjnk@p200300d0c7271e52381c42d4d3ad2973.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 09:34:40 +0100acidjnk(~acidjnk@p200300d0c7271e52a462db5e77aa7e55.dip0.t-ipconnect.de)
2022-01-12 09:35:09 +0100haskl(~haskl@user/haskl)
2022-01-12 09:36:13 +0100antony(~The_viole@203.77.49.232) (Ping timeout: 256 seconds)
2022-01-12 09:43:35 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 256 seconds)
2022-01-12 09:45:12 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net)
2022-01-12 09:46:04 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-12 09:47:14 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:586d:5e29:f9c4:61ba)
2022-01-12 09:49:50 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-12 09:49:53 +0100puke(~puke@user/puke) (Remote host closed the connection)
2022-01-12 09:50:12 +0100breakwindows(~brkwnds@86.107.75.45)
2022-01-12 09:51:30 +0100sus(zero@user/zeromomentum) (Quit: Ping timeout (120 seconds))
2022-01-12 09:51:45 +0100sus(zero@user/zeromomentum)
2022-01-12 09:56:09 +0100Alex_test_Alex_test
2022-01-12 09:57:06 +0100puke(~puke@user/puke)
2022-01-12 10:00:17 +0100hsiktas[m](~hsiktasma@2001:470:69fc:105::30d4) (Quit: You have been kicked for being idle)
2022-01-12 10:00:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 10:07:17 +0100sagax(~sagax_nb@user/sagax)
2022-01-12 10:17:31 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2022-01-12 10:17:31 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2022-01-12 10:17:34 +0100allbery_bgeekosaur
2022-01-12 10:20:56 +0100jgeerds_(~jgeerds@55d4bbed.access.ecotel.net)
2022-01-12 10:22:28 +0100jgeerds__(~jgeerds@55d4bbed.access.ecotel.net)
2022-01-12 10:25:31 +0100jgeerds_(~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 256 seconds)
2022-01-12 10:27:56 +0100alfonsox(~quassel@103.92.42.80) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-01-12 10:28:12 +0100lavaman(~lavaman@98.38.249.169)
2022-01-12 10:30:02 +0100jumper149(~jumper149@base.felixspringer.xyz)
2022-01-12 10:30:37 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 256 seconds)
2022-01-12 10:30:46 +0100 <Axman6> Aleksejs: GHCi is kinda, sort, a little bit like being in a magical IO do block. if your expression can be IO foo, it'll execute it, if it's anything else, it'll evaluate it and show it if possible
2022-01-12 10:31:05 +0100 <Axman6> what does :t it say if you run it after running that code?
2022-01-12 10:32:55 +0100`2jt(~jtomas@10.red-83-58-228.dynamicip.rima-tde.net)
2022-01-12 10:33:02 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2022-01-12 10:33:17 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds)
2022-01-12 10:34:10 +0100sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 256 seconds)
2022-01-12 10:34:28 +0100HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-01-12 10:35:08 +0100cfricke(~cfricke@user/cfricke)
2022-01-12 10:35:13 +0100HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-01-12 10:35:22 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2022-01-12 10:36:20 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2022-01-12 10:36:57 +0100 <Aleksejs> (Monad m, Num c) => m c
2022-01-12 10:37:26 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-01-12 10:37:49 +0100 <Aleksejs> so I suppose, m becomes IO once expressed in ghci?
2022-01-12 10:38:24 +0100 <c_wraith> ghci takes the expression you enter and does various things with it, depending on what it unifies with.
2022-01-12 10:39:03 +0100 <c_wraith> If it unifies with IO (), it executes it and doesn't print anything. If it unifies with (Show a) => IO a, it executes it >>= print
2022-01-12 10:39:19 +0100 <c_wraith> If it unifies with IO a without a Show constraint, it executes it and doesn't print anything
2022-01-12 10:39:44 +0100 <c_wraith> If none of those, it adds a call to print, including giving you the error about a missing Show instance if that's relevant
2022-01-12 10:41:37 +0100arjun(~arjun@user/arjun) (Ping timeout: 240 seconds)
2022-01-12 10:42:04 +0100 <c_wraith> so... 4 cases. 3 of which are the special cases of "can this be an IO action?"
2022-01-12 10:42:18 +0100ubert(~Thunderbi@p200300ecdf0994b6cb4175acd0981d1c.dip0.t-ipconnect.de)
2022-01-12 10:44:12 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Read error: Connection reset by peer)
2022-01-12 10:45:11 +0100 <justsomeguy> What is unification?
2022-01-12 10:45:42 +0100 <c_wraith> the process of solving for type variables so that two types can be the same thing.
2022-01-12 10:45:51 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 10:47:25 +0100sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2022-01-12 10:50:00 +0100__monty__(~toonn@user/toonn)
2022-01-12 10:50:02 +0100arjun(~arjun@user/arjun)
2022-01-12 10:50:08 +0100benin(~benin@183.82.30.17)
2022-01-12 10:56:22 +0100eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-12 10:56:27 +0100antony(~The_viole@203.77.49.232)
2022-01-12 10:57:01 +0100 <sshine> justsomeguy, so when Just :: a -> Maybe a, and you write Just (5 :: Int), then Int and a are unified by setting a = Int, and the concrete Just :: Int -> Just Int is used.
2022-01-12 10:57:33 +0100 <sshine> oops, Just :: Int -> Maybe Int, of course. :)
2022-01-12 11:02:03 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 11:02:31 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 11:06:33 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 11:06:58 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 11:13:10 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 11:13:18 +0100notzmv(~zmv@user/notzmv)
2022-01-12 11:13:51 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 11:14:32 +0100nhatanh02(~satori@123.24.172.30)
2022-01-12 11:16:03 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
2022-01-12 11:16:27 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2022-01-12 11:18:49 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Remote host closed the connection)
2022-01-12 11:19:46 +0100gawen_(~gawen@user/gawen) (Quit: cya)
2022-01-12 11:20:04 +0100haskl(~haskl@user/haskl) (Ping timeout: 256 seconds)
2022-01-12 11:22:54 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 256 seconds)
2022-01-12 11:26:20 +0100astraamish
2022-01-12 11:26:48 +0100amish(sid289983@id-289983.hampstead.irccloud.com) (Changing host)
2022-01-12 11:26:48 +0100amish(sid289983@user/amish)
2022-01-12 11:27:31 +0100amishastra
2022-01-12 11:27:50 +0100FragByte(~christian@user/fragbyte) (Quit: Quit)
2022-01-12 11:29:39 +0100FragByte(~christian@user/fragbyte)
2022-01-12 11:31:06 +0100haskl(~haskl@user/haskl)
2022-01-12 11:36:53 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-01-12 11:38:03 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2022-01-12 11:39:06 +0100MasseR(~MasseR@51.15.143.128) (Quit: The Lounge - https://thelounge.chat)
2022-01-12 11:39:32 +0100MasseR(~MasseR@51.15.143.128)
2022-01-12 11:39:42 +0100Lord_of_Life_Lord_of_Life
2022-01-12 11:42:01 +0100arjun(~arjun@user/arjun) (Ping timeout: 256 seconds)
2022-01-12 11:42:06 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-01-12 11:48:46 +0100nhatanh02(~satori@123.24.172.30)
2022-01-12 11:48:51 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 11:56:54 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 12:01:01 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-01-12 12:01:20 +0100gawen(~gawen@user/gawen)
2022-01-12 12:02:40 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-01-12 12:04:06 +0100Guest950(~Guest9@host109-151-101-87.range109-151.btcentralplus.com)
2022-01-12 12:05:38 +0100Guest950(~Guest9@host109-151-101-87.range109-151.btcentralplus.com) (Client Quit)
2022-01-12 12:05:57 +0100alx741(~alx741@157.100.93.160)
2022-01-12 12:06:03 +0100x28_girl(~x28girl@user/x28girl) (Remote host closed the connection)
2022-01-12 12:06:28 +0100x28_girl(~x28girl@user/x28girl)
2022-01-12 12:08:18 +0100x28_girl(~x28girl@user/x28girl) (Client Quit)
2022-01-12 12:08:18 +0100x28girl(~x28girl@user/x28girl) (Quit: Leaving)
2022-01-12 12:10:06 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 12:10:09 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-01-12 12:11:28 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-12 12:11:33 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-12 12:12:37 +0100xsperry(~xs@user/xsperry) (Ping timeout: 240 seconds)
2022-01-12 12:12:45 +0100Aleksejs(~Aleksejs@haskell.lv) (WeeChat 3.3)
2022-01-12 12:12:53 +0100Aleksejs(~Aleksejs@haskell.lv)
2022-01-12 12:13:58 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-01-12 12:15:04 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2022-01-12 12:15:16 +0100 <siers> c_wraith, hadn't noticed the case about where a in IO a is not Show-able – cool
2022-01-12 12:15:36 +0100mmhat(~mmh@55d44405.access.ecotel.net)
2022-01-12 12:18:42 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-01-12 12:19:24 +0100arjun(~arjun@user/arjun)
2022-01-12 12:21:28 +0100Jing(~hedgehog@240e:390:7c53:a7e1:7492:3e11:3d28:6977) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-12 12:21:28 +0100wre^(~wre@wsip-98-188-246-242.mc.at.cox.net)
2022-01-12 12:21:31 +0100yurusanP(~gsbush23@50.93.222.100)
2022-01-12 12:23:49 +0100acidjnk(~acidjnk@p200300d0c7271e52a462db5e77aa7e55.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 12:23:59 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 12:24:37 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 12:25:47 +0100puke(~puke@user/puke) ()
2022-01-12 12:30:14 +0100yurusanP(~gsbush23@50.93.222.100) ()
2022-01-12 12:30:39 +0100yurusanP(~gsbush23@50.93.222.100)
2022-01-12 12:34:24 +0100awpr(uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-01-12 12:40:18 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
2022-01-12 12:43:40 +0100yurusanP(~gsbush23@50.93.222.100) ()
2022-01-12 12:46:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2022-01-12 12:47:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 12:49:20 +0100Jing(~hedgehog@240e:390:7c53:a7e1:296a:5977:b176:470b)
2022-01-12 12:58:37 +0100antony(~The_viole@203.77.49.232) (Quit: Leaving)
2022-01-12 13:05:59 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 13:11:33 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 256 seconds)
2022-01-12 13:13:20 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-12 13:13:57 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 13:18:13 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-12 13:18:59 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2022-01-12 13:24:25 +0100pottsy(~pottsy@129.227.183.244)
2022-01-12 13:30:12 +0100xb0o2(~xb0o2@user/xb0o2)
2022-01-12 13:33:59 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 13:36:17 +0100benin(~benin@183.82.30.17) (Ping timeout: 240 seconds)
2022-01-12 13:42:08 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-12 13:42:31 +0100 <dminuoso> Is there base functions that applie toLower/toUpper on the first element only?
2022-01-12 13:43:25 +0100vgtw_(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 240 seconds)
2022-01-12 13:45:20 +0100 <geekosaur> not in base, no
2022-01-12 13:47:10 +0100 <dminuoso> Alright thanks
2022-01-12 13:47:33 +0100 <geekosaur> I think if yoiu're at that point you want to use text-icu and get titlecase right
2022-01-12 13:47:48 +0100 <merijn> titlecase doesn't do the first element, though :p
2022-01-12 13:47:55 +0100 <merijn> It does the first one of every word
2022-01-12 13:48:05 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-01-12 13:48:54 +0100 <dminuoso> geekosaur: Nah, Im just looking for a simple primitive to work with aeson generics
2022-01-12 13:49:05 +0100zaquest(~notzaques@5.130.79.72)
2022-01-12 13:49:50 +0100 <dminuoso> So realistically this is only ever going to see ASCII letters :)
2022-01-12 13:51:47 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-01-12 13:51:58 +0100 <hpc> that's like saying "realistically this is only ever going to see vowels" :P
2022-01-12 13:52:45 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2022-01-12 13:53:07 +0100 <merijn> Lies, damned lies, and programmers talking about the inputs their code will get
2022-01-12 13:53:12 +0100 <geekosaur> ^
2022-01-12 13:53:20 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
2022-01-12 13:53:36 +0100 <geekosaur> (although I'd usually just say "you hope")
2022-01-12 13:54:06 +0100 <dminuoso> well I have `data ObjectType = TyAll | TyZone | TyRecord | TyComment` and I just want a `constructorTagModifier = map1 toLower . strip "Ty"`
2022-01-12 13:54:29 +0100 <dminuoso> I think Im fine with the "given all expected inputs" thinking
2022-01-12 13:54:37 +0100lechner(~lechner@debian/lechner) (Ping timeout: 240 seconds)
2022-01-12 13:56:05 +0100 <dminuoso> Though it would be handy if Aeson had some primitive where I could say $(mkFromJsonEnum ''ObjectType [(TyAll, "all"), (TyRecord, "record"), (TyComment, "comment")]
2022-01-12 13:56:13 +0100max22-(~maxime@2a01cb08833598001d140f792dd3c52e.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2022-01-12 13:56:23 +0100 <dminuoso> Perhaps i ought to make that thing.
2022-01-12 13:57:26 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
2022-01-12 13:57:31 +0100goepsilongo(~goepsilon@2806:263:c404:8000:54bf:3582:265f:1026)
2022-01-12 13:59:11 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-12 13:59:21 +0100goepsilongo(~goepsilon@2806:263:c404:8000:54bf:3582:265f:1026) (Client Quit)
2022-01-12 14:00:41 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-12 14:03:25 +0100Alex_test(~al_test@178.34.151.107) (Quit: ;-)
2022-01-12 14:03:30 +0100AlexNoo(~AlexNoo@178.34.151.107) (Quit: Leaving)
2022-01-12 14:03:36 +0100AlexZenon(~alzenon@178.34.151.107) (Quit: ;-)
2022-01-12 14:09:28 +0100Arsen(arsen@managarm/dev/Arsen) (Quit: Quit.)
2022-01-12 14:09:46 +0100Arsen(arsen@managarm/dev/Arsen)
2022-01-12 14:19:42 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-01-12 14:22:21 +0100AlexZenon(~alzenon@178.34.151.107)
2022-01-12 14:22:37 +0100AlexNoo(~AlexNoo@178.34.151.107)
2022-01-12 14:26:00 +0100Alex_test(~al_test@178.34.151.107)
2022-01-12 14:26:07 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 14:26:47 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 14:27:17 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2022-01-12 14:27:17 +0100neurocyte0917(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2022-01-12 14:28:24 +0100neurocyte09170(~neurocyte@IP-046243084168.dynamic.medianet-world.de)
2022-01-12 14:28:24 +0100neurocyte09170(~neurocyte@IP-046243084168.dynamic.medianet-world.de) (Changing host)
2022-01-12 14:28:24 +0100neurocyte09170(~neurocyte@user/neurocyte)
2022-01-12 14:32:21 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
2022-01-12 14:32:37 +0100vysn(~vysn@user/vysn) (Ping timeout: 240 seconds)
2022-01-12 14:33:25 +0100breakwindows(~brkwnds@86.107.75.45) (Ping timeout: 240 seconds)
2022-01-12 14:36:36 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-12 14:37:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-01-12 14:37:18 +0100yauhsien(~yauhsien@61-231-29-214.dynamic-ip.hinet.net)
2022-01-12 14:40:08 +0100random_(~random@185.219.68.251)
2022-01-12 14:41:29 +0100siers(~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
2022-01-12 14:41:59 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-01-12 14:42:47 +0100random__(~random@185.219.68.251) (Ping timeout: 256 seconds)
2022-01-12 14:43:03 +0100siers(~ij@user/ij)
2022-01-12 14:47:25 +0100nhatanh02(~satori@123.24.172.30)
2022-01-12 14:50:09 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2)
2022-01-12 14:51:51 +0100max22-(~maxime@2a01cb0883359800849c77e11630007c.ipv6.abo.wanadoo.fr)
2022-01-12 15:00:02 +0100xb0o2(~xb0o2@user/xb0o2) (Quit: Client closed)
2022-01-12 15:00:39 +0100crazazy(~chatzilla@130.89.171.62)
2022-01-12 15:01:36 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41)
2022-01-12 15:07:18 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Quit: Reconnecting)
2022-01-12 15:07:30 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-01-12 15:08:02 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 15:10:15 +0100lechner(~lechner@debian/lechner)
2022-01-12 15:15:58 +0100Guest43(~Guest43@alotvpn.vps.wbsprt.com)
2022-01-12 15:17:27 +0100Guest43(~Guest43@alotvpn.vps.wbsprt.com) (Client Quit)
2022-01-12 15:17:49 +0100mzvonar(~mzvonar@alotvpn.vps.wbsprt.com)
2022-01-12 15:20:23 +0100guest(~guest@alotvpn.vps.wbsprt.com)
2022-01-12 15:20:39 +0100guest(~guest@alotvpn.vps.wbsprt.com) (Remote host closed the connection)
2022-01-12 15:21:08 +0100pavonia(~user@user/siracusa)
2022-01-12 15:21:28 +0100talismanick(~talismani@c-67-164-73-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2022-01-12 15:22:42 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving)
2022-01-12 15:22:56 +0100 <mzvonar> Hi guys, haskell beginner here. I was thinking if there's a reason that (++) function in standard library doesn't have a case "(++) xs [] = xs", which would skip the unnecessary traversal of the first argument if second argument is empty. Is this so the function is easier to reason about? Or does the compiler make this optimisation? Or is this
2022-01-12 15:22:57 +0100 <mzvonar> (kind of "asymmetric") optimisation not really saving much performance in real world? Thanks
2022-01-12 15:23:59 +0100 <merijn> mzvonar: Note the RULES "comment" underneath it
2022-01-12 15:24:51 +0100 <merijn> mzvonar: It actually gets a rewrite rule applied to it that rewrites applications of ++ into a fused version that (possibly) avoids building the list at all
2022-01-12 15:27:57 +0100 <mzvonar> oh, ok. I don't understand rewrite rules (yet), but that answers my question anyway, thanks!
2022-01-12 15:28:57 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 15:28:57 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 15:28:57 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 15:29:05 +0100jkaye(~jkaye@2601:281:8300:7530:6a7d:d789:f2c1:154c)
2022-01-12 15:29:19 +0100 <merijn> mzvonar: basically it's saying: replace "xs ++ ys" with "augment (\c n -> foldr c n xs) ys"
2022-01-12 15:30:11 +0100 <merijn> mzvonar: And foldr does shortcut when ys is [] :)
2022-01-12 15:30:33 +0100michalz(~michalz@185.246.204.107) (Read error: Connection reset by peer)
2022-01-12 15:30:39 +0100 <Axman6> not sure that works...
2022-01-12 15:31:02 +0100 <Axman6> that should have ys and xs flipped right?
2022-01-12 15:31:17 +0100 <Axman6> wait
2022-01-12 15:31:21 +0100michalz(~michalz@185.246.204.101)
2022-01-12 15:31:27 +0100 <mzvonar> oh, right. nice :) what I meant I understand how rewrite rules work, but I'm really confused how augment works
2022-01-12 15:31:28 +0100 <merijn> you're missing the augment :p
2022-01-12 15:31:28 +0100 <Axman6> what is augment?
2022-01-12 15:31:32 +0100max22-(~maxime@2a01cb0883359800849c77e11630007c.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2022-01-12 15:31:35 +0100kuribas(~user@ptr-25vy0i9q6berc613dpl.18120a2.ip6.access.telenet.be)
2022-01-12 15:32:29 +0100 <mzvonar> I guess ys gets passed to foldr as n argument, right?
2022-01-12 15:33:03 +0100 <merijn> augment g xs = g (:) xs
2022-01-12 15:35:29 +0100jgeerds__(~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 256 seconds)
2022-01-12 15:35:51 +0100 <Axman6> so that doesn;t take care of the case where ys is [] so you can avoid the call to foldr at all and just return xs, which I think was the point of the question
2022-01-12 15:36:38 +0100 <mzvonar> now I see it I guess, so c is (:) and n is ys
2022-01-12 15:38:52 +0100xkuru(~xkuru@user/xkuru)
2022-01-12 15:39:53 +0100 <merijn> Axman6: If foldr gets inlined it does
2022-01-12 15:41:19 +0100 <Axman6> foldr never inspects the z value
2022-01-12 15:41:32 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-01-12 15:42:56 +0100 <merijn> ah, wait, maybe my brain has them reversed
2022-01-12 15:44:44 +0100 <mzvonar> I thought I got it, but I got them reversed too :D
2022-01-12 15:45:16 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-12 15:46:04 +0100 <mzvonar> Ok, so (++) is actually not short circuiting when ys = [], right? Maybe the foldr implementation brings better advantages?
2022-01-12 15:47:12 +0100 <merijn> mzvonar: It's part of the fusion framework
2022-01-12 15:47:41 +0100 <merijn> mzvonar: fusion is about avoiding the construction of intermediate lists
2022-01-12 15:47:52 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
2022-01-12 15:48:15 +0100 <mzvonar> Another noob question: why not write the implementation straight in terms of foldr instead of rewriting it with the rule?
2022-01-12 15:48:21 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-12 15:48:32 +0100wre^(~wre@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 240 seconds)
2022-01-12 15:48:37 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds)
2022-01-12 15:48:56 +0100 <merijn> mzvonar: because there is an ordering and phases in which rewrite rules apply
2022-01-12 15:48:58 +0100xb0o2(~xb0o2@user/xb0o2)
2022-01-12 15:49:11 +0100 <merijn> mzvonar: So depending on the order they're applied other rules may or may not apply
2022-01-12 15:50:28 +0100 <mzvonar> oh, ok. sorry for silly questions. I'm still learning basics, so it's quite soon for me to dig in this low level stuff, but I'm curious :)
2022-01-12 15:50:46 +0100 <merijn> consider another rules that ends up changing "foo xs ys" into "f (xs ++ ys)" if you apply this rule before the ++ one, you can then rewrite the result using the ++ rule. If you replaced rules with implementation you lose that
2022-01-12 15:55:17 +0100xff0x(~xff0x@2001:1a81:538c:a900:ca7a:63a1:efb3:59ef) (Ping timeout: 240 seconds)
2022-01-12 15:55:47 +0100 <mzvonar> I meant if it was defined like this: "(++) xs ys = foldr (:) ys xs"
2022-01-12 15:56:37 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 240 seconds)
2022-01-12 15:56:49 +0100 <mzvonar> Then "foo xs ys" could get rewriten as "f (xs ++ ys)" which would become "f (foldr (:) ys xs". Would it be the same result?
2022-01-12 15:56:54 +0100 <geekosaur> wouldn't that reverse the first string?
2022-01-12 15:57:57 +0100 <mzvonar> geekosaur oh yes... So I'm back at not understanding the augment function :D
2022-01-12 15:59:24 +0100 <mzvonar> I guess I'll wait a year or two to gain more experience about how fusion and rewrites work :)
2022-01-12 16:01:15 +0100euandreh(~euandreh@2804:14c:33:9fe5:567f:a71e:f346:c5f0)
2022-01-12 16:01:29 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
2022-01-12 16:01:45 +0100shriekingnoise(~shrieking@181.229.0.83)
2022-01-12 16:03:17 +0100ec(~ec@gateway/tor-sasl/ec)
2022-01-12 16:03:21 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 16:03:58 +0100coot(~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
2022-01-12 16:04:35 +0100forell_forell
2022-01-12 16:04:59 +0100forell(~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host)
2022-01-12 16:04:59 +0100forell(~forell@user/forell)
2022-01-12 16:06:22 +0100 <mzvonar> geekosaur thinking about it again, it wouldn't reverse the list
2022-01-12 16:06:32 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-12 16:06:48 +0100 <kritzefitz> For example you could write "f cons empty = 1 `cons` 2 `cons` 3 `cons` empty" and `augment f []` would result in `[1,2,3]` whereas `f (+) 0` would directly result in `1 + 2 + 3`.
2022-01-12 16:07:45 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 16:07:45 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 16:07:45 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 16:07:48 +0100xff0x(~xff0x@2001:1a81:538c:a900:ca7a:63a1:efb3:59ef)
2022-01-12 16:08:02 +0100mikoto-chan(~mikoto-ch@194.157.16.89)
2022-01-12 16:08:07 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-01-12 16:13:02 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-12 16:13:45 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2022-01-12 16:14:28 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2022-01-12 16:14:35 +0100ec(~ec@gateway/tor-sasl/ec)
2022-01-12 16:16:23 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-12 16:16:55 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 16:16:55 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 16:16:55 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 16:17:37 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-12 16:18:23 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-01-12 16:20:49 +0100max22-(~maxime@2a01cb08833598009c1792461f3ff785.ipv6.abo.wanadoo.fr)
2022-01-12 16:21:23 +0100Sgeo(~Sgeo@user/sgeo)
2022-01-12 16:21:42 +0100fizbin(~fizbin@154.sub-174-198-10.myvzw.com)
2022-01-12 16:22:06 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-12 16:23:51 +0100maerwald(~maerwald@user/maerwald) (WeeChat 3.3)
2022-01-12 16:24:21 +0100maerwald(~maerwald@user/maerwald)
2022-01-12 16:25:29 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 16:25:29 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 16:25:29 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 16:30:13 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-12 16:31:38 +0100lavaman(~lavaman@98.38.249.169)
2022-01-12 16:32:04 +0100biberu(~biberu@user/biberu)
2022-01-12 16:39:16 +0100 <absence> how do i report errors or fail in a template haskell splice in ghc 9? the type of the splice changed from Q (TExp a) to Quote m => Code m a, but there's no MonadFail instance, and functions like reportError still retuirn Q ()
2022-01-12 16:39:20 +0100fizbin(~fizbin@154.sub-174-198-10.myvzw.com) (Read error: Connection reset by peer)
2022-01-12 16:40:45 +0100schweers(~user@2001:16b8:e960:8100:aaa1:59ff:fe3f:235c)
2022-01-12 16:41:21 +0100MironZ(~MironZ@nat-infra.ehlab.uk) (Quit: The Lounge - https://thelounge.chat)
2022-01-12 16:42:43 +0100MironZ(~MironZ@nat-infra.ehlab.uk)
2022-01-12 16:46:26 +0100Guest3977(~Guest39@2001:8b0:a3a:f3cf:a801:e09f:3591:91bc)
2022-01-12 16:46:43 +0100 <Guest3977> tomjaguarpaw here, testing Libera web chat
2022-01-12 16:46:49 +0100 <tomjaguarpaw> It works!
2022-01-12 16:46:54 +0100Guest3977(~Guest39@2001:8b0:a3a:f3cf:a801:e09f:3591:91bc) (Client Quit)
2022-01-12 16:47:24 +0100 <geekosaur> should just be a newer version of the kiwi chat on freenode
2022-01-12 16:47:55 +0100 <[exa]> absence: that might be a topic for #ghc if I get it right
2022-01-12 16:48:07 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 16:48:07 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 16:48:07 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 16:52:09 +0100 <merijn> absence: You can lift Q into Code, though
2022-01-12 16:52:51 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-01-12 16:56:56 +0100acidjnk(~acidjnk@2001:16b8:6743:e100:c1f4:58dd:c8a4:2c18)
2022-01-12 16:58:33 +0100 <absence> merijn: hmm, it's not clear from the documentation which function can do that. i get that m ~ Q, so that i'm dealing with Code Q a, but i don't see anything that can lift e.g. Q (), only Q (TExp a)
2022-01-12 16:58:55 +0100 <merijn> absence: I forgot which one, but the GHC release notes have some migration notes, iirc
2022-01-12 17:00:18 +0100aveltras[m](~aveltrasm@2001:470:69fc:105::3ef9) (Quit: You have been kicked for being idle)
2022-01-12 17:01:33 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 17:02:15 +0100 <absence> merijn: these ones? https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0 i've been reading that, and it doesn't mention anything about this
2022-01-12 17:02:56 +0100jacks-(~bc8147f2@cerf.good1.com)
2022-01-12 17:03:16 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 245 seconds)
2022-01-12 17:03:51 +0100 <merijn> Wrong GHC version? I think Code and co are in 9.2? :p
2022-01-12 17:04:15 +0100 <merijn> absence: Oh, wait!
2022-01-12 17:04:22 +0100 <merijn> absence: There is a template-haskell compat library
2022-01-12 17:04:36 +0100 <jacks-> hi. I need to programmatically convert alpha-3 code to country name. does anyone have a link where there's an easy to parse file with that information?
2022-01-12 17:04:46 +0100 <jacks-> (or perhaps even a package on hackage)
2022-01-12 17:05:11 +0100 <merijn> absence: That's what I did (but forgot): https://hackage.haskell.org/package/th-compat
2022-01-12 17:05:44 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-01-12 17:05:44 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-01-12 17:06:33 +0100 <merijn> absence: https://github.com/merijn/validated-literals/commit/a32515b898ceceb195987f354525511806b05f74
2022-01-12 17:06:47 +0100 <merijn> absence: That's my commit to fix it to work across old and new TH
2022-01-12 17:07:17 +0100 <jacks-> I found one. https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes
2022-01-12 17:07:25 +0100xsperry(~xs@user/xsperry)
2022-01-12 17:07:29 +0100 <absence> merijn: i see. i'm just looking to migrate to new th though, so i won't need th-compat
2022-01-12 17:14:03 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2022-01-12 17:15:50 +0100Tuplanolla(~Tuplanoll@91-159-68-166.elisa-laajakaista.fi)
2022-01-12 17:16:05 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-01-12 17:17:49 +0100ec(~ec@gateway/tor-sasl/ec)
2022-01-12 17:20:00 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-12 17:22:42 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:586d:5e29:f9c4:61ba) (Quit: WeeChat 2.8)
2022-01-12 17:24:02 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 240 seconds)
2022-01-12 17:24:20 +0100mzvonar(~mzvonar@alotvpn.vps.wbsprt.com) (Quit: Client closed)
2022-01-12 17:25:13 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41)
2022-01-12 17:25:55 +0100xlei(~akans@pool-71-125-19-142.nycmny.fios.verizon.net) (Quit: ZNC 1.9.x-git-167-81df4dec - https://znc.in)
2022-01-12 17:26:04 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 17:26:57 +0100trillp(~trillp@69.233.98.238)
2022-01-12 17:27:14 +0100xlei(~akans@pool-71-125-19-142.nycmny.fios.verizon.net)
2022-01-12 17:27:27 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-01-12 17:28:14 +0100pottsy(~pottsy@129.227.183.244) (Ping timeout: 250 seconds)
2022-01-12 17:28:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2022-01-12 17:31:51 +0100acidjnk(~acidjnk@2001:16b8:6743:e100:c1f4:58dd:c8a4:2c18) (Ping timeout: 250 seconds)
2022-01-12 17:31:51 +0100danso(~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds)
2022-01-12 17:32:58 +0100danso(~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
2022-01-12 17:33:55 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2022-01-12 17:37:12 +0100 <janus> how do i make cabal-run consume a library from the current directory?
2022-01-12 17:38:33 +0100arjun(~arjun@user/arjun) (Quit: Leaving)
2022-01-12 17:38:50 +0100 <byorgey> janus: can you be more specific? Not sure I understand what you're asking.
2022-01-12 17:39:17 +0100 <janus> i have a cabal script in the current directory, and i want to use it to test the repo that i also have checked out in the same directory
2022-01-12 17:39:34 +0100 <janus> but if i do a build-depends in the cabal script, it tries to pull the dep from hackage instead of the current directory
2022-01-12 17:39:48 +0100pottsy(~pottsy@129.227.183.244)
2022-01-12 17:39:58 +0100 <janus> i guess i want a version of 'source-repository-package' that works with cabal scripts
2022-01-12 17:40:59 +0100 <byorgey> janus: I'm not really sure, but maybe you want to make a cabal.project file?
2022-01-12 17:41:27 +0100 <janus> i have, it doesn't seem like cabal-run is picking up on it
2022-01-12 17:41:34 +0100 <geekosaur> I am guessing this is just yet another thing that doesn't play well with cabal scripts
2022-01-12 17:41:37 +0100 <janus> maybe there is a way to do source-repository-package in the script prelude
2022-01-12 17:41:47 +0100 <geekosaur> they're really just kinda tacked on
2022-01-12 17:41:49 +0100 <fendor[m]> I don't think you can make the script see that cabal.project file
2022-01-12 17:42:18 +0100 <janus> ok, i will just make a new executable in the cabal file instead then
2022-01-12 17:43:01 +0100jakalx(~jakalx@base.jakalx.net)
2022-01-12 17:45:34 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-01-12 17:46:00 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-01-12 17:46:01 +0100pottsy(~pottsy@129.227.183.244) (Ping timeout: 250 seconds)
2022-01-12 17:46:56 +0100 <fendor[m]> yeah, cabal scripts are... a bit weird
2022-01-12 17:47:20 +0100acidjnk(~acidjnk@2001:16b8:6743:e100:c1f4:58dd:c8a4:2c18)
2022-01-12 17:49:06 +0100shapr(~user@2601:7c0:c202:5190:f73c:d98b:42b3:a084)
2022-01-12 17:51:47 +0100acidjnk(~acidjnk@2001:16b8:6743:e100:c1f4:58dd:c8a4:2c18) (Ping timeout: 250 seconds)
2022-01-12 17:51:49 +0100pgib(~textual@173.38.117.77) (Ping timeout: 240 seconds)
2022-01-12 17:54:38 +0100crazazy(~chatzilla@130.89.171.62) (Quit: ChatZilla 0.10 [SeaMonkey 2.53.10.2/20211220132845])
2022-01-12 17:58:37 +0100arahael(~arahael@203.158.51.1) (Ping timeout: 240 seconds)
2022-01-12 17:59:17 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 17:59:20 +0100chele(~chele@user/chele) (Remote host closed the connection)
2022-01-12 18:00:22 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-12 18:02:26 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-01-12 18:02:27 +0100MoC(~moc@user/moc)
2022-01-12 18:02:48 +0100Akiva(~Akiva@user/Akiva)
2022-01-12 18:03:07 +0100Vajb(~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
2022-01-12 18:04:16 +0100unyu(~pyon@user/pyon) (Read error: Connection reset by peer)
2022-01-12 18:05:21 +0100coot(~coot@89-64-85-93.dynamic.chello.pl)
2022-01-12 18:06:23 +0100unyu(~pyon@user/pyon)
2022-01-12 18:06:23 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-01-12 18:06:24 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
2022-01-12 18:06:57 +0100pgib(~textual@173.38.117.86)
2022-01-12 18:07:33 +0100arjun(~arjun@user/arjun)
2022-01-12 18:08:27 +0100 <arjun> made my benchmarks threaded with the -rtsopts -threaded
2022-01-12 18:08:38 +0100 <arjun> benchmark numbers went up, doubled in some cases
2022-01-12 18:09:03 +0100 <arjun> this common ?
2022-01-12 18:10:56 +0100 <sclv> it really depends on the code
2022-01-12 18:11:06 +0100 <sclv> the threaded rts can cause all sorts of different runtime behavior
2022-01-12 18:11:18 +0100 <EvanR> if anything anywhere is relying on threadDelay, it is much more responsive with -threaded
2022-01-12 18:11:28 +0100Franciman(~Franciman@mx1.fracta.dev) (see ya never)
2022-01-12 18:11:57 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 250 seconds)
2022-01-12 18:12:10 +0100 <arjun> its just simple lists, folds and sums
2022-01-12 18:12:32 +0100 <arjun> i was trying out the criterion library
2022-01-12 18:13:11 +0100 <ephemient> parallel gc maybe? although that always worked slower in my experience before
2022-01-12 18:13:42 +0100 <c_wraith> wait.. does "numbers went up" mean faster or slower?
2022-01-12 18:14:12 +0100 <arjun> c_wraith, timing numbers went up, i believe it went slower
2022-01-12 18:14:13 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2022-01-12 18:14:20 +0100 <c_wraith> that's to be expected.
2022-01-12 18:14:39 +0100 <c_wraith> the threaded RTS has to have more locking around some things
2022-01-12 18:14:45 +0100 <c_wraith> how are you benchmarking?
2022-01-12 18:15:09 +0100 <ephemient> oh try running with +RTS -qg or something like that to disable parallel gc
2022-01-12 18:15:48 +0100 <tomsmeding> arjun: did you also pass some -N flag, or really only -threaded?
2022-01-12 18:17:16 +0100 <arjun> tomsmeding, ghc-options: -rtsopts -threaded -with-rtsopts=-N
2022-01-12 18:17:34 +0100 <c_wraith> I mean, I'm really suspicious that some call to putStrLn is being included in the benchmark, and it has to grab and release a mutually exclusive lock for each character of output with the threaded RTS
2022-01-12 18:17:40 +0100 <tomsmeding> arjun: also try without that -N
2022-01-12 18:18:42 +0100 <tomsmeding> that way separate the effect of the threaded runtime from the effect of having more hardware threads; and also try -qg like ephemient already mentioned
2022-01-12 18:19:56 +0100 <arjun> tomsmeding, ghc-options: -rtsopts -threaded only pings 1 core
2022-01-12 18:20:03 +0100 <tomsmeding> true
2022-01-12 18:20:16 +0100 <tomsmeding> but it uses a different runtime
2022-01-12 18:20:29 +0100 <arjun> yea, numbers are back to the ones
2022-01-12 18:20:33 +0100 <arjun> in that case
2022-01-12 18:20:43 +0100 <arjun> without threaded ones
2022-01-12 18:20:56 +0100 <tomsmeding> and -N -qg?
2022-01-12 18:20:58 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 18:21:14 +0100 <arjun> how do i put those in the cabal file?
2022-01-12 18:21:21 +0100dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
2022-01-12 18:21:33 +0100 <tomsmeding> um, same way? :p
2022-01-12 18:21:40 +0100 <arjun> ghc-options: -rtsopts -threaded -with-rtsopts=-Nqg
2022-01-12 18:21:47 +0100 <arjun> or ghc-options: -rtsopts -threaded -with-rtsopts=-N -qg
2022-01-12 18:21:52 +0100 <arjun> or sumthin? : P
2022-01-12 18:22:22 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net)
2022-01-12 18:22:23 +0100 <tomsmeding> try "-with-rtsopts=-N -qg" with the quotes
2022-01-12 18:23:47 +0100cheater(~Username@user/cheater)
2022-01-12 18:23:47 +0100benin(~benin@183.82.30.17)
2022-01-12 18:23:49 +0100 <arjun> still pinging single core
2022-01-12 18:24:11 +0100 <tomsmeding> right, then your workload is just single-core
2022-01-12 18:24:25 +0100 <tomsmeding> all the multicore activity that you saw was the GC doing its work in a multi threaded manner
2022-01-12 18:24:42 +0100 <tomsmeding> and probably being less efficient than just doing it single-threaded, which is what you're telling it to do with -qg
2022-01-12 18:24:47 +0100Constraintegic(~DundiDund@ppp-212-114-229-173.dynamic.mnet-online.de)
2022-01-12 18:25:03 +0100 <arjun> so it should just finish faster rather than running faster?
2022-01-12 18:25:19 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
2022-01-12 18:25:24 +0100 <tomsmeding> no it might finish slower
2022-01-12 18:25:43 +0100 <tomsmeding> parallel GC is only useful if you have a _huge_ amount of stuff to traverse or something, I'm not actually sure
2022-01-12 18:25:55 +0100 <tomsmeding> some say -qg should be the default, with not-"-qg" being a tuning option
2022-01-12 18:26:13 +0100 <arjun> where would i benefit from using threaded stuff for real, like super dope speedup ?
2022-01-12 18:26:20 +0100 <tomsmeding> sometimes parallel gc is faster than single-threaded gc, but empirically, for smaller programs, often not
2022-01-12 18:26:27 +0100 <geekosaur> I think -qg is default as of 9.0?
2022-01-12 18:26:29 +0100 <tomsmeding> well if your stuff is actually parallel :p
2022-01-12 18:26:51 +0100 <arjun> tomsmeding :p
2022-01-12 18:26:53 +0100 <tomsmeding> if you use the 'async' library, or rpar from parallel-strategies, or forkIO
2022-01-12 18:27:11 +0100 <maerwald> or streamly :p
2022-01-12 18:27:14 +0100 <tomsmeding> haskell doesn't automatically parallelise your stuff, you have to at least tell it _where_ to
2022-01-12 18:27:19 +0100 <arjun> ah, so i have to specify it
2022-01-12 18:27:30 +0100 <tomsmeding> maerwald: right, which does said things under the hood :p
2022-01-12 18:27:49 +0100 <maerwald> well, you mentioned async too
2022-01-12 18:27:53 +0100MoC(~moc@user/moc) (Quit: Konversation terminated!)
2022-01-12 18:27:53 +0100 <arjun> sup' maerwald
2022-01-12 18:28:00 +0100 <tomsmeding> haskell has fearless parallelism, but no fully automatic parallelism
2022-01-12 18:28:03 +0100 <tomsmeding> maerwald: good point
2022-01-12 18:28:24 +0100 <maerwald> arjun: jet lagged, looking at haskell xml code and understand nothing
2022-01-12 18:28:37 +0100 <arjun> tomsmeding, i think i took declarative to heart : P
2022-01-12 18:28:41 +0100 <tomsmeding> why are you looking at xml code
2022-01-12 18:28:47 +0100 <maerwald> also rage posting here and there
2022-01-12 18:28:52 +0100kilolympus(~kilolympu@31.205.200.235)
2022-01-12 18:28:57 +0100 <maerwald> tomsmeding: someone is paying me to
2022-01-12 18:28:58 +0100 <tomsmeding> arjun: haskell would very gladly have automatic parallelism, but it's a really really hard problem :p
2022-01-12 18:29:01 +0100 <tomsmeding> ah
2022-01-12 18:29:01 +0100Jing(~hedgehog@240e:390:7c53:a7e1:296a:5977:b176:470b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-12 18:29:21 +0100 <arjun> tomsmeding, r/nevertellmetheodds
2022-01-12 18:29:28 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-12 18:30:09 +0100 <arjun> maerwald, you're travelling?
2022-01-12 18:30:14 +0100 <c_wraith> it's easy to automatically parallelize haskell code. It's hard to make it speed up code on average. :P
2022-01-12 18:30:28 +0100 <maerwald> arjun: yeah
2022-01-12 18:30:41 +0100 <tomsmeding> c_wraith: I mean, yeah :p
2022-01-12 18:30:47 +0100 <arjun> maerwald, be safe, well as much one can be.
2022-01-12 18:31:16 +0100 <tomsmeding> c_wraith: and to think that "on average" is actually pretty bad, you'd rather have "in most cases"
2022-01-12 18:31:18 +0100 <geekosaur> guess not
2022-01-12 18:31:21 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-12 18:31:33 +0100jumper149(~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.3)
2022-01-12 18:31:47 +0100 <geekosaur> they discussed it but improved performance of the parallel garbage collector enough that they decided it was unnecessary
2022-01-12 18:32:15 +0100 <tomsmeding> interesting
2022-01-12 18:32:23 +0100 <tomsmeding> in 9.0?
2022-01-12 18:32:52 +0100 <geekosaur> 9.2.1
2022-01-12 18:33:08 +0100 <geekosaur> see its release notes
2022-01-12 18:35:35 +0100tomsmedingremembers reading that at some point on second thought
2022-01-12 18:36:25 +0100 <c_wraith> is that the same release that added the non-copying collector as an option?
2022-01-12 18:38:20 +0100 <tomsmeding> c_wraith: seems to be since 8.10.1? https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#rts-flag---no…
2022-01-12 18:38:40 +0100 <c_wraith> really? I didn't think that was that old
2022-01-12 18:38:52 +0100xb0o2(~xb0o2@user/xb0o2) (Quit: Client closed)
2022-01-12 18:39:02 +0100 <tomsmeding> me neither
2022-01-12 18:39:15 +0100 <tomsmeding> hence the ? lol
2022-01-12 18:39:26 +0100 <geekosaur> 8.10.2 has a flag to disable it
2022-01-12 18:39:38 +0100 <geekosaur> 8.10.1 doesn';t mention nonmoving gc though
2022-01-12 18:40:35 +0100jeetelongname(~jeet@148.197.248.63)
2022-01-12 18:40:55 +0100 <tomsmeding> geekosaur: https://downloads.haskell.org/~ghc/8.10.1/docs/html/users_guide/runtime_control.html#rts-flag---no… ?
2022-01-12 18:41:11 +0100 <geekosaur> I meant in the release notes, sorry
2022-01-12 18:41:15 +0100 <tomsmeding> ah
2022-01-12 18:41:19 +0100 <geekosaur> so it apparently predates 8.10
2022-01-12 18:41:36 +0100 <tomsmeding> doubtful, I remember not having it on 8.8.4
2022-01-12 18:42:07 +0100madjestic(~madjestic@77-63-50-60.mobile.kpn.net)
2022-01-12 18:42:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 18:43:13 +0100 <geekosaur> so I guess they never documented it?
2022-01-12 18:43:34 +0100 <geekosaur> in the release notes? but I could have sworn I'd read of it in some release note
2022-01-12 18:44:02 +0100 <tomsmeding> https://well-typed.com/blog/2019/10/nonmoving-gc-merge/ "Low-latency garbage collector merged for GHC 8.10"
2022-01-12 18:47:35 +0100jeetelongname(~jeet@148.197.248.63) (Ping timeout: 256 seconds)
2022-01-12 18:53:25 +0100Constraintegic(~DundiDund@ppp-212-114-229-173.dynamic.mnet-online.de) (Ping timeout: 240 seconds)
2022-01-12 18:54:43 +0100alphabeta(~kilolympu@31.205.200.235)
2022-01-12 18:54:43 +0100Vajb(~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer)
2022-01-12 18:56:33 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-12 18:56:38 +0100awpr(uid446117@id-446117.lymington.irccloud.com)
2022-01-12 18:56:39 +0100madjestic(~madjestic@77-63-50-60.mobile.kpn.net) (Read error: Connection reset by peer)
2022-01-12 18:57:40 +0100zebrag(~chris@user/zebrag)
2022-01-12 19:00:21 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-12 19:01:41 +0100jgeerds__(~jgeerds@55d4bbed.access.ecotel.net)
2022-01-12 19:02:19 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 256 seconds)
2022-01-12 19:03:42 +0100kuribas(~user@ptr-25vy0i9q6berc613dpl.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2022-01-12 19:05:01 +0100jeetelongname(~jeet@148.197.248.63)
2022-01-12 19:06:25 +0100alphabeta(~kilolympu@31.205.200.235) (Quit: Quitting IRC :()
2022-01-12 19:07:05 +0100MoC(~moc@user/moc)
2022-01-12 19:08:08 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds)
2022-01-12 19:09:12 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-12 19:10:16 +0100nhatanh02(~satori@123.24.172.30)
2022-01-12 19:11:59 +0100mbuf(~Shakthi@223.178.108.186) (Quit: Leaving)
2022-01-12 19:12:16 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-01-12 19:12:36 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-12 19:16:00 +0100 <gentauro_> any hints to `debug` "lsp-ui-doc"? I upgraded `hls` and `emacs` packages and now it suddently dissapeared …
2022-01-12 19:16:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2022-01-12 19:16:53 +0100gentauro_(~gentauro@185.107.12.141) (Changing host)
2022-01-12 19:16:53 +0100gentauro_(~gentauro@user/gentauro)
2022-01-12 19:17:24 +0100nhatanh02(~satori@123.24.172.30) (Quit: leaving)
2022-01-12 19:19:04 +0100gentauro_gentauro
2022-01-12 19:19:13 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-12 19:21:00 +0100 <ProfSimm> In Haskell if I have to represent a stream, is there a way to discard the already read bytes as the consumer iterates, or basically that's entirely up to GC
2022-01-12 19:21:58 +0100 <EvanR> if you do it right the the consumed bytes are gone pretty fast
2022-01-12 19:22:07 +0100 <EvanR> i.e. they don't leave the nursery
2022-01-12 19:22:20 +0100 <ProfSimm> EvanR: is there some way to represent a "window" into a stream
2022-01-12 19:22:27 +0100 <ProfSimm> So it can't possibly be used wrong
2022-01-12 19:22:31 +0100 <EvanR> heh
2022-01-12 19:23:06 +0100trillp(~trillp@69.233.98.238) (Quit: WeeChat 3.3)
2022-01-12 19:23:09 +0100 <ProfSimm> When I go into #rust they tell me I need haskell :P when I come here, it's like I need rust :)
2022-01-12 19:23:10 +0100 <EvanR> iteratees, conduits, pipes, machines,
2022-01-12 19:24:24 +0100 <ProfSimm> EvanR: cool
2022-01-12 19:24:51 +0100statusbot5(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2022-01-12 19:25:15 +0100phma_(phma@2001:5b0:212a:9158:6d66:ed09:dec5:bdad)
2022-01-12 19:26:01 +0100dagit3146(~dagit@c-24-21-226-72.hsd1.or.comcast.net)
2022-01-12 19:26:06 +0100jkaye_(~jkaye@2601:281:8300:7530:6a7d:d789:f2c1:154c)
2022-01-12 19:26:35 +0100Katarushisu0(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2022-01-12 19:26:41 +0100cpape`(~user@2a01:4f9:c010:632d::1)
2022-01-12 19:27:27 +0100gregberns___(sid315709@id-315709.helmsley.irccloud.com)
2022-01-12 19:27:27 +0100teehemkay__(sid14792@id-14792.lymington.irccloud.com)
2022-01-12 19:27:28 +0100dunj3_(~dunj3@kingdread.de)
2022-01-12 19:27:28 +0100rtpg_(sid443069@id-443069.ilkley.irccloud.com)
2022-01-12 19:27:29 +0100Firedancer_(sid336191@id-336191.hampstead.irccloud.com)
2022-01-12 19:27:29 +0100edmundnoble_(sid229620@id-229620.helmsley.irccloud.com)
2022-01-12 19:27:29 +0100tnks_(sid412124@id-412124.helmsley.irccloud.com)
2022-01-12 19:27:31 +0100glowcoil_(sid3405@id-3405.tinside.irccloud.com)
2022-01-12 19:27:31 +0100lally_(sid388228@id-388228.uxbridge.irccloud.com)
2022-01-12 19:27:31 +0100degraafk_(sid71464@id-71464.lymington.irccloud.com)
2022-01-12 19:27:31 +0100davetapley_(sid666@id-666.uxbridge.irccloud.com)
2022-01-12 19:27:32 +0100megaTherion_(~therion@unix.io)
2022-01-12 19:27:33 +0100defanor_(~defanor@tart.uberspace.net)
2022-01-12 19:27:33 +0100gmc__(sid58314@id-58314.ilkley.irccloud.com)
2022-01-12 19:27:34 +0100cawfee_(~root@2406:3003:2077:2758::babe)
2022-01-12 19:27:35 +0100philpax__(sid516926@id-516926.lymington.irccloud.com)
2022-01-12 19:27:36 +0100bbear_(~znc@21212.s.t4vps.eu)
2022-01-12 19:27:37 +0100codedmart_(codedmart@2600:3c01::f03c:92ff:fefe:8511)
2022-01-12 19:27:41 +0100integral_(sid296274@user/integral)
2022-01-12 19:27:44 +0100berberman_(~berberman@user/berberman)
2022-01-12 19:27:44 +0100PotatoGim_(sid99505@id-99505.lymington.irccloud.com)
2022-01-12 19:27:44 +0100dragestil_(~znc@user/dragestil)
2022-01-12 19:27:46 +0100hexeme(~hexeme@user/hexeme)
2022-01-12 19:27:51 +0100sunarch_(uid526836@user/sunarch)
2022-01-12 19:27:59 +0100jakesyl__(sid56879@id-56879.hampstead.irccloud.com)
2022-01-12 19:28:05 +0100lightandlight_(sid135476@id-135476.helmsley.irccloud.com)
2022-01-12 19:28:08 +0100b20n_(sid115913@id-115913.uxbridge.irccloud.com)
2022-01-12 19:28:10 +0100whez_(sid470288@id-470288.lymington.irccloud.com)
2022-01-12 19:28:10 +0100ehamberg_(sid18208@id-18208.hampstead.irccloud.com)
2022-01-12 19:28:12 +0100caasih_(sid13241@id-13241.ilkley.irccloud.com)
2022-01-12 19:28:13 +0100_0x47__(sid508683@id-508683.tinside.irccloud.com)
2022-01-12 19:28:19 +0100nrr___(sid20938@id-20938.lymington.irccloud.com)
2022-01-12 19:28:20 +0100dispater-(~dispater@user/brprice)
2022-01-12 19:28:28 +0100hugo-(znc@verdigris.lysator.liu.se)
2022-01-12 19:28:44 +0100NiKaN_(sid385034@id-385034.helmsley.irccloud.com)
2022-01-12 19:28:46 +0100burakcan-(~burakcank@has.arrived.and.is.ready-to.party)
2022-01-12 19:28:49 +0100travv0_(sid293381@user/travv0)
2022-01-12 19:28:52 +0100S11001001_(sid42510@ilkley.irccloud.com)
2022-01-12 19:29:01 +0100defanor(~defanor@tart.uberspace.net) (Killed (NickServ (GHOST command used by defanor_)))
2022-01-12 19:29:09 +0100hueso_(~root@user/hueso)
2022-01-12 19:29:17 +0100xnbya2(~xnbya@2a01:4f8:c17:cbdd::1)
2022-01-12 19:29:17 +0100defanor_defanor
2022-01-12 19:29:21 +0100riatre_(~quassel@2001:310:6000:f::5198:1)
2022-01-12 19:29:24 +0100micro_(~micro@user/micro)
2022-01-12 19:29:25 +0100xnyhps_(~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288)
2022-01-12 19:29:25 +0100Arsen_(arsen@managarm/dev/Arsen)
2022-01-12 19:29:28 +0100swistak-(~swistak@185.21.216.141)
2022-01-12 19:29:32 +0100TimWolla_(~timwolla@2a01:4f8:150:6153:beef::6667)
2022-01-12 19:29:33 +0100energizer_(~energizer@user/energizer)
2022-01-12 19:29:37 +0100vjok1(~vjoki@2a00:d880:3:1::fea1:9ae)
2022-01-12 19:29:38 +0100cosimone`(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-12 19:29:38 +0100tomjagua1paw(~tom@li367-225.members.linode.com)
2022-01-12 19:29:42 +0100domcornloan(~mike@user/feetwind)
2022-01-12 19:29:54 +0100lisk1n(~liskin@xmonad/liskin)
2022-01-12 19:30:03 +0100welterde1(welterde@thinkbase.srv.welterde.de)
2022-01-12 19:30:09 +0100aweinsto1k(~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com)
2022-01-12 19:30:11 +0100kronicmage(user75299@neotame.csclub.uwaterloo.ca)
2022-01-12 19:30:17 +0100cross_(~cross@spitfire.i.gajendra.net)
2022-01-12 19:30:24 +0100ts3(~ts@46.101.20.9)
2022-01-12 19:30:24 +0100[exa]_(exa@srv3.blesmrt.net)
2022-01-12 19:30:28 +0100dixie_(~dixie@real.wilbury.sk)
2022-01-12 19:30:31 +0100robbert(~robbert@robbertvanderhelm.nl)
2022-01-12 19:30:39 +0100dka(~code-is-a@193.70.33.83) (Ping timeout: 256 seconds)
2022-01-12 19:30:53 +0100immae1(~immae@2a01:4f8:141:53e7::)
2022-01-12 19:30:55 +0100Ttech(~adran@botters/adran)
2022-01-12 19:31:03 +0100derelict_(~derelict@user/derelict)
2022-01-12 19:31:08 +0100[exa]_(exa@srv3.blesmrt.net) (Changing host)
2022-01-12 19:31:08 +0100[exa]_(exa@user/exa/x-3587197)
2022-01-12 19:31:12 +0100robbert-vdh(~robbert@robbertvanderhelm.nl) (Killed (zirconium.libera.chat (Nickname regained by services)))
2022-01-12 19:31:12 +0100robbertrobbert-vdh
2022-01-12 19:31:30 +0100[exa](exa@user/exa/x-3587197) (Killed (tantalum.libera.chat (Nickname regained by services)))
2022-01-12 19:31:30 +0100[exa]_[exa]
2022-01-12 19:32:02 +0100pie__(~pie_bnc@user/pie/x-2818909)
2022-01-12 19:32:27 +0100dka(~code-is-a@ns3059207.ip-193-70-33.eu)
2022-01-12 19:32:55 +0100dispater-(~dispater@user/brprice) (Ping timeout: 256 seconds)
2022-01-12 19:33:22 +0100dispater-(~dispater@user/brprice)
2022-01-12 19:34:02 +0100dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2022-01-12 19:34:03 +0100energizer_(~energizer@user/energizer) (Ping timeout: 256 seconds)
2022-01-12 19:34:03 +0100travv0_(sid293381@user/travv0) (Ping timeout: 256 seconds)
2022-01-12 19:34:22 +0100eco(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com)
2022-01-12 19:34:34 +0100emf(~emf@c-73-97-137-43.hsd1.wa.comcast.net) (*.net *.split)
2022-01-12 19:34:34 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (*.net *.split)
2022-01-12 19:34:34 +0100jkaye(~jkaye@2601:281:8300:7530:6a7d:d789:f2c1:154c) (*.net *.split)
2022-01-12 19:34:34 +0100Arsen(arsen@managarm/dev/Arsen) (*.net *.split)
2022-01-12 19:34:34 +0100phma(phma@2001:5b0:212a:9158:a864:46d6:7a87:abb) (*.net *.split)
2022-01-12 19:34:34 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (*.net *.split)
2022-01-12 19:34:34 +0100hueso(~root@user/hueso) (*.net *.split)
2022-01-12 19:34:34 +0100tomboy64(~tomboy64@user/tomboy64) (*.net *.split)
2022-01-12 19:34:34 +0100sunarch(uid526836@user/sunarch) (*.net *.split)
2022-01-12 19:34:34 +0100kronicma1(user27604@neotame.csclub.uwaterloo.ca) (*.net *.split)
2022-01-12 19:34:34 +0100riatre(~quassel@2001:310:6000:f::5198:1) (*.net *.split)
2022-01-12 19:34:34 +0100sphynx(~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split)
2022-01-12 19:34:34 +0100retro_(~retro@2e40edd9.skybroadband.com) (*.net *.split)
2022-01-12 19:34:34 +0100lally(sid388228@id-388228.uxbridge.irccloud.com) (*.net *.split)
2022-01-12 19:34:34 +0100hugo(znc@verdigris.lysator.liu.se) (*.net *.split)
2022-01-12 19:34:34 +0100megaTherion(~therion@unix.io) (*.net *.split)
2022-01-12 19:34:34 +0100dagit(~dagit@2001:558:6025:38:6476:a063:d05a:44da) (*.net *.split)
2022-01-12 19:34:34 +0100berberman(~berberman@user/berberman) (*.net *.split)
2022-01-12 19:34:34 +0100adamCS(~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split)
2022-01-12 19:34:34 +0100xdej(~xdej@quatramaran.salle-s.org) (*.net *.split)
2022-01-12 19:34:34 +0100eco_(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (*.net *.split)
2022-01-12 19:34:34 +0100ldlework(~hexeme@user/hexeme) (*.net *.split)
2022-01-12 19:34:34 +0100Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (*.net *.split)
2022-01-12 19:34:34 +0100synthmeat(~synthmeat@user/synthmeat) (*.net *.split)
2022-01-12 19:34:34 +0100hubvu(sid495858@user/hubvu) (*.net *.split)
2022-01-12 19:34:35 +0100burakcank(~burakcank@has.arrived.and.is.ready-to.party) (*.net *.split)
2022-01-12 19:34:35 +0100statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split)
2022-01-12 19:34:35 +0100feetwind(~mike@user/feetwind) (*.net *.split)
2022-01-12 19:34:35 +0100Ranhir(~Ranhir@157.97.53.139) (*.net *.split)
2022-01-12 19:34:35 +0100Firedancer(sid336191@id-336191.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100degraafk(sid71464@id-71464.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100glowcoil(sid3405@id-3405.tinside.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100carter(sid14827@id-14827.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100aweinstock(~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (*.net *.split)
2022-01-12 19:34:35 +0100pie_(~pie_bnc@user/pie/x-2818909) (*.net *.split)
2022-01-12 19:34:35 +0100derelict(derelict@user/derelict) (*.net *.split)
2022-01-12 19:34:35 +0100ystael(~ystael@user/ystael) (*.net *.split)
2022-01-12 19:34:35 +0100ts2(~ts@46.101.20.9) (*.net *.split)
2022-01-12 19:34:35 +0100g(x@libera/staff/glguy) (*.net *.split)
2022-01-12 19:34:35 +0100swistak(~swistak@185.21.216.141) (*.net *.split)
2022-01-12 19:34:35 +0100nrr__(sid20938@id-20938.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100gmc(sid58314@id-58314.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100integral(sid296274@user/integral) (*.net *.split)
2022-01-12 19:34:35 +0100dispater(~dispater@user/brprice) (*.net *.split)
2022-01-12 19:34:35 +0100jamestmartin(~james@jtmar.me) (*.net *.split)
2022-01-12 19:34:35 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
2022-01-12 19:34:35 +0100ehamberg(sid18208@id-18208.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
2022-01-12 19:34:35 +0100TMA(tma@twin.jikos.cz) (*.net *.split)
2022-01-12 19:34:35 +0100iphy(sid67735@id-67735.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100whez(sid470288@id-470288.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100_0x47_(sid508683@id-508683.tinside.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100teehemkay_(sid14792@id-14792.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100gregberns__(sid315709@id-315709.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100micro(~micro@user/micro) (*.net *.split)
2022-01-12 19:34:35 +0100russruss(~russruss@my.russellmcc.com) (*.net *.split)
2022-01-12 19:34:35 +0100S11001001(sid42510@id-42510.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100NiKaN(sid385034@id-385034.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100tnks(sid412124@id-412124.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100marienz(~marienz@libera/staff/marienz) (*.net *.split)
2022-01-12 19:34:35 +0100davetapley(sid666@id-666.uxbridge.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100rtpg(sid443069@id-443069.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100b20n(sid115913@id-115913.uxbridge.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100lightandlight(sid135476@id-135476.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100caasih(sid13241@id-13241.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100edmundnoble(sid229620@id-229620.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100PotatoGim(sid99505@id-99505.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100travv0(sid293381@user/travv0) (*.net *.split)
2022-01-12 19:34:35 +0100philpax_(sid516926@id-516926.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100jakesyl_(sid56879@id-56879.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:35 +0100Ekho(~Ekho@user/ekho) (*.net *.split)
2022-01-12 19:34:35 +0100bbear(~znc@21212.s.t4vps.eu) (*.net *.split)
2022-01-12 19:34:35 +0100dragestil(~znc@user/dragestil) (*.net *.split)
2022-01-12 19:34:35 +0100welterde(welterde@thinkbase.srv.welterde.de) (*.net *.split)
2022-01-12 19:34:35 +0100cawfee(~root@2406:3003:2077:2758::babe) (*.net *.split)
2022-01-12 19:34:35 +0100earthy(~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) (*.net *.split)
2022-01-12 19:34:35 +0100liskin(~liskin@xmonad/liskin) (*.net *.split)
2022-01-12 19:34:35 +0100codedmart(codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split)
2022-01-12 19:34:35 +0100xnbya(~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
2022-01-12 19:34:36 +0100bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split)
2022-01-12 19:34:36 +0100Adran(~adran@botters/adran) (*.net *.split)
2022-01-12 19:34:36 +0100energizer(~energizer@user/energizer) (*.net *.split)
2022-01-12 19:34:36 +0100tomjaguarpaw(~tom@li367-225.members.linode.com) (*.net *.split)
2022-01-12 19:34:36 +0100immae(~immae@2a01:4f8:141:53e7::) (*.net *.split)
2022-01-12 19:34:36 +0100cross(~cross@spitfire.i.gajendra.net) (*.net *.split)
2022-01-12 19:34:36 +0100dixie(~dixie@real.wilbury.sk) (*.net *.split)
2022-01-12 19:34:36 +0100cpape(~user@2a01:4f9:c010:632d::1) (*.net *.split)
2022-01-12 19:34:36 +0100janus(janus@anubis.0x90.dk) (*.net *.split)
2022-01-12 19:34:36 +0100dunj3(~dunj3@kingdread.de) (*.net *.split)
2022-01-12 19:34:36 +0100glguy(x@libera/staff/glguy) (*.net *.split)
2022-01-12 19:34:36 +0100MoC(~moc@user/moc) (*.net *.split)
2022-01-12 19:34:36 +0100zebrag(~chris@user/zebrag) (*.net *.split)
2022-01-12 19:34:36 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (*.net *.split)
2022-01-12 19:34:36 +0100deadmarshal(~deadmarsh@95.38.231.124) (*.net *.split)
2022-01-12 19:34:36 +0100xlei(~akans@pool-71-125-19-142.nycmny.fios.verizon.net) (*.net *.split)
2022-01-12 19:34:36 +0100Sgeo(~Sgeo@user/sgeo) (*.net *.split)
2022-01-12 19:34:36 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (*.net *.split)
2022-01-12 19:34:36 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split)
2022-01-12 19:34:36 +0100xkuru(~xkuru@user/xkuru) (*.net *.split)
2022-01-12 19:34:36 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (*.net *.split)
2022-01-12 19:34:36 +0100AlexZenon(~alzenon@178.34.151.107) (*.net *.split)
2022-01-12 19:34:36 +0100alx741(~alx741@157.100.93.160) (*.net *.split)
2022-01-12 19:34:36 +0100gawen(~gawen@user/gawen) (*.net *.split)
2022-01-12 19:34:36 +0100__monty__(~toonn@user/toonn) (*.net *.split)
2022-01-12 19:34:36 +0100sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (*.net *.split)
2022-01-12 19:34:36 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (*.net *.split)
2022-01-12 19:34:36 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split)
2022-01-12 19:34:36 +0100absence(torgeihe@hildring.pvv.ntnu.no) (*.net *.split)
2022-01-12 19:34:36 +0100vglfr(~vglfr@46.96.134.134) (*.net *.split)
2022-01-12 19:34:36 +0100xsarnik(xsarnik@lounge.fi.muni.cz) (*.net *.split)
2022-01-12 19:34:36 +0100sektor(~kvirc@87.227.175.182) (*.net *.split)
2022-01-12 19:34:36 +0100Flonk(~Flonk@vps-zap441517-1.zap-srv.com) (*.net *.split)
2022-01-12 19:34:36 +0100kawpuh(~kawpuh@66.42.81.80) (*.net *.split)
2022-01-12 19:34:36 +0100n3t(n3t@user/n3t) (*.net *.split)
2022-01-12 19:34:36 +0100nurupo(~nurupo.ga@user/nurupo) (*.net *.split)
2022-01-12 19:34:36 +0100byorgey(~byorgey@155.138.238.211) (*.net *.split)
2022-01-12 19:34:36 +0100remedan(~remedan@octo.cafe) (*.net *.split)
2022-01-12 19:34:36 +0100drewr(~drew@user/drewr) (*.net *.split)
2022-01-12 19:34:37 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (*.net *.split)
2022-01-12 19:34:37 +0100awpr(uid446117@id-446117.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:37 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (*.net *.split)
2022-01-12 19:34:37 +0100Akiva(~Akiva@user/Akiva) (*.net *.split)
2022-01-12 19:34:37 +0100shapr(~user@2601:7c0:c202:5190:f73c:d98b:42b3:a084) (*.net *.split)
2022-01-12 19:34:37 +0100biberu(~biberu@user/biberu) (*.net *.split)
2022-01-12 19:34:37 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (*.net *.split)
2022-01-12 19:34:37 +0100mikoto-chan(~mikoto-ch@194.157.16.89) (*.net *.split)
2022-01-12 19:34:37 +0100xff0x(~xff0x@2001:1a81:538c:a900:ca7a:63a1:efb3:59ef) (*.net *.split)
2022-01-12 19:34:37 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (*.net *.split)
2022-01-12 19:34:37 +0100zaquest(~notzaques@5.130.79.72) (*.net *.split)
2022-01-12 19:34:37 +0100mc47(~mc47@xmonad/TheMC47) (*.net *.split)
2022-01-12 19:34:37 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it) (*.net *.split)
2022-01-12 19:34:37 +0100jmct_(sid160793@id-160793.tinside.irccloud.com) (*.net *.split)
2022-01-12 19:34:37 +0100MajorBiscuit(~MajorBisc@c-001-022-052.client.tudelft.eduvpn.nl) (*.net *.split)
2022-01-12 19:34:37 +0100koolazer(~koo@user/koolazer) (*.net *.split)
2022-01-12 19:34:37 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net) (*.net *.split)
2022-01-12 19:34:37 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (*.net *.split)
2022-01-12 19:34:37 +0100polyphem_(~rod@2a02:810d:840:8754:e450:3ca3:b389:687a) (*.net *.split)
2022-01-12 19:34:37 +0100gentauro(~gentauro@user/gentauro) (*.net *.split)
2022-01-12 19:34:37 +0100wrengr(~wrengr@150.12.83.34.bc.googleusercontent.com) (*.net *.split)
2022-01-12 19:34:37 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (*.net *.split)
2022-01-12 19:34:37 +0100hgolden_(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (*.net *.split)
2022-01-12 19:34:37 +0100emergence(thelounge@2607:5300:60:5910:dcad:beff:feef:5bc) (*.net *.split)
2022-01-12 19:34:37 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (*.net *.split)
2022-01-12 19:34:37 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net) (*.net *.split)
2022-01-12 19:34:37 +0100aeka`(~aeka@2606:6080:1001:f:ed79:9361:ea0e:3e88) (*.net *.split)
2022-01-12 19:34:37 +0100mvk(~mvk@2607:fea8:5cdd:f000::55f8) (*.net *.split)
2022-01-12 19:34:37 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split)
2022-01-12 19:34:37 +0100joel135(sid136450@id-136450.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:37 +0100h_(rootvegeta@fsf/member/hays) (*.net *.split)
2022-01-12 19:34:37 +0100noddy(~user@user/noddy) (*.net *.split)
2022-01-12 19:34:37 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
2022-01-12 19:34:37 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split)
2022-01-12 19:34:37 +0100sabx(~sabbas@user/sabbas) (*.net *.split)
2022-01-12 19:34:37 +0100remexre(~remexre@user/remexre) (*.net *.split)
2022-01-12 19:34:37 +0100cls(~cls@chalk.lubutu.com) (*.net *.split)
2022-01-12 19:34:37 +0100sprout_(~quassel@2a02:a467:ccd6:1:d9b7:23d6:79dd:2e64) (*.net *.split)
2022-01-12 19:34:37 +0100elvishjerricco(sid237756@id-237756.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:37 +0100_FlawLess_(~user@2a01:e0a:a4:7098::10) (*.net *.split)
2022-01-12 19:34:37 +0100choucavalier(~choucaval@peanutbuttervibes.com) (*.net *.split)
2022-01-12 19:34:37 +0100jrm(~jrm@156.34.249.199) (*.net *.split)
2022-01-12 19:34:37 +0100Hafydd(~Hafydd@user/hafydd) (*.net *.split)
2022-01-12 19:34:37 +0100stefan-_(~cri@42dots.de) (*.net *.split)
2022-01-12 19:34:37 +0100jespada(~jespada@87.74.36.188) (*.net *.split)
2022-01-12 19:34:37 +0100haasn(~nand@haasn.dev) (*.net *.split)
2022-01-12 19:34:37 +0100EvanR(~EvanR@user/evanr) (*.net *.split)
2022-01-12 19:34:37 +0100dextaa(~DV@user/dextaa) (*.net *.split)
2022-01-12 19:34:37 +0100jinsun(~quassel@user/jinsun) (*.net *.split)
2022-01-12 19:34:37 +0100Hash(~Hash@hashsecurity.org) (*.net *.split)
2022-01-12 19:34:37 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (*.net *.split)
2022-01-12 19:34:37 +0100mud(~mud@user/kadoban) (*.net *.split)
2022-01-12 19:34:37 +0100Megant(megant@user/megant) (*.net *.split)
2022-01-12 19:34:37 +0100incertia(~incertia@24.42.241.219) (*.net *.split)
2022-01-12 19:34:37 +0100caubert(~caubert@136.244.111.235) (*.net *.split)
2022-01-12 19:34:37 +0100rubin55(sid175221@id-175221.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:37 +0100yaroot(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (*.net *.split)
2022-01-12 19:34:37 +0100ddb(~ddb@ipv6two.tilde.club) (*.net *.split)
2022-01-12 19:34:37 +0100tito(tito@tilde.team) (*.net *.split)
2022-01-12 19:34:37 +0100theproffesor(~theproffe@user/theproffesor) (*.net *.split)
2022-01-12 19:34:37 +0100carbolymer(~carbolyme@dropacid.net) (*.net *.split)
2022-01-12 19:34:37 +0100hrdl(~hrdl@mail.hrdl.eu) (*.net *.split)
2022-01-12 19:34:38 +0100mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (*.net *.split)
2022-01-12 19:34:38 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (*.net *.split)
2022-01-12 19:34:38 +0100lagash(lagash@lagash.shelltalk.net) (*.net *.split)
2022-01-12 19:34:38 +0100Techcable(~Techcable@168.235.93.147) (*.net *.split)
2022-01-12 19:34:38 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100neverwas(jpneverwas@swissbox.unperson.link) (*.net *.split)
2022-01-12 19:34:38 +0100bsima1(9d7e39c8ad@2604:bf00:561:2000::dd) (*.net *.split)
2022-01-12 19:34:38 +0100opqdonut(opqdonut@pseudo.fixme.fi) (*.net *.split)
2022-01-12 19:34:38 +0100nisstyre(~wes@user/nisstyre) (*.net *.split)
2022-01-12 19:34:38 +0100greyrat(~greyrat@ip202.ip-51-178-215.eu) (*.net *.split)
2022-01-12 19:34:38 +0100Clint(~Clint@user/clint) (*.net *.split)
2022-01-12 19:34:38 +0100kristjansson(sid126207@id-126207.tinside.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100hexology(~hexology@user/hexology) (*.net *.split)
2022-01-12 19:34:38 +0100landonf(landonf@mac68k.info) (*.net *.split)
2022-01-12 19:34:38 +0100Logio(em@kapsi.fi) (*.net *.split)
2022-01-12 19:34:38 +0100raghavgururajan(ea769b8000@user/raghavgururajan) (*.net *.split)
2022-01-12 19:34:38 +0100totte(~totte@h-82-196-112-155.A166.priv.bahnhof.se) (*.net *.split)
2022-01-12 19:34:38 +0100w1gz(~do@159.89.11.133) (*.net *.split)
2022-01-12 19:34:38 +0100In0perable(~PLAYER_1@fancydata.science) (*.net *.split)
2022-01-12 19:34:38 +0100iteratee_(~kyle@162.218.222.107) (*.net *.split)
2022-01-12 19:34:38 +0100ridcully(~ridcully@p57b52a9a.dip0.t-ipconnect.de) (*.net *.split)
2022-01-12 19:34:38 +0100dolio(~dolio@130.44.130.54) (*.net *.split)
2022-01-12 19:34:38 +0100stilgart(~Christoph@chezlefab.net) (*.net *.split)
2022-01-12 19:34:38 +0100enikar(~enikar@user/enikar) (*.net *.split)
2022-01-12 19:34:38 +0100farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
2022-01-12 19:34:38 +0100andjjj23(~irc@107.170.228.47) (*.net *.split)
2022-01-12 19:34:38 +0100tubogram4(~tubogram@user/tubogram) (*.net *.split)
2022-01-12 19:34:38 +0100Axman6(~Axman6@user/axman6) (*.net *.split)
2022-01-12 19:34:38 +0100Boarders_(sid425905@id-425905.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100JSharp(sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100ysh(sid6017@id-6017.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100saolsen(sid26430@id-26430.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100tapas(sid467876@id-467876.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100cbarrett(sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100enemeth79(sid309041@id-309041.lymington.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100bjs(sid190364@user/bjs) (*.net *.split)
2022-01-12 19:34:38 +0100sclv(sid39734@haskell/developer/sclv) (*.net *.split)
2022-01-12 19:34:38 +0100mrianbloom(sid350277@id-350277.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100dmj`(sid72307@id-72307.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100acertain(sid470584@id-470584.hampstead.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100gaze___(sid387101@id-387101.helmsley.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100V(~v@anomalous.eu) (*.net *.split)
2022-01-12 19:34:38 +0100SethTisue__(sid14912@id-14912.ilkley.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100hongminhee(sid295@id-295.tinside.irccloud.com) (*.net *.split)
2022-01-12 19:34:38 +0100sm[i](~user@plaintextaccounting/sm) (*.net *.split)
2022-01-12 19:34:38 +0100vjok1vjoki
2022-01-12 19:34:38 +0100dragestil_dragestil
2022-01-12 19:34:38 +0100degraafk_degraafk
2022-01-12 19:34:38 +0100davetapley_davetapley
2022-01-12 19:34:38 +0100_0x47___0x47_
2022-01-12 19:34:38 +0100edmundnoble_edmundnoble
2022-01-12 19:34:38 +0100b20n_b20n
2022-01-12 19:34:38 +0100lightandlight_lightandlight
2022-01-12 19:34:38 +0100janus__(janus@anubis.0x90.dk)
2022-01-12 19:34:38 +0100ehamberg_ehamberg
2022-01-12 19:34:38 +0100marienz__(~marienz@libera/staff/marienz)
2022-01-12 19:34:38 +0100tnks_tnks
2022-01-12 19:34:38 +0100rtpg_rtpg
2022-01-12 19:34:38 +0100caasih_caasih
2022-01-12 19:34:42 +0100burakcan-burakcank
2022-01-12 19:34:42 +0100lally_lally
2022-01-12 19:34:42 +0100derelict_derelict
2022-01-12 19:34:42 +0100TimWolla_TimWolla
2022-01-12 19:34:42 +0100gmc__gmc
2022-01-12 19:34:42 +0100Firedancer_Firedancer
2022-01-12 19:34:42 +0100whez_whez
2022-01-12 19:34:42 +0100teehemkay__teehemkay_
2022-01-12 19:34:42 +0100S11001001_S11001001
2022-01-12 19:34:42 +0100philpax__philpax_
2022-01-12 19:34:42 +0100gregberns___gregberns__
2022-01-12 19:34:42 +0100sunarch_sunarch
2022-01-12 19:34:42 +0100integral_integral
2022-01-12 19:34:44 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-01-12 19:34:44 +0100PotatoGim_PotatoGim
2022-01-12 19:34:46 +0100Katarushisu0Katarushisu
2022-01-12 19:34:53 +0100NiKaN_NiKaN
2022-01-12 19:35:21 +0100arjun(~arjun@user/arjun) (Quit: Leaving)
2022-01-12 19:35:29 +0100welterde1welterde
2022-01-12 19:35:50 +0100arjun(~arjun@user/arjun)
2022-01-12 19:35:58 +0100travv0_(sid293381@id-293381.helmsley.irccloud.com)
2022-01-12 19:36:13 +0100adamCS(~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
2022-01-12 19:36:26 +0100energizer(~energizer@user/energizer)
2022-01-12 19:36:53 +0100Ttech(~adran@botters/adran) (Ping timeout: 249 seconds)
2022-01-12 19:36:53 +0100biog(~user1@static.39.160.132.142.clients.your-server.de) (Ping timeout: 249 seconds)
2022-01-12 19:37:07 +0100jeetelongname(~jeet@148.197.248.63) (Remote host closed the connection)
2022-01-12 19:37:29 +0100dibblego(~dibblego@122-199-1-30.ip4.superloop.com)
2022-01-12 19:37:29 +0100dibblego(~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
2022-01-12 19:37:29 +0100dibblego(~dibblego@haskell/developer/dibblego)
2022-01-12 19:38:31 +0100emf(~emf@2620:10d:c090:400::5:3f1)
2022-01-12 19:38:37 +0100carter_(sid14827@helmsley.irccloud.com)
2022-01-12 19:38:37 +0100bravespear|2(~Ranhir@157.97.53.139)
2022-01-12 19:38:37 +0100xdej_(~xdej@quatramaran.salle-s.org)
2022-01-12 19:38:37 +0100nefercheprure(~tma@twin.jikos.cz)
2022-01-12 19:38:37 +0100hubvu_(sid495858@tinside.irccloud.com)
2022-01-12 19:38:37 +0100jtmar(~james@jtmar.me)
2022-01-12 19:38:37 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-12 19:38:37 +0100zebrag(~chris@user/zebrag)
2022-01-12 19:38:37 +0100awpr(uid446117@id-446117.lymington.irccloud.com)
2022-01-12 19:38:37 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-12 19:38:37 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-12 19:38:37 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-01-12 19:38:37 +0100Akiva(~Akiva@user/Akiva)
2022-01-12 19:38:37 +0100shapr(~user@2601:7c0:c202:5190:f73c:d98b:42b3:a084)
2022-01-12 19:38:37 +0100xlei(~akans@pool-71-125-19-142.nycmny.fios.verizon.net)
2022-01-12 19:38:37 +0100biberu(~biberu@user/biberu)
2022-01-12 19:38:37 +0100Sgeo(~Sgeo@user/sgeo)
2022-01-12 19:38:37 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-01-12 19:38:37 +0100mikoto-chan(~mikoto-ch@194.157.16.89)
2022-01-12 19:38:37 +0100xff0x(~xff0x@2001:1a81:538c:a900:ca7a:63a1:efb3:59ef)
2022-01-12 19:38:37 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 19:38:37 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
2022-01-12 19:38:37 +0100xkuru(~xkuru@user/xkuru)
2022-01-12 19:38:37 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 19:38:37 +0100AlexZenon(~alzenon@178.34.151.107)
2022-01-12 19:38:37 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
2022-01-12 19:38:37 +0100zaquest(~notzaques@5.130.79.72)
2022-01-12 19:38:37 +0100alx741(~alx741@157.100.93.160)
2022-01-12 19:38:37 +0100gawen(~gawen@user/gawen)
2022-01-12 19:38:37 +0100__monty__(~toonn@user/toonn)
2022-01-12 19:38:37 +0100sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2022-01-12 19:38:37 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2022-01-12 19:38:37 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2022-01-12 19:38:37 +0100mc47(~mc47@xmonad/TheMC47)
2022-01-12 19:38:37 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it)
2022-01-12 19:38:37 +0100jmct_(sid160793@id-160793.tinside.irccloud.com)
2022-01-12 19:38:37 +0100MajorBiscuit(~MajorBisc@c-001-022-052.client.tudelft.eduvpn.nl)
2022-01-12 19:38:37 +0100absence(torgeihe@hildring.pvv.ntnu.no)
2022-01-12 19:38:37 +0100vglfr(~vglfr@46.96.134.134)
2022-01-12 19:38:37 +0100koolazer(~koo@user/koolazer)
2022-01-12 19:38:37 +0100drewr(~drew@user/drewr)
2022-01-12 19:38:37 +0100remedan(~remedan@octo.cafe)
2022-01-12 19:38:37 +0100byorgey(~byorgey@155.138.238.211)
2022-01-12 19:38:37 +0100nurupo(~nurupo.ga@user/nurupo)
2022-01-12 19:38:37 +0100n3t(n3t@user/n3t)
2022-01-12 19:38:37 +0100kawpuh(~kawpuh@66.42.81.80)
2022-01-12 19:38:37 +0100Flonk(~Flonk@vps-zap441517-1.zap-srv.com)
2022-01-12 19:38:37 +0100sektor(~kvirc@87.227.175.182)
2022-01-12 19:38:37 +0100xsarnik(xsarnik@lounge.fi.muni.cz)
2022-01-12 19:38:37 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net)
2022-01-12 19:38:37 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-01-12 19:38:37 +0100polyphem_(~rod@2a02:810d:840:8754:e450:3ca3:b389:687a)
2022-01-12 19:38:37 +0100wrengr(~wrengr@150.12.83.34.bc.googleusercontent.com)
2022-01-12 19:38:37 +0100gentauro(~gentauro@user/gentauro)
2022-01-12 19:38:37 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
2022-01-12 19:38:37 +0100hgolden_(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2022-01-12 19:38:37 +0100emergence(thelounge@2607:5300:60:5910:dcad:beff:feef:5bc)
2022-01-12 19:38:37 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-12 19:38:37 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-01-12 19:38:37 +0100aeka`(~aeka@2606:6080:1001:f:ed79:9361:ea0e:3e88)
2022-01-12 19:38:37 +0100mvk(~mvk@2607:fea8:5cdd:f000::55f8)
2022-01-12 19:38:37 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2022-01-12 19:38:37 +0100_FlawLess_(~user@2a01:e0a:a4:7098::10)
2022-01-12 19:38:37 +0100joel135(sid136450@id-136450.hampstead.irccloud.com)
2022-01-12 19:38:37 +0100h_(rootvegeta@fsf/member/hays)
2022-01-12 19:38:37 +0100noddy(~user@user/noddy)
2022-01-12 19:38:37 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-01-12 19:38:37 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2022-01-12 19:38:37 +0100sabx(~sabbas@user/sabbas)
2022-01-12 19:38:37 +0100remexre(~remexre@user/remexre)
2022-01-12 19:38:37 +0100cls(~cls@chalk.lubutu.com)
2022-01-12 19:38:37 +0100sprout_(~quassel@2a02:a467:ccd6:1:d9b7:23d6:79dd:2e64)
2022-01-12 19:38:37 +0100Hash(~Hash@hashsecurity.org)
2022-01-12 19:38:37 +0100elvishjerricco(sid237756@id-237756.helmsley.irccloud.com)
2022-01-12 19:38:37 +0100choucavalier(~choucaval@peanutbuttervibes.com)
2022-01-12 19:38:37 +0100glguy(x@libera/staff/glguy)
2022-01-12 19:38:37 +0100jrm(~jrm@156.34.249.199)
2022-01-12 19:38:37 +0100Hafydd(~Hafydd@user/hafydd)
2022-01-12 19:38:37 +0100stefan-_(~cri@42dots.de)
2022-01-12 19:38:37 +0100jespada(~jespada@87.74.36.188)
2022-01-12 19:38:37 +0100haasn(~nand@haasn.dev)
2022-01-12 19:38:37 +0100EvanR(~EvanR@user/evanr)
2022-01-12 19:38:37 +0100dextaa(~DV@user/dextaa)
2022-01-12 19:38:37 +0100jinsun(~quassel@user/jinsun)
2022-01-12 19:38:37 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-01-12 19:38:37 +0100mud(~mud@user/kadoban)
2022-01-12 19:38:37 +0100Megant(megant@user/megant)
2022-01-12 19:38:37 +0100incertia(~incertia@24.42.241.219)
2022-01-12 19:38:37 +0100caubert(~caubert@136.244.111.235)
2022-01-12 19:38:37 +0100rubin55(sid175221@id-175221.hampstead.irccloud.com)
2022-01-12 19:38:37 +0100yaroot(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
2022-01-12 19:38:37 +0100ddb(~ddb@ipv6two.tilde.club)
2022-01-12 19:38:37 +0100tito(tito@tilde.team)
2022-01-12 19:38:37 +0100theproffesor(~theproffe@user/theproffesor)
2022-01-12 19:38:37 +0100carbolymer(~carbolyme@dropacid.net)
2022-01-12 19:38:37 +0100hrdl(~hrdl@mail.hrdl.eu)
2022-01-12 19:38:37 +0100mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2022-01-12 19:38:37 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2022-01-12 19:38:37 +0100lagash(lagash@lagash.shelltalk.net)
2022-01-12 19:38:37 +0100Techcable(~Techcable@168.235.93.147)
2022-01-12 19:38:37 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-01-12 19:38:37 +0100neverwas(jpneverwas@swissbox.unperson.link)
2022-01-12 19:38:37 +0100bsima1(9d7e39c8ad@2604:bf00:561:2000::dd)
2022-01-12 19:38:37 +0100opqdonut(opqdonut@pseudo.fixme.fi)
2022-01-12 19:38:37 +0100nisstyre(~wes@user/nisstyre)
2022-01-12 19:38:37 +0100greyrat(~greyrat@ip202.ip-51-178-215.eu)
2022-01-12 19:38:37 +0100Clint(~Clint@user/clint)
2022-01-12 19:38:37 +0100kristjansson(sid126207@id-126207.tinside.irccloud.com)
2022-01-12 19:38:37 +0100landonf(landonf@mac68k.info)
2022-01-12 19:38:37 +0100hexology(~hexology@user/hexology)
2022-01-12 19:38:37 +0100Logio(em@kapsi.fi)
2022-01-12 19:38:37 +0100raghavgururajan(ea769b8000@user/raghavgururajan)
2022-01-12 19:38:37 +0100totte(~totte@h-82-196-112-155.A166.priv.bahnhof.se)
2022-01-12 19:38:37 +0100In0perable(~PLAYER_1@fancydata.science)
2022-01-12 19:38:37 +0100w1gz(~do@159.89.11.133)
2022-01-12 19:38:37 +0100iteratee_(~kyle@162.218.222.107)
2022-01-12 19:38:37 +0100ridcully(~ridcully@p57b52a9a.dip0.t-ipconnect.de)
2022-01-12 19:38:37 +0100dolio(~dolio@130.44.130.54)
2022-01-12 19:38:37 +0100stilgart(~Christoph@chezlefab.net)
2022-01-12 19:38:37 +0100enikar(~enikar@user/enikar)
2022-01-12 19:38:37 +0100farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2022-01-12 19:38:37 +0100Axman6(~Axman6@user/axman6)
2022-01-12 19:38:37 +0100tubogram4(~tubogram@user/tubogram)
2022-01-12 19:38:37 +0100andjjj23(~irc@107.170.228.47)
2022-01-12 19:38:37 +0100sm[i](~user@plaintextaccounting/sm)
2022-01-12 19:38:37 +0100hongminhee(sid295@id-295.tinside.irccloud.com)
2022-01-12 19:38:37 +0100SethTisue__(sid14912@id-14912.ilkley.irccloud.com)
2022-01-12 19:38:37 +0100V(~v@anomalous.eu)
2022-01-12 19:38:37 +0100gaze___(sid387101@id-387101.helmsley.irccloud.com)
2022-01-12 19:38:37 +0100acertain(sid470584@id-470584.hampstead.irccloud.com)
2022-01-12 19:38:37 +0100dmj`(sid72307@id-72307.hampstead.irccloud.com)
2022-01-12 19:38:37 +0100mrianbloom(sid350277@id-350277.ilkley.irccloud.com)
2022-01-12 19:38:37 +0100sclv(sid39734@haskell/developer/sclv)
2022-01-12 19:38:37 +0100bjs(sid190364@user/bjs)
2022-01-12 19:38:37 +0100enemeth79(sid309041@id-309041.lymington.irccloud.com)
2022-01-12 19:38:37 +0100cbarrett(sid192934@id-192934.helmsley.irccloud.com)
2022-01-12 19:38:37 +0100tapas(sid467876@id-467876.ilkley.irccloud.com)
2022-01-12 19:38:37 +0100saolsen(sid26430@id-26430.lymington.irccloud.com)
2022-01-12 19:38:37 +0100ysh(sid6017@id-6017.ilkley.irccloud.com)
2022-01-12 19:38:37 +0100JSharp(sid4580@id-4580.lymington.irccloud.com)
2022-01-12 19:38:37 +0100mercury.libera.chat+o Axman6
2022-01-12 19:38:37 +0100Boarders_(sid425905@id-425905.lymington.irccloud.com)
2022-01-12 19:38:39 +0100little_mac(~little_ma@2601:410:4300:3ce0:7d45:c5da:471f:1879)
2022-01-12 19:38:42 +0100pie__(~pie_bnc@user/pie/x-2818909) (Ping timeout: 263 seconds)
2022-01-12 19:38:54 +0100Adran(~adran@botters/adran)
2022-01-12 19:39:14 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-12 19:39:41 +0100pie_(~pie_bnc@user/pie/x-2818909)
2022-01-12 19:39:44 +0100ystael(~ystael@user/ystael)
2022-01-12 19:40:40 +0100Ekho-(~Ekho@user/ekho)
2022-01-12 19:42:08 +0100earthy(~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0)
2022-01-12 19:42:09 +0100synthmeat(~synthmeat@user/synthmeat)
2022-01-12 19:42:13 +0100bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org)
2022-01-12 19:42:14 +0100iphy(sid67735@id-67735.lymington.irccloud.com)
2022-01-12 19:42:17 +0100g(x@libera/staff/glguy)
2022-01-12 19:42:20 +0100tomboy64(~tomboy64@user/tomboy64)
2022-01-12 19:43:03 +0100fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2022-01-12 19:43:07 +0100swistak-(~swistak@185.21.216.141) (Ping timeout: 256 seconds)
2022-01-12 19:43:54 +0100ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-01-12 19:44:12 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-01-12 19:45:43 +0100coot(~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
2022-01-12 19:47:47 +0100swistak(~swistak@185.21.216.141)
2022-01-12 19:47:54 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-12 19:47:54 +0100xb0o2(~xb0o2@user/xb0o2)
2022-01-12 19:51:10 +0100prite(~pritam@user/pritambaral)
2022-01-12 19:52:56 +0100trillp(~trillp@69.233.98.238)
2022-01-12 19:56:21 +0100nefercheprureTMA
2022-01-12 19:57:41 +0100 <arjun> -qg
2022-01-12 20:00:10 +0100dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Quit: Leaving)
2022-01-12 20:00:49 +0100 <[itchyjunk]> i find this example from a book to be so crazy and neat
2022-01-12 20:00:50 +0100 <[itchyjunk]> https://bpa.st/XAFA
2022-01-12 20:00:57 +0100 <[itchyjunk]> id never have thought of it
2022-01-12 20:01:35 +0100max22-(~maxime@2a01cb08833598009c1792461f3ff785.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
2022-01-12 20:01:49 +0100 <ephemient> well, that's the trivial translation of idea of quicksort into Haskell
2022-01-12 20:02:08 +0100trillp(~trillp@69.233.98.238) (WeeChat 3.3)
2022-01-12 20:02:43 +0100 <int-e> emphasis on *idea*
2022-01-12 20:04:37 +0100prite(~pritam@user/pritambaral) (Ping timeout: 250 seconds)
2022-01-12 20:04:40 +0100pritambaral(~pritam@user/pritambaral)
2022-01-12 20:04:59 +0100 <ephemient> yeah, its shortcomings have been discussed in many places
2022-01-12 20:06:30 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
2022-01-12 20:06:51 +0100acidjnk(~acidjnk@2001:16b8:6743:e100:9926:5e7c:ff5d:ab3b)
2022-01-12 20:07:09 +0100cosimone`(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-12 20:07:46 +0100cosimone`(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2022-01-12 20:09:58 +0100lisk1nliskin
2022-01-12 20:11:25 +0100Arsen_Arsen
2022-01-12 20:14:02 +0100acidjnk(~acidjnk@2001:16b8:6743:e100:9926:5e7c:ff5d:ab3b) (Ping timeout: 252 seconds)
2022-01-12 20:16:57 +0100zaquest(~notzaques@5.130.79.72) (Ping timeout: 240 seconds)
2022-01-12 20:17:34 +0100 <byorgey> it's still a neat idea though!
2022-01-12 20:17:36 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-01-12 20:19:19 +0100 <monochrom> I am beginning to be of the opinion of s/idea of//
2022-01-12 20:19:34 +0100 <monochrom> But not very strongly.
2022-01-12 20:19:56 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2022-01-12 20:20:20 +0100 <monochrom> My overarching opinion is that people have too strong opinions on what aspect of an algorithm to focus on.
2022-01-12 20:22:19 +0100 <monochrom> I teach quicksort by emphasizing the divide-and-conquer aspect. Everything else you say (going out of your way to choose a pivot, going out of your way to use no temp memory), I consider details of [premature] optimizations.
2022-01-12 20:22:47 +0100 <int-e> well... you have linked lists, you shouldn't be using quicksort
2022-01-12 20:23:04 +0100 <monochrom> Without such distracting [and premature] optimizations, the simple Haskell code is quicksort.
2022-01-12 20:23:10 +0100 <int-e> the optimizations for in-place sorting of arrays are the only redeeming features
2022-01-12 20:23:11 +0100phma_phma
2022-01-12 20:23:20 +0100 <int-e> that quicksort has
2022-01-12 20:24:11 +0100geekosauris tempted to say "you have linked lists, you shouldn't be using sort"
2022-01-12 20:24:19 +0100 <monochrom> haha
2022-01-12 20:24:31 +0100 <int-e> yeah, a defensible position
2022-01-12 20:25:18 +0100econo(uid147250@user/econo)
2022-01-12 20:25:34 +0100 <int-e> 100000 elements is a short list, right? :-P
2022-01-12 20:26:47 +0100zaquest(~notzaques@5.130.79.72)
2022-01-12 20:27:26 +0100 <int-e> Also, for whatever reason, I like the basic bottom-up merge sort (that's dynamically a heap sort).
2022-01-12 20:28:01 +0100arjun(~arjun@user/arjun) (Quit: Leaving)
2022-01-12 20:29:47 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 20:30:15 +0100Guest|25(~Guest|25@137.205.0.148)
2022-01-12 20:30:17 +0100 <int-e> > let merge (x:xs) (y:ys) | x < y = x : merge xs (y:ys) | otherwise = y : merge (x:xs) ys; merge xs [] = xs; merge [] ys = ys; mergePairs (xs:ys:xss) = merge xs ys:mergePairs xss; mergePairs xss = xss; mergeAll [xs] = xs; mergeAll xss = mergeAll (mergePairs xss); sort = mergeAll . map pure in sort [1,42,3,5,111,-40,3]
2022-01-12 20:30:19 +0100 <lambdabot> [-40,1,3,3,5,42,111]
2022-01-12 20:30:30 +0100 <int-e> . o O ( quite a mouthful )
2022-01-12 20:31:12 +0100 <int-e> and missing a base case for the empty list
2022-01-12 20:32:11 +0100 <int-e> (mergeAll [] = [])
2022-01-12 20:33:19 +0100Guest|25(~Guest|25@137.205.0.148) (Client Quit)
2022-01-12 20:35:06 +0100 <EvanR> sorting lists is easy if it's made of sorted lists
2022-01-12 20:35:26 +0100carter_carter
2022-01-12 20:35:34 +0100 <monochrom> "factorizing prime numbers"
2022-01-12 20:35:44 +0100 <EvanR> yeah!
2022-01-12 20:36:00 +0100max22-(~maxime@2a01cb0883359800d1e94aeeb9e074b6.ipv6.abo.wanadoo.fr)
2022-01-12 20:36:05 +0100 <int-e> > map pure [1,42,3,5,111,-40,3] -- look I've turned my 7 element list into 7 sorted lists!
2022-01-12 20:36:06 +0100 <lambdabot> error:
2022-01-12 20:36:06 +0100 <lambdabot> • Ambiguous type variable ‘f0’ arising from a use of ‘show_M485853337499...
2022-01-12 20:36:06 +0100 <lambdabot> prevents the constraint ‘(Show (f0 Integer))’ from being solved.
2022-01-12 20:36:11 +0100 <int-e> meh
2022-01-12 20:36:20 +0100 <int-e> > map pure [1,42,3,5,111,-40,3] :: [[Int]]
2022-01-12 20:36:22 +0100 <lambdabot> [[1],[42],[3],[5],[111],[-40],[3]]
2022-01-12 20:36:25 +0100 <EvanR> lol
2022-01-12 20:36:27 +0100 <int-e> I should've used (:[])
2022-01-12 20:37:14 +0100 <int-e> (especially in these times where everyone seems to be collecting ugly looking apes)
2022-01-12 20:40:43 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-12 20:42:37 +0100schuelermine(~schuelerm@user/schuelermine)
2022-01-12 20:42:48 +0100tanners(~tanners@pool-71-127-59-41.washdc.fios.verizon.net)
2022-01-12 20:43:36 +0100tanners(~tanners@pool-71-127-59-41.washdc.fios.verizon.net) (Client Quit)
2022-01-12 20:44:00 +0100 <schuelermine> Is it intentional that you can't do polymorphic implicit parameters, even w/ QuantifiedConstraints & ImpredicaticeTypes?
2022-01-12 20:44:49 +0100tanners(~tanners@pool-71-127-59-41.washdc.fios.verizon.net)
2022-01-12 20:46:00 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection)
2022-01-12 20:48:33 +0100 <schuelermine> i.e.:
2022-01-12 20:48:33 +0100 <schuelermine> let ?id = \x -> x in (?id True, ?id ()) :: (Bool, ()) …errors out, it specializes it to () -> ()
2022-01-12 20:52:51 +0100 <schuelermine> Even providing the explicit signatures doesn't work!
2022-01-12 20:52:51 +0100 <schuelermine> x = ?f () + ?f []
2022-01-12 20:52:51 +0100 <schuelermine> x :: forall n. (Num n, ?f::(forall t. t -> n)) => n
2022-01-12 20:52:51 +0100 <schuelermine> --also errors out
2022-01-12 20:53:55 +0100ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2022-01-12 20:54:14 +0100zeikuzeta(~zeta@2a01cb0c04a54500f006e2422b3c8b06.ipv6.abo.wanadoo.fr)
2022-01-12 20:54:20 +0100 <int-e> it's impredicative, you'd have to wrap it into a datatype (newtype works): newtype Id = Id { unId :: forall a. a -> a }; f :: (?id :: Id) => (Bool, ()); f = (unId ?id True, unId ?id ())
2022-01-12 20:54:24 +0100 <int-e> ugh
2022-01-12 20:55:02 +0100talismanick(~talismani@c-67-164-73-220.hsd1.ca.comcast.net)
2022-01-12 20:56:53 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-01-12 20:57:07 +0100 <schuelermine> but ImpredicaticeTypes exists
2022-01-12 20:57:21 +0100 <schuelermine> (this is Ghc 9.2.1)
2022-01-12 20:58:42 +0100 <int-e> well evidently it's not as robust as advertised
2022-01-12 20:59:32 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-12 20:59:46 +0100 <geekosaur> tempted too ask if you misspelled it in the pragma too
2022-01-12 21:01:53 +0100schuelermine(~schuelerm@user/schuelermine) (Ping timeout: 256 seconds)
2022-01-12 21:02:36 +0100ystael(~ystael@user/ystael)
2022-01-12 21:02:44 +0100 <geekosaur> also I think just having ImpredicativeTypes on doesn't mean you can dispense with the wrapper. but they're gone…
2022-01-12 21:04:37 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 240 seconds)
2022-01-12 21:04:37 +0100 <lyxia> Isn't that the point of the extension? (I mean I also get that ImplicitParams is janky.)
2022-01-12 21:05:09 +0100Guest19(~Guest19@098-147-212-046.res.spectrum.com)
2022-01-12 21:05:14 +0100schuelermine(~schuelerm@user/schuelermine)
2022-01-12 21:05:39 +0100 <schuelermine> well good news I reported this on the ghc gitlab
2022-01-12 21:05:48 +0100Guest19(~Guest19@098-147-212-046.res.spectrum.com) (Client Quit)
2022-01-12 21:05:50 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
2022-01-12 21:06:34 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection)
2022-01-12 21:06:38 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 21:06:45 +0100juhp(~juhp@128.106.188.82)
2022-01-12 21:07:14 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-01-12 21:07:27 +0100 <awpr> ImplicitParams is a typeclass under the hood, and as far as I know ImpredicativeTypes doesn't make it legal to have instances for polymorphic types
2022-01-12 21:08:10 +0100 <schuelermine> Oh ok
2022-01-12 21:08:15 +0100 <schuelermine> what does, then?
2022-01-12 21:08:46 +0100 <schuelermine> what does FlexibleContexts do again? I always forget
2022-01-12 21:08:50 +0100 <awpr> IIUC nothing, it's just not legal
2022-01-12 21:09:04 +0100 <schuelermine> Aw what a shame
2022-01-12 21:09:12 +0100 <schuelermine> should be imo
2022-01-12 21:09:37 +0100MajorBiscuit(~MajorBisc@c-001-022-052.client.tudelft.eduvpn.nl) (Ping timeout: 240 seconds)
2022-01-12 21:10:51 +0100neurocyte091707(~neurocyte@IP-046243084168.dynamic.medianet-world.de)
2022-01-12 21:10:51 +0100neurocyte091707(~neurocyte@IP-046243084168.dynamic.medianet-world.de) (Changing host)
2022-01-12 21:10:51 +0100neurocyte091707(~neurocyte@user/neurocyte)
2022-01-12 21:10:58 +0100 <schuelermine> at any rate it is not well communicated in the error message, see https://gitlab.haskell.org/ghc/ghc/-/issues/20939
2022-01-12 21:12:12 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-01-12 21:12:39 +0100neurocyte09170(~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
2022-01-12 21:12:39 +0100neurocyte091707neurocyte09170
2022-01-12 21:13:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 21:13:44 +0100 <[itchyjunk]> How do I constraint a thing to Int only ? :s
2022-01-12 21:13:50 +0100 <[itchyjunk]> I thought Num would be fine
2022-01-12 21:13:54 +0100 <[itchyjunk]> but ..
2022-01-12 21:14:00 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-01-12 21:14:05 +0100 <monochrom> Show actual code?
2022-01-12 21:14:12 +0100 <[itchyjunk]> https://bpa.st/PRZA
2022-01-12 21:15:11 +0100 <monochrom> So I can use your function as "myTreeSum (Nil :: MyFirstTree Double)"
2022-01-12 21:15:26 +0100 <monochrom> err that is not a very good example
2022-01-12 21:15:49 +0100 <monochrom> "myTreeSum (Node 1.2 Nil Nil :: MyFirstTree Double)"
2022-01-12 21:16:11 +0100 <monochrom> So now your code is doing (1.2 :: Double) + (0 :: Int)
2022-01-12 21:16:26 +0100 <monochrom> Do you see the type error?
2022-01-12 21:16:39 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2022-01-12 21:16:57 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-01-12 21:17:03 +0100ec(~ec@gateway/tor-sasl/ec)
2022-01-12 21:17:10 +0100 <[itchyjunk]> so my Nil being an integer was the issue?
2022-01-12 21:17:35 +0100 <[itchyjunk]> i think that's why i wanted a to be restricted to integer :x
2022-01-12 21:17:37 +0100 <monochrom> Yes and no. What causes your 0 to be pinned to Int?
2022-01-12 21:18:07 +0100 <[itchyjunk]> hm possibly my type signature that says MyFirstTree a -> Int
2022-01-12 21:18:12 +0100 <monochrom> Some people say that handwriting a type sig can help diagnose type errors.
2022-01-12 21:18:24 +0100 <monochrom> They speak the truth, but only half of it.
2022-01-12 21:18:44 +0100 <monochrom> The other half of it is that sometimes the type sig causes the type error.
2022-01-12 21:18:52 +0100 <[itchyjunk]> MyFirstTree a -> a would fixe it to whatever the Num a is possibly
2022-01-12 21:19:18 +0100 <monochrom> Who says that you never make mistakes in type sigs?
2022-01-12 21:19:27 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds)
2022-01-12 21:19:36 +0100[itchyjunk]points to int-e
2022-01-12 21:19:36 +0100tanners(~tanners@pool-71-127-59-41.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
2022-01-12 21:19:45 +0100syrkis(~syrkis@189.122.124.6)
2022-01-12 21:19:57 +0100syrkis(~syrkis@189.122.124.6) (Client Quit)
2022-01-12 21:20:12 +0100tanners(~tanners@2600:1003:b11a:a16f:d0aa:19cc:13f7:58b7)
2022-01-12 21:20:22 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-12 21:20:37 +0100 <monochrom> When teaching conditional probability and Bayes's theorem, I also like to tell the story of a senior programmer and a fresh-grad tester.
2022-01-12 21:21:20 +0100 <monochrom> The code written by the senior programmer doesn't pass the test written by the fresh-grad tester.
2022-01-12 21:21:37 +0100 <monochrom> What is the probability that the test case is wrong?
2022-01-12 21:23:06 +0100 <monochrom> Well OK, you need to know a lot of priors etc to answer. But basically if the priors say that the senior programmer has extremely low chance of being wrong (well they're senior, very experienced), and the fresh grad has a small but still not extremely small chance of being wrong (they're fresh grad),
2022-01-12 21:23:23 +0100 <monochrom> Then the test case has a very high chance of being wrong.
2022-01-12 21:23:36 +0100 <monochrom> (On condition that the code fails the test.)
2022-01-12 21:23:47 +0100 <[itchyjunk]> hmm
2022-01-12 21:23:58 +0100Tuplanolla(~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
2022-01-12 21:24:01 +0100 <[itchyjunk]> so signature writing by hand is like the undergrad case?
2022-01-12 21:24:05 +0100 <dolio> I don't think I believe your conclusion. :þ
2022-01-12 21:24:08 +0100 <dolio> As a senior programmer.
2022-01-12 21:24:40 +0100 <monochrom> No no no! You should disbelieve by prior about senior programmers having extremely low chance of being wrong :)
2022-01-12 21:24:46 +0100 <monochrom> s/by prior/my prior/
2022-01-12 21:24:50 +0100 <[itchyjunk]> My code seems to actually work.. interesting https://bpa.st/STGQ
2022-01-12 21:25:10 +0100 <monochrom> Oh you should also disbelieve my prior that fresh grads have only a small chance of being wrong.
2022-01-12 21:25:11 +0100 <[itchyjunk]> https://bpa.st/P6GQ
2022-01-12 21:25:15 +0100 <[itchyjunk]> based on one single test :D
2022-01-12 21:25:54 +0100 <monochrom> You can't disbelieve Bayes's theorem, so you are only left with my input params.
2022-01-12 21:26:26 +0100 <dolio> Yeah, the priors are the problem.
2022-01-12 21:26:27 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-12 21:27:14 +0100 <int-e> [itchyjunk]: I don't think I've said that. If I did, I was wrong; mistakes can creep into any part of your code.
2022-01-12 21:27:47 +0100 <[itchyjunk]> int-e, i don't think you said that either.
2022-01-12 21:28:00 +0100 <[itchyjunk]> I just like blaming people other than me for my shortcommings!
2022-01-12 21:30:29 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 21:30:52 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 250 seconds)
2022-01-12 21:31:26 +0100lavaman(~lavaman@98.38.249.169)
2022-01-12 21:31:44 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 250 seconds)
2022-01-12 21:34:46 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2022-01-12 21:35:38 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2022-01-12 21:38:03 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 21:38:03 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 21:38:03 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 21:38:42 +0100 <schuelermine> hey wait a minute awp that's rubbish, no? the impl. param may be a type class but the polymorphism isn't in the instance but in the method.
2022-01-12 21:39:32 +0100 <schuelermine> I.e. class A where { id :: forall t. t -> t } is fine
2022-01-12 21:40:09 +0100 <schuelermine> and any specific let ?id = x is just an instance like data FOO; instance A FOO where { id = x }
2022-01-12 21:41:49 +0100jgeerds__(~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 240 seconds)
2022-01-12 21:42:29 +0100briandaed(~root@185.234.208.208.r.toneticgroup.pl)
2022-01-12 21:42:35 +0100cosimone`(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Ping timeout: 252 seconds)
2022-01-12 21:43:15 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-12 21:44:49 +0100 <awpr> https://hackage.haskell.org/package/ghc-prim-0.8.0/docs/GHC-Classes.html#t:IP
2022-01-12 21:44:51 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-01-12 21:45:11 +0100 <awpr> it'd be `instance IP "id" (forall a. a -> a)`
2022-01-12 21:46:00 +0100 <schuelermine> ah OK
2022-01-12 21:47:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2022-01-12 21:51:15 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 21:51:19 +0100 <schuelermine> Wait
2022-01-12 21:51:48 +0100 <schuelermine> So how does it use different instances when there's no type difference in the instances?
2022-01-12 21:52:38 +0100 <schuelermine> Normally something like 1 :: Num n => n calls a different implementation based on the *type*, and if that type can't be inferred, you can do @Type, but how's that work with IP?
2022-01-12 21:52:59 +0100 <awpr> there's special allowance in the compiler for implicit params syntax to be allowed to create local instances
2022-01-12 21:54:00 +0100 <EvanR> wait... can that be abused xD
2022-01-12 21:54:02 +0100 <awpr> the machinery for consuming instances locally is already there, since it's needed for polymorphism, but normally scoped instances can't be created since that'd completely ruin instance coherence
2022-01-12 21:54:31 +0100 <awpr> (implicit params are intentionally not coherent, so no problem with losing coherence there)
2022-01-12 21:55:34 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-01-12 21:56:31 +0100 <monochrom> Yes! Consider "data MyIntOrd = Ctor{cmp :: Int -> Int -> Ordering}" so you can write "sort :: (?ord :: MyIntOrd) => [Int] -> [Int]"
2022-01-12 21:57:23 +0100burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk)
2022-01-12 21:58:29 +0100zincy(~zincy@2a00:23c8:970c:4801:911c:c4ab:2f7e:d3f1)
2022-01-12 21:58:43 +0100 <monochrom> So I can then write "let ?ord = Ctor{basically do prime factorization then use show on the list then compare the lists} in sort [1..1000]"
2022-01-12 21:58:55 +0100 <monochrom> err compare the strings!
2022-01-12 21:59:36 +0100jonathanx__(~jonathan@h-178-174-176-109.a357.priv.bahnhof.se) (Quit: Leaving)
2022-01-12 22:01:34 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2022-01-12 22:01:37 +0100tanners(~tanners@2600:1003:b11a:a16f:d0aa:19cc:13f7:58b7) (Ping timeout: 240 seconds)
2022-01-12 22:01:41 +0100 <awpr> maybe even `newtype Bad a c = Bad {unBad :: c => [a] -> [a] }; sort = unBad $ unsafeCoerce @(Bad Int (Ord Int)) @(Bad Int (IP "ord" MyIntOrd)) $ Bad Prelude.show`
2022-01-12 22:02:26 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-12 22:02:37 +0100 <awpr> with extra badness because that record is definitely not the same representation as the Prelude.Ord dictionary
2022-01-12 22:02:38 +0100tanners(~tanners@pool-71-127-59-41.washdc.fios.verizon.net)
2022-01-12 22:03:22 +0100acidjnk(~acidjnk@p200300d0c7271e5531e75586a8fe0593.dip0.t-ipconnect.de)
2022-01-12 22:03:30 +0100 <awpr> er, Prelude.sort
2022-01-12 22:03:52 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-12 22:03:52 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-12 22:03:52 +0100wroathe(~wroathe@user/wroathe)
2022-01-12 22:05:02 +0100schweers(~user@2001:16b8:e960:8100:aaa1:59ff:fe3f:235c) (Ping timeout: 240 seconds)
2022-01-12 22:07:01 +0100enoch(~enochthec@user/enochthechronoco)
2022-01-12 22:10:31 +0100enoch(~enochthec@user/enochthechronoco) (Client Quit)
2022-01-12 22:11:43 +0100Ekho-Ekho
2022-01-12 22:12:53 +0100zincy(~zincy@2a00:23c8:970c:4801:911c:c4ab:2f7e:d3f1) (Remote host closed the connection)
2022-01-12 22:13:08 +0100zincy(~zincy@2a00:23c8:970c:4801:911c:c4ab:2f7e:d3f1)
2022-01-12 22:19:31 +0100`2jt(~jtomas@10.red-83-58-228.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
2022-01-12 22:21:48 +0100zincy(~zincy@2a00:23c8:970c:4801:911c:c4ab:2f7e:d3f1) (Read error: Connection reset by peer)
2022-01-12 22:22:03 +0100zincy(~zincy@2a00:23c8:970c:4801:911c:c4ab:2f7e:d3f1)
2022-01-12 22:22:32 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-12 22:25:17 +0100dut(~dut@user/dut) (Quit: Leaving)
2022-01-12 22:26:58 +0100coot(~coot@89-64-85-93.dynamic.chello.pl)
2022-01-12 22:28:15 +0100ubert(~Thunderbi@p200300ecdf0994b6cb4175acd0981d1c.dip0.t-ipconnect.de) (Remote host closed the connection)
2022-01-12 22:33:37 +0100lagash(lagash@lagash.shelltalk.net) (Ping timeout: 240 seconds)
2022-01-12 22:35:50 +0100opticblast(~june@secure-165.caltech.edu)
2022-01-12 22:36:16 +0100 <opticblast> is there any particular reason not to reuse a Data.ByteString.Builder.Builder?
2022-01-12 22:38:45 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-12 22:40:13 +0100mrmr(~mrmr@user/mrmr) (Ping timeout: 240 seconds)
2022-01-12 22:41:49 +0100benin(~benin@183.82.30.17) (Ping timeout: 240 seconds)
2022-01-12 22:43:47 +0100benin(~benin@183.82.30.17)
2022-01-12 22:47:40 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-12 22:49:33 +0100briandaed(~root@185.234.208.208.r.toneticgroup.pl) (Quit: leaving)
2022-01-12 22:57:57 +0100schuelermine(~schuelerm@user/schuelermine) (Read error: Connection reset by peer)
2022-01-12 22:58:08 +0100schuelermine(~schuelerm@user/schuelermine)
2022-01-12 23:00:33 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 250 seconds)
2022-01-12 23:02:24 +0100michalz(~michalz@185.246.204.101) (Remote host closed the connection)
2022-01-12 23:02:46 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-01-12 23:03:47 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-12 23:05:44 +0100aweinsto1kaweinstock
2022-01-12 23:09:02 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-12 23:12:32 +0100janus__janus
2022-01-12 23:12:34 +0100 <jackdk> what are you trying to do? that sounds like a question which assumes an imperative way of interacting with builders, which is not how they work (they're more like sequences of instructions of how to build a bytestring, in a form taht you can't inspect but has O(1) append)
2022-01-12 23:14:43 +0100 <monochrom> Ah, now I understand the question.
2022-01-12 23:15:42 +0100 <monochrom> But yeah it's still too general.
2022-01-12 23:15:52 +0100 <dibblego> sedition160.
2022-01-12 23:17:03 +0100 <[exa]> dibblego: does that look like a password?
2022-01-12 23:17:24 +0100 <dibblego> yeah sorry, it's just a virtualbox password
2022-01-12 23:17:41 +0100 <monochrom> Don't forget the . at the end :)
2022-01-12 23:17:53 +0100jacks-(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2022-01-12 23:18:16 +0100 <[exa]> :] nvm
2022-01-12 23:18:54 +0100lagash(lagash@lagash.shelltalk.net)
2022-01-12 23:23:16 +0100dut(~dut@user/dut)
2022-01-12 23:25:40 +0100dansodansoup
2022-01-12 23:27:00 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-01-12 23:29:04 +0100benin(~benin@183.82.30.17) (Quit: Ping timeout (120 seconds))
2022-01-12 23:29:11 +0100dansoup(~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Quit: WeeChat 3.3)
2022-01-12 23:33:19 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-01-12 23:38:42 +0100lagash(lagash@lagash.shelltalk.net) (Ping timeout: 250 seconds)
2022-01-12 23:39:08 +0100schuelermine(~schuelerm@user/schuelermine) (Ping timeout: 250 seconds)
2022-01-12 23:40:26 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2022-01-12 23:43:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2022-01-12 23:44:37 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-12 23:46:15 +0100mrmr(~mrmr@user/mrmr)
2022-01-12 23:48:11 +0100phma(phma@2001:5b0:212a:9158:6d66:ed09:dec5:bdad) (Read error: Connection reset by peer)
2022-01-12 23:49:32 +0100phma(phma@2001:5b0:2143:8b68:2dec:594f:a26e:5c25)
2022-01-12 23:50:21 +0100mikoto-chan(~mikoto-ch@194.157.16.89) (Quit: mikoto-chan)
2022-01-12 23:50:29 +0100mikoto-chan(~mikoto-ch@194.157.16.89)
2022-01-12 23:51:48 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it)
2022-01-12 23:56:32 +0100nunggu(~q@gateway/tor-sasl/nunggu) (Remote host closed the connection)
2022-01-12 23:57:01 +0100nunggu(~q@gateway/tor-sasl/nunggu)
2022-01-12 23:58:09 +0100Guest54(~Guest54@186.139.149.253)
2022-01-12 23:59:45 +0100zincy(~zincy@2a00:23c8:970c:4801:911c:c4ab:2f7e:d3f1) (Remote host closed the connection)