Home liberachat/#haskell: Logs Calendar

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

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

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