Home freenode/#haskell: Logs Calendar

Logs on 2020-12-05 (freenode/#haskell)

00:00:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
00:00:46 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
00:01:22 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
00:02:01 Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
00:02:45 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 240 seconds)
00:04:39 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 260 seconds)
00:04:39 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
00:06:51 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
00:07:19 × AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
00:08:23 HarveyPwca joins (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
00:10:39 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:10:48 jb55 joins (~jb55@gateway/tor-sasl/jb55)
00:11:51 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
00:16:59 AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl)
00:18:02 × xff0x_ quits (~fox@2001:1a81:53bd:d700:a2a1:7119:15d0:7c3f) (Ping timeout: 264 seconds)
00:18:44 xff0x_ joins (~fox@2001:1a81:53bd:d700:c516:168f:1d32:856e)
00:20:13 Tops2 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de)
00:22:05 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:23:37 × Tops21 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 264 seconds)
00:24:38 Tops21 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de)
00:26:33 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:27:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:27:49 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
00:27:59 × drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 260 seconds)
00:28:07 × Tops2 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
00:28:25 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 264 seconds)
00:28:50 Tops2 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de)
00:29:17 × Ariakenom quits (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Ping timeout: 265 seconds)
00:30:23 × jess quits (jess@freenode/staff/jess) (Quit: updates)
00:30:56 × alp quits (~alp@88.126.45.36) (Ping timeout: 240 seconds)
00:31:38 <texasmynsted> I see this --> https://hackage.haskell.org/package/fix-imports
00:31:58 × Tops21 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
00:32:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:32:35 Tops21 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de)
00:32:38 × Tops21 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Client Quit)
00:32:43 <texasmynsted> Is this the best way to fix my imports?
00:33:18 <texasmynsted> second best ... best being manually
00:34:35 da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.167.167)
00:34:44 Tario joins (~Tario@201.192.165.173)
00:35:43 oats is now known as ot
00:35:48 ot is now known as oa
00:36:01 × delYsid quits (~user@vra-173-158.tugraz.at) (Remote host closed the connection)
00:36:13 × Tops2 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 264 seconds)
00:36:34 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
00:37:57 × eedgit26 quits (~chat.free@95.179.237.21) (Quit: The Lounge - https://thelounge.chat)
00:38:12 eedgit26 joins (~chat.free@95.179.237.21)
00:39:20 × BlackCapCoder quits (~blackcap@48.80-203-23.nextgentel.com) (Ping timeout: 256 seconds)
00:54:28 Jonkimi727406120 joins (~Jonkimi@223.213.165.31)
00:55:56 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
00:55:59 <MarcelineVQ> what's broken about them?
00:56:39 <ezzieyguywuf> glguy: is there a way to change the order that specs show up in `generateDocs`?
00:57:32 <glguy> Umm...
00:58:46 <glguy> Looks like it's just alphabetical now. Better ideas?
00:59:10 <ezzieyguywuf> I think it'd make better sense to go in hierarchical order
00:59:11 <glguy> alphabetical for named things, order of appearance for individual things
00:59:37 <ezzieyguywuf> ah, yea I think order of appearance across-the-board makes more sense, b/c otherwise the documention is a bit confusing
00:59:40 <ezzieyguywuf> here let me share one h/o.
01:00:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:00:36 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:00:43 <ephemient> what's the current "alphabetical"? I convinced hspec to sort by "natural" instead of "lexicographic" a while back https://github.com/hspec/hspec/pull/337
01:01:21 <ezzieyguywuf> glguy: https://dpaste.com/2BW5GXBSX so here, since there's no preamble to the docs or anything, I start reading at "Top-Level" and get to "REQUIRED Input-File-Columns" and I'm left wondering "what is that?!", and then I get to "Amount-Column" and start to get lost
01:01:29 Ariakenom joins (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
01:01:33 <ezzieyguywuf> I know it's a little thing, but for a less tech-savvy user this could be quite confusing.
01:01:43 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
01:02:04 <glguy> I'm quite open to improvements here; I just didn't know what to do
01:03:18 <ezzieyguywuf> ephemient: hey I use hspec! it's always sorted in the order I define specs, you're saying this change is recent?
01:03:42 <ezzieyguywuf> glguy: 👍️, I'll take a look at the code, see if I can muster up a pr
01:04:07 <ephemient> no, my change just affects hspec-discover order... if you define your specs yourself, then it's in that order
01:04:18 × alx741 quits (~alx741@186.178.110.235) (Ping timeout: 260 seconds)
01:04:26 × Amras quits (~Amras@unaffiliated/amras) (Ping timeout: 246 seconds)
01:04:28 Seiless joins (~jeremy@110.150.63.35)
01:04:29 <glguy> ezzieyguywuf: PRs are fantastic, but even sketches of what you think would look nicer are useful
01:04:34 × Jonkimi727406120 quits (~Jonkimi@223.213.165.31) (Quit: Ping timeout (120 seconds))
01:04:44 <ezzieyguywuf> ah hah. wait I think I use hspec-discover too, but it's only ever had to discover a single file lol.
01:04:59 Jonkimi727406120 joins (~Jonkimi@223.213.165.31)
01:05:36 <ezzieyguywuf> i wonder why they didn't want the dependency on `text`. `parsec` I kind of get..
01:06:30 <ezzieyguywuf> wow what a great pr, and code review, and eventual merge!
01:07:57 <glguy> ezzieyguywuf: Also there doesn't have to be the one-true-documentation-generator. It could make sense for a module to generate Markdown or HTML or something else entirely
01:08:29 <glguy> And the data types are exposed if you want to experiment with consuming the specs in different ways
01:10:22 × Seiless quits (~jeremy@110.150.63.35) (Ping timeout: 272 seconds)
01:10:27 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
01:13:56 ph88 joins (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de)
01:13:59 bitmapper joins (uid464869@gateway/web/irccloud.com/x-kvwfkzcfenglexqu)
01:14:32 abhixec joins (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
01:15:40 doct0rhu joins (~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net)
01:16:17 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:16:45 conal joins (~conal@64.71.133.70)
01:16:58 <doct0rhu> `ghci` loads `./.ghci` before` `$HOME/.ghci`, which seems strange to me
01:17:15 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
01:17:54 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
01:18:00 <doct0rhu> usually per-directory/project configs overrides per-user configs
01:18:25 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
01:18:37 alx741 joins (~alx741@181.196.68.200)
01:19:04 × dave_uy quits (~david@108.61.193.26) (Ping timeout: 256 seconds)
01:19:14 × byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 272 seconds)
01:19:25 × bcmiller quits (~bm3719@66.42.95.185) (Ping timeout: 240 seconds)
01:19:29 AndreasK joins (uid320732@gateway/web/irccloud.com/x-kmsetxbzackhcodn)
01:19:45 <doct0rhu> specifically, users may want to `:def` some variations of commands that uses a per-directory arguments
01:20:30 <doct0rhu> but they have to use a different name or otherwise that'd be overridden by the same named one in `$HOME/.ghci`
01:21:25 × ph88 quits (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
01:23:08 flyingpotatoman joins (~seiless@85.203.34.15)
01:24:34 drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net)
01:29:10 flyingpotatoman is now known as Seiless
01:31:13 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
01:31:47 Seiless is now known as Sayless
01:32:26 × borne quits (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
01:32:44 × dhil quits (~dhil@195.213.192.34) (Ping timeout: 260 seconds)
01:33:10 × drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 272 seconds)
01:33:50 <Sayless> What's everyone working on?
01:33:56 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Ping timeout: 240 seconds)
01:34:05 × AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Ping timeout: 240 seconds)
01:34:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:35:27 × catchme quits (uid355354@gateway/web/irccloud.com/x-efeidyvsbqvqtcow) (Quit: Connection closed for inactivity)
01:38:08 <dsal> adventofcode, though I kind of need to build a thing that lets me upload to S3 the same way my GoPro thing does.
01:40:20 drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net)
01:41:06 <solonarv> I've also been doing AoC, besides uni stuff (which isn't haskell but does involve some programming)
01:42:00 Lord_of_Life_ joins (~Lord@46.217.216.2)
01:43:15 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:43:18 × Jonkimi727406120 quits (~Jonkimi@223.213.165.31) (Ping timeout: 272 seconds)
01:44:08 <Sayless> that's interesting! I've been doing some stuff on leetcode. This could be a nice change
01:44:44 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds)
01:44:57 × blissful quits (~azuline@unaffiliated/azuline) (Quit: The Lounge - https://thelounge.chat)
01:45:39 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
01:46:08 <dsal> I've written a lot of Haskell I rely on this year. But it's puzzle season.
01:46:43 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
01:48:11 <Sayless> I never heard about AoC before! Looks cool. I've been torn between scala and haskell this year as my hobby language
01:48:40 blissful joins (~azuline@unaffiliated/azuline)
01:49:08 <dsal> Well, there's likely bias here, but I use haskell for everything except when I can't.
01:49:24 × blissful quits (~azuline@unaffiliated/azuline) (Client Quit)
01:50:36 <Sayless> I love reading about Haskell and reading its code. It was my first preference. The one thing i've found as a barrier of entry is libraries and documentation surrounding them as a newcomer
01:52:05 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
01:53:50 <Sayless> I definitely prefer it between the two. I have found it easier to port something out of Java and use it in Scala however. Maybe I'll just become more fluent with libs and packages in Haskell over time
01:55:33 blissful joins (~azuline@unaffiliated/azuline)
01:57:16 × pjb quits (~t@2a01cb04063ec500f481f246a0d62c86.ipv6.abo.wanadoo.fr) (Ping timeout: 244 seconds)
01:57:54 × blissful quits (~azuline@unaffiliated/azuline) (Client Quit)
01:58:45 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection)
01:59:00 <dsal> Yeah, to be fair, I find documentation for new languages hard to read in general. Part of haskell's problem there is so much is common.
01:59:15 nfd9001 joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net)
01:59:33 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
01:59:41 <dsal> So if I give you a data structure and tell you it's foldable, applicative, traversable, etc... you know a *lot* about what you can do with it without me having to say what all those things are.
02:01:50 blissful joins (~azuline@unaffiliated/azuline)
02:01:54 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:02:45 <nfd9001> Hey, I'm trying to learn megaparsec for AoC day 4 and don't want to look at y'alls full spoilers yet; I'm trying to use Control.Applicative.Permutations and I think it looks nice to try to use a do-style for name binding (despite that all I really need is Alternative power)
02:03:07 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
02:03:26 <dsal> You can use do if you want, but there's no do in my day4.
02:03:31 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:04:03 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 260 seconds)
02:04:17 <nfd9001> So I have something like passportParser = runPermutation $ do byc <- toPermutationWithDefault Nothing (...); ...; pure (P byc...)
02:04:21 <c_wraith> I used do a lot in my validation code without even touching parsers
02:04:53 <nfd9001> i mean, i know i can do this without fancy parser combinators, but it seemed like a nice opportunity to learn them
02:05:24 <dsal> Sure, half the reason for solving the puzzles is learning new things. :)
02:05:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:06:57 <iqubic> I learned about refinement types today. Why bother validating stuff when you can have the types/another library do it for you.
02:07:36 <nfd9001> anybody familiar with a way i can use those tools with that kind of idiom? there's not a ton of tutorials on using just parser-combinators/megaparsec's Control.Applicative.Permutations or anything
02:08:37 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
02:08:50 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Remote host closed the connection)
02:09:07 <nfd9001> i clearly have some simple type confusion going on here that I can brain out/share but I figured somebody might've written something on this I hadn't seen
02:09:45 bgamari joins (~bgamari@72.65.101.184)
02:10:35 × bgamari_ quits (~bgamari@72.65.104.220) (Ping timeout: 260 seconds)
02:10:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
02:11:05 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 240 seconds)
02:11:58 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
02:12:14 <nfd9001> it seems like this do block inferred that it was supposed to be in the Maybe monad, so i assume flipping on ApplicativeDo is probably part of this
02:13:56 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
02:15:24 dustypacer joins (~pi@2600:6c50:80:2f4a:e9d0:6569:1cea:d1d4)
02:17:26 <ephemient> I've done some crazy things with megaparsec - looking back at aoc2019d25, I fed input back into the parser while it is running. I don't know what I was thinking :)
02:18:20 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
02:19:29 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
02:19:40 <nfd9001> hey, it's not "crazy" if it's "art"
02:20:08 <ephemient> in any case, hart to tell from your description, but it does sound like you've just mixed up some types somewhere. have any code to share?
02:21:23 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
02:21:37 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
02:23:43 × xff0x_ quits (~fox@2001:1a81:53bd:d700:c516:168f:1d32:856e) (Ping timeout: 272 seconds)
02:25:11 xff0x_ joins (~fox@2001:1a81:53f4:6600:356b:2da8:97c9:b5cf)
02:26:41 <nfd9001> yeah, i just mixed up where i was trying to inject a (\x -> Just x) into my equation
02:26:58 <nfd9001> foolishly joined IRC on a different box than the one i'm typing this on so sec
02:28:35 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
02:29:16 <nfd9001> with ``let tPDN = toPermutationWithDefault Nothing`` i was doing stuff with the pattern ``val <- tPDN $ (\x -> Just x) <$> lexeme $ string "val:" *> someParser``
02:30:00 <nfd9001> i wanted ``val <- tPDN $ lexeme $ string "val:" *> pure (\x -> Just x) <*> someParser``
02:31:02 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 256 seconds)
02:33:02 <ephemient> pure Just <*> someParser === Just <$> someParser
02:33:03 <nfd9001> my errors were a little confusing at first because these Permutations are only Alternative m => Applicative (Permutation m)
02:33:12 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:34c4:973d:64b1:cdbd)
02:33:18 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds)
02:33:26 <solonarv> also, (\x -> Just x) = Just
02:33:26 <nfd9001> and i had ApplicativeDo off
02:33:35 crestfallen joins (~jvw@192-184-135-144.fiber.dynamic.sonic.net)
02:33:56 <crestfallen> hi real quick is isSpace :: Char -> BoolSource#
02:34:02 <nfd9001> tyty, i'd tried using the constructor without that once and ran into some issue, but i was probably just doing something wrong elsewhere
02:34:18 <crestfallen> Returns True for any Unicode space character
02:34:22 <crestfallen> sorry ..
02:34:41 × mimagic quits (~mimagic@201.82.37.29) (Remote host closed the connection)
02:34:52 <crestfallen> is any unicode space char also alphaNumeric?
02:34:59 mimagic joins (~mimagic@201.82.37.29)
02:35:03 <solonarv> no, alphanumeric means "letter or digit"
02:35:06 <nfd9001> crestfallen: in what library? but I'd expect it's Char -> Bool for most libs
02:35:07 <nfd9001> or similar
02:35:19 <solonarv> (it's in base, Data.Char to be specific)
02:35:26 <monochrom> The "Source#" is an artifact of copy-paste error
02:35:40 <nfd9001> Data.Char.isSpace is Char -> Bool yes
02:35:54 <ephemient> crestfallen: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt has a list of all characters for each unicode property
02:36:08 <monochrom> Since there is also isAlphaNum, you could have done a few little tests yourself.
02:36:10 <crestfallen> I have a function alphanum :: Parser Char 69 alphanum = satisfy isAlphaNum
02:36:15 <crestfallen> shit
02:36:53 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:37:05 <crestfallen> I have a function alphanum = satisfy isAlphaNum and to my surprise it accepts spaces in the middle of a string
02:37:33 <ephemient> there's Text.Megaparsec.Char.alphaNumChar :: Parsec e Char (more or less)
02:37:34 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:34c4:973d:64b1:cdbd) (Ping timeout: 244 seconds)
02:37:48 <monochrom> You can easily test your hypothesis with isAlphaNum ' '
02:37:53 <solonarv> yes, which parser library are you using?
02:38:14 <monochrom> In fact, s/test/refute/
02:38:16 dave_uy joins (~david@108.61.193.26)
02:38:24 <crestfallen> thanks monochrom et al. let me paste: http://ix.io/2GFv
02:38:35 <solonarv> also, that. don't be afraid to jump into ghci and test things by hand!
02:38:46 <monochrom> Well there goes the Socratic method.
02:39:21 <crestfallen> in question in the function "identifier"
02:39:42 × mimagic quits (~mimagic@201.82.37.29) (Ping timeout: 256 seconds)
02:40:43 byorgey joins (~byorgey@155.138.238.211)
02:41:17 livvy joins (~livvy@gateway/tor-sasl/livvy)
02:42:18 × Ekho quits (~Ekho@unaffiliated/ekho) (Ping timeout: 244 seconds)
02:42:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:43:47 × benjamingr__ quits (uid23465@gateway/web/irccloud.com/x-jwefvpayxcoyisfw) (Quit: Connection closed for inactivity)
02:43:58 <crestfallen> . λ> parse alphanum " "
02:44:00 <crestfallen> []
02:45:11 <ephemient> > [c | c <- ['\0'..'\xffff'], isAlphaNum c && isSpace c]
02:45:14 <lambdabot> ""
02:45:16 <monochrom> And you think that's a bug because...?
02:45:21 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
02:45:38 <crestfallen> λ> parse alphanum "ll mm"
02:45:43 Ekho joins (~Ekho@unaffiliated/ekho)
02:46:06 <crestfallen> [('l',"l mm")]
02:46:19 bgamari_ joins (~bgamari@72.65.103.183)
02:46:22 bcmiller joins (~bm3719@66.42.95.185)
02:46:24 <solonarv> I still don't see a bug here, that seems correct
02:46:29 <crestfallen> thanks just sorting it out. not saying its a bug
02:46:56 × bgamari quits (~bgamari@72.65.101.184) (Ping timeout: 240 seconds)
02:47:08 <ephemient> "I have a function alphanum = satisfy isAlphaNum and to my surprise it accepts spaces in the middle of a string" what is an example of that
02:48:13 <MarcelineVQ> crestfallen: only 'l' was parsed there, "l mm" is the unparsed remainder
02:48:44 <ephemient> ... yes, because satisfy is defined to take only one token
02:48:48 <crestfallen> MarcelineVQ: thanks that's what I overlooked
02:49:16 <crestfallen> so the remainder never makes it to the predicate
02:51:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
02:51:20 <MarcelineVQ> satisfy parses at most a single Char as ephemient is suggesting
02:53:03 <crestfallen> yeah understood thanks MarcelineVQ ephemient solonarv et al
02:57:29 <ezzieyguywuf> I don't understand this error: https://dpaste.com/4VUP2WU2A
02:57:30 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
02:57:47 <ezzieyguywuf> The "expected" and "got" seem to match
02:58:08 Vulfe joins (~vulfe@2600:1702:31b0:34e0:34c4:973d:64b1:cdbd)
02:59:12 × texasmynsted quits (~texasmyns@212.102.44.36) (Remote host closed the connection)
02:59:32 <MarcelineVQ> probably Text.Megaparsec.Stream.Token Text is an associated type that resolves to Char
02:59:37 <ephemient> Text and (Text.Megaparsec.Stream.Token Text) don't seem to match
02:59:59 texasmynsted joins (~texasmyns@212.102.44.36)
03:00:09 × texasmynsted quits (~texasmyns@212.102.44.36) (Remote host closed the connection)
03:00:20 <ezzieyguywuf> ahhh
03:00:34 <ezzieyguywuf> so `Text.singleton <$> letterChar` fixes it
03:00:56 <crestfallen> so my book prefers do blocks while dealing with parsers. is that the norm generally?
03:01:04 <ephemient> if you're expecting nLetter :: Text, then yes
03:01:07 <ezzieyguywuf> but since the type of `letterChar` is `m (Token s)`, I didn't think I'd have to explicitly make it a Text
03:01:25 × ekleog quits (~ii@prologin/ekleog) (Ping timeout: 244 seconds)
03:01:29 <ezzieyguywuf> yea, nLetter :: Text is expected
03:01:55 <crestfallen> since members have suggested I work with (>>=) if I can..
03:01:58 ekleog_ joins (~ii@prologin/ekleog)
03:02:32 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:34c4:973d:64b1:cdbd) (Ping timeout: 260 seconds)
03:02:37 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
03:03:02 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:03:30 <ephemient> it's equivalent (except under extensions like ApplicativeDo)
03:03:39 <MarcelineVQ> They suggested that just because you didn't understand >>= or do, not because it's generally preferred
03:04:20 <ephemient> if you're still figuring things out, I would suggest >>= until you understand
03:07:32 <crestfallen> I roughly understand the State Monad, so MarcelineVQ and everyone thanks a lot, it took my months but I'm comfortable generally
03:07:36 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
03:07:42 <crestfallen> me*
03:07:43 philopso1 joins (~caecilius@gateway/tor-sasl/caecilius)
03:07:46 × philopso1 quits (~caecilius@gateway/tor-sasl/caecilius) (Client Quit)
03:08:05 <crestfallen> thanks yeah ephemient I prefer it somehow
03:13:19 × Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-euxykteztfgdzjor) (*.net *.split)
03:13:19 × fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-ypwwwiayrbbyifnk) (*.net *.split)
03:13:20 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-packykjqjjbpczgr) (*.net *.split)
03:13:20 × bjs quits (sid190364@gateway/web/irccloud.com/x-twiqviauegvkdtyp) (*.net *.split)
03:13:20 × cbarrett quits (sid192934@adium/cbarrett) (*.net *.split)
03:13:20 × eacameron quits (sid256985@gateway/web/irccloud.com/x-lrjkdvzxlvibxfym) (*.net *.split)
03:13:20 × jlpeters quits (sid25606@gateway/web/irccloud.com/x-ajnrzctphgiembrn) (*.net *.split)
03:13:20 × dsal quits (sid13060@gateway/web/irccloud.com/x-auonqazuemdkzyye) (*.net *.split)
03:13:20 × chpatrick quits (sid239395@gateway/web/irccloud.com/x-rhravxibfvsetmow) (*.net *.split)
03:13:20 × lolmac quits (sid171216@gateway/web/irccloud.com/x-hjcjaimdwehnhmlw) (*.net *.split)
03:13:20 × parseval quits (sid239098@gateway/web/irccloud.com/x-pmotixrxellomgay) (*.net *.split)
03:13:20 × systemfault quits (sid267009@gateway/web/irccloud.com/x-wdlytpqqslmpiaxc) (*.net *.split)
03:13:20 × kaychaks quits (sid236345@gateway/web/irccloud.com/x-vfiqhhtxtkjgbdnx) (*.net *.split)
03:13:20 × cstrahan quits (sid36118@gateway/web/irccloud.com/x-zgbgvkugvrztuagh) (*.net *.split)
03:13:20 × SolarAquarion quits (SolarAquar@gateway/shell/panicbnc/x-kjhphkgroirlqpvp) (*.net *.split)
03:13:20 × PotatoGim quits (sid99505@gateway/web/irccloud.com/x-hlnasejbcjzegeqa) (*.net *.split)
03:13:20 × thi quits (sid97277@gateway/web/irccloud.com/x-ndauawxdqkdccghj) (*.net *.split)
03:13:20 × ashnur quits (~rak@unaffiliated/ashnur) (*.net *.split)
03:13:20 × taktoa[c] quits (sid282096@gateway/web/irccloud.com/x-itxakgqwhnqkbebe) (*.net *.split)
03:13:20 × milessabin quits (sid86799@gateway/web/irccloud.com/x-ascncjvecpuyiyrz) (*.net *.split)
03:13:20 × hazard-pointer quits (sid331723@gateway/web/irccloud.com/x-wwsxwkmcbnytyqgp) (*.net *.split)
03:13:20 × dani- quits (sid341953@gateway/web/irccloud.com/x-etuikjdqhtlxnikg) (*.net *.split)
03:13:20 × kyagrd__ quits (sid102627@gateway/web/irccloud.com/x-fmxliclmtnkycstb) (*.net *.split)
03:13:20 × ghuntley quits (sid16877@gateway/web/irccloud.com/x-qztbkgafmugcryxi) (*.net *.split)
03:13:20 × heredoc quits (heredoc@2a01:7e01::f03c:91ff:fec1:de1d) (*.net *.split)
03:13:20 × hyiltiz-M quits (hyiltizkde@gateway/shell/kde/matrix/x-zvgetfbstubrdqzf) (*.net *.split)
03:13:20 × _flow_ quits (~none@salem.informatik.uni-erlangen.de) (*.net *.split)
03:13:20 × joeyh_ quits (joeyh@kitenet.net) (*.net *.split)
03:13:20 × thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (*.net *.split)
03:13:20 × opqdonut quits (opqdonut@pseudo.fixme.fi) (*.net *.split)
03:13:26 <nfd9001> alright i'm still missing something probably really silly here; i'd appreciate if someone would give this a quick spotcheck: https://hastebin.com/homawuhele.hs
03:13:36 heredoc joins (heredoc@2a01:7e01::f03c:91ff:fec1:de1d)
03:13:43 <nfd9001> compile errors and source incl. there
03:15:11 <nfd9001> (yeah, i shouldn't do so much prepro before megaparsec probably, but one thing at a time here)
03:16:25 <solonarv> nfd9001: can you link where this permutations thing is from?
03:17:04 <nfd9001> parser-combinators, Control.Applicative.Permutations
03:17:14 <nfd9001> apparently used to be part of megaparsec prior to megaparsec 7
03:17:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
03:17:56 × Nahra quits (~Nahra@unaffiliated/nahra) (Quit: leaving)
03:18:44 fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-ypwwwiayrbbyifnk)
03:18:44 Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-euxykteztfgdzjor)
03:18:44 betawaffle joins (sid2730@gateway/web/irccloud.com/x-packykjqjjbpczgr)
03:18:44 bjs joins (sid190364@gateway/web/irccloud.com/x-twiqviauegvkdtyp)
03:18:44 cbarrett joins (sid192934@adium/cbarrett)
03:18:44 eacameron joins (sid256985@gateway/web/irccloud.com/x-lrjkdvzxlvibxfym)
03:18:44 jlpeters joins (sid25606@gateway/web/irccloud.com/x-ajnrzctphgiembrn)
03:18:44 dsal joins (sid13060@gateway/web/irccloud.com/x-auonqazuemdkzyye)
03:18:44 chpatrick joins (sid239395@gateway/web/irccloud.com/x-rhravxibfvsetmow)
03:18:44 lolmac joins (sid171216@gateway/web/irccloud.com/x-hjcjaimdwehnhmlw)
03:18:44 parseval joins (sid239098@gateway/web/irccloud.com/x-pmotixrxellomgay)
03:18:44 systemfault joins (sid267009@gateway/web/irccloud.com/x-wdlytpqqslmpiaxc)
03:18:44 kaychaks joins (sid236345@gateway/web/irccloud.com/x-vfiqhhtxtkjgbdnx)
03:18:44 cstrahan joins (sid36118@gateway/web/irccloud.com/x-zgbgvkugvrztuagh)
03:18:44 SolarAquarion joins (SolarAquar@gateway/shell/panicbnc/x-kjhphkgroirlqpvp)
03:18:44 PotatoGim joins (sid99505@gateway/web/irccloud.com/x-hlnasejbcjzegeqa)
03:18:44 thi joins (sid97277@gateway/web/irccloud.com/x-ndauawxdqkdccghj)
03:18:44 ashnur joins (~rak@unaffiliated/ashnur)
03:18:44 taktoa[c] joins (sid282096@gateway/web/irccloud.com/x-itxakgqwhnqkbebe)
03:18:44 milessabin joins (sid86799@gateway/web/irccloud.com/x-ascncjvecpuyiyrz)
03:18:44 hazard-pointer joins (sid331723@gateway/web/irccloud.com/x-wwsxwkmcbnytyqgp)
03:18:44 dani- joins (sid341953@gateway/web/irccloud.com/x-etuikjdqhtlxnikg)
03:18:44 kyagrd__ joins (sid102627@gateway/web/irccloud.com/x-fmxliclmtnkycstb)
03:18:44 ghuntley joins (sid16877@gateway/web/irccloud.com/x-qztbkgafmugcryxi)
03:18:44 hyiltiz-M joins (hyiltizkde@gateway/shell/kde/matrix/x-zvgetfbstubrdqzf)
03:18:44 _flow_ joins (~none@salem.informatik.uni-erlangen.de)
03:18:44 joeyh_ joins (joeyh@kitenet.net)
03:18:44 thonkpod joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
03:18:44 opqdonut joins (opqdonut@pseudo.fixme.fi)
03:21:01 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
03:22:06 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:22:59 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
03:23:56 <boxscape> I said earlier today that I wanted to use `compare `on` fst` to compare (String, Int) with (String, String) - turns out with ImpredicativeTypes you can actually define a function `on :: (b -> b -> c) -> (forall z . f a z -> b) -> f a d -> f a e -> c` which can do this, so that's nice
03:25:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:34c4:973d:64b1:cdbd)
03:26:02 × lolmac quits (sid171216@gateway/web/irccloud.com/x-hjcjaimdwehnhmlw) (Max SendQ exceeded)
03:26:47 falafel joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
03:27:06 × abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
03:27:20 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:28:17 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-packykjqjjbpczgr) (Ping timeout: 244 seconds)
03:28:20 <boxscape> (though of course there are situations where Data.Function.on works and this wouldn't, at least not without unsaturated tyfams
03:28:22 <boxscape> )
03:29:07 betawaffle joins (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc)
03:29:20 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
03:29:34 lolmac joins (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng)
03:29:37 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
03:29:45 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
03:30:02 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:34c4:973d:64b1:cdbd) (Ping timeout: 264 seconds)
03:32:52 <MarcelineVQ> RankNTypes is enough for that
03:33:12 × lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services)))
03:33:18 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
03:33:32 <boxscape> hm GHC told me it doesn't support impredicative types when I didn't enable it MarcelineVQ
03:33:45 × theDon quits (~td@94.134.91.27) (Ping timeout: 240 seconds)
03:33:48 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
03:33:56 <boxscape> actually wait
03:34:29 <nfd9001> impredicative sometimes causes weirder annotation requirements, yeah?
03:34:35 <boxscape> MarcelineVQ fair enough, it was because the function body was `undefined`
03:35:47 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
03:35:53 theDon joins (~td@muedsl-82-207-238-039.citykom.de)
03:38:21 <nfd9001> love undefined. it's so polymorphic
03:38:33 <boxscape> it sure is
03:39:08 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:39:13 × AndreasK quits (uid320732@gateway/web/irccloud.com/x-kmsetxbzackhcodn) (Quit: Connection closed for inactivity)
03:39:14 <boxscape> % :t +v undefined
03:39:14 <yahb> boxscape: forall (r :: RuntimeRep) (a :: TYPE r). GHC.Stack.Types.HasCallStack => a
03:40:16 <solonarv> oh, it's representation-polymorphic? I was unaware of this!
03:40:40 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
03:41:49 <boxscape> % const () $ I# undefined
03:41:49 <yahb> boxscape: ()
03:41:53 <boxscape> yeah
03:43:54 drbean joins (~drbean@TC210-63-209-40.static.apol.com.tw)
03:44:09 × urek quits (~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc) (Ping timeout: 272 seconds)
03:45:15 <boxscape> perhaps somewhat confusingly, that also means that something like `undefined @Int` doesn't work
03:45:28 <crestfallen> sorry I said something in error earlier: the first space would reach the predicate and fail, and would end up in the unused section of the string.
03:45:28 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
03:45:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:48:37 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Read error: Connection reset by peer)
03:48:44 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d25:9913:e6c9:4584)
03:50:20 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7)
03:50:31 TooDifficult joins (~TooDiffic@139.59.59.230)
03:51:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
03:51:49 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7) (Remote host closed the connection)
03:51:56 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7)
03:52:28 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
03:52:54 conal joins (~conal@64.71.133.70)
03:53:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d25:9913:e6c9:4584) (Ping timeout: 264 seconds)
03:53:59 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7) (Remote host closed the connection)
03:55:35 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7)
03:56:37 × da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.167.167) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:56:53 conal_ joins (~conal@64.71.133.70)
03:57:25 × conal quits (~conal@64.71.133.70) (Ping timeout: 246 seconds)
03:57:43 <ezzieyguywuf> hooray, I finished days 1 and 2 of AoC today!
03:57:51 <jle`> ezzieyguywuf: congrats :D
03:58:00 <jle`> just in time for the puzzle today :)
03:58:24 pjb joins (~t@2a01cb04063ec50041ee30a820ddb685.ipv6.abo.wanadoo.fr)
03:59:15 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
03:59:32 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
04:00:02 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7) (Ping timeout: 264 seconds)
04:00:17 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
04:01:14 <ezzieyguywuf> jle`: lol thanks.
04:01:16 Rudd0 joins (~Rudd0@185.189.115.108)
04:01:26 <ezzieyguywuf> nah, I still need to do days 3 and 4 lol
04:01:31 <ezzieyguywuf> I want to do them in order *shrug*
04:02:03 <boxscape> yeah the plot would be pretty confusing otherwise
04:02:41 × st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Quit: WeeChat 2.9)
04:03:45 × falafel quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 240 seconds)
04:05:34 × darjeeling_ quits (~darjeelin@122.245.218.196) (Ping timeout: 260 seconds)
04:06:20 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7)
04:09:14 × dave_uy quits (~david@108.61.193.26) (Ping timeout: 256 seconds)
04:09:19 × bcmiller quits (~bm3719@66.42.95.185) (Ping timeout: 246 seconds)
04:09:25 × byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 240 seconds)
04:10:34 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c8cc:c465:1d4b:5af7) (Ping timeout: 244 seconds)
04:11:50 TooDifficult_ joins (~TooDiffic@103.122.14.27)
04:13:04 <dsal> I only do AoC for the articles.
04:13:30 <ezzieyguywuf> a lot of recurssion in this AoC thingy
04:13:35 <ezzieyguywuf> well suited to haskell lol
04:13:41 <dsal> Which one?
04:13:46 × TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 256 seconds)
04:13:46 TooDifficult_ is now known as TooDifficult
04:15:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
04:15:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:15:50 ggole joins (~ggole@2001:8003:8119:7200:1d5:8df6:c4ab:d6ce)
04:17:12 × xff0x_ quits (~fox@2001:1a81:53f4:6600:356b:2da8:97c9:b5cf) (Ping timeout: 260 seconds)
04:17:19 × eedgit quits (~eedgit@95.179.237.21) (Remote host closed the connection)
04:17:19 × eedgit26 quits (~chat.free@95.179.237.21) (Remote host closed the connection)
04:17:39 eedgit26 joins (~chat.free@95.179.237.21)
04:17:43 eedgit joins (~eedgit@95.179.237.21)
04:18:08 xff0x_ joins (~fox@2001:1a81:53f4:6600:b61f:e73a:b494:e067)
04:19:22 × nfd9001 quits (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) (Ping timeout: 260 seconds)
04:20:37 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
04:20:41 <dsal> I've not done anything I'd call recursive in AoC so far this year. I guess you could call `fold` recursive, but that's more of an implementation detail.
04:20:49 fEst1ck joins (63fa6642@cpe64777d63d1c3-cm64777d63d1c0.cpe.net.cable.rogers.com)
04:21:11 × Wuzzy quits (~Wuzzy@p549c9976.dip0.t-ipconnect.de) (Remote host closed the connection)
04:21:38 × solonarv quits (~solonarv@astrasbourg-552-1-28-212.w90-13.abo.wanadoo.fr) (Ping timeout: 272 seconds)
04:21:44 <ezzieyguywuf> guess I'm not so fancy
04:22:07 <ezzieyguywuf> but I'm not trying to be elegant about it at all
04:22:12 <ezzieyguywuf> just hitting it with a huge hammer
04:22:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:22:53 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds)
04:24:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:14eb:3996:42c8:f96b)
04:24:19 <dsal> Heh, I do some of that. My day 1 was just a list comprehension.
04:24:35 × conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
04:25:01 conal joins (~conal@64.71.133.70)
04:25:06 dave_uy joins (~david@108.61.193.26)
04:25:22 <dsal> My day 2 is basically `count . filter`
04:26:10 bcmiller joins (~bm3719@66.42.95.185)
04:26:15 byorgey joins (~byorgey@155.138.238.211)
04:27:47 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 246 seconds)
04:28:39 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:14eb:3996:42c8:f96b) (Ping timeout: 244 seconds)
04:28:44 <ezzieyguywuf> :b4
04:28:47 <ezzieyguywuf> lol whoops
04:29:45 <MarcelineVQ> yussa beshep
04:29:59 rayyyy1 joins (~nanoz@gateway/tor-sasl/nanoz)
04:30:43 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
04:32:55 Feuermagier joins (~Feuermagi@213.178.26.41)
04:32:56 × Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection)
04:33:37 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
04:33:46 Feuermagier joins (~Feuermagi@213.178.26.41)
04:36:38 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
04:39:03 × rayyyy1 quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
04:39:15 × crestfallen quits (~jvw@192-184-135-144.fiber.dynamic.sonic.net) (Quit: leaving)
04:39:27 × dave_uy quits (~david@108.61.193.26) (Ping timeout: 260 seconds)
04:40:38 × bcmiller quits (~bm3719@66.42.95.185) (Ping timeout: 272 seconds)
04:41:01 × byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 264 seconds)
04:42:49 × jmchael quits (~Chi1thang@87.112.60.168) (Ping timeout: 264 seconds)
04:43:35 × matryoshka` quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
04:44:18 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
04:44:20 Vulfe joins (~vulfe@2600:1702:31b0:34e0:14eb:3996:42c8:f96b)
04:45:06 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
04:45:28 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
04:47:02 × TooDifficult quits (~TooDiffic@103.122.14.27) (Ping timeout: 256 seconds)
04:48:04 TooDifficult_ joins (~TooDiffic@103.122.14.51)
04:48:42 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:14eb:3996:42c8:f96b) (Ping timeout: 260 seconds)
04:48:57 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
04:49:50 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d98b:e839:e4b4:c855)
04:50:07 <ephemient> @tell nfd9001 your problem appears to be operator precedence, *> and <$> are both infixl 4. try instead: string "byr:" *> (Just <$> L.decimal) etc.
04:50:07 <lambdabot> Consider it noted.
04:50:11 christo joins (~chris@81.96.113.213)
04:50:15 clever_ joins (~clever@47.55.159.165)
04:51:01 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:51:03 conal joins (~conal@64.71.133.70)
04:51:25 × conal quits (~conal@64.71.133.70) (Client Quit)
04:53:25 × clever quits (~clever@NixOS/user/clever) (Ping timeout: 240 seconds)
04:54:30 elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
04:54:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d98b:e839:e4b4:c855) (Ping timeout: 264 seconds)
04:56:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
04:56:54 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
04:57:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
04:59:18 argent0 joins (~argent0@168.227.96.26)
05:01:07 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
05:04:15 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 245 seconds)
05:09:46 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
05:10:18 <ezzieyguywuf> dang, couldn't get that 3rd one done today
05:11:40 <MarcelineVQ> there's still time, if you keep flying left then today never ends
05:11:56 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
05:12:49 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:13:26 Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
05:14:15 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
05:14:48 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d98b:e839:e4b4:c855)
05:15:16 Jonkimi727406120 joins (~Jonkimi@223.213.165.31)
05:15:31 × Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Client Quit)
05:15:53 Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
05:16:51 × Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Client Quit)
05:17:01 <ezzieyguywuf> lol
05:17:01 <monochrom> Indeed, consider the first Christopher Reeve Superman movie. :)
05:17:13 Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
05:17:44 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
05:17:56 <dolio> You need to be really fast to do that.
05:18:07 <dolio> Like, on the Concorde.
05:18:17 <MarcelineVQ> no you just need to yell loud enough
05:18:54 <MarcelineVQ> the speed thing is a, red, herring
05:19:25 × Jonkimi727406120 quits (~Jonkimi@223.213.165.31) (Ping timeout: 240 seconds)
05:19:30 × Ariakenom quits (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
05:19:34 <monochrom> Aww, none of you young ones know that Superman movie.
05:19:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d98b:e839:e4b4:c855) (Ping timeout: 260 seconds)
05:20:11 <MarcelineVQ> The one where he doesn't yell while turning back time
05:20:21 <monochrom> heh OK
05:20:46 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
05:20:47 <MarcelineVQ> Well I guess he has a chance to calm down first, in my mind he's screaming the whole time
05:21:14 <Lycurgus> unubermenschlich
05:21:31 <Lycurgus> (i.e. shouting)
05:21:47 <Lycurgus> also funny there's a galactic year but no galactic day
05:23:00 × mozzarella quits (~sam@unaffiliated/sam113101) (Read error: Connection reset by peer)
05:23:03 <monochrom> OK, Dune is the one that weaponizes screaming. :)
05:23:21 <Lycurgus> ah, the voice aint screamin
05:23:26 <Lycurgus> the opposite in fact
05:24:03 <dolio> I think they meant the movie.
05:24:04 <MarcelineVQ> moad'ib's a hellova dug
05:24:09 <dolio> Where you kill people by yelling into a megaphone.
05:24:22 <Lycurgus> more like bucks dog whistles
05:24:24 <dolio> Yelling gun.
05:24:48 <Lycurgus> from which the libral press make so many hard inferences
05:25:19 <MarcelineVQ> dune weaponizes patrick stewart in a rubber suit
05:25:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:25:28 <monochrom> :)
05:26:11 <dolio> Because David Lynch thought yelling guns were less dumb than martial arts.
05:26:33 <Lycurgus> also the wierding modules used sound but it wasn't a or the voice
05:26:51 <Lycurgus> using them the fremen did sorta shout
05:28:58 × suppi quits (~suppi@172.246.241.246) (Quit: ZNC 1.6.2+deb2+precise1 - http://znc.in)
05:30:10 <Lycurgus> also lynch, the drehbuch only used herberts elements
05:30:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
05:31:37 <boxscape> @pl \map -> bimap (map (== 'B')) (map (== 'R'))
05:31:37 <lambdabot> liftM2 bimap ($ ('B' ==)) ($ ('R' ==))
05:31:43 <boxscape> hm maybe not
05:32:44 <MarcelineVQ> where did map go
05:32:58 toorevitimirp joins (~tooreviti@117.182.181.85)
05:33:14 <boxscape> into the pointless aether
05:34:36 × Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
05:35:06 × toorevitimirp quits (~tooreviti@117.182.181.85) (Remote host closed the connection)
05:35:19 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
05:36:05 <MarcelineVQ> Oh, it does check out, I put on strong glasses and lost my marbles in neverland for a moment
05:36:24 BlackCapCoder joins (~blackcap@48.80-203-23.nextgentel.com)
05:36:35 <MarcelineVQ> I wonnder how obscure that reference is
05:37:12 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
05:38:40 nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
05:40:48 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
05:41:56 × drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
05:42:06 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
05:42:18 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
05:42:47 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
05:45:15 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds)
05:48:14 christo joins (~chris@81.96.113.213)
05:48:29 Vulfe joins (~vulfe@2600:1702:31b0:34e0:2de7:f25c:68b1:b551)
05:48:37 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
05:53:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:2de7:f25c:68b1:b551) (Ping timeout: 264 seconds)
05:55:56 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-ngjtmooaohvreyum) ()
05:56:00 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds)
05:56:31 × z0k quits (~user@101.50.127.33) (Read error: Connection reset by peer)
05:58:13 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
05:58:51 × fEst1ck quits (63fa6642@cpe64777d63d1c3-cm64777d63d1c0.cpe.net.cable.rogers.com) (Remote host closed the connection)
06:01:30 Ariakenom joins (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
06:01:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:02:21 z0k joins (~user@101.50.127.33)
06:04:27 × Harekiet1 quits (~Harekiet@84.39.117.57) (Remote host closed the connection)
06:04:34 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
06:05:36 × elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
06:06:22 × jluttine quits (~jluttine@87-95-204-180.bb.dnainternet.fi) (Ping timeout: 256 seconds)
06:09:12 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds)
06:17:13 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
06:17:23 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
06:22:44 <boxscape> is there a class for contravariant bifunctors?
06:23:14 <boxscape> I suppose optics-core hass Bicontravariant
06:23:19 justsomeguy joins (~justsomeg@216.186.218.241)
06:23:19 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
06:23:19 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
06:28:09 <koz_> How can one be contravariant in _both_ parameters?
06:28:15 <koz_> Are there any natural examples?
06:33:07 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Ping timeout: 260 seconds)
06:34:34 <boxscape> koz_ (a -> b -> c) is contravariant an a and b
06:35:30 <koz_> So that'd be equivalent to like 'newtype Op2 c a b = Op2 (a -> b -> c)' by the same logic as contravariant's Op I guess.
06:35:30 <boxscape> I suppose so is (Either a b -> c), for example
06:35:41 <boxscape> yeah
06:35:47 <koz_> Either a b -> c is an interesting example as well.
06:36:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
06:37:44 <koz_> a -> b -> c is actually isomorphic to (a, b) -> c.
06:37:51 <boxscape> right
06:38:00 <koz_> So you have 'function with sum argument' and 'function with product argument' as the two natural examples.
06:38:01 alp joins (~alp@2a01:e0a:58b:4920:14d8:6d19:75e:5ab6)
06:39:25 <boxscape> more generally if p is a Bifunctor, p a b -> c will be contravariant in a and b
06:39:27 <boxscape> I think
06:39:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:40:09 <koz_> I'm not sure that works - how would you derive bicontramap?
06:40:18 <boxscape> hm let me try
06:42:12 Seran1 joins (~Seran@185.103.96.147)
06:43:31 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:44:21 <boxscape> koz_ https://paste.tomsmeding.com/l1ydTX0M
06:44:22 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
06:45:04 <koz_> Oh, clever.
06:45:14 <boxscape> no, just following the typed holes :)
06:45:25 <koz_> That alone gets you surprisingly far in Haskell.
06:45:29 <boxscape> yeah
06:46:41 mozzarella joins (~sam@unaffiliated/sam113101)
06:47:22 <koz_> Is there a Bidivisible and Bidecidable too?
06:47:54 <boxscape> hm good question
06:48:11 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
06:48:15 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
06:48:21 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
06:51:45 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
06:52:08 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:53:52 <koz_> Also, what does optics-core use Bicontravariant to define?
06:56:32 <koz_> Ah, Forget and IxForget.
06:57:13 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
06:57:44 × dxld quits (~dxld@rush.pub.dxld.at) (Quit: Bye)
07:00:01 dxld joins (~dxld@rush.pub.dxld.at)
07:00:58 jedws joins (~jedws@121.209.181.215)
07:01:45 plutoniix joins (~q@ppp-49-237-20-89.revip6.asianet.co.th)
07:05:13 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection)
07:05:31 × lpy quits (~nyd@unaffiliated/elysian) (Read error: Connection reset by peer)
07:06:32 dave_uy joins (~david@108.61.193.26)
07:06:48 bcmiller joins (~bm3719@66.42.95.185)
07:07:36 byorgey joins (~byorgey@155.138.238.211)
07:11:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:11:16 olligobber joins (~olligobbe@unaffiliated/olligobber)
07:11:53 × mrchampion quits (~mrchampio@216-26-218-246.dynamic.tbaytel.net) (Ping timeout: 272 seconds)
07:14:59 mrchampion joins (~mrchampio@216-211-54-88.dynamic.tbaytel.net)
07:16:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
07:18:00 TooDifficult joins (~TooDiffic@223.186.137.102)
07:18:13 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 264 seconds)
07:19:34 × TooDifficult quits (~TooDiffic@223.186.137.102) (Client Quit)
07:20:46 × TooDifficult_ quits (~TooDiffic@103.122.14.51) (Ping timeout: 246 seconds)
07:20:46 Vulfe joins (~vulfe@2600:1702:31b0:34e0:4c47:1933:def8:7db1)
07:24:13 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
07:25:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:4c47:1933:def8:7db1) (Ping timeout: 264 seconds)
07:28:31 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
07:30:26 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
07:32:40 × p-core quits (~Thunderbi@cst-prg-99-198.cust.vodafone.cz) (Ping timeout: 256 seconds)
07:32:54 falafel joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
07:33:36 Vulfe joins (~vulfe@2600:1702:31b0:34e0:40c:49ff:f530:726f)
07:34:08 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
07:35:57 × nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Ping timeout: 272 seconds)
07:37:51 × alp quits (~alp@2a01:e0a:58b:4920:14d8:6d19:75e:5ab6) (Ping timeout: 272 seconds)
07:38:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:40c:49ff:f530:726f) (Ping timeout: 264 seconds)
07:41:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:44:19 Vulfe joins (~vulfe@2600:1702:31b0:34e0:4c56:f6cf:1a80:8251)
07:44:48 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
07:45:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
07:45:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:49:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:4c56:f6cf:1a80:8251) (Ping timeout: 264 seconds)
07:58:50 × caef^ quits (caef@ip98-184-89-2.mc.at.cox.net) (Read error: Connection reset by peer)
07:59:04 caef^ joins (caef@ip98-184-89-2.mc.at.cox.net)
07:59:42 × seliopou quits (seliopou@entropy.tmok.com) (Ping timeout: 256 seconds)
08:01:06 seliopou joins (seliopou@entropy.tmok.com)
08:05:36 heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
08:06:36 fxg joins (~fxg@unaffiliated/fxg)
08:06:50 × hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
08:10:46 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:11:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Ping timeout: 264 seconds)
08:15:23 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
08:17:56 × falafel quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 240 seconds)
08:18:40 mimagic joins (~mimagic@201.82.37.29)
08:19:17 alp joins (~alp@2a01:e0a:58b:4920:9cbf:b7c7:d239:3bce)
08:21:02 × macrover quits (~macrover@2600:8801:1100:2f14:20e6:98ee:438:fb7c) (Ping timeout: 260 seconds)
08:21:03 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
08:22:43 × mimagic quits (~mimagic@201.82.37.29) (Ping timeout: 246 seconds)
08:27:15 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
08:32:08 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 265 seconds)
08:34:43 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
08:35:54 × drbean quits (~drbean@TC210-63-209-40.static.apol.com.tw) (Ping timeout: 256 seconds)
08:37:49 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
08:38:29 Vulfe joins (~vulfe@2600:1702:31b0:34e0:75bf:479b:dfe7:5b22)
08:39:44 mbomba joins (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
08:42:27 × Seran1 quits (~Seran@185.103.96.147) (Remote host closed the connection)
08:43:05 × alp quits (~alp@2a01:e0a:58b:4920:9cbf:b7c7:d239:3bce) (Ping timeout: 272 seconds)
08:43:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:75bf:479b:dfe7:5b22) (Ping timeout: 264 seconds)
08:48:34 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 265 seconds)
08:50:39 xchg joins (~xchg@185.204.1.185)
08:53:10 × hackage quits (mniip@haskell/bot/hackage) (Read error: Connection reset by peer)
08:53:15 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:53:46 hackage joins (mniip@haskell/bot/hackage)
08:57:12 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
08:57:36 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
08:59:12 × BlackCapCoder quits (~blackcap@48.80-203-23.nextgentel.com) (Ping timeout: 265 seconds)
09:00:05 × wanaks[m] quits (wanaksmatr@gateway/shell/matrix.org/x-ncjfiyoyfwrxhjmq) (Quit: Idle for 30+ days)
09:00:05 × jlv quits (jlvjustinl@gateway/shell/matrix.org/x-vewvewaygwmdkitl) (Quit: Idle for 30+ days)
09:00:05 × miseenplace[m] quits (miseenplac@gateway/shell/matrix.org/x-vdkkkdwfftjmtktj) (Quit: Idle for 30+ days)
09:04:49 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
09:07:04 heatsink joins (~heatsink@2600:1700:bef1:5e10:7885:705f:3052:55bc)
09:09:04 × thunderrd quits (~thunderrd@183.182.110.8) (Remote host closed the connection)
09:10:08 thunderrd joins (~thunderrd@183.182.110.8)
09:12:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7885:705f:3052:55bc) (Ping timeout: 264 seconds)
09:12:43 × Sayless quits (~seiless@85.203.34.15) (Quit: Lost terminal)
09:15:09 fendor joins (~fendor@178.115.130.110.wireless.dyn.drei.com)
09:15:47 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:17:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
09:17:54 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
09:18:30 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
09:18:48 da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th)
09:19:36 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
09:24:38 tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl)
09:24:38 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
09:27:16 raichoo joins (~raichoo@dslb-188-100-006-110.188.100.pools.vodafone-ip.de)
09:33:25 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
09:38:59 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
09:39:19 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-npckdfwtcapekmuw) (Quit: Connection closed for inactivity)
09:40:19 christo joins (~chris@81.96.113.213)
09:42:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
09:43:09 bitmagie joins (~Thunderbi@200116b806c00200d8b1b8e14fac996e.dip.versatel-1u1.de)
09:43:23 × bitmagie quits (~Thunderbi@200116b806c00200d8b1b8e14fac996e.dip.versatel-1u1.de) (Client Quit)
09:45:47 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
09:46:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:46:58 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
09:51:16 Vulfe joins (~vulfe@2600:1702:31b0:34e0:6927:9b85:a79a:dc5e)
09:54:01 × jedws quits (~jedws@121.209.181.215) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:55:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:6927:9b85:a79a:dc5e) (Ping timeout: 264 seconds)
09:55:56 × timCF quits (~i.tkachuk@m91-129-106-3.cust.tele2.ee) (Quit: leaving)
09:56:35 olligobber1 joins (~olligobbe@unaffiliated/olligobber)
09:57:48 Vulfe joins (~vulfe@2600:1702:31b0:34e0:290d:2f1:3d80:4086)
09:58:26 × clever_ quits (~clever@47.55.159.165) (Changing host)
09:58:26 clever_ joins (~clever@NixOS/user/clever)
09:58:28 clever_ is now known as clever
10:00:01 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
10:01:34 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:9088:700a:5bf0:5bb6)
10:02:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:290d:2f1:3d80:4086) (Ping timeout: 264 seconds)
10:02:54 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
10:03:00 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
10:03:19 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
10:03:57 LKoen joins (~LKoen@73.174.9.109.rev.sfr.net)
10:05:19 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
10:05:58 xiinotulp joins (~q@ppp-27-55-83-236.revip3.asianet.co.th)
10:06:02 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:9088:700a:5bf0:5bb6) (Ping timeout: 264 seconds)
10:06:28 jamm_ joins (~jamm@unaffiliated/jamm)
10:08:34 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
10:09:10 jedws joins (~jedws@121.209.181.215)
10:09:33 × plutoniix quits (~q@ppp-49-237-20-89.revip6.asianet.co.th) (Ping timeout: 260 seconds)
10:10:33 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
10:11:34 urek joins (~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc)
10:18:28 christo joins (~chris@81.96.113.213)
10:18:32 mimagic joins (~mimagic@201.82.37.29)
10:20:31 clever_ joins (~clever@142.68.197.85)
10:20:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:21:40 × clever_ quits (~clever@142.68.197.85) (Changing host)
10:21:40 clever_ joins (~clever@NixOS/user/clever)
10:21:55 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
10:21:56 × clever quits (~clever@NixOS/user/clever) (Disconnected by services)
10:22:06 clever_ is now known as clever
10:22:44 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
10:23:46 boxscape8 joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
10:25:56 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
10:27:04 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Ping timeout: 272 seconds)
10:27:05 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
10:27:26 mananamenos joins (~mananamen@vpn236-24.vpns.upv.es)
10:28:18 jluttine joins (~jluttine@87-95-146-110.bb.dnainternet.fi)
10:28:24 boxscape8 is now known as boxscape
10:31:10 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 256 seconds)
10:32:23 × xiinotulp quits (~q@ppp-27-55-83-236.revip3.asianet.co.th) (Quit: Leaving)
10:33:17 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:36:00 Lord_of_Life_ is now known as Lord_of_Life
10:36:11 nowhere_man joins (~pierre@91-175-29-131.subs.proxad.net)
10:37:57 knupfer joins (~Thunderbi@200116b82c7fd300885d9bfffe93502e.dip.versatel-1u1.de)
10:37:57 × knupfer quits (~Thunderbi@200116b82c7fd300885d9bfffe93502e.dip.versatel-1u1.de) (Client Quit)
10:38:13 knupfer joins (~Thunderbi@i5E86B4CB.versanet.de)
10:38:41 ph88 joins (~ph88@2a02:8109:9e00:7e5c:cb1:a2e:bc62:aff6)
10:41:48 × mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
10:43:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
10:43:56 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
10:47:16 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
10:47:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:48:30 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
10:52:00 nfd9001 joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net)
10:52:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:53:36 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:54:08 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
10:55:38 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
10:56:28 mastarija joins (~mastarija@93-136-140-159.adsl.net.t-com.hr)
10:56:45 AndreasK joins (uid320732@gateway/web/irccloud.com/x-sicmejfaufzfmqid)
10:58:05 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:58:09 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
10:58:25 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
10:59:08 <mastarija> Is there any vim plugin for haskell that only uses GHCi for error checking, completion, type and docs? Something like this VSCode extension: https://marketplace.visualstudio.com/items?itemName=dramforever.vscode-ghc-simple
10:59:12 Vulfe joins (~vulfe@2600:1702:31b0:34e0:3de3:148f:b7c9:fdb7)
10:59:31 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:59:58 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
11:02:36 × knupfer quits (~Thunderbi@i5E86B4CB.versanet.de) (Ping timeout: 240 seconds)
11:03:28 knupfer joins (~Thunderbi@i5E86B4CB.versanet.de)
11:03:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:3de3:148f:b7c9:fdb7) (Ping timeout: 264 seconds)
11:03:43 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Client Quit)
11:03:55 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
11:03:58 AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl)
11:08:15 acidjnk_new joins (~acidjnk@p200300d0c719ff04c483db69aedba2cb.dip0.t-ipconnect.de)
11:08:40 heatsink joins (~heatsink@2600:1700:bef1:5e10:1401:c674:6b13:1188)
11:09:50 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
11:09:53 Amras joins (~Amras@unaffiliated/amras)
11:10:55 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
11:11:58 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:a985:6507:1c52:205b:26de)
11:13:13 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
11:13:50 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1401:c674:6b13:1188) (Ping timeout: 264 seconds)
11:16:50 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:a985:6507:1c52:205b:26de) (Ping timeout: 264 seconds)
11:17:29 Vulfe joins (~vulfe@2600:1702:31b0:34e0:54a4:d693:d718:efc8)
11:22:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:54a4:d693:d718:efc8) (Ping timeout: 264 seconds)
11:22:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:22:46 p-core joins (~Thunderbi@cst-prg-99-198.cust.vodafone.cz)
11:23:13 darjeeling_ joins (~darjeelin@122.245.218.196)
11:23:14 __monty__ joins (~toonn@unaffiliated/toonn)
11:23:41 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
11:23:55 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
11:24:33 carlomagno1 joins (~cararell@148.87.23.6)
11:25:41 × p-core quits (~Thunderbi@cst-prg-99-198.cust.vodafone.cz) (Client Quit)
11:26:02 p-core joins (~Thunderbi@cst-prg-99-198.cust.vodafone.cz)
11:26:08 × carlomagno quits (~cararell@148.87.23.11) (Ping timeout: 265 seconds)
11:26:12 jollygood2 joins (~bc8165ab@217.29.117.252)
11:26:44 × mimagic quits (~mimagic@201.82.37.29) (Remote host closed the connection)
11:27:02 mimagic joins (~mimagic@201.82.37.29)
11:27:18 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
11:29:32 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
11:30:53 <jollygood2> hi. is there already a function like this? https://pastebin.com/Hw0M7rEc
11:31:40 × mimagic quits (~mimagic@201.82.37.29) (Ping timeout: 272 seconds)
11:32:03 <jollygood2> also, I'm not sure how to, without making a complete mess of the function, pick first element in the original list if count of elements is the same, instead of always picking the one that is first after sorting
11:32:42 × p-core quits (~Thunderbi@cst-prg-99-198.cust.vodafone.cz) (Ping timeout: 256 seconds)
11:34:40 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983)
11:36:12 Varis joins (~Tadas@unaffiliated/varis)
11:37:18 × fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 256 seconds)
11:37:19 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
11:38:37 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
11:38:47 <jollygood2> compilable example: https://pastebin.com/6nTUuHAh
11:39:43 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
11:42:11 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
11:43:53 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
11:45:34 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
11:46:25 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
11:47:16 × knupfer quits (~Thunderbi@i5E86B4CB.versanet.de) (Ping timeout: 240 seconds)
11:48:16 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 240 seconds)
11:48:27 bbfish joins (~bbfish@36.46.19.132)
11:51:19 bbfish parts (~bbfish@36.46.19.132) ("Leaving")
11:52:13 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
11:52:59 × doct0rhu quits (~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net) (Ping timeout: 260 seconds)
11:53:31 hackage uniqueness-periods-vector-stats 0.2.0.0 - A very basic descriptive statistics. https://hackage.haskell.org/package/uniqueness-periods-vector-stats-0.2.0.0 (OleksandrZhabenko)
11:54:33 × aib quits (~aib@unaffiliated/aib42) (Ping timeout: 272 seconds)
11:54:41 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
11:54:50 raoul9 joins (~raoulhida@nomnomnomnom.co.uk)
11:54:56 sheaf joins (~sheaf@2a01:cb19:80cc:7e00:ade8:1e5b:84e9:86db)
11:55:09 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
11:55:48 mcginleyr1_ joins (uid475794@gateway/web/irccloud.com/x-kmepugnonanirpgl)
11:55:56 aib joins (~aib@unaffiliated/aib42)
11:56:22 fxg joins (~fxg@unaffiliated/fxg)
11:56:36 urek__ joins (~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc)
11:56:48 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:57:25 × mcginleyr1 quits (uid475794@gateway/web/irccloud.com/x-osmqhtuhvgdcdnxg) (Ping timeout: 272 seconds)
11:57:25 × wpcarro quits (sid397589@gateway/web/irccloud.com/x-mptadpaqtazralft) (Ping timeout: 272 seconds)
11:57:25 × urek quits (~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc) (Ping timeout: 272 seconds)
11:57:25 × Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 272 seconds)
11:57:25 × liff quits (liff@kapsi.fi) (Ping timeout: 272 seconds)
11:57:25 × `slikts quits (~nelabs@wikipedia/reinis) (Ping timeout: 272 seconds)
11:57:25 × raoul quits (~raoulhida@nomnomnomnom.co.uk) (Ping timeout: 272 seconds)
11:57:25 mcginleyr1_ is now known as mcginleyr1
11:57:27 liff joins (liff@kapsi.fi)
11:57:31 × AndreasK quits (uid320732@gateway/web/irccloud.com/x-sicmejfaufzfmqid) (Ping timeout: 272 seconds)
11:57:31 × heredoc quits (heredoc@2a01:7e01::f03c:91ff:fec1:de1d) (Ping timeout: 272 seconds)
11:57:31 × tv- quits (~tv@unaffiliated/tv-) (Ping timeout: 272 seconds)
11:57:31 × edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 272 seconds)
11:57:31 × jbetz quits (sid283648@gateway/web/irccloud.com/x-sdqysuekfefsmces) (Ping timeout: 272 seconds)
11:57:31 × travv0 quits (sid293381@gateway/web/irccloud.com/x-bzeyalubfbhlrrhq) (Ping timeout: 272 seconds)
11:57:32 wpcarro_ joins (sid397589@gateway/web/irccloud.com/x-ealbiyxzmxxgewpr)
11:57:38 × Blkt quits (~Blkt@2a01:4f8:200:2425::adda) (Read error: Connection reset by peer)
11:57:39 jamm_ joins (~jamm@unaffiliated/jamm)
11:57:42 travv0 joins (sid293381@gateway/web/irccloud.com/x-putwjyfohfmmjdnz)
11:57:56 Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch)
11:58:09 × shf quits (~sheaf@2a01:cb19:80cc:7e00:d9e0:5dd0:4ff3:cac9) (Ping timeout: 272 seconds)
11:58:09 × operand quits (~operand@is.altijd.moe) (Ping timeout: 272 seconds)
11:58:09 × ajmcmiddlin quits (sid284402@gateway/web/irccloud.com/x-rzusuwaofduhllmt) (Ping timeout: 272 seconds)
11:58:09 × lucas8 quits (~luc@2001:41d0:8:109c::1) (Ping timeout: 272 seconds)
11:58:23 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
11:58:26 lucas8 joins (~luc@2001:41d0:8:109c::1)
11:58:28 Blkt joins (~Blkt@2a01:4f8:200:2425::adda)
11:58:31 ajmcmiddlin joins (sid284402@gateway/web/irccloud.com/x-moukoiwvvkyyxkhc)
11:58:41 AndreasK joins (uid320732@gateway/web/irccloud.com/x-plgftcbqpbpmnyrj)
11:58:43 edwardk joins (sid47016@haskell/developer/edwardk)
11:58:51 alp joins (~alp@88.126.45.36)
11:58:59 `slikts joins (~nelabs@wikipedia/reinis)
11:59:23 jbetz joins (sid283648@gateway/web/irccloud.com/x-mtknylhkbpwnovev)
11:59:34 tv- joins (~tv@unaffiliated/tv-)
11:59:50 heredoc joins (heredoc@2a01:7e01::f03c:91ff:fec1:de1d)
11:59:56 operand joins (~operand@is.altijd.moe)
12:02:16 Vulfe joins (~vulfe@2600:1702:31b0:34e0:1556:635b:1dc3:c707)
12:04:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:04:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:04:31 hackage uniqueness-periods-vector-stats 0.2.1.0 - A very basic descriptive statistics. https://hackage.haskell.org/package/uniqueness-periods-vector-stats-0.2.1.0 (OleksandrZhabenko)
12:05:45 <xerox_> mastarija: https://github.com/neoclide/coc.nvim
12:06:03 <xerox_> together with https://github.com/haskell/haskell-language-server
12:06:24 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:1556:635b:1dc3:c707) (Ping timeout: 240 seconds)
12:06:31 <mastarija> Yes, but I don't want language server, I want something that works with just my stock GHCi
12:06:50 <mastarija> Like that vscode extension :D
12:06:58 <xerox_> I use this but it doesn't integrate with vim https://github.com/ndmitchell/ghcid
12:07:00 × nowhere_man quits (~pierre@91-175-29-131.subs.proxad.net) (Remote host closed the connection)
12:07:08 <xerox_> well, maybe it can, but in my setup it doesn't (:
12:07:09 <mastarija> yes, me too
12:07:23 <mastarija> Right now I just have it in separate terminal window
12:07:42 nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
12:08:11 × olligobber1 quits (~olligobbe@unaffiliated/olligobber) (Ping timeout: 265 seconds)
12:08:42 <xerox_> I use tmux and split the terminal in three, vim, ghcid, repl
12:08:56 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
12:09:05 shatriff joins (~vitaliish@176.52.219.10)
12:09:15 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
12:09:32 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
12:09:33 × Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 272 seconds)
12:09:37 Katarushisu3 joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
12:11:15 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
12:12:58 borne joins (~fritjof@200116b8645b9f009ba1d43461655289.dip.versatel-1u1.de)
12:13:15 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:14:24 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
12:15:04 urek joins (~urek@2804:7f1:e10a:a8d:a85d:6d9e:3db:9450)
12:15:05 <merijn> mastarija: Which VS Code extension? afaik *everything* in VS Code use language server
12:15:18 <merijn> mastarija: Considering VS Code is the project that invented LSP
12:15:28 <xerox_> linked up there called vscode-ghc-simple
12:15:37 <mastarija> https://marketplace.visualstudio.com/items?itemName=dramforever.vscode-ghc-simple
12:16:13 <merijn> xerox_: ghcide (not ghcid) works pretty will vim's LSP plugins like ALE
12:16:24 × urek__ quits (~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc) (Ping timeout: 240 seconds)
12:16:46 <xerox_> I'm happy with ghcid really
12:17:04 <merijn> ghcid is ok, but it's slow as hell
12:17:10 <merijn> Since it just runs "cabal build"
12:17:10 <xerox_> maybe would like it to restart if I change the cabal file, but that's it
12:17:25 <xerox_> I don't work on very big programs anyway :)
12:17:48 <merijn> That's fine if your full build is fast, but for my bigger code bases even rebuilding half can sometimes take a few minutes. ghcide is much more responsive there
12:17:52 <mastarija> xerox_, me too. I usually setup a makefile which tells ghcid to restart on certain file changes.
12:17:52 × acidjnk_new quits (~acidjnk@p200300d0c719ff04c483db69aedba2cb.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:18:05 <xerox_> mastarija: that's not a make feature tho is it?
12:18:12 <mastarija> xerox_, nope
12:18:30 <mastarija> xerox_, I just create a command which basically calls ghcid with some flags
12:18:32 <xerox_> I guess there are a bunch of inotify/whatever tools one can use for that
12:18:42 jamm_ joins (~jamm@unaffiliated/jamm)
12:18:57 <mastarija> sure, but ghcid is capable of that anyway
12:19:07 <xerox_> it is?!
12:19:25 <mastarija> yes, it has basic file watching capabilities
12:19:38 <xerox_> aah I thought I missed the addition of restart-when-cabal-changes
12:19:54 toorevitimirp joins (~tooreviti@117.182.181.85)
12:20:00 <mastarija> we are talking about the cabal file, no?
12:20:03 <xerox_> yes
12:20:05 dhil joins (~dhil@195.213.192.34)
12:20:16 × alp quits (~alp@88.126.45.36) (Ping timeout: 265 seconds)
12:20:22 <mastarija> yes, you can tell him to watch for changes in .cabal and then restart
12:20:55 <merijn> xerox_: Eh, the filewatching stuff in ghcid has been around for a few years :p
12:21:01 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
12:21:15 <xerox_> I had no idea! --restart=foo.cabal
12:21:21 <xerox_> I'm set for another decade then
12:21:28 <mastarija> hehe
12:21:38 <xerox_> thank you ^_^
12:21:47 <mastarija> you can add multiple files of course, I think it's comma separated
12:21:53 alp joins (~alp@2a01:e0a:58b:4920:3475:6e74:80f7:d0b3)
12:25:48 mimagic joins (~mimagic@201.82.37.29)
12:28:29 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
12:28:54 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:29:44 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
12:29:46 jamm_ joins (~jamm@unaffiliated/jamm)
12:29:53 × carlomagno1 quits (~cararell@148.87.23.6) (Remote host closed the connection)
12:31:39 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
12:32:37 × blissful quits (~azuline@unaffiliated/azuline) (Quit: Ping timeout (120 seconds))
12:33:05 blissful joins (~azuline@unaffiliated/azuline)
12:33:21 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983)
12:33:28 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:33:46 jamm_ joins (~jamm@unaffiliated/jamm)
12:34:07 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:34:54 Vulfe joins (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee)
12:35:31 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
12:35:47 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
12:38:37 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
12:38:38 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Read error: Connection reset by peer)
12:38:53 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
12:39:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee) (Ping timeout: 264 seconds)
12:41:01 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 246 seconds)
12:43:35 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Read error: Connection reset by peer)
12:44:56 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
12:45:45 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
12:46:08 × mastarija quits (~mastarija@93-136-140-159.adsl.net.t-com.hr) (Quit: Leaving)
12:46:21 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
12:47:30 × jedws quits (~jedws@121.209.181.215) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:48:32 u0_a298 joins (~user@65.35.205.131)
12:48:38 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
12:50:01 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
12:50:49 geekosaur joins (ac3a5454@172.58.84.84)
12:52:19 × ronbrz quits (~ronbrz@207.229.174.134) (Quit: WeeChat 2.9)
12:52:33 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
12:53:31 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:53:44 × lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 256 seconds)
12:54:34 jamm_ joins (~jamm@unaffiliated/jamm)
12:54:58 christo joins (~chris@81.96.113.213)
12:56:30 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
12:57:16 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
12:57:44 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
12:59:26 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
13:02:01 × raichoo quits (~raichoo@dslb-188-100-006-110.188.100.pools.vodafone-ip.de) (Quit: Lost terminal)
13:02:32 × olligobber quits (~olligobbe@unaffiliated/olligobber) (Remote host closed the connection)
13:02:43 × mimagic quits (~mimagic@201.82.37.29) (Remote host closed the connection)
13:02:45 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds)
13:02:47 <cads> hey all, having some problems with ghcup - anything I could do to get these gears unstuck? https://gist.github.com/maxsu/8870e338c6b8f48ec8740776acd3ee1f
13:03:16 cads considers sticking their hand in there
13:04:40 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
13:05:24 fendor_ joins (~fendor@77.119.129.145.wireless.dyn.drei.com)
13:06:40 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Remote host closed the connection)
13:07:10 hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
13:07:45 × fendor quits (~fendor@178.115.130.110.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
13:07:54 jiribenes joins (~jiribenes@rosa.jiribenes.com)
13:09:43 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 272 seconds)
13:09:43 × nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Ping timeout: 272 seconds)
13:10:06 heatsink joins (~heatsink@2600:1700:bef1:5e10:1401:c674:6b13:1188)
13:12:31 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
13:12:55 u0_a298 joins (~user@65.35.205.131)
13:14:43 Vulfe joins (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee)
13:14:46 × argent0 quits (~argent0@168.227.96.26) (Ping timeout: 256 seconds)
13:15:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1401:c674:6b13:1188) (Ping timeout: 264 seconds)
13:17:12 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
13:18:02 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Remote host closed the connection)
13:18:18 u0_a298 joins (~user@65.35.205.131)
13:18:46 wei2912 joins (~wei2912@unaffiliated/wei2912)
13:19:15 × b3z quits (~b3z@vmd41962.contaboserver.net) (Quit: cya)
13:19:32 jiribenes joins (~jiribenes@rosa.jiribenes.com)
13:20:21 <cads> I feel like ghcup should do these things: 1. install ghc and cabal to ~/.ghcup 2. put ~/.ghcup on the path 3. Configure cabal to install to the .ghcup directory. 4. Fade away into the background
13:21:14 <merijn> I feel like it definitely shouldn't do 2 >.>
13:21:20 <merijn> Not convinced about 3 either, tbh
13:21:28 <cads> #3 & 4 beg the question of whether it should be the .ghcup folder, and how much of this does cabal already do
13:23:11 <cads> merijn, I'm comparing with go and rust. Its curl-installers create .go and .cargo directories in the home directories, and puts the bin directories on the path
13:23:37 <merijn> Tools should never change the user's environment without explicit instruction. If other tools do that, those tools are wrong
13:24:01 <merijn> For one, there's literally no way for tools to robustly change your path
13:25:33 × alp quits (~alp@2a01:e0a:58b:4920:3475:6e74:80f7:d0b3) (Ping timeout: 272 seconds)
13:25:34 <merijn> I'm sure there's plenty of *bad* tools that do stuff like "edit the user's profile", which is 1) bad, 2) depends on you reliably identifying what the user's profile is, 3) still isn't sure to work and may in fact mess up the user's profile/environmeent
13:25:58 <cads> I wouldn't imply it should do so without user approval - what I've seen is that some installers will offer to modify .bashrc (works in 99% of cases)
13:27:30 <merijn> afaik ghcup already tells you what to do to setup your path
13:27:43 alp joins (~alp@2a01:e0a:58b:4920:9d91:6177:2c4d:3bca)
13:30:55 <cads> hmm, I have been downloading manually and putting it where I wanted it to be
13:32:13 <cads> hmm, for that matter, it looks like curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh is not working at the moment
13:35:57 <cads> not really similar to my earlier error, but maybe the ghcup server is acting up
13:36:39 catchme joins (uid355354@gateway/web/irccloud.com/x-hxmidzshauhjcqia)
13:37:30 × dxld quits (~dxld@rush.pub.dxld.at) (Quit: Bye)
13:39:02 <geekosaur> you might pop over to #haskell-infrastructure and ask about it
13:39:02 hackage phonetic-languages-plus 0.1.1.0 - Some common shared between different packages functions. https://hackage.haskell.org/package/phonetic-languages-plus-0.1.1.0 (OleksandrZhabenko)
13:39:31 <geekosaur> sadly neither status.haskell.org nor webmon currently monitors the ghcup service
13:40:40 dxld joins (~dxld@rush.pub.dxld.at)
13:43:11 <merijn> Doesn't it just grab stuff from gitlab?
13:43:11 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
13:43:24 × fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 265 seconds)
13:43:42 <cads> prolly
13:43:57 <geekosaur> gitlab shows as up. but I think the metadata's separate from gitlab. the taralls come from gitab but nothing else I suspect
13:44:18 u0_a298 joins (~user@65.35.205.131)
13:44:32 <geekosaur> and the metadtaa's what's failing. (well, that and reportedly the curl|sh ick)
13:44:33 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
13:44:41 <dminuoso> geekosaur: gitlab showing as up is arguably just a blatant lie.
13:44:53 <dminuoso> gitlab can easily show as up on any given metric and be completely broken
13:45:06 <geekosaur> there is that
13:45:39 <cads> is there some other script that I can run in a generic unix environment with a hope and a prayer that I'll end up with working ghc and cabal on my path?
13:46:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:46:14 <dminuoso> tar
13:46:16 <dminuoso> :)
13:46:46 <dminuoso> We have bindists you can just untar and install.
13:47:06 <cads> for ghc, which one should I use?
13:47:40 <dminuoso> Which system are you on?
13:48:07 <dminuoso> At any rate
13:48:09 <dminuoso> https://www.haskell.org/ghc/download_ghc_8_10_2.html#binaries
13:48:11 <cads> at https://www.haskell.org/ghc/download_ghc_8_10_2.html#linux_x86_64 we have bin dists for 12 linux distributions (if we include windows)
13:48:19 <cads> but no generic package
13:49:01 <dminuoso> Well ghcup is that generic thing.
13:49:21 <dminuoso> It genreally works, what error are you getting?
13:50:40 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
13:51:31 <merijn> cads: What does "generic package" mean?
13:51:50 <merijn> cads: GHC depends on several libraries, those distro names just indicate which library versions they use
13:51:56 <merijn> (and thus are compatible with)
13:52:21 <merijn> It's impossible to make a "generic" bindist, because there is no universally installed version of things like libffi and libgmp
13:52:43 <dminuoso> Well, there sort of is if you just have a tarballed nix closure...
13:52:53 <dminuoso> Just needs a linux kernel :>
13:53:07 <merijn> dminuoso: Even then you depend on glibc, unless you're using musl in your nix closure
13:53:25 <dminuoso> merijn: Not an external glibc.
13:53:26 jmchael joins (~Chi1thang@87.112.60.168)
13:53:30 <nshepperd2> just include your own glibc :)
13:53:32 <dminuoso> glibc would be included in the nix closure
13:53:33 <cads> merijn, if someone was offering to pay you, and the goal was to cover 95% of business relevant use cases, I think the word impossible would leave the conversation
13:53:45 <cads> but I'm not gonna offer to pay you
13:53:52 <merijn> cads: Right, which is why it doesn't exist
13:53:57 <dminuoso> merijn: its sort of the point for nix closures to have anything they need
13:54:04 <dminuoso> aside from the linux kernel
13:54:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
13:54:36 <merijn> cads: Actually, even then it is
13:54:55 <merijn> cads: Because it depends on the exact requirements people have of a "generic" version
13:55:24 <srk> can you statically link ghc?
13:55:28 <merijn> Sure, you can do what dminuoso says and ship a Nix closure or something, but most people expect their compiler to work with *their* C compiler and to be able to use the C libraries *they* install
13:55:50 <merijn> srk: Statically linking GHC isn't the problem
13:56:04 <merijn> srk: The problem is that the RTS system depends on GMP and glibc (on linux, anyway)
13:56:22 <srk> hmm, I see
13:56:24 <merijn> srk: So if you're gonna ship your own glibc (as dminuoso mentioned) then the RTS will be linked against that
13:57:00 <merijn> srk: So now you build your own libraries locally with your own C compiler and you gotta just cross your fingers the glibc *they* use is compatible with the glibc the RTS uses, else GHC will just generate broken executables
13:57:00 <srk> looks like it is a thing .. https://github.com/redneb/ghc-alt-libc/releases
13:57:14 <srk> makes sense
13:57:39 <merijn> srk: Sure, but that means you gotta build all your *other* stuff also with musl. Which is not what the average user/developer expects/wants to deal with
13:58:04 <srk> yup :)
13:58:50 <merijn> and certainly not what people would expect of a "generic release"
14:00:05 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
14:01:24 × LKoen quits (~LKoen@73.174.9.109.rev.sfr.net) (Read error: Connection reset by peer)
14:02:00 <dminuoso> And if its supposed to produce static builds, that will cause other issues
14:02:01 Tario joins (~Tario@201.192.165.173)
14:02:06 <cads> node js has an installer, and no longer recommends users to use their distribution packages
14:02:26 mouseghost joins (~draco@wikipedia/desperek)
14:02:30 <merijn> JS packages also can't link against native code
14:02:41 <dminuoso> merijn: thats not entirely true
14:02:41 × toorevitimirp quits (~tooreviti@117.182.181.85) (Remote host closed the connection)
14:02:43 <cads> not an excuse
14:02:46 <merijn> Which basically eliminates all these problems by simply not letting you do that
14:02:48 <cads> python.. just checked.. is so ubiquitous that it doesn't even have installation packages for linux
14:02:55 LKoen joins (~LKoen@73.174.9.109.rev.sfr.net)
14:03:06 <merijn> Like, what exactly, is this discussion trying to accomplish?
14:03:09 toorevitimirp joins (~tooreviti@117.182.181.85)
14:03:35 × jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/)
14:03:53 <cads> get you to admit that ghc install is needlessly hard and brainstorm ways to improve it?
14:03:54 jollygood2 joins (~bc8165ab@217.29.117.252)
14:04:01 <dminuoso> Its not a GHC problem.
14:04:17 <merijn> "Languages with several million, possibly billions, of dollars of manpower invested in them by multinational and thousands of volunteers have managed to solve some problems by throwing endless manpower at manually fixing all the corner cases"
14:04:22 <merijn> ok, sure, that's true
14:04:24 <dminuoso> Haskell produces native binaries, that's for *your* convenience
14:04:26 <merijn> But that's not very helpful
14:04:38 <merijn> cads: You can't install a generic GCC either
14:04:38 <dminuoso> But because it produces native binaries, that means we need a compiler, a linker, and libraries
14:05:44 <dminuoso> Well actually we dont even need a compiler if the -fasm backend is chosen, which is evne by default
14:05:46 <cads> merijn, if we're admitting that the difference in outcomes is due to the huge difference in installed base and sheer economic dependency on the systems, I'll admit that makes me feel less frustrated and confused
14:05:49 <dminuoso> but a linker we're not gonna build.
14:05:52 <merijn> cads: Solving this packaging problem in GHC is easy. Just eliminate the dependency on libc and libgmp in the RTS
14:06:41 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
14:06:41 <merijn> cads: So "all" you need to do is implement all libc functionality in the RTS by implementing it directly using syscalls on all supported platforms
14:07:03 Neo-- joins (~neo@188-230-138-83.dynamic.t-2.net)
14:07:14 <merijn> cads: Which, btw, is exactly how Go handles this. They use syscalls directly, which means they had to reimplement everything in the RTS for each OS
14:07:25 <geekosaur> we only need a compiler for FFI stubs. -fllvm needs LLVM utils. -fvia-C vanished a decade ago
14:07:27 <merijn> cads: Can that be done? Sure, just look at go.
14:07:30 <cads> I was gonna ask how rust and go do it
14:08:00 <merijn> cads: But we're talking hundreds, if not thousands, of man hours to do so and at the end the only benefit is "improved installation process by 0.5%" (if that much)
14:08:04 <cads> merijn, you saying we could take what go/rust do and port it over to get a similar experience? because I've installed rust and go about 2 dozen times and each time it was smooth as butter
14:08:22 <dminuoso> cads: Have you even figured out what your problem is?
14:08:28 <dminuoso> In my experience ghcup works like butter too
14:08:38 <cads> but I've /tried/ to install ghc perhaps a dozen times over the last decade and each time I bonk on something dumb
14:08:42 <merijn> cads: Rust and Go were, from the beginning, designed with this in mind, which meant they could gradually invest the engineering
14:08:49 acidjnk_new joins (~acidjnk@p200300d0c719ff043467fd7c213734d3.dip0.t-ipconnect.de)
14:08:51 <dminuoso> You know. Apart from "Corporate firewall hijacked the TLS traffic", "Apple is broken again, refusing to install xcode"
14:09:23 <merijn> cads: The point is that the engineering effort required to improve from the status quo is enormous and is much better spend on other things.
14:09:27 <cads> dminuoso, I'm gonna wait a day and hope ghcup works - it looks for all the world like the remote server is hung
14:09:40 <dminuoso> cads: did you get any error message?
14:09:53 <merijn> cads: Also, is there no GHC and cabal package for your distro (unless it's Arch, then definitely don't use those...)
14:10:08 <cads> dminuoso, see here https://gist.github.com/maxsu/8870e338c6b8f48ec8740776acd3ee1f
14:10:58 <__monty__> Hmm, can I prevent IO actions from outputting anything when using criterion's nfIO?
14:11:09 <sm[m]> not to derail this interesting chat but as a practical tip cads: an easy generic way to get Haskell tools on a unix system is to download and run the stack installer (a bash script)
14:11:10 heatsink joins (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607)
14:11:12 <cads> dminuoso, when I tried to pull the yaml file from a browser I got nothing- I'll try it again. Before this ghcup has 'just worked'
14:11:17 <dminuoso> __monty__: dup2 stdout?
14:11:38 <dminuoso> __monty__: Im not sure whether that'd work right in Haskell tho
14:12:25 × alp quits (~alp@2a01:e0a:58b:4920:9d91:6177:2c4d:3bca) (Ping timeout: 272 seconds)
14:12:34 <merijn> dminuoso: It does
14:12:36 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
14:12:40 <merijn> I actually have example code somewhere
14:12:57 × noan quits (~noan@2604:a880:400:d0::12fc:5001) (Quit: ZNC 1.8.2 - https://znc.in)
14:12:57 × DigitalKiwi quits (~kiwi@unaffiliated/digitalkiwi) (Quit: quite.)
14:13:27 noan joins (~noan@2604:a880:400:d0::12fc:5001)
14:13:34 <merijn> ah, wait, did I get rid of it?
14:13:47 <cads> merijn, there's a fun situation in alpine: i) there's an alpine package on the GHC page but it's for alpine 2.10 (2 minor versions old) ii) alpine's package repo has ghc 8.8.2 (also 2 minor versions old)
14:14:34 <merijn> cads: 8.8 is one minor version old and also "so?"
14:14:47 <dminuoso> cads: Mmm, shouldnt you have to install a ghc first?
14:15:05 <dminuoso> The error is strnage tho
14:15:05 jess joins (jess@freenode/staff/jess)
14:15:06 <merijn> Odds of needing the very latest GHC are roughly 0 unless you're trying to use some bleeding edge feature in the newest GHC
14:15:23 DigitalKiwi joins (~kiwi@unaffiliated/digitalkiwi)
14:16:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607) (Ping timeout: 260 seconds)
14:17:23 <cads> merijn, wait, you think it's safe to run 2 minor versions behind (current is 8.10)? okay, I'll try it! In the past I was used to debian stable ghc being so far behind that most packages wouldn't compile
14:17:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee) (Ping timeout: 260 seconds)
14:17:34 <merijn> cads: Odd minor versions are development only
14:17:41 <merijn> 8.10 is the first release after 8.8
14:17:48 <cads> ah
14:18:08 <merijn> Also, I frequently run 3-4 releases behind if I get too lazy about updating
14:18:10 <dminuoso> 8.6.5 is still a fine compiler.
14:18:30 <merijn> I only updated from 8.6 to 8.10 because I needed a new feature in 8.10
14:19:14 <dminuoso> Only reason I update GHC is because.. well I use the nixos "stable" GHC, so whenver that gets updated I get it too...
14:19:20 <merijn> cads: It's a compiler, not a network facing service. Unless you're actively hitting some bug or needing a new feature there's no real reason too avoid older versions (well, at some point they become so old it's impractical because libraries don't support them)
14:19:45 <dminuoso> From experience, things rarely go noticeably faster in newer releases. :>
14:19:55 <merijn> But honestly anything >8.0 will probably be sufficiently supported
14:20:34 <dminuoso> cads: But yeah, Ive looked at the code path and its a real wart that it doesn't report what exception is being thrown
14:20:52 <cads> merijn, the issue I always found was that ordinary packages would use some ghc feature that would break debian stable's GHC, and I'd have to go off on a tangent buolding new ghc
14:21:18 <cads> ghcup for me means an end in sight to this
14:21:23 <cads> for instance, debian buster is running ghc 8.4.4, which I wouldn't trust
14:21:49 <dminuoso> cads: Can you run `curl https://www.haskell.org/ghcup/data/ghcup-0.0.4.yaml`?
14:21:58 <cads> dminuoso, no, that fails
14:22:01 <cads> you?
14:22:02 <dminuoso> cads: Whats the error?
14:22:08 <dminuoso> cads: works for me
14:22:08 <cads> it just hangs
14:22:17 <dminuoso> cads: Do you have a vpn enabled?
14:22:24 <dminuoso> Or sit behind a company firewall?
14:22:38 <dminuoso> Can you run a traceroute towards the IP behind that domain?
14:22:55 <cads> gimme a line, I'll run it
14:23:13 <srk> apt-get -y install nix
14:23:24 srk runs
14:23:36 <cads> srk, lol
14:23:39 Vulfe joins (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee)
14:24:04 <dminuoso> cads: Can you reach this website? https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/ghcup-0.0.4.yaml
14:25:01 clynamen_ joins (~clynamen@37.183.22.31)
14:25:03 × clynamen quits (~clynamen@37.183.22.31) (Read error: Connection reset by peer)
14:25:07 <cads> hmm, strange, I can curl https://downloads.haskell.org/~ghcup/x86_64-linux-ghcup
14:25:12 <cads> dminuoso, yep
14:25:41 <dminuoso> cads: Can you reach www.haskell.org at all?
14:26:15 <cads> dminuoso, yes, as I just mentioned, I can download the ghcup binary. I can also navigate the main site.
14:26:21 <dminuoso> that's really strange
14:27:19 <cads> I'm thinking of resetting my network stack and rebooting to see if that unsticks it - I really want this to be a problem on my side and not ghcup's side
14:27:25 <dminuoso> I dont think it will
14:27:35 <dminuoso> so its possible this is behind a cdn
14:27:44 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 272 seconds)
14:27:49 <dminuoso> Im not familiar with the setup here
14:27:57 <dminuoso> but its definitely a network bug
14:28:09 <cads> almost certainly I'm hitting some kind of stale cdn, and you're probably hitting a live one
14:28:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee) (Ping timeout: 264 seconds)
14:28:15 <dminuoso> yeah
14:28:27 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
14:28:35 <dminuoso> #haskell-infrastructure is the right place like geekosaur suggested earlier
14:29:08 <cads> yeah, I'll mosey on by and raise the issue and see if I can pledge some kind of support to improve the infrastructure here
14:29:53 × coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
14:32:03 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
14:33:01 hackage ukrainian-phonetics-basic 0.4.0.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.4.0.0 (OleksandrZhabenko)
14:33:13 u0_a298 joins (~user@65.35.205.131)
14:35:23 urodna joins (~urodna@unaffiliated/urodna)
14:35:23 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
14:35:24 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
14:36:09 <tomsmeding> I've made this ( https://ircbrowse.tomsmeding.com/perfstats ) two days ago; it seems clear what the slow pages are :)
14:36:18 u0_a298 joins (~user@65.35.205.131)
14:38:30 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
14:39:04 <sm[m]> tomsmeding++
14:39:17 u0_a298 joins (~user@65.35.205.131)
14:39:18 <tomsmeding> also first time working with blaze, seems a fine DSL
14:40:41 <cads> dminuoso, and wouldn't you know it, the service started working just as soon as I started drafting my outage report!
14:40:56 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
14:41:08 <tomsmeding> cads: service optimises for maximum annoyance
14:43:20 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
14:43:48 Vulfe joins (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee)
14:44:17 u0_a298 joins (~user@65.35.205.131)
14:44:31 texasmynsted joins (~texasmyns@212.102.45.112)
14:44:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
14:47:18 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
14:47:36 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
14:47:53 × borne quits (~fritjof@200116b8645b9f009ba1d43461655289.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
14:48:14 u0_a298 joins (~user@65.35.205.131)
14:48:22 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee) (Ping timeout: 260 seconds)
14:48:49 <cads> merijn, I lucked out with the fact that the alpine ghc package is very fresh - so I could have installed that rather than wait for ghcup to get working. What ghcup does is it detects alpine linux then downloads hasufell's ghc-8.8.4-x86_64-alpine-linux.tar.xz and haskell.org's cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz
14:50:17 × geekosaur quits (ac3a5454@172.58.84.84) (Remote host closed the connection)
14:50:47 × jneira quits (02896aa1@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.161) (Ping timeout: 260 seconds)
14:51:32 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
14:51:47 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
14:52:47 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
14:53:24 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
14:53:31 hackage ukrainian-phonetics-basic 0.4.1.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.4.1.0 (OleksandrZhabenko)
14:54:30 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:54:54 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:57:09 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
14:57:57 u0_a298 joins (~user@65.35.205.131)
14:58:04 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
14:58:51 × toorevitimirp quits (~tooreviti@117.182.181.85) (Remote host closed the connection)
15:00:59 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:03:16 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
15:04:16 u0_a298 joins (~user@65.35.205.131)
15:05:14 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
15:06:20 × jollygood2 quits (~bc8165ab@217.29.117.252) (Disconnected by services)
15:06:43 jollygood2 joins (~bc8165ab@1582020-static.lxtnkya3.metronetinc.net)
15:07:20 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
15:08:02 Vulfe joins (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee)
15:09:56 Sheilong joins (uid293653@gateway/web/irccloud.com/x-xcscidhxhkxwhlyp)
15:10:17 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983)
15:10:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
15:10:41 Vulfe_ joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
15:10:46 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
15:10:59 Entertainment joins (~entertain@104.246.132.210)
15:11:44 × caef^ quits (caef@ip98-184-89-2.mc.at.cox.net) ()
15:11:44 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
15:11:45 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
15:12:03 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983) (Client Quit)
15:12:12 Tops2 joins (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de)
15:12:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:40c9:5e0b:6e01:acee) (Ping timeout: 264 seconds)
15:12:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:12:50 tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net)
15:14:20 christian_ joins (~christian@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f)
15:14:31 christian_ is now known as halbGefressen
15:15:14 × Vulfe_ quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 260 seconds)
15:15:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
15:16:45 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c04c:1fe2:bb3d:6e7b)
15:18:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
15:18:24 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
15:19:56 codeAlways joins (uid272474@gateway/web/irccloud.com/x-pwlwqqopuhyebeps)
15:19:57 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
15:20:34 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:cb1:a2e:bc62:aff6) (Remote host closed the connection)
15:21:03 ph88 joins (~ph88@2a02:8109:9e00:7e5c:cb1:a2e:bc62:aff6)
15:21:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c04c:1fe2:bb3d:6e7b) (Ping timeout: 264 seconds)
15:23:58 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983)
15:24:21 <cads> is there a haskell editor that achieves any level of code folding?
15:24:50 <cads> lol, it is hard to search for code folding in context of haskell because you get a million articles on foldr
15:25:00 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
15:25:00 <texasmynsted> like the folding in vim?
15:25:06 <texasmynsted> or something else?
15:25:52 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 246 seconds)
15:26:07 <texasmynsted> full disclosure: I do not use the code folding in vim or other editors. I find it annoying
15:26:20 <cads> I've also seen it referred to as outlining or collapsing or nesting code
15:27:02 <texasmynsted> I think both common editors have it, vim and emacs.
15:27:04 <cads> where you hide the lines inside methods, leaving only declarations - I use it when reading new code
15:27:35 <cads> it looks like the intelli-J plugin has it, and so does emacs haskell mode. but vs code haskell plugins seem to be missing it
15:28:14 <texasmynsted> but vs code can use neovim as its "editor"
15:28:26 × halbGefressen quits (~christian@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) (Quit: halbGefressen)
15:28:35 <texasmynsted> Much of the power of neovim, inside vs code
15:29:05 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
15:29:08 <cads> texasmynsted, I'm not sure we're talking about the same thing - in vs code, folding means that blocks of code get decorated with vs-code buttons that let you collapse them
15:29:09 <texasmynsted> Also there is vscodium, if you want to use vs code but turn off the telemetery and other spying
15:29:21 <texasmynsted> cads, yes
15:29:24 <texasmynsted> same thing
15:30:05 <cads> so the neovim plugin takes the code folding points that neovim computes for a given file, and sends them vscode?
15:30:14 <texasmynsted> I have not tried it for haskell, but I _think_ you can fold away the body of a code block
15:30:16 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
15:30:40 <cads> lemme try it. Do I have to do anything special to get haskell mode for neovim?
15:31:03 <texasmynsted> cads: No. The neovim plugin makes vscode work like neovim. You can use many of the neovim features and plugins, directly
15:31:04 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
15:31:22 <texasmynsted> I think that code folding is built-in if I recall correctly.
15:31:42 <texasmynsted> cads, yes.
15:31:56 <jollygood2> is there a function like this already available? https://pastebin.com/Jt2Wfj3N
15:32:00 <texasmynsted> I have a bunch of haskell plugins in neovim
15:33:01 Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
15:34:13 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:a9cd:d01b:63a8:de53:5983) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:34:32 <texasmynsted> cads I would look at this --> https://github.com/twinside/vim-haskellfold
15:34:57 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 2.9)
15:35:10 <texasmynsted> Here are screen-shots http://twinside.github.io/vim-haskellFold/
15:35:17 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
15:36:34 <texasmynsted> maybe somebody that uses folding will help you better
15:36:35 <cads> that's defintiely what I want visually, and I'm understanding that it should, for example, integrate with the vscode code folding shortcut
15:37:08 <texasmynsted> I am actually sorry that I suggested the neovim plugin.
15:37:33 da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.29-209.dynamic.3bb.co.th)
15:37:53 <texasmynsted> I suggested it because I use it when in vscode. You will likely be better served trying to solve this without that.
15:38:13 <texasmynsted> likely one or more of the vscode haskell plugins has folding. I have no idea
15:38:53 <cads> my current understanding is that I can drop vim-hasellfold in the .vim/plugin directory of the neovim plugin. Then vscode will display code folding widgets in hsakell files. Lol, I am also not that gullible, so I actually expect this will be fraught with peril and misery
15:40:06 <cads> texasmynsted, I have installed 3 of the plugins and reviewed the feature lists of all the plugins, there were none to indicate the term folding. So apart from manually installing all of the plugins and checking to see if I get magic folding widgets...
15:40:25 <texasmynsted> hmm.
15:40:40 <cads> ... well, probably you're right and the best idea is to find someone who uses folding (or use the intellij lugin in pycharm)
15:41:23 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
15:42:12 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
15:42:47 tintinthong joins (3c35076a@60.53.7.106)
15:44:53 justinthong joins (~justintho@2001:e68:5442:b278:7500:bc76:587e:7a58)
15:44:54 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
15:44:58 <justinthong> hi there
15:45:09 × tintinthong quits (3c35076a@60.53.7.106) (Remote host closed the connection)
15:45:13 u0_a298 joins (~user@65.35.205.131)
15:45:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:45:15 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
15:45:20 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
15:45:32 × justinthong quits (~justintho@2001:e68:5442:b278:7500:bc76:587e:7a58) (Remote host closed the connection)
15:45:35 <sm[m]> cads: I see folding buttons in vs code + haskell extension.. are they not hooked up to standard keybindings ?
15:46:08 <sm[m]> (only when I mouse over the gutter)
15:46:16 <cads> https://plugins.jetbrains.com/plugin/8268-haskell-conceal ooo this nice. Haskell concealer. With a sheer, matte finish.
15:46:44 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Remote host closed the connection)
15:46:54 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
15:47:20 <sm[m]> also, is there any sign of haskell-language-server support in jetbrains IDEs yet ?
15:47:31 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:49:32 <cads> I feel like there was a haskell contributor death event in 2016. Like half of of the haskell projects I encounter were last committed to in 2016 or there abouts. To wit: https://plugins.jetbrains.com/search?search=haskell
15:50:22 <cads> that might be unfair, since one of those is just an announcement (also 4 aren't really about haskell)
15:50:53 <Rembane> Too much oxygen in the Haskell sea killed off the Cambric explosion
15:51:04 × dxld quits (~dxld@rush.pub.dxld.at) (Quit: Bye)
15:51:25 dxld joins (~dxld@rush.pub.dxld.at)
15:51:45 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
15:54:23 × u0_a298 quits (~user@65.35.205.131) (Ping timeout: 265 seconds)
15:55:53 <cads> sm[m], current intelli-J plugin doesn't appear to be https://github.com/rikvdkleij/intellij-haskell
15:56:42 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
15:57:19 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
15:57:30 <cads> the next most popular haskell plugin has half as many downloads (50k). It builds a server abstraction, but it's not the language server protocol / it doesn't seem to pull in haskell language server
15:58:07 <cads> sm[m], if a project were using haskell language server, what is a string that would have to show up?
15:58:08 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
15:58:20 <cads> (somewhere in the project's code)
16:00:15 o1lo01ol1o joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
16:00:28 <cads> sm[m], I have found the code folding feature in the vscode plugin! thanks for confirming it existed!
16:00:55 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 245 seconds)
16:01:51 <texasmynsted> cads: so how does it work? Does it do what you want?
16:02:04 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:02:12 <texasmynsted> Would be cool to see a couple of screen-shots
16:02:19 <cads> it doesn't fold what I wanted it to fold, but it folds enough that it's helpful
16:02:43 <cads> I was hoping it would fold long import lists, but it folds everything else I wanted it to
16:03:31 hackage wai-extra 3.1.4 - Provides some basic WAI handlers and middleware. https://hackage.haskell.org/package/wai-extra-3.1.4 (MichaelSnoyman)
16:03:41 <sm[m]> cads, np. haskell-language-server, hls would be some likely strings but it's too new/too much in flux to find that way. I asked rikvdkleij about his plan re hls but he didn't seem to have any
16:04:58 <texasmynsted> cads maybe that plugin has some way to define manual fold points? So you can fold down your imports, etc. http://vimdoc.sourceforge.net/htmldoc/options.html#'foldmarker'
16:05:12 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Remote host closed the connection)
16:06:16 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
16:06:33 <cads> texasmynsted, regarding what I wanted to do, basically without naming names, many haskell projects seems to it's okay to have files with 40 to 60 lines of imports and compiler directives, followed by 500 lines of function after function
16:07:29 <texasmynsted> Heh. Sounds like the code I am working on at the moment and completely my fault.
16:07:40 Tops21 joins (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de)
16:07:41 <cads> to work in this kind of file without losing my slippery grasp on sanity, I like to fold anything whose implementation I don't currently care about
16:08:20 <texasmynsted> One of my files has more than 70 lines of imports
16:09:01 hackage phonetic-languages-simplified-common 0.4.0.0 - A simplified version of the phonetic-languages-functionality https://hackage.haskell.org/package/phonetic-languages-simplified-common-0.4.0.0 (OleksandrZhabenko)
16:09:24 <texasmynsted> Was looking yesterday for something to "fix" my imports. I think actually a better fix for now is splitting out to many more modules.
16:09:33 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.29-209.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:09:36 cads grabs texasmynsted's lapels and insists the madness must end
16:09:54 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
16:09:58 <cads> a memo must be drafted. A standard drawn. I am convinced that these kinds of imports make code that nobody wants to maintain
16:09:59 <texasmynsted> lol
16:10:02 Tops22 joins (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de)
16:10:13 × xff0x_ quits (~fox@2001:1a81:53f4:6600:b61f:e73a:b494:e067) (Ping timeout: 272 seconds)
16:10:28 <texasmynsted> I agree with you
16:10:46 <cads> but in the meantime, I think I could extend the folding code for the haskell plugin
16:11:04 <texasmynsted> I think normally you can manually fold
16:11:14 × Tops2 quits (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de) (Ping timeout: 260 seconds)
16:11:17 <texasmynsted> Like make a selection and fold it away.
16:11:19 heatsink joins (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607)
16:11:29 × cawfee quits (chiya@2406:3003:2077:2341::babe) (Ping timeout: 272 seconds)
16:12:25 × Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
16:13:16 × Tops21 quits (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
16:14:01 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
16:15:29 hekkaidekapus{ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
16:15:57 xff0x_ joins (~fox@2001:1a81:53f4:6600:c467:6c65:fe0d:7a)
16:17:03 × hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
16:17:46 tomsmeding . o O ( 'zf' in vim )
16:19:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:20:03 × hekkaidekapus{ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
16:23:59 <cads> texasmynsted, in sublime text, yes. In vs-code, users been mewling incessantly for this feature for over two and a half years. https://github.com/Microsoft/vscode/issues/18805
16:24:05 <cads> poor babies :(
16:24:35 cawfee joins (chiya@2406:3003:2077:2341::babe)
16:24:39 <cads> I could be their messiah.
16:25:00 Deide joins (~Deide@217.155.19.23)
16:27:21 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
16:27:21 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
16:27:21 neiluj joins (~jco@unaffiliated/neiluj)
16:28:25 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 240 seconds)
16:28:31 × xerox_ quits (~xerox@unaffiliated/xerox) (Quit: leaving)
16:29:47 Tario joins (~Tario@201.192.165.173)
16:30:55 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:32:47 × xff0x_ quits (~fox@2001:1a81:53f4:6600:c467:6c65:fe0d:7a) (Ping timeout: 260 seconds)
16:33:19 xff0x_ joins (~fox@port-92-193-238-203.dynamic.as20676.net)
16:33:42 × acidjnk_new quits (~acidjnk@p200300d0c719ff043467fd7c213734d3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
16:33:59 xerox_ joins (~xerox@unaffiliated/xerox)
16:34:28 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 246 seconds)
16:34:31 hackage icepeak 0.7.4.0 - A fast JSON document store with push notification support. https://hackage.haskell.org/package/icepeak-0.7.4.0 (rkrzr)
16:35:24 borne joins (~fritjof@200116b8645b9f009ba1d43461655289.dip.versatel-1u1.de)
16:36:42 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
16:37:07 hekkaidekapus{ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
16:37:11 juuandyy joins (~juuandyy@90.166.144.65)
16:37:29 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
16:37:40 <sm[m]> cads: I'd like to see UX improvements there too, but do you have a huge monitor or something ? In practice I am usually scrolled elsewhere, focussed on a small section of code and have to jump/search to even see imports
16:39:02 drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net)
16:40:57 × juuandyy quits (~juuandyy@90.166.144.65) (Client Quit)
16:41:27 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
16:41:49 × z0k quits (~user@101.50.127.33) (Ping timeout: 246 seconds)
16:42:09 <cads> no, I just expect my files to be about 60 lines, so when I open a file and I see 60 lines of imports, I gotta make that go away or I'll like kill someone
16:42:35 juuandyy joins (~juuandyy@90.166.144.65)
16:43:28 <cads> like I'll grab the knife, and find the first unpaid intern, say "GUAHAHAHAAH" and then slit their throat from ear to ear. And that will be very unfortunate. Because in my oranization I am the unpaid intern (also psychopathic ceo)
16:43:50 z0k joins (~user@115.186.169.31)
16:43:52 <jollygood2> is there a Data.Set and Data.Map equivalent that keeps track of inserting order?
16:43:54 <cads> so I really need to make those imports go away
16:45:01 hackage phonetic-languages-simplified-properties-lists-double 0.1.0.0 - A generalization of the uniqueness-periods-vector-properties package. https://hackage.haskell.org/package/phonetic-languages-simplified-properties-lists-double-0.1.0.0 (OleksandrZhabenko)
16:47:15 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
16:47:35 <sm[m]> that's.. pretty violent
16:47:40 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
16:47:44 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: switching to wifi)
16:48:09 renzhi joins (~renzhi@2607:fa49:655f:e600::28da)
16:48:46 <cads> in my organization, code readability is a life and death matter
16:48:48 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
16:48:56 × drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 240 seconds)
16:49:12 × dxld quits (~dxld@rush.pub.dxld.at) (Quit: Bye)
16:50:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:51:37 dxld joins (~dxld@rush.pub.dxld.at)
16:51:51 <pja> jollygood2: Data.Map.Ordered
16:52:07 <pja> From ordered-containers
16:54:39 <jollygood2> thanks.
16:55:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
16:55:59 <cads> this is one example of the input bloat I mention: https://gist.github.com/maxsu/fc0ada60f478bc89e3b71b8e54cc389d
16:56:28 <cads> this lives at the top of a 1500 line haskell file that does... a lot
16:57:12 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
16:58:00 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
16:58:22 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
16:58:50 <cads> I think the haskellish way to to deal with this is that every file has a similarly long imports list because factoring it away into a custom prelude for your project is not scalable as the project structure evolves
16:59:01 <cads> but is that strictly true?
16:59:08 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
17:00:21 <srk> lazily true ;)
17:00:31 <cads> hehe
17:00:37 conal joins (~conal@64.71.133.70)
17:01:09 <srk> you don't need to commit to full custom prelude, you can have parts of the program import modules that reexport common things
17:01:43 <cads> any example of a project that does this to good effect in your opinion?
17:02:12 plakband joins (~plakband@softbank126074182017.bbtec.net)
17:02:21 <cads> I feel reluctant to name examples of projects that I feel make this mistake (but oh boy, they're out there)
17:02:51 <srk> not sure tbh
17:03:56 × juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 240 seconds)
17:05:00 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
17:05:24 × conal quits (~conal@64.71.133.70) (Ping timeout: 256 seconds)
17:06:10 juuandyy joins (~juuandyy@90.166.144.65)
17:07:14 nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
17:07:40 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
17:07:58 × lightwave quits (~chris@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca) (Ping timeout: 272 seconds)
17:08:31 hackage phonetic-languages-simplified-lists-examples 0.5.0.0 - Simplified and somewhat optimized version of the phonetic-languages-examples. https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples-0.5.0.0 (OleksandrZhabenko)
17:09:07 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
17:09:59 solonarv joins (~solonarv@astrasbourg-552-1-28-212.w90-13.abo.wanadoo.fr)
17:11:49 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
17:12:44 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Remote host closed the connection)
17:13:01 coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
17:13:17 bcasiello joins (~brian@071-088-110-201.res.spectrum.com)
17:13:23 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
17:13:57 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
17:16:38 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
17:17:03 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
17:17:57 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
17:18:20 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
17:18:52 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Ping timeout: 260 seconds)
17:20:16 lpy joins (~nyd@unaffiliated/elysian)
17:21:26 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
17:22:49 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
17:24:51 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
17:25:34 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 246 seconds)
17:26:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:28:39 u0_a203 joins (~u0_a203@37.98.47.224)
17:28:57 × u0_a203 quits (~u0_a203@37.98.47.224) (Client Quit)
17:31:54 <tomsmeding> cads: ircbrowse does this (e.g. https://github.com/tomsmeding/ircbrowse/blob/master/src/Ircbrowse/View.hs ), but I'm not sure whether I can call it "to good effect"
17:33:01 <tomsmeding> but then, I prefer it when I can manually trace where stuff comes from most of the time (while I like my editor to tell me that, I'd like to not need it), so I'm personally biased against this batched import thing :p
17:35:01 <cads> yeah, I dont like it either tbh, just thinking of how to shorten this list: https://gist.github.com/maxsu/c43447994735e61f5a5b52a49ecd1d56
17:35:39 <tomsmeding> that indentation is messed up though around the CPP macros
17:36:00 <tomsmeding> but I guess my answer would be "don't", but that doesn't help you :p
17:36:45 <tomsmeding> to me, having lots of imports just signifies that it might be helpful to split up the file into distinct bits of functionality, and nothing else; also, with emphasis on "might"
17:36:52 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
17:37:19 <tomsmeding> custom prelude / batched imports just allow you to act like the problem isn't there :p
17:38:24 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
17:38:40 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Remote host closed the connection)
17:38:55 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
17:39:54 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
17:40:47 opweiqw joins (~opweiqw@2604:880:50:5f:63:0:f0:1)
17:41:00 <cads> for lines 34-44 I think I would like to be able to import multiple submodules of a parent module, like from Data import Bifunctor, Char, Either, Functor, List (intercalate, sort) -- and so on. Multiple invocations would be fine, but we're reducing the number of import declarations by 4 or 5 while arguably maintaining or enhancing readability
17:41:46 <geekosaur> there is no module named Data, though
17:42:01 <geekosaur> it's just namespace.
17:43:04 <geekosaur> (and I think ghc still has an oddity where it sometimes accepts filenames with dots in them in place of slashes? but only for modules within your program, not from external packages)
17:45:25 Entertainment joins (~entertain@104.246.132.210)
17:45:48 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
17:46:47 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
17:48:24 columbarius joins (~columbari@mue-88-130-54-019.dsl.tropolys.de)
17:50:10 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
17:50:33 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
17:50:39 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
17:50:50 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
17:51:26 grdvnl joins (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com)
17:51:48 Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.235)
17:52:14 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
17:52:44 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 260 seconds)
17:53:23 Aquazi joins (uid312403@gateway/web/irccloud.com/x-bkkscsldnugnnelg)
17:58:33 × B-J quits (~BenziJuni@88-149-65-135.du.xdsl.is) (Quit: gone)
18:00:24 Benzi-Junior joins (~BenziJuni@dsl-149-65-135.hive.is)
18:00:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
18:02:11 rcdilorenzo_ joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
18:03:46 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 256 seconds)
18:04:14 × cawfee quits (chiya@2406:3003:2077:2341::babe) (Ping timeout: 264 seconds)
18:05:57 <monochrom> In fact "submodule" is a wrong model.
18:06:51 × tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
18:06:52 <monochrom> The correct model is fancy naming convention that pretends to be hierarchical.
18:07:23 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
18:07:55 × hekkaidekapus{ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus{)
18:09:07 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
18:11:26 <ezzieyguywuf> dang, so Data.Functior.Alt ((<|>)) is different from Control.Applicative?!
18:11:47 <ezzieyguywuf> nvm, it's a ! I think
18:11:48 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
18:11:54 <ezzieyguywuf> lol, I get it, "semi"
18:12:24 <monochrom> Where does Data.Functor.Alt come from?
18:13:28 <ezzieyguywuf> monochrom: semigroupoids package
18:14:07 <ezzieyguywuf> I imagine it's something that's some sub-set of an Alternative or w/e, but this type of stuff is mostly over my head
18:14:28 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607) (Remote host closed the connection)
18:14:59 × hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
18:15:01 <monochrom> me too
18:15:29 urek__ joins (~urek@2804:7f1:e10a:a8d:a85d:6d9e:3db:9450)
18:16:23 × Entertainment quits (~entertain@104.246.132.210) ()
18:18:04 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Remote host closed the connection)
18:18:37 <ezzieyguywuf> i love that with haskell I've never had to worry about a linker error
18:18:41 × Tops22 quits (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de) (Quit: Leaving.)
18:18:47 × urek quits (~urek@2804:7f1:e10a:a8d:a85d:6d9e:3db:9450) (Ping timeout: 272 seconds)
18:19:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
18:19:39 <tomsmeding> ezzieyguywuf: wait until you use external libraries
18:19:45 <geekosaur> you haven't, at least
18:19:51 bcasiello parts (~brian@071-088-110-201.res.spectrum.com) ("Leaving")
18:20:25 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
18:21:39 <tomsmeding> whois oleks
18:21:45 <tomsmeding> ............. sorry
18:22:31 <sm[m]> ezzieyguywuf: you must be new here :)
18:22:51 <ezzieyguywuf> lol, and now I did something silly and it used up all my ram when I ran it
18:23:03 <tomsmeding> welcome to haskell
18:23:03 <ezzieyguywuf> tomsmeding: I've used some a tad, for like opengl i think
18:23:09 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
18:23:10 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Remote host closed the connection)
18:23:17 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
18:23:54 <sm[m]> quite a lot of haskell apps & libs involve some C
18:23:58 nehsou^ joins (nehsou@ip98-184-89-2.mc.at.cox.net)
18:24:19 <sm[m]> hackage should have a Pure Haskell badge
18:24:46 <ezzieyguywuf> glad I caught it before I ran out of ram, lol
18:25:01 hackage witch 0.0.0.4 - Convert values from one type into another. https://hackage.haskell.org/package/witch-0.0.0.4 (fozworth)
18:25:16 <zincy__> Is the only way to get impurity in Haskell to use performUnsafeIO ?
18:25:17 <ezzieyguywuf> at first I was like "ghcid, why aren't you saying anything?" then I was like "shrug, maybe a glitch" <ctrl-c> cabal run jali
18:25:22 <ezzieyguywuf> then like 30 secs later I thought to check ram, lol
18:26:34 <geekosaur> zincy__, that and its relatives
18:26:54 <zincy__> Cheers
18:26:55 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
18:27:17 <geekosaur> (inlinePerformIO comes to mind: "sharing an address space with a malevolent agent of chaos")
18:27:21 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
18:27:30 <sm[m]> ezzieyguywuf: on Mac, I keep activity monitor open and a memory usage meter in menubar :/
18:27:51 <ezzieyguywuf> lol, wise
18:28:55 cosimone joins (~user@2001:b07:ae5:db26:d849:743b:370b:b3cd)
18:29:14 <sm[m]> since with Firefox and Haskell you can easily freeze a 8G laptop
18:29:38 <tomjaguarpaw> Oh man, tell me about it. I have a 4GB laptop ...
18:29:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:29:52 <sm[m]> ouch
18:30:27 foobarblob joins (188838c2@ip24-136-56-194.ga.at.cox.net)
18:30:28 <tomjaguarpaw> I quite like "ionice -c idle nice -n 20", and "MEM=$[1000 * 1000]; ulimit -d $MEM; ulimit -m $MEM; ulimit -v $MEM" when I want to be drastic.
18:30:52 ezzieyguywuf hugs 16 gigs
18:31:03 × cosimone quits (~user@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit)
18:31:44 sm[m] takes notes
18:32:05 cosimone joins (~user@2001:b07:ae5:db26:d849:743b:370b:b3cd)
18:33:36 tomjaguarpaw hugs script for spinning up Linode when he wants to do anything serious
18:33:38 <ezzieyguywuf> and ff doesn't really use that much memory anymore honestly...
18:33:40 <ezzieyguywuf> at least not for me.
18:33:48 ezzieyguywuf wonders what linode is
18:33:51 ezzieyguywuf doesn't do anything serious.
18:34:18 <ezzieyguywuf> lol, I had a runaway ghc from vim's coc that I missed
18:34:21 drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net)
18:34:29 <ezzieyguywuf> I got up to 1.9G swap!
18:34:30 <tomjaguarpaw> Currently using 12% of main memory, but can easily be up to 25%, and I have different FF instances for different purposes, to minimise tracking, risk of malware ...
18:34:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:34:40 × nf quits (~n@monade.li) (Quit: Fairfarren.)
18:34:50 <ezzieyguywuf> but now mem usage is back at a very reasonable 692M
18:35:01 × cosimone quits (~user@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
18:35:02 hackage group-theory 0.1.0.0 - The theory of groups https://hackage.haskell.org/package/group-theory-0.1.0.0 (topos)
18:35:08 <ezzieyguywuf> ah, I have two tabs open, both hackage.
18:35:13 <ezzieyguywuf> though I can have as much as 10-20
18:35:14 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
18:35:57 <ezzieyguywuf> ah, ignore that mem number, ofc I hav the 1.9GB swapped right now I think that's mostly ff
18:37:32 zyklotomic joins (~ethan@unaffiliated/chocopuff)
18:37:53 × foobarblob quits (188838c2@ip24-136-56-194.ga.at.cox.net) (Remote host closed the connection)
18:38:50 × drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
18:39:10 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
18:39:33 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
18:40:36 <ezzieyguywuf> does NonEmpty List have a way to specify at least 2 elements?
18:40:49 <ezzieyguywuf> or would I have to wrap it in a datatype that had two non-empty's?
18:40:58 <ezzieyguywuf> or I gues a singleton and a non-empty..
18:41:14 <ezzieyguywuf> nvm, guess I'll just do that
18:41:59 cawfee joins (chiya@2406:3003:2077:2341::babe)
18:42:16 oa is now known as oats
18:42:35 <dminuoso> ezzieyguywuf: You can use OverloadedLists, if you fancy that.
18:42:38 <zyklotomic> dminuoso: this is what I ended up "translating" that python too https://github.com/Jyutt/jieba-hs/blob/32b808fe92860b1eee0451b8bec9fdb67f8f04e5/src/Jieba/Cut.hs#L20
18:42:53 <ezzieyguywuf> dminuoso: I'll take a look.
18:42:59 <zyklotomic> *to, you were right, State was completely unecessary and that was satisfying
18:43:04 nf joins (~n@monade.li)
18:43:05 × catchme quits (uid355354@gateway/web/irccloud.com/x-hxmidzshauhjcqia) (Quit: Connection closed for inactivity)
18:44:45 <jle`> ezzieyguywuf: there's some package out there that lets you tack one item onto any container
18:44:51 <dminuoso> zyklotomic: The amount of list concatenation looks a little worrying..
18:45:09 <jle`> it might be http://hackage.haskell.org/package/nonempty-lift-0.1/docs/NonEmpty.html maybe
18:45:14 <dminuoso> zyklotomic: Also, cutAll is written strangely. You should just zip with [0..] instead
18:45:16 <jle`> in which case you could use NonEmpty (NonEmpty [] a)
18:45:39 <zyklotomic> dminuoso: thank you, i will look into the cutAll, the cutAll was written by 3 months ago me
18:45:42 <jle`> or maybe it's http://hackage.haskell.org/package/nonempty-alternative-0.4.0/docs/Data-NonEmpty.html ...
18:45:58 <dminuoso> zyklotomic: Furthermore, your clauses on matching length are non idiomatic. Just pattern match on the list :)
18:46:19 <dminuoso> zyklotomic: Let me give you a hint
18:46:19 <zyklotomic> huh, wdym by matching length on the list
18:46:33 × sheaf quits (~sheaf@2a01:cb19:80cc:7e00:ade8:1e5b:84e9:86db) (Read error: Connection reset by peer)
18:47:06 <dminuoso> zyklotomic: so your entire where clause could just be:
18:47:38 <dminuoso> (b:bs) = span ((==1) . length) rem
18:47:44 <dminuoso> And then you have b for the head, and bs for the tail
18:47:46 <dminuoso> Done!
18:47:49 <zyklotomic> woah
18:47:58 <zyklotomic> i appreciate it, tysm for the pointer
18:47:58 <dminuoso> oh wait
18:48:06 <zyklotomic> ah
18:48:15 <dminuoso> not quite, but you get the idea
18:48:25 <zyklotomic> should I resort to vectors then?
18:48:34 <zyklotomic> if i'm going to be pushing back like that?
18:48:49 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
18:49:20 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
18:50:33 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
18:51:33 p-core joins (~Thunderbi@cst-prg-99-198.cust.vodafone.cz)
18:51:40 <dolio> You mean appending?
18:51:55 <dolio> Vectors will just guarantee the worst performance.
18:52:09 <zyklotomic> yes, appending
18:52:22 <zyklotomic> i've never used vectors, I thought they were going to be like C++ ones
18:52:24 <dminuoso> zyklotomic: If you want to append a lot, look at DList
18:52:38 <zyklotomic> but I think I guessed wrong
18:52:42 <dminuoso> I gotta run, Ill be around next week if you want
18:52:54 <zyklotomic> dminuoso: thank you, appreciate you a lot see you around then
18:53:54 <jle`> C++ vectors would be pretty bad at appends too fwiw
18:54:22 falafel joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
18:54:33 <zyklotomic> i think my understandin is it depends on the backing array, if your backing array is large enough
18:54:41 <zyklotomic> there would be no need to realloc
18:55:19 <jle`> ah yeah, there's some work being done by the abstraction there :o
18:55:24 <jle`> i guess it'd be closer to C arrays then
18:57:00 conal joins (~conal@64.71.133.70)
18:58:53 <zyklotomic> ye, there are C++ arrays too i think, where size is fixed at compile time
19:00:17 <jle`> ah :O then i guess haskell vectors they are somewhere in between? size can be determined at runtime, they are contiguous-memory, but every append requires a full copy
19:00:44 <jle`> oh, i guess we run into the mutability vs immutability distinction then.
19:00:52 <monochrom> C++ vectors enjoy using a mutable array at the back, so appending is amortized O(1).
19:01:22 <monochrom> but it is still only amortized O(1), not real-time O(1).
19:01:49 <monochrom> How to do that is in every standard 2nd year CS curriculum.
19:01:58 elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
19:01:59 <koz_> jle`: 'contiguous-memory' is a bit of a skunk statement vis-a-vis Haskell vectors, since boxed ones aren't _really_.
19:02:08 <koz_> Storable or Unboxed ones, sure.
19:02:33 <koz_> (Prim too I guess?)
19:02:48 × ggole quits (~ggole@2001:8003:8119:7200:1d5:8df6:c4ab:d6ce) (Quit: Leaving)
19:03:02 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:03:19 berberman joins (~berberman@unaffiliated/berberman)
19:03:38 <jle`> i suppose, but it'd be similar in C++ if you had a vector of pointers
19:03:50 <monochrom> Also the way it's done has consequences in heap fragmentation and reserving a lot of space that goes unused for a long time.
19:04:19 <koz_> jle`: Yeah, that is also true.
19:04:26 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:04:29 <zyklotomic> so haskell vectors don't work the way I think they do in short?
19:04:40 <koz_> zyklotomic: How did you think they worked?
19:04:56 <zyklotomic> the c++ way in the background
19:05:04 <koz_> If you mean std::vector, then no.
19:05:05 <zyklotomic> with a contiguous memory and a smart pointer
19:05:07 <dolio> Immutable vectors aren't mutable vectors, no.
19:05:15 <koz_> std::vector is a dynamic array which is mutable.
19:05:16 <jle`> i thiiink your intuition is mostly correct, if you factor in that there is no backing array underneath what you can directly access
19:05:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:05:21 <jle`> and yeah, they're immutable
19:05:54 <dolio> Haskell has both, but you can't just drop mutable vectors into an algorithm using immutable lists.
19:05:54 <jle`> but i think the consequences of immutability are mostly intuitive here, like how you can't edit an item in an immutable vector without a full copy
19:05:58 <koz_> Vector is more like a C array, of pointers in the case of boxed ones, or directly otherwise, which is immutable (though mutables exist), and has a fusion framework to hide some of the copying.
19:06:03 b3z joins (~b3z@vmd41962.contaboserver.net)
19:06:15 <koz_> s/hide/avoid/
19:06:28 <koz_> Key word here is 'some' - there are things where it can't help doing copies.
19:06:32 <zyklotomic> yes, or in the same way the backing array part is abstracted away from you in c++ too
19:06:49 <zyklotomic> that makes sense, my guess was originally that something like
19:07:03 <zyklotomic> append ++ would during run time determine what to do, whether to realloc or just move the "pointer"
19:07:17 <zyklotomic> so that sounds like mutable vector?
19:07:30 <koz_> zyklotomic: Nope. A Haskell mutable vector is more like a mutable C array.
19:07:41 <koz_> So if you want to do appends, you're likely copying and reallocating.
19:07:44 <koz_> A lot, potentially.
19:07:52 <monochrom> yeah fixed size. You write your own code to grow.
19:07:53 conal joins (~conal@64.71.133.70)
19:07:55 <koz_> So if you have an append-heavy workload, I would suggest another data structure.
19:08:03 <koz_> (DList or Seq)
19:08:05 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
19:08:41 × Adeon quits (sid418992@gateway/web/irccloud.com/x-plwafdhgynwzbsxy) (Ping timeout: 265 seconds)
19:09:07 <zyklotomic> that makes sense, thank you
19:09:21 <zyklotomic> do people usually try to rethink how an algorithm should function to work with Lists if possible
19:09:26 <koz_> zyklotomic: No.
19:09:30 <zyklotomic> or is it normal to just reach for these diff data structures
19:09:39 <zyklotomic> the latter?
19:09:40 <koz_> Lists _can_ be useful, but they're absolutely _not_ the data structure I'd reach for in most instances.
19:09:54 <monochrom> I don't always use list. But I always think.
19:09:54 <koz_> Basically, think what operations you care about.
19:10:06 <koz_> Then select the data structure that makes these operations as cheap as possible.
19:10:27 Adeon joins (sid418992@gateway/web/irccloud.com/x-xditysqsqosidsfr)
19:10:29 <jle`> i think lists are not really the best 'container data structure' in most cases. their main strength in haskell is in streaming data or control flow
19:10:47 <jle`> so lists in haskell kind of fill a similar role to for loops in imperative languages
19:10:50 <zyklotomic> they all seem obscure and require an external dependcy which is why I usually feel more hesitant about reaching out to another DS
19:10:56 <monochrom> And I always use my CS education.
19:10:59 <koz_> zyklotomic: They aren't obscure at all.
19:11:08 <koz_> containers isn't really an external dependency either.
19:11:16 <koz_> (because it's a boot library I think?)
19:11:19 Entertainment joins (~entertain@104.246.132.210)
19:11:26 <jle`> yeah, you should be safe if you stay in the 'boot libraries', or the libraries that GHC itself uses in its source code
19:11:28 <monochrom> Dependency on Hackage is the norm around here.
19:11:31 <koz_> And that gives you Seq, Set, Map, which already gets you surprisingly far.
19:11:39 <zyklotomic> maybe I should get more comfortable with that then
19:11:41 <jle`> at least for starting out
19:11:50 <koz_> zyklotomic: Basically, learn about data structures.
19:11:52 <zyklotomic> it's not like kitchensink languages i guess?
19:11:58 <koz_> Haskell is _reasonably_ well-equipped with them.
19:11:59 <monochrom> No.
19:12:43 <monochrom> Especially if "kitchen sink" means to the millenials IoT, e.g., you expect the kitchen sink to have an http server.
19:12:50 <zyklotomic> koz_: i guess more so haskell data structures?
19:12:59 <koz_> zyklotomic: Data structures are data structures.
19:13:06 <koz_> How you implement them is another story.
19:13:11 <koz_> A HAMT is a HAMT is a HAMT.
19:13:17 <koz_> (to give a favourite example)
19:13:30 <jle`> this is the list i reference https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history -- the boot libraries are all very tried true, optimized, wlel documented, mostly beginner friendly, etc., since they're an integral part of ghc building itself
19:13:39 <koz_> You can implement a HAMT in Haskell, C++ or Brainfuck. It'll still be a HAMT.
19:13:48 <zyklotomic> koz_: but you can't as easily implement them
19:13:50 <monochrom> Well, immutable data structures are much less taught in standard CS curricula.
19:13:53 <zyklotomic> so its' not as intuitive?
19:13:53 <jle`> well, different data structures are more important in idiomatic (immutable, lazy) haskell than in other languages
19:14:07 <koz_> zyklotomic: Unless you're planning to write data structures yourself? Understanding how they work is enough.
19:14:16 <jle`> i'd say some of them are pretty intuitive, but it's a different sort of intuition than the one you learn in normal CS
19:14:20 <monochrom> Still, "a CS education" does not just mean a ton of rote memorization.
19:14:22 <koz_> Basically a core education in this area is 'what are data structures, what are they good at'.
19:14:23 <zyklotomic> yeah that's what I'm trying to say
19:14:48 <zyklotomic> there is some kind of imperative-ness tied to data structures courses in college
19:14:54 <koz_> zyklotomic: Unfortunately yes.
19:15:06 <koz_> But you can always ask here.
19:15:17 <koz_> We're more than happy to explain the why.
19:15:18 <zyklotomic> yup true :D
19:15:20 <jle`> also most of the data structures you'll normally use here have good documentation with runtime complexities in them
19:15:38 <jle`> so if you're uncertain about vector append, you can just look at the vector docs for (++) and see that it's O(n+m) :)
19:15:41 emergence joins (~emergence@vm0.max-p.me)
19:15:59 <jle`> https://hackage.haskell.org/package/vector-0.12.1.2/docs/Data-Vector.html#v:-43--43-
19:16:00 <koz_> AKA 'this isn't something you want to do often with vectors'.
19:16:02 <monochrom> I have issues with "intuitive", too. Look, mutable binary search trees are just as unintuitive.
19:16:18 <koz_> monochrom: As someone who actually had to present on red-black trees, this is a mood.
19:16:35 <koz_> Deletions especially, oof.
19:16:58 <monochrom> I know because on the exam I gave students "show the steps of BST insert for this small example tree", and the exam is open book, and the students can still blow it.
19:17:23 <koz_> monochrom: Yeah, even on _non_-self-balancing (self-unbalancing?) BSTs, this stuff's full of tricky corners.
19:17:41 <koz_> I taught this for several years, so definitely hear you on that.
19:17:52 <jle`> not that the answers are always in a book, but reading Okazaki's pure data structures book was a good way for me to gain some intuition about common patterns and things to think about when implementing or using immutable data structures
19:18:14 <koz_> Yeah, Chris Okasaki is like, a hero.
19:18:34 <pjb> zyklotomic: it's true that a lot of data structures are designed for mutation.
19:18:35 <jle`> enough that i can now reason through things like "oh yeah, of course splitAt n for lists is O(n)", without having to look it up
19:18:52 <pjb> zyklotomic: hence their imperative yang.
19:19:11 <koz_> Thing is, in Haskell, we _can_ have mutable data structures if we want.
19:19:14 <koz_> (thanks, ST!)
19:19:25 <koz_> We just rarely bother because surprisingly, it's not necessarily faster.
19:19:41 × Entertainment quits (~entertain@104.246.132.210) ()
19:19:45 <pjb> zyklotomic: but you can also approach them in a more functionnal ie. immutable way, notably with the RAII pattenr.
19:20:40 shf joins (~sheaf@2a01:cb19:80cc:7e00:d5a1:7920:3b80:ee90)
19:20:55 <pjb> zyklotomic: that said, purely functional (immutable) data structures are often less efficient. But that's because the universe is not functional, it's full of mutable state. By default, entropy, enthalpy, etc…
19:21:18 <pjb> This is why I think a purely functional programming language is an error.
19:21:23 <jle`> i mean, they can be more efficient for specific operations :)
19:21:44 <jle`> a lot of times the immutable structure will be a more efficient choice than the mutable one
19:21:58 doct0rhu joins (~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net)
19:22:09 <monochrom> No, the pursuit of maximum run-time efficency is the error.
19:22:16 <jle`> i guess you said 'often', so you aren't speaking in absolutes. but i think the picture is more even-split than suggested
19:22:27 <monochrom> Programmer inefficiency is more expensive than run-time inefficiency.
19:22:43 <koz_> Also, there is no good, there is only good enough, when it comes to run-time.
19:22:57 <koz_> If your bounds aren't your structure, immutability offers many benefits.
19:23:17 <monochrom> The world has so far recognized "run time" and "compile time". Few have reached the enlightenment of recognizing "programming time".
19:23:34 <koz_> And the difference between immutable and mutable structures serving similar roles can be _really damned thin_.
19:23:43 <MarcelineVQ> I'm on break time
19:24:12 × sw1nn quits (~sw1nn@host81-131-191-165.range81-131.btcentralplus.com) (Quit: WeeChat 2.9)
19:25:02 <zyklotomic> what exactly is immutability then?
19:25:11 <zyklotomic> couldn't you have runtime immutability
19:25:11 <monochrom> Mathematics.
19:25:11 <koz_> zyklotomic: The ability to retain any past state.
19:25:17 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
19:25:19 sw1nn joins (~sw1nn@host81-131-191-165.range81-131.btcentralplus.com)
19:25:31 <zyklotomic> what is "retain"
19:25:32 <koz_> So like, an insert into an immutable structure gives you a new structure.
19:25:38 <monochrom> If you say "define x to be 4" then x stays as 4.
19:25:39 <koz_> Rather than changing an existing one.
19:25:50 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
19:26:00 <zyklotomic> yes, but that is just a social construct
19:26:08 <monochrom> If x satisfies "x+2 = 6 because x=4" then x+2=6 stays true.
19:26:13 <zyklotomic> I could mutate it and say this is in fact a new data structure
19:26:24 <zyklotomic> the old one is just gone into the void
19:26:25 <monochrom> There is no "change 4 to 5, so now 5+2=6 is true".
19:26:50 <koz_> zyklotomic: Except in the immutable world, I could still use 'structure' after that insert in its pre-insert form.
19:26:57 <monochrom> See also: http://www.vex.net/~trebla/haskell/prerequisite.xhtml#leibniz
19:27:00 <koz_> Good luck doing this with a mutable structure without copying it first.
19:27:07 <jle`> one way you could think of immutable data structure is 'persistent', as opposed to 'ephemeral' (immutable). meaning all updates are non-destructuve, and you can always refer to all instance sof it you have ever had
19:27:13 <zyklotomic> koz_: then don't?
19:27:17 <koz_> Also what jle` said.
19:27:25 <koz_> zyklotomic: Yes, you can pretend mutable structures are immutable.
19:27:31 <koz_> However, then it's on _you_ to track this.
19:27:34 <zyklotomic> yeah, that is my question
19:27:36 <koz_> Whereas here, the language does it for you.
19:27:40 <zyklotomic> couldn't you prove it yourself
19:27:44 <jle`> zyklotomic: if i say x = 3, and then let y = x + 4, then x is still 3, right? how would x ever be anything other than 3?
19:27:45 <zyklotomic> kind of like reference counting in Rust
19:27:50 <koz_> zyklotomic: Sure you could. Don't you have better things to do though?
19:27:57 <koz_> I'd rather _not_ do work my computer can do for me.
19:28:09 Entertainment joins (~entertain@104.246.132.210)
19:28:17 <monochrom> See? Programming time is more expensive.
19:28:20 <zyklotomic> in the name of performance i suppose
19:28:20 <jle`> zyklotomic: yeah, if your point is 'immutability is in how you use the structure', than yeah, you could think of persistence as a property of an API
19:28:30 <koz_> zyklotomic: Yeah, but if it doesn't matter?
19:28:34 <koz_> (and it often doesn't)
19:28:39 <monochrom> Programmer performance is more important.
19:28:44 <koz_> There's a reason we don't write everything in x86 asm.
19:28:52 <jle`> the API's property is: "all references will reliably always return the same result whenever accessed"
19:28:53 <koz_> (well, several)
19:29:20 <jle`> so if you reference x once, then reference x again, an 'immutable interface'/'persistent interface' is a contract that both references will always return the same value
19:29:29 <zyklotomic> thats a tougher pill to swallow but i can see your argument
19:29:31 <monochrom> Eventually I'll have to take the extremist stance "if you haven't learned how to prove programs correct, you don't have the license to talk about performance".
19:29:32 <cads> Hmm, so "chunking" the imports lets me reduce the number of "import" words in this document from 46 to 18, trims the imports section by 18 lines (31%), and in my opinion makes the imports section much easier to reason about in mental chunks
19:30:00 <cads> Before: https://gist.github.com/maxsu/9a622c735045ab95d938b2a3e20f3ad9 after: https://gist.github.com/maxsu/db9b0182b1d95225965a00b29684fce8
19:30:03 <koz_> monochrom: Arguably you're more than halfway there already.
19:30:11 idhugo joins (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
19:30:25 <monochrom> Because people talk about performance like really high-performance code is so really trivial to understand and even invent.
19:31:03 <zyklotomic> so we shouldn't worry about complexity either?
19:31:11 <koz_> zyklotomic: Complexity in what sense?
19:31:18 <zyklotomic> like using a list ++
19:31:21 <zyklotomic> multiple times
19:31:34 <zyklotomic> if like it makes things easier to write / programmer productivity
19:31:41 <zyklotomic> sometimes these tradeoffs are worth?
19:31:49 <monochrom> worry about complexity under the context of what other priorities?
19:31:56 <koz_> zyklotomic: Yes, they are, sometimes. It depends on a _lot_ of other things.
19:32:14 <monochrom> I certainly don't worry about complexity (or anything, even correctness) out of context.
19:32:40 <monochrom> Tell me all of your priorities and their relative importance. Then we can talk.
19:32:41 <zyklotomic> wdym by context
19:33:01 <koz_> zyklotomic: What are you working on? What kind of requirements are placed on your performance? How soon do you need it? etc etc etc
19:33:07 <zyklotomic> it is not so much a priority but the gut feeling like
19:33:32 <zyklotomic> why write inefficient code when you know how to do it less, but again, that is what the CS curriculum you mention teaches you
19:33:39 <cads> context is hard... it's basically the datatype for the whole world around you, and it is much, much more complicated than anything you can possibly understand
19:33:44 <zyklotomic> s/less/more efficiently
19:33:57 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
19:34:01 <jle`> zyklotomic: that's a good question to ask: ("why write ..."). and it's a valid question with different answers in different situations
19:34:09 <cads> so you limit it to specific scopes, and ask what's important
19:34:11 <jle`> sometimes there are good reasons depending on your ultimate goal
19:34:14 <monochrom> I have a collection of tuples, (student name, student number). I have another collection of tuples, (student number, tutorial section). I want to do the inner join of them.
19:35:15 <monochrom> I chose the stupid quadratic-time algorithm because it's a one-liner in Haskell and I merely have 200 students, what do you mean worry about complexity, I have better things to do such as thinking really hard how to explain type inference to undergrads.
19:35:45 <koz_> monochrom: And I suspect the IO needed to load said data is gonna take longer than the quadratic inner join.
19:35:51 <monochrom> If I ever get a class of 100000 students, maybe I'll consider spending time on an n lg n algorithm.
19:35:55 <koz_> (by like, a lot)
19:36:01 <jle`> complexity analysis is also very limited even if you're thinking about performance...it ignores constant factors important for actual decisions in specific situations
19:36:01 <monochrom> yeah
19:36:05 <monochrom> PRIORITIES
19:36:11 <zyklotomic> yes, but something like that can be very easily done in imperative
19:36:14 <koz_> What jle` says is absolutely true.
19:36:18 <zyklotomic> but I get your point too
19:36:19 <monochrom> What do you mean you don't know what priorities and contexts mean.
19:36:24 <koz_> zyklotomic: What do you mean by 'easily' and 'done'?
19:36:34 <cads> to get from a complexity analysis to an actionable business intelligence takes a very important thing: spreadsheets
19:36:37 <koz_> I can speak from personal experience here - my own Master's thesis is a perfect example.
19:36:47 livvy joins (~livvy@gateway/tor-sasl/livvy)
19:36:56 <monochrom> In imperative I would still use the same stupid quadratic-time algorithm. It's just two for-loops.
19:37:11 <cads> if you are doing a complexity analysis and there's no graphs and spreadsheets of REAL experiments, you're not doing much
19:37:15 <monochrom> And I am not alone.
19:37:15 <koz_> I show that, in theory, my algorithm for dynamic partial sorting has better asymptotics than the naive approach. In practice, the constants are so gigantic that your input would have to exceed the number of atoms in the universe for it to matter any.
19:37:28 <zyklotomic> i think I have the wrong mindset then
19:37:45 <zyklotomic> in school and interviewing, all you ever tihnk about is complexity and not coming up with something stupid
19:37:52 <jle`> zyklotomic: there are reasons to pick the 'lower asymptotic complexity' operation in imperative programming too
19:37:55 <koz_> zyklotomic: You understand context fine.
19:37:58 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
19:37:59 <jle`> often times it will be the best choice in your situation
19:38:03 <koz_> As well as 'it depends'. :P
19:38:05 × codeAlways quits (uid272474@gateway/web/irccloud.com/x-pwlwqqopuhyebeps) (Quit: Connection closed for inactivity)
19:38:09 <zyklotomic> so you naturally have an aversion, (at least I, I'll speak for myself) to
19:38:26 <monochrom> I have looked at the code library of world-class programming contest contestants. I am talking about bloody U of Waterloo which wins the world champion of ACM ICPC every once in a while. The code library they bring on paper to the contests.
19:38:44 <koz_> Is that the one with the brute-force heap code?
19:38:47 <monochrom> You heard that DIjkstra's algorithm uses a priority queue, in theory, right?
19:39:01 kupi joins (uid212005@gateway/web/irccloud.com/x-ilpqogltmhlqsyet)
19:39:06 <monochrom> Well their code uses a flat array and linear search for every priority queue operations.
19:39:15 <cads> koz_, you really invented one of those algorithms with great asymptotics but ludicrous constants? did you have to go out of your way to do it, or did it get revealed gradually in a hilarious and/or disappointing way?
19:39:24 <koz_> cads: Yep!
19:39:32 <monochrom> Apparently "fast enough" is very much enough.
19:39:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
19:39:41 <koz_> The idea was basically hitting it with a divide-and-conquer hammer.
19:39:48 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Quit: WeeChat 2.8)
19:39:54 <koz_> But said divide and conquer hammering meant constant factors everywhere.
19:39:58 <zyklotomic> "stupid" solutions
19:40:17 <koz_> So while it manages the impressive feat of having a time complexity dependendent on log^*(n), it's totally useless.
19:40:25 <jle`> solutions can be bad or good, but what makes them bad or good is more than just their asymptotic complexity...
19:40:33 <koz_> jle`: Fredkin trie anyone? :P
19:40:38 <koz_> (Fibonacci heap too I think)
19:41:12 <cads> imo the dumber I can make a solution and it's still robust and meets the spec, the more favor I give to anyone (including myself) who will have to touch the code later
19:41:24 <koz_> Yeah, readability is a big thing too.
19:41:50 <koz_> I think it was Sussman who famously said 'Code is written primarily for people to read and only incidentally for a machine to execute'?
19:41:56 et09 joins (~et09@unaffiliated/endolphin)
19:42:12 <zyklotomic> then i honestly think these points aren't really hammered into your usual DSA classes then
19:42:22 <koz_> zyklotomic: You're telling me!
19:42:25 <geekosaur> this is true
19:42:28 <et09> i have xmonad which (iirc) is building via stack
19:42:37 <koz_> I cannot _count_ the number of arguments I had with the folks I was TAing in those classes for.
19:42:39 <et09> https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Actions-GridSelect.html#t:GSConfig curiously this gs_bordercolor can't be found
19:42:43 <koz_> On exactly this kind of issue.
19:42:49 <zyklotomic> but i definitely am shifting towards agreeing with you all now
19:42:53 <jle`> yeah all i hear about in my DSA classes is overthrowing the bourgeoisie
19:42:56 <et09> i'm trying to find my local definition of GSConfig
19:43:00 <koz_> jle`: ROFL
19:43:10 <monochrom> You need to understand that most interview questions are not representative of work environments.
19:43:20 <koz_> Very much this.
19:43:30 <zyklotomic> yup, it's just kinda disjarring sometimes
19:43:34 <koz_> Speaking as someone who had a very nice interview for my current Real Haskell Job For Real Money.
19:43:43 <koz_> (I was prepared for the kind of horror shows I've seen and heard about)
19:43:46 <koz_> (luckily did not get one)
19:43:52 Tario joins (~Tario@201.192.165.173)
19:43:55 <koz_> (_still_ isn't in any way representative of what I am working on now)
19:44:08 <monochrom> You also need to understand that a CS exam question only asks "assuming I force you to optimize for big-O, what is the best you can do". But it doesn't ask under what circumstance you should optimize for that.
19:44:13 <boxscape> % type Void' :: TYPE (SumRep '[]); newtype Void' = Void' Void' -- is this the only way to have a genuinely uninhabited type?
19:44:13 <yahb> boxscape:
19:44:44 <koz_> boxscape: I think EmptyDataDeclarations (or something like it) lets you do it more directly?
19:44:55 <boxscape> koz_ but then it's a lifted type, so it contains bottom
19:44:56 <jle`> i think they're talking about even prohibiting bottom
19:45:16 <cads> wait, there are comrades in software engineering classes and they want to overthrow the bourgeousie and also they lack practical software engineering knowledge?!
19:45:26 <cads> my comrades! I MUST LEAD!
19:45:36 <koz_> boxscape: I see you don't agree with Sir Mix-A-Lot.
19:45:58 <koz_> (sorry)
19:45:59 <boxscape> koz_ not today
19:46:01 <koz_> :P
19:46:07 da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.29-209.dynamic.3bb.co.th)
19:46:15 <boxscape> % type Void' :: TYPE (SumRep '[]); newtype Void' = Void' (forall a . a) -- actually it looks like this works, too
19:46:15 <yahb> boxscape:
19:46:43 <zyklotomic> monochrom: i know i tell myself all that, but you're right, i'm only telling myself, but not actually believing it
19:47:00 <monochrom> You need to understand that most interview questions are screening questions to filter out the dumbest 99% of the candidates so the interview can save time.
19:47:02 × texasmynsted quits (~texasmyns@212.102.45.112) ()
19:47:42 <cads> monochrom, also I want to see who has the guts to implement monadic fizzbuzz in a way that fully respects DRY
19:47:48 <monochrom> So for example first they ask "write code for fizzbuzz". That immediate filters out the bottom 80%. But this does not mean you write fizzbuzz in production code. Duh.
19:47:55 × plakband quits (~plakband@softbank126074182017.bbtec.net) (Quit: WeeChat 2.9)
19:47:55 <koz_> It's also worth mentioning that most interviews are incredibly bad at what they claim to be doing.
19:48:08 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
19:48:20 <monochrom> Then the 2nd question is "write code for BST insert" and that filters out another 19%.
19:48:26 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:48:50 <monochrom> And if you're applying for Microsoft, I heard that the 3rd question would be "write an editor from scratch" and that will filter out the remaining 1%.
19:49:01 <zyklotomic> lol
19:49:07 <monochrom> Does this mean at Microsoft people write editors by hand all the time?
19:49:07 <hyiltiz> LMFAO
19:49:26 <monochrom> Does that mean they even care?
19:49:38 <monochrom> No, it's just a test.
19:49:47 cads would be filtered at phase II, because they think BST stands for "bull shit tree", as in "what is this bullshit tree insert you think I'm gonna write for you?"
19:50:17 argent0 joins (~argent0@168.227.97.34)
19:51:02 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.29-209.dynamic.3bb.co.th) (Ping timeout: 256 seconds)
19:51:06 <zyklotomic> true
19:51:14 <cads> for writing the editor i would start by forking the vs-code source code, which would actually impress the microsofties
19:51:35 <zyklotomic> the harder part to accept which I have slowly started to as a result of this convo though is that sometimes it's not worth the time to over-complify
19:51:42 <zyklotomic> if I understood the message correctly
19:51:57 <zyklotomic> *in pursuit of performance
19:52:05 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
19:52:32 <zyklotomic> I know "pre-mature optimization is the root of all evil" and all, but maybe this extends to optimization at the cost of clarity / programming efficiency
19:53:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
19:53:25 × idhugo quits (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Quit: Leaving)
19:53:44 <monochrom> OOOHHHH I now understand why Microsoft is happy with releasing vs-code source code for free.
19:53:53 <monochrom> They simply stole it from interviewees.
19:53:54 <cads> you could try to think in terms of how much you're gonna pay someone for a given line of code. If it's some very optimized code, you'll pay a lot - if that's you maintaining it you'll pay from your own limited time here on this earth. it better be worth it, and unless something is paying you to make the improvement, you're literally marching towards death for no reason, wasting time
19:54:27 <monochrom> Well, maybe it's a fair exchange, they pay for interviewee airplane tickets and food and hotel room.
19:54:43 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
19:54:43 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:54:46 <zyklotomic> well none of that this year lol
19:54:49 <monochrom> But at least, not quite employee salary.
19:55:07 <zyklotomic> but yeah cads thats kinda depressingly real but....
19:55:19 <zyklotomic> cads: i'll start thinking about that more often
19:55:33 <hyiltiz> cads imma remember that quote for life...
19:55:40 <zyklotomic> typing into an irc channel on haskell, perfect use of time though!
19:57:07 <cads> lol, only listen to my words on their own merit, for I am a huge hypocrite. I spent 3 hours yesterday rewriting a mouse gesture filtering algorithm because "the math wasn't elegant enough" in the original implementation
19:57:27 nuru joins (6dced5cb@109.206.213.203)
19:58:05 <zyklotomic> i guess unless you genuinely enjoyed the process
19:58:08 muskratt joins (~dawgbruh@pool-98-110-20-135.cmdnnj.fios.verizon.net)
19:58:25 <zyklotomic> time wasnt wasted if you enjoyed it
19:59:07 <cads> I mean, yes, I turned 40 lines of hell code into 12 lines that (in my opinion) read like poetry.. but did I /really/ enjoy the process... for example, my hand was going numb because I'm suffering from bad carpal tunnel rn. I could not feel my right hand. Should I /really/ have done that to myself?
19:59:55 <cads> lol, who am I kidding, that is what makes my life worth living
20:00:31 conal joins (~conal@64.71.133.70)
20:00:58 alp joins (~alp@2a01:e0a:58b:4920:f8ca:e52d:bace:9aad)
20:02:19 × muskratt quits (~dawgbruh@pool-98-110-20-135.cmdnnj.fios.verizon.net) (Client Quit)
20:02:44 <monochrom> Awww. Yeah, hurting your hand might not be worth it.
20:03:12 <monochrom> If not for that, the learning experience is very valuable.
20:03:38 × juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
20:03:42 <zyklotomic> that sounds interesting though, how does it work
20:03:46 <boxscape> % type Product :: forall r q (a :: TYPE r) (b :: TYPE q) . a -> b -> *; type Product a b = Product a b
20:03:47 <yahb> boxscape: ; <interactive>:23:58: error:; * Expected a type, but `a' has kind `TYPE r'; * In a standalone kind signature for `Product': forall r q (a :: TYPE r) (b :: TYPE q). a -> b -> *; <interactive>:23:63: error:; * Expected a type, but `b' has kind `TYPE q'; * In a standalone kind signature for `Product': forall r q (a :: TYPE r) (b :: TYPE q). a -> b -> *
20:03:49 christo joins (~chris@81.96.113.213)
20:03:58 <boxscape> why does that not work? It seems like (->) is levity polymorphic
20:04:00 <boxscape> judging by :k
20:04:06 × rcdilorenzo_ quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo_)
20:04:23 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
20:05:39 × doct0rhu quits (~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net) (Quit: Leaving)
20:06:03 doct0rhu joins (~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net)
20:06:38 × nuru quits (6dced5cb@109.206.213.203) (Remote host closed the connection)
20:07:19 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
20:07:45 boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
20:08:37 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
20:08:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:08:51 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
20:09:08 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
20:09:49 × Neo-- quits (~neo@188-230-138-83.dynamic.t-2.net) (Ping timeout: 264 seconds)
20:12:21 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:12:27 <hyiltiz> How would you fellas deal with teams? I often find myself find pointing out a problem, then leading a discussion about alternative solutions and who does what, then keep reminding people to do their part, and then explicitly stated the application algorithm in more detail or even in psidocode, and even that didn't get them to implement the damn thing just go do it myself... If I'd just had done it myself, i'd probably have done it five times over
20:12:28 <hyiltiz> in that time frame...
20:13:19 <hyiltiz> Find it very hard to motivate or appreciate a team member when they are passive like a dead meat
20:13:22 <koz_> hyiltiz: It depends heavily on who you work with. Having to prod colleagues is a thing I've experienced as both 'extremely necessary' and 'extremely unnecessary' (and everything in-between) depending on the folks involved.
20:13:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
20:13:39 <koz_> So I'd say 'repeated prodding' may be exactly the right idea.
20:14:06 <koz_> For the passive case, definitely prod.
20:14:15 <koz_> Since passive folks in my experience _like_ being directed.
20:14:21 <hyiltiz> I think dear meat can only be motivated via punishment (I'm take away your salary or something)
20:14:22 <koz_> (or at least that's what I've witnessed)
20:14:56 <koz_> hyiltiz: I don't think I've ever worked with anyone who needed that kind of motivation.
20:14:59 <koz_> Maybe I am lucky.
20:14:59 <Rembane> Create a prod-bot!
20:15:16 <koz_> Rembane: Basically write 90% of current phone apps.
20:15:17 <cads> I don't understand having a subordinate without also having the power to discipline or, if I decide, fire the subordinate
20:15:21 <koz_> They're basically prod-bots with UIs.
20:15:22 <hyiltiz> But I'd much rather ring inspiration and genuine motivation in them so they actively contribute
20:15:50 conal_ joins (~conal@64.71.133.70)
20:15:52 <cads> like I get it happens, and I get it happens a lot, and that it's frustrating when it happens. but WHY would anyone accept a subordinate they cannot fire is beyond me
20:16:07 <Rembane> koz_: :D
20:16:09 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Read error: Connection reset by peer)
20:16:21 <Rembane> hyiltiz: You need a sword
20:16:24 <hyiltiz> cads situation demands...
20:16:35 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
20:16:52 × gienah quits (~mwright@gentoo/developer/gienah) (Quit: leaving)
20:17:35 <hyiltiz> Massive sword that programs on each swing?
20:17:42 <hyiltiz> magic
20:17:46 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
20:18:45 <Rembane> The best kind of hacker sword
20:19:06 <koz_> Rembane: Swording-as-a-service?
20:19:09 <koz_> Internet-of-blades?
20:19:13 <monochrom> "hack away with your sword" literally
20:19:19 <koz_> Smartblade?
20:19:34 <hyiltiz> I'd totally sub to saas
20:20:08 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:20:20 koz_ renames Game of Thrones to 'Hackers'. :P
20:20:23 × nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Ping timeout: 272 seconds)
20:21:23 <hyiltiz> So no good solution without a sharp sword?
20:22:31 <cads> hyiltiz, if the situation demands, I like to make counter demands, and be willing to massively screw things up for the team that won't help me (ie, by walking to a competing team that will give me better resources). Usually just being ready and willing is enough to turn the negotiation and give me what I want. In this case you could leverage to get the meat fired. But probably you just want an understanding between you and the meat, and the
20:22:31 <cads> boss can give you that by leaning on them.
20:22:33 <Rembane> koz_: Yes! :D
20:24:49 whatisRT joins (~whatisRT@2002:5b41:6a33:0:5e3:170b:26c2:19e9)
20:25:37 revprez_stg joins (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
20:26:44 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
20:27:30 <hyiltiz> Gotcha thx
20:28:58 × Entertainment quits (~entertain@104.246.132.210) ()
20:30:46 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: Textual IRC Client: www.textualapp.com)
20:31:18 × nehsou^ quits (nehsou@ip98-184-89-2.mc.at.cox.net) ()
20:32:54 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
20:32:55 tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net)
20:33:37 LiceoProva joins (~imeil.o@151.42.193.199)
20:33:47 <LiceoProva> ciao
20:33:51 <LiceoProva> !list
20:33:51 <monochrom> LiceoProva: http://okmij.org/ftp
20:33:58 LiceoProva parts (~imeil.o@151.42.193.199) ()
20:34:03 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
20:34:57 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
20:35:04 loller_ joins (uid358106@gateway/web/irccloud.com/x-wqkamkonpztckcgq)
20:35:47 Zialus joins (~RMF@2001:818:de63:c300:211:32ff:fe8d:ad2a)
20:36:45 × ComaGrayce[m] quits (commagrays@gateway/shell/matrix.org/x-wpvsucnvgmarcknv) (Ping timeout: 240 seconds)
20:36:45 × doct0rhu[m] quits (doct0rhumo@gateway/shell/matrix.org/x-aytbanrbppvolhap) (Ping timeout: 240 seconds)
20:36:45 × tersetears[m] quits (tersetears@gateway/shell/matrix.org/x-lglnsokcfrmfsblz) (Ping timeout: 240 seconds)
20:36:45 × zerstroyer[m] quits (zerstroyer@gateway/shell/matrix.org/x-pvagwcsgvifvhwvf) (Ping timeout: 240 seconds)
20:36:45 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Ping timeout: 240 seconds)
20:36:49 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Remote host closed the connection)
20:36:53 × jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-sxmbcbyagmdgfbky) (Ping timeout: 244 seconds)
20:36:54 × unclechu quits (unclechuma@gateway/shell/matrix.org/x-asdoddomxjfoouxw) (Ping timeout: 244 seconds)
20:36:54 × hsiktas[m] quits (hsiktasmat@gateway/shell/matrix.org/x-wtpesvemtwcuuafs) (Ping timeout: 244 seconds)
20:36:54 × siraben quits (sirabenmat@gateway/shell/matrix.org/x-tkxpiikugikainiv) (Ping timeout: 244 seconds)
20:36:54 × sm[m] quits (simonmicma@gateway/shell/matrix.org/x-xomgnngasooluobu) (Ping timeout: 244 seconds)
20:36:57 × itai33[m] quits (itai33matr@gateway/shell/matrix.org/x-frldueosxtaonyqo) (Ping timeout: 246 seconds)
20:36:57 × srid quits (sridmatrix@gateway/shell/matrix.org/x-apaqawlqzgkodtqd) (Ping timeout: 246 seconds)
20:36:57 × BenSima[m] quits (bensimatim@gateway/shell/matrix.org/x-uoybmhbnttuhdmnm) (Ping timeout: 246 seconds)
20:36:57 × dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-wodmmdskrlskbezg) (Ping timeout: 246 seconds)
20:36:57 × falling-edge[m] quits (falling-ed@gateway/shell/matrix.org/x-wprvacjwbjixwxio) (Ping timeout: 246 seconds)
20:36:57 × wi[m] quits (w1gzmatrix@gateway/shell/matrix.org/x-ycgeajchfpkrzfcx) (Ping timeout: 246 seconds)
20:36:58 × aloiscochard[m] quits (aloiscocha@gateway/shell/matrix.org/x-nmroubrbcectjnbg) (Ping timeout: 246 seconds)
20:36:58 × PotatoHatsue quits (berbermanp@gateway/shell/matrix.org/x-znkywhldbhzbhgen) (Ping timeout: 246 seconds)
20:36:58 × dominicusin[m] quits (dominicusi@gateway/shell/matrix.org/x-nryovwrdbgvjplzc) (Ping timeout: 246 seconds)
20:36:58 × motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Ping timeout: 272 seconds)
20:36:58 × Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-euxykteztfgdzjor) (Ping timeout: 244 seconds)
20:37:02 × lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-esnqerudyklmnsrh) (Ping timeout: 260 seconds)
20:37:13 × Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-ihxxyuaewqpuhxbt) (Ping timeout: 260 seconds)
20:37:13 × drozdziak1 quits (drozdziak1@gateway/shell/matrix.org/x-zhcszongpwzqffkh) (Ping timeout: 260 seconds)
20:37:14 × CRTified[m] quits (schnecfkru@gateway/shell/matrix.org/x-ofgzvldlqelcywuc) (Ping timeout: 264 seconds)
20:37:24 × pqwy[m] quits (pqwymatrix@gateway/shell/matrix.org/x-bcyejxklqcfnaxbi) (Ping timeout: 240 seconds)
20:37:25 × andreabedini[m] quits (andreabedi@gateway/shell/matrix.org/x-sjrrvynkcmmwxcjs) (Ping timeout: 244 seconds)
20:37:29 × themsay[m] quits (themsaymat@gateway/shell/matrix.org/x-ysvioopzcvcuuyvd) (Ping timeout: 272 seconds)
20:37:29 × hyiltiz-M quits (hyiltizkde@gateway/shell/kde/matrix/x-zvgetfbstubrdqzf) (Ping timeout: 244 seconds)
20:37:32 × jesser[m] quits (jessermatr@gateway/shell/matrix.org/x-nwocmlqbhptovmvw) (Ping timeout: 260 seconds)
20:37:32 × berberman[T] quits (berberma4@gateway/shell/matrix.org/x-zmodyatzyvhzifry) (Ping timeout: 260 seconds)
20:37:33 × rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-nvfucrymxqacpiao) (Ping timeout: 260 seconds)
20:37:33 × theduke quits (thedukem1@gateway/shell/matrix.org/x-kbbklisittpzjvkk) (Ping timeout: 260 seconds)
20:37:33 × johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-jjlcducyrjlzkhlt) (Ping timeout: 260 seconds)
20:37:35 × mang0[m] quits (dea223matr@gateway/shell/matrix.org/x-oxzuzzbshfcdgowx) (Ping timeout: 268 seconds)
20:37:36 × alephu5[m] quits (alephu5mat@gateway/shell/matrix.org/x-gipdmcyuqaltnaqr) (Ping timeout: 268 seconds)
20:37:36 × mikr[m] quits (mikrdavral@gateway/shell/matrix.org/x-xnldjrbcvidcizev) (Ping timeout: 268 seconds)
20:37:36 × jkaye[m] quits (jkayematri@gateway/shell/matrix.org/x-ltlmepvlghffnhdw) (Ping timeout: 268 seconds)
20:37:36 × patier[m] quits (patiermatr@gateway/shell/matrix.org/x-fvcsayzftiumvnvp) (Ping timeout: 268 seconds)
20:37:36 × ThaEwat quits (thaewraptm@gateway/shell/matrix.org/x-rtowccvvmfqlygti) (Ping timeout: 268 seconds)
20:37:44 × camlriot42 quits (camlriotma@gateway/shell/matrix.org/x-dszwkgezlvpwptvk) (Ping timeout: 240 seconds)
20:37:48 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
20:37:50 × maralorn quits (maralornma@gateway/shell/matrix.org/x-texxocacqxllhpup) (Ping timeout: 264 seconds)
20:37:50 × lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-ukqcbfsgmccbpdxz) (Ping timeout: 264 seconds)
20:37:55 × alexfmpe quits (alexfmpema@gateway/shell/matrix.org/x-vumyyhvaurdbeexr) (Ping timeout: 244 seconds)
20:37:55 × michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-isbbleoraguftwpl) (Ping timeout: 244 seconds)
20:38:00 × TekShifter[m] quits (tekshifter@gateway/shell/matrix.org/x-jgtfubkitlckvzls) (Ping timeout: 246 seconds)
20:38:00 × rab24ack[m] quits (rab24ackma@gateway/shell/matrix.org/x-wbflzldjessbqugl) (Ping timeout: 246 seconds)
20:38:05 × psydruid quits (psydruidma@gateway/shell/matrix.org/x-gdvihwcfiajbrbzn) (Ping timeout: 240 seconds)
20:38:07 × Ericson2314 quits (ericson231@gateway/shell/matrix.org/x-ckcitsrjoxxkqbcd) (Ping timeout: 260 seconds)
20:38:07 × iinuwa quits (iinuwamatr@gateway/shell/matrix.org/x-xphebgqwlqcseskv) (Ping timeout: 260 seconds)
20:38:12 × kadoban quits (kadobanmat@gateway/shell/matrix.org/x-ihijirqqlozywxkc) (Ping timeout: 268 seconds)
20:38:12 × jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-rmfoljfsgzwwaqzw) (Ping timeout: 268 seconds)
20:38:12 × boistordu quits (boistordum@gateway/shell/matrix.org/x-octelcfxsnkvakgd) (Ping timeout: 268 seconds)
20:38:45 × SlackIntegration quits (slackbotma@gateway/shell/matrix.org/x-uxjtxhvnhsvwzafd) (Ping timeout: 272 seconds)
20:38:53 Entertainment joins (~entertain@104.246.132.210)
20:39:17 × psamim quits (samimpmatr@gateway/shell/matrix.org/x-iwvzbluhzuztthuh) (Ping timeout: 260 seconds)
20:39:20 motherfsck joins (~motherfsc@unaffiliated/motherfsck)
20:39:28 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds)
20:41:06 × fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-ypwwwiayrbbyifnk) (Ping timeout: 244 seconds)
20:42:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75) (Ping timeout: 260 seconds)
20:43:36 × conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:45:41 kritzefitz joins (~kritzefit@212.86.56.80)
20:45:46 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-bjtotidkjwptzxld)
20:46:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:47:00 conal joins (~conal@64.71.133.70)
20:47:08 × conal quits (~conal@64.71.133.70) (Client Quit)
20:48:08 thelounge7121 joins (c1207eea@gateway/web/thelounge/ip.193.32.126.234)
20:49:38 × Entertainment quits (~entertain@104.246.132.210) ()
20:49:46 et09 parts (~et09@unaffiliated/endolphin) ()
20:54:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:57:15 Tario joins (~Tario@201.192.165.173)
20:57:34 alexfmpe joins (alexfmpema@gateway/shell/matrix.org/x-dharghhrczrbdwpt)
20:57:35 zerstroyer[m] joins (zerstroyer@gateway/shell/matrix.org/x-uvziduqqpveqecsi)
20:57:39 doct0rhu[m] joins (doct0rhumo@gateway/shell/matrix.org/x-tjezwjmljqaegekd)
20:57:40 hsiktas[m] joins (hsiktasmat@gateway/shell/matrix.org/x-nbwomcltkxmmxmak)
20:57:49 TekShifter[m] joins (tekshifter@gateway/shell/matrix.org/x-pjjmyvioalvivqgb)
20:57:49 falling-edge[m] joins (falling-ed@gateway/shell/matrix.org/x-raeghvrbhfpgtupx)
20:57:50 dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-axzvldhyxjesbgkx)
20:57:50 dominicusin[m] joins (dominicusi@gateway/shell/matrix.org/x-vcoaftteusesgvai)
20:57:51 BenSima[m] joins (bensimatim@gateway/shell/matrix.org/x-umqofddrxzxxxopi)
20:58:18 camlriot42 joins (camlriotma@gateway/shell/matrix.org/x-qnrookqqtxtksytk)
20:58:51 srid joins (sridmatrix@gateway/shell/matrix.org/x-ihrygjdlnbozwtjk)
20:58:59 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
20:59:22 ComaGrayce[m] joins (commagrays@gateway/shell/matrix.org/x-rgzepedcrcqimjdb)
20:59:23 themsay[m] joins (themsaymat@gateway/shell/matrix.org/x-ntvrkrbtrqlxxjfp)
20:59:25 Vulfe joins (~vulfe@2600:1702:31b0:34e0:69cb:4c40:655a:5f75)
20:59:36 itai33[m] joins (itai33matr@gateway/shell/matrix.org/x-hbawltlorgahcecl)
20:59:38 wi[m] joins (w1gzmatrix@gateway/shell/matrix.org/x-hvilmvtprutlggan)
20:59:38 aloiscochard[m] joins (aloiscocha@gateway/shell/matrix.org/x-pkhjmcxyixjezljv)
20:59:38 tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-gskureyyzbunuhmw)
21:01:39 psydruid joins (psydruidma@gateway/shell/matrix.org/x-xrerkddykdfqobox)
21:01:41 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
21:02:09 unclechu joins (unclechuma@gateway/shell/matrix.org/x-pgxospnfpnngufam)
21:03:10 jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-odbepyltoezqkxgi)
21:03:54 CRTified[m] joins (schnecfkru@gateway/shell/matrix.org/x-pojsifoicrnfbiru)
21:04:14 hyiltiz-M joins (hyiltizkde@gateway/shell/kde/matrix/x-antijvnmdrsgjnly)
21:04:22 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:5e3:170b:26c2:19e9) (Ping timeout: 260 seconds)
21:04:32 kadoban joins (kadobanmat@gateway/shell/matrix.org/x-smliontovhsjofmu)
21:04:33 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
21:04:37 patier[m] joins (patiermatr@gateway/shell/matrix.org/x-vlhbzdwxhpzvyynq)
21:04:42 × elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
21:05:00 mang0[m] joins (dea223matr@gateway/shell/matrix.org/x-mptmksumjgntagzy)
21:05:01 jkaye[m] joins (jkayematri@gateway/shell/matrix.org/x-skotoydfoufsqldx)
21:05:01 mikr[m] joins (mikrdavral@gateway/shell/matrix.org/x-knmpvjrudfvaghww)
21:05:02 alephu5[m] joins (alephu5mat@gateway/shell/matrix.org/x-aercnrduxrfbvkwy)
21:05:17 siraben joins (sirabenmat@gateway/shell/matrix.org/x-zqeievqiualvamus)
21:05:21 elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
21:05:24 boistordu joins (boistordum@gateway/shell/matrix.org/x-qisdfgjhwtgbhgjm)
21:05:49 ThaEwat joins (thaewraptm@gateway/shell/matrix.org/x-hwkysomttqzqctxo)
21:05:56 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:05:58 sm[m] joins (simonmicma@gateway/shell/matrix.org/x-pnthkezdxbpznobc)
21:06:04 PotatoHatsue joins (berbermanp@gateway/shell/matrix.org/x-pgpiepqlttziknti)
21:06:46 Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-gsuncxeehyodgkwd)
21:06:53 drozdziak1 joins (drozdziak1@gateway/shell/matrix.org/x-yctuipwfnhbsurol)
21:09:51 lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-bcmaxmksxtqadatv)
21:10:29 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
21:10:36 × zyklotomic quits (~ethan@unaffiliated/chocopuff) (Ping timeout: 240 seconds)
21:11:21 jesser[m] joins (jessermatr@gateway/shell/matrix.org/x-sjfbluokfqydziao)
21:11:23 iinuwa joins (iinuwamatr@gateway/shell/matrix.org/x-ipassifbnrgnzhtq)
21:11:25 psamim joins (samimpmatr@gateway/shell/matrix.org/x-krmmfkjnfdrrbytd)
21:11:29 rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-ucrtzpurrvrdgbsf)
21:11:45 johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-vacyeklvxcuwrdpb)
21:11:56 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
21:12:00 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
21:12:28 berberman[T] joins (berberma4@gateway/shell/matrix.org/x-frqpzbxlqadgittv)
21:12:41 zyklotomic joins (~ethan@210.13.104.210)
21:14:03 fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-urmkblempjoidfpt)
21:14:12 maralorn joins (maralornma@gateway/shell/matrix.org/x-qiuviuxllrzzhqdo)
21:14:13 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
21:14:43 andreabedini[m] joins (andreabedi@gateway/shell/matrix.org/x-lbginztlvjpljpan)
21:17:02 lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-dlqnhxhuabqsxfuc)
21:17:10 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
21:17:29 michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-gxhxrzrfmkyfygya)
21:17:59 jeffcasavant[m] joins (jeffcasava@gateway/shell/matrix.org/x-ocdaojbqtvzkcwus)
21:18:11 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
21:18:23 theduke joins (thedukem1@gateway/shell/matrix.org/x-sexqsjdnjitytpbp)
21:18:32 rab24ack[m] joins (rab24ackma@gateway/shell/matrix.org/x-auwpzeruqhjinztt)
21:18:33 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
21:18:34 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
21:18:49 × p-core quits (~Thunderbi@cst-prg-99-198.cust.vodafone.cz) (Ping timeout: 264 seconds)
21:18:51 Ericson2314 joins (ericson231@gateway/shell/matrix.org/x-tpaglddbbaarshkp)
21:18:55 pqwy[m] joins (pqwymatrix@gateway/shell/matrix.org/x-lqkhfpwghttgzcww)
21:20:58 BlackCapCoder joins (~blackcap@48.80-203-23.nextgentel.com)
21:21:02 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
21:21:17 heatsink joins (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607)
21:23:09 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
21:23:59 × dxld quits (~dxld@rush.pub.dxld.at) (Quit: Bye)
21:24:34 Sayless joins (~seiless@45.132.225.91)
21:24:37 × mananamenos quits (~mananamen@vpn236-24.vpns.upv.es) (Read error: Connection reset by peer)
21:24:37 dxld joins (~dxld@rush.pub.dxld.at)
21:26:34 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
21:29:05 × urek__ quits (~urek@2804:7f1:e10a:a8d:a85d:6d9e:3db:9450) (Ping timeout: 246 seconds)
21:30:47 son0p joins (~son0p@181.136.122.143)
21:32:13 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
21:32:29 texasmynsted joins (~texasmyns@212.102.45.112)
21:32:35 abhixec joins (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
21:38:23 conal joins (~conal@64.71.133.70)
21:39:12 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
21:40:20 × coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:42:34 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 245 seconds)
21:45:38 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
21:48:46 × grdvnl quits (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) (Quit: Leaving)
21:48:54 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
21:49:04 grdvnl joins (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com)
21:49:10 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
21:54:03 joaj joins (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca)
21:54:18 zyklotomic parts (~ethan@210.13.104.210) ("WeeChat 2.9")
21:54:35 × johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
21:55:16 × Jeanne-Kamikaze quits (~Jeanne-Ka@66.115.189.235) (Ping timeout: 240 seconds)
21:57:13 × motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Ping timeout: 264 seconds)
21:58:08 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
22:00:04 motherfsck joins (~motherfsc@68.235.43.102)
22:00:30 Rudd0 joins (~Rudd0@185.189.115.98)
22:00:40 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
22:00:40 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
22:00:40 mouseghost joins (~draco@wikipedia/desperek)
22:05:31 urek__ joins (~urek@2804:7f1:e10a:a8d:a85d:6d9e:3db:9450)
22:06:50 drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net)
22:09:58 × motherfsck quits (~motherfsc@68.235.43.102) (Remote host closed the connection)
22:13:52 × falafel quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 272 seconds)
22:14:06 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:15:12 <cads> https://gist.github.com/maxsu/db9b0182b1d95225965a00b29684fce8
22:15:37 <cads> I have turned my import syntax into a proposal draft!
22:15:59 conal joins (~conal@64.71.133.70)
22:16:31 <cads> the section on prior work needs /special/ attention, since I'm almost surely reinventing a wheel here
22:17:05 <tomsmeding> cads: "import list (intercalate, sort)" -- typo, List not list
22:17:14 <cads> thanks!
22:17:16 <tomsmeding> well, Data.List
22:17:45 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:18:40 <tomsmeding> in general you may want make explicit that you're using lowercase module names as placeholders
22:18:42 <dminuoso> cads: My two cents on the draft: I. does not really help much, you save a few mentions of `imports` at the cost of not clearly seeing what module you import identifiers from.
22:20:00 <dminuoso> Say you have `import A.B.C, E.F.G, H.I.J, K.L.K (foo, bar), (quux), (baz doodle) ...` it becomes very hard to know where to modify import lists. Which import refers to what module? I dont know.
22:20:16 <dminuoso> If the point is to save `import` that suggests its only valuable if you actually use it multiple itmes.
22:20:20 knupfer joins (~Thunderbi@200116b82c2c6000b00585fffef340d5.dip.versatel-1u1.de)
22:20:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
22:20:24 <dminuoso> But that greatly decreases readability
22:20:52 <cads> yeah, there's a cart before the horse problem there - the real innovation as I see it is part II, and the concept of import lists is something I introduced to support the concept of an import list that is prefixed by some module or namespace
22:21:58 sh9 joins (~sh9@softbank060116136158.bbtec.net)
22:22:16 <dminuoso> As for part II, I can see the potential merit. I'd *much* prefer you dont put the `from Data` at the end, but at the beginning instead.
22:22:35 <dminuoso> So you might write `from Data import ...`
22:22:44 × knupfer quits (~Thunderbi@200116b82c2c6000b00585fffef340d5.dip.versatel-1u1.de) (Remote host closed the connection)
22:22:52 knupfer joins (~Thunderbi@200116b82c2c6000b8f3e6f0b0d04c82.dip.versatel-1u1.de)
22:23:23 nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
22:23:23 <cads> nice
22:23:25 <dminuoso> That seems far more reasonable, since it visually still respects the hierarchy (the referenced module comes first, and then the relative imports), and it makes it painstakingly immediately obvious what the following bulk is for
22:23:28 × julm quits (~julm@revolt129.abo.ilico.org) (Ping timeout: 256 seconds)
22:23:39 <boxscape> hm how about import Data.(List, Functor, Bifunctor)
22:23:46 × nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Client Quit)
22:24:15 <boxscape> ...I guess that might make import Lists hard to look at
22:24:54 <dminuoso> cads: One important thing here: If you make this an actual proposal, the syntax must be acceptable or it'll be shot down for poor ergonomics. I think its even an official rule that syntax is not for debate in a proposal.
22:25:09 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds)
22:25:12 <dminuoso> (Because it'd just lead to bike shedding)
22:25:36 <boxscape> if that is a rule it's broken quite a bit
22:26:11 <tomsmeding> re:"from" at the beginning: see python import syntax
22:26:22 <tomsmeding> about prior art: both python and rust have similar things
22:26:25 <cads> lol, I don't understand what you mean - as in I'd have to write a grammar for my extensions? that seems pretty fair and obvious - I wouldn't write a proposal unless I had a EBNF and a working implementation
22:26:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:26:44 <cads> do you mean something more stringent/
22:27:18 <dolio> It means it actually has to be a good grammar, I think.
22:27:37 <cads> as in the grammar also has to flow with haskell ergonomics? I think i can hit that target too, for all that I generally think haskell doesn't /have/ ergonomics (and I'm trying to introduce them)
22:28:27 <dolio> And for instance, putting 'from' at the start of the line is going to complicate the parser even more.
22:28:56 <dminuoso> cads: Roughly the haskell committee has a rule that the syntax of a proposal is _automatically accepted_ and not up for debate.
22:29:38 <boxscape> dminuoso I don't think that's right
22:30:09 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607) (Remote host closed the connection)
22:30:10 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
22:30:25 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
22:30:30 <boxscape> syntax gets debated a lot in the proposal discussion as well as in the steering comittee mailing list, and I haven't been able to find such a rule
22:30:41 <dminuoso> Mmm, that's what I heard actually
22:30:46 <cads> automatically based on what criterion? also I don't understand who this committee is or why I would care - the proposal is for a standalone extension that someone can run if they wanna. It's not like I'd want the committee to maintain it or include it with ghc
22:30:49 dminuoso thinks monochrom might have said this?
22:31:18 <dminuoso> Anyway
22:31:37 <cads> if it's useful to me I'll go ahead and write my internal code against it regardless of what the committee thinks, I mean, doesn't that make sense?
22:31:48 <dminuoso> cads: The part II has merit, but the current syntax does not seem to make things any better. I'd say they make it much worse.
22:31:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
22:33:51 <boxscape> cads if what you're looking to do doesn't involve adding it to the official ghc implementation, you don't have to worry about the proposal process or the committee. Typically, when people say they're writing a proposal, they mean they write a pull request in https://github.com/ghc-proposals/ghc-proposals/pulls outlining the changes they wish to
22:33:52 <boxscape> see/implement in the official ghc repo
22:35:37 <monochrom> Note that Haskell committee discussion ≠ GHC proposal discussion
22:35:56 <cads> I see this becoming a proposal if I end up using it in production and I love it, so in the meantime maybe I shouldn't call it a proposal
22:36:03 <boxscape> (I probably should've linked to https://github.com/ghc-proposals/ghc-proposals actually)
22:36:04 <dminuoso> Ah
22:36:39 nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
22:36:43 julm joins (~julm@revolt129.abo.ilico.org)
22:37:10 heatsink joins (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607)
22:37:11 motherfsck joins (~motherfsc@unaffiliated/motherfsck)
22:38:36 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:40:09 conal joins (~conal@64.71.133.70)
22:40:30 × conal quits (~conal@64.71.133.70) (Client Quit)
22:40:48 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
22:40:53 conal joins (~conal@64.71.133.70)
22:41:18 × conal quits (~conal@64.71.133.70) (Client Quit)
22:41:27 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
22:41:43 conal joins (~conal@64.71.133.70)
22:46:29 Tops2 joins (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de)
22:47:44 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607) (Remote host closed the connection)
22:51:56 <cads> dminuoso, Check out section V https://gist.github.com/maxsu/db9b0182b1d95225965a00b29684fce8
22:52:06 × jollygood2 quits (~bc8165ab@1582020-static.lxtnkya3.metronetinc.net) (Quit: CGI:IRC (Session timeout))
22:52:40 <cads> now it's so readable I dare say it's /too readable/ ;) Of course I kid (there's no such think as TOO readable)
22:53:59 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
22:54:47 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
22:55:03 <cads> dminuoso, what I like about your form is that it forced me to add whitespace before and after, and I think the result looks great
22:55:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
22:55:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:58:10 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
22:58:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:00:10 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
23:00:46 kipras joins (~Kipras@78-56-235-39.static.zebra.lt)
23:01:15 jedws joins (~jedws@121.209.181.215)
23:01:24 <dminuoso> cads: The major issue either way is introducing a new keyword, something that will be met with much opposition.
23:02:08 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
23:03:56 <cads> do you know whether template haskell can let us build something like this, without rewriting the core syntax?
23:04:59 × son0p quits (~son0p@181.136.122.143) (Remote host closed the connection)
23:06:31 <arahael> dminuoso: syntax in a proposal is automatically accepted? What if the syntax is utterly wacky? :D
23:07:18 × LKoen quits (~LKoen@73.174.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
23:07:49 <cads> I think dminuoso meant that the committe will automatically apply its totally subjective and techical debt derived preferences to it, is what will automatically happen
23:09:52 <cads> but I'm not really bothered by that, since I would be amazed if I'm even still touching haskell in 3 months, let alone if I have authored a standards compliant language proposal.
23:10:47 <cads> What you're seeing now is me desperately trying to make haskell into a language I can look at on a daily basis without wanting physically to leave this planet
23:16:22 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:17:20 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
23:18:07 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
23:18:55 × dustypacer quits (~pi@2600:6c50:80:2f4a:e9d0:6569:1cea:d1d4) (Remote host closed the connection)
23:19:25 dustypacer joins (~pi@2600:6c50:80:2f4a:e9d0:6569:1cea:d1d4)
23:19:41 o1lo01ol1o joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
23:20:11 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
23:20:45 <dminuoso> cads: No, TH does not.
23:21:01 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
23:21:05 <dminuoso> It lets you add top level declaration, you cant modify the module declaration itself.
23:21:43 <dminuoso> In my eyes, the relatively verbose import lists are a nuissance at best.
23:23:18 conal joins (~conal@64.71.133.70)
23:23:28 <dolio> The * thing seems like it's going to be confusing, too.
23:23:37 <cads> yeah I hate the * thing
23:24:23 <cads> alternative is to force a separate line for the module itself, which I'm honestly fine with being that it's an intermediary step that I'd have to implement anyways
23:25:07 <cads> I really just want to relieve my poor eyes from that god awful import import import Data. Data. Data.
23:25:24 falafel joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
23:25:24 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:25:36 <cads> some folks skim past that kind of line noise, but for me it causes me to become blind to the content of that code
23:25:47 × knupfer quits (~Thunderbi@200116b82c2c6000b8f3e6f0b0d04c82.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
23:26:04 <dminuoso> Luckily the import statements are at the top.
23:26:14 <dminuoso> So they are separate from the actual code that we tend to care about.
23:27:37 <cads> still doesn't help. If I'm auditing 10 files, that's 10 mangled imports I have to parse with my poor dyslexic brain and I've just reached a point where I'd rather just change the compiler
23:28:06 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:28:27 <texasmynsted> cads are you still fighting the imports?
23:28:28 <sm[m]> cads: in a little while this feeling will weaken :)
23:28:40 <sm[m]> just hang in there
23:29:04 <cads> sm[m], nah, it won't go away, I'll just make a patch and run it in my org, because I am the boss.
23:29:26 <texasmynsted> just put all the imports at the top and set a marker at the end of them. Then rather than start at the top, start at the marker.
23:29:31 <cads> and if you wanna help you can, but I invite you to stop discouraging me ;)
23:30:01 <texasmynsted> cads, I would appreciate it if you would write an import consolidator.
23:30:15 <texasmynsted> or something that would automatically split code out into modules
23:30:37 <texasmynsted> That would be really helpful. I would use it straight away.
23:30:48 gienah joins (~mwright@gentoo/developer/gienah)
23:31:00 <sm[m]> I'm encouraging you. By all means continue, I support your making things better. cads++
23:31:08 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:32:09 texasmynsted reading scrollback
23:32:31 Tops21 joins (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de)
23:32:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
23:32:57 <dminuoso> cads: I dont care either way, really. Assuming you proposed it, it got accepted, and somebody implemented it, I likely wouldn't turn it on anyway.
23:33:02 <dminuoso> Nothing forces me to. :)
23:33:20 <boxscape> cads are you envisioning writing a preprocessor, ghc plugin, or to work ghc?
23:33:23 <boxscape> s/work/fork
23:33:44 <texasmynsted> please update fourmolu to parse it also
23:34:10 conal joins (~conal@64.71.133.70)
23:34:16 <texasmynsted> because if fourmolu will not parse it, I will not use it.
23:35:04 <texasmynsted> need to go but cads I am curious what languages you normally use.
23:35:08 <cads> the cheapest, hackiest implementation I can learn about - preprocessor is probably able to let me do it with 2 regexes buuuuut. That's too cheap I think. I think I need to work with the lexer and parser, so maybe a plugin is the cheapest (lowest cost of ownership) option
23:35:31 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
23:35:31 × Tops2 quits (~Tobias@dyndsl-091-249-083-001.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
23:35:39 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
23:36:04 <boxscape> cads looking at https://hackage.haskell.org/package/ghc-8.10.1/docs/Plugins.html#g:7 it looks like the earliest point that plugins can change something is *after* the parser is run, but I haven't tried writing one so that might be wrong
23:36:13 <dminuoso> I found that grouping by inserting newlines between groups and having emacs execute a specially configured stylish-haskell to only sort import groups makes most of import list stuff quite bearable.
23:36:14 <cads> texasmynsted, I normally model stuff in pure category theory and then tell folks what to implement, but in the last year I've been building a cad geometry processing system in python, and running my company on it
23:36:31 <texasmynsted> nice
23:36:36 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
23:37:00 <texasmynsted> I hope you are here later so I can find more about this. Talk with you later.
23:37:30 <cads> boxscape, thanks, that kind of intelligence is hard for me to gather since there's so much to learn
23:38:06 × wwwww quits (~wwwww@unaffiliated/wwwww) (Ping timeout: 272 seconds)
23:38:14 <cads> you know, for code that I can personally babysit, a preprocessor regex is not THAT hard
23:39:49 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 264 seconds)
23:39:57 wwwww joins (~wwwww@unaffiliated/wwwww)
23:40:03 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
23:41:06 × drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
23:41:25 <cads> basically I want a lexer that rejects anything but my special import statement language. That queues up some importdecl tokens, and I re-emit those as well formed standard import statements.
23:41:43 <dminuoso> cads: You can define a custom preprocessor in GHC
23:41:50 Varis joins (~Tadas@unaffiliated/varis)
23:41:53 <cads> lol
23:42:10 <cads> these kinds of tips save me literally hours, I thank you
23:42:16 <dminuoso> See -F and -optF in the GHC manual respectively
23:42:43 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
23:43:22 <cads> I don't think I even have to write it as a lexer -> parser -> transformer. I could /probably/ write it all as a single sed command if I was being sadistic
23:44:26 <cads> I will look at some sample preprocessors instead, because I'm gonna regret it down the line (such as when I share the code for collaborator assistance) if I use regex
23:45:22 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
23:45:56 <cads> https://github.com/ghc-proposals/ghc-proposals/blob/3dfec03b11e8829d7febbb7290c3183f752466d7/proposals/0190-module-qualified-syntax.rst
23:46:12 <cads> This looks like a great reference proposal
23:46:12 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
23:46:25 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
23:46:56 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
23:47:21 <cads> discusses the kind of considerations that the community considers, is very clear and short, and it was accepted
23:48:09 heatsink joins (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607)
23:48:10 × haasn quits (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
23:48:35 haasn joins (~nand@mpv/developer/haasn)
23:49:47 <cads> I am thinking that I will follow this report format for my internal process, even if the goal is to create a private artefact that only my org will use
23:50:23 hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
23:52:27 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:52:42 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b8f3:ef0:2eb2:2607) (Ping timeout: 244 seconds)
23:53:42 conal joins (~conal@64.71.133.70)
23:54:32 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
23:54:49 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection)
23:55:09 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
23:55:32 <cads> dolio, in context of qualified imports, and foreign and unsafe imports (which I don't even want to know the grammar for)... suddenly I sense why you might feel reluctant to load that syntax even more heavily
23:55:59 <monochrom> Nice, cabal-install can hint me when I have a typo in a package name.
23:56:22 <monochrom> I entered "cabal install --lib quickcheck" and it reminds me "do you mean QuickCheck"
23:56:42 <monochrom> Perhaps next version if I enter "cabal install emacs" it will also ask me "do you mean vi"
23:57:06 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
23:57:22 <monochrom> You know what, I should put that as a wished feature for the next April 1st version of cabal-install :)
23:57:39 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
23:58:55 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)

All times are in UTC on 2020-12-05.