2022/12/24

2022-12-24 00:06:47 +0100 <Inst> sort of feels like a shame that the core Haskell team wandered off to industry / random projects
2022-12-24 00:07:07 +0100 <Inst> the parallelization on Haskell could use improvement
2022-12-24 00:07:50 +0100beefbambi(~beefbambi@183.82.30.144) (Read error: Connection reset by peer)
2022-12-24 00:08:50 +0100 <Jadesheit[m]> I feel like I want to help and contribute to haskell, but im unsure in what ways I could do anything that has a meaningful impact or purpose
2022-12-24 00:09:24 +0100 <Jadesheit[m]> especially because, even though it has been getting better, my haskell is far from perfect and there are still a lot of things I need to learn
2022-12-24 00:10:22 +0100thegeekinside(~thegeekin@189.128.148.159) (Ping timeout: 268 seconds)
2022-12-24 00:11:36 +0100 <monochrom> If you actually use Haskell, you're already contributing! Because one day people are going to ask "does anyone still use Haskell anymore?" and you're going to ask "I still do, haskell is not going away, not on my watch".
2022-12-24 00:13:24 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-24 00:13:44 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-12-24 00:16:04 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-24 00:16:04 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-24 00:16:04 +0100wroathe(~wroathe@user/wroathe)
2022-12-24 00:16:26 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 00:18:56 +0100 <Jadesheit[m]> Something that meets the intersection of being useful and interesting/fun to me would be writing a library, though I'm unsure what for
2022-12-24 00:20:14 +0100lagash_(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2022-12-24 00:20:42 +0100 <geekosaur> Inst, I think the core GHC team would be surprised to learn that they no longer exist
2022-12-24 00:21:19 +0100 <monochrom> Ah but the core Haskell team (exact wording) would not be surprised >:)
2022-12-24 00:22:00 +0100 <geekosaur> what does parallelization have to do with the language definition?
2022-12-24 00:22:13 +0100 <monochrom> The core Haskell team writes Haskell code for those who don't write Haskell code for themselves >:D
2022-12-24 00:22:36 +0100 <monochrom> Right, so this is why I'm pretty sure "core Haskell team" was wrong wording.
2022-12-24 00:23:00 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-24 00:25:00 +0100 <monochrom> especially the word "core"
2022-12-24 00:25:20 +0100lagash_(lagash@lagash.shelltalk.net)
2022-12-24 00:25:51 +0100 <monochrom> parallel haskell has always been a kind of DLC rather than any kind of "core", at least for GHC.
2022-12-24 00:27:33 +0100 <Profpatsch> Is there a way of interleaving a MonadError Foo m and some thing that needs an unlift like foo :: (a -> IO a) -> IO a
2022-12-24 00:28:17 +0100 <monochrom> Perhaps m needs to support both in the first place.
2022-12-24 00:28:44 +0100 <Profpatsch> monochrom: yeah, but my problem is that e.g. ExceptT and MonadUnliftIO don’t vibe
2022-12-24 00:28:51 +0100 <Profpatsch> there can’t be any state if you want to unlift
2022-12-24 00:29:02 +0100 <monochrom> Alternatively go all out and try one of those effect libraries...
2022-12-24 00:30:34 +0100 <Profpatsch> More to the point, we use servant, which requires everything to have a a `MonadError ServantError m` restriction, but I’d like to lift stuff like https://hackage.haskell.org/package/postgresql-simple-0.6.5/docs/Database-PostgreSQL-Simple.html#v… into our m
2022-12-24 00:31:03 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 00:31:43 +0100beefbambi(~beefbambi@183.82.30.144)
2022-12-24 00:33:18 +0100 <monochrom> In this case, perhaps you can runExceptT somewhere and ExceptT-wrap somewhere else. Basically doing the conjugation yourself.
2022-12-24 00:33:58 +0100 <Profpatsch> yeah I’m thinking about how to build a “degraded” stack that allows that
2022-12-24 00:34:10 +0100 <monochrom> So basically set a = Either Foo a1
2022-12-24 00:34:21 +0100 <Profpatsch> hmmm
2022-12-24 00:35:02 +0100 <monochrom> So I mean something like: ExceptT (fold_ ... (runExceptT ...))
2022-12-24 00:35:25 +0100 <monochrom> err, ExceptT (fold_ ... (\a r -> runExceptT ...))
2022-12-24 00:35:42 +0100 <Profpatsch> monochrom: Ah so you mean not over any (UnliftIO m), just over ExceptT
2022-12-24 00:35:44 +0100 <Profpatsch> hmmm
2022-12-24 00:35:46 +0100 <Profpatsch> maybe that works
2022-12-24 00:35:48 +0100 <Profpatsch> I’ll try it out
2022-12-24 00:35:53 +0100iqubic(~avi@2601:602:9502:c70:4602:12a1:6697:a25f)
2022-12-24 00:37:22 +0100 <Inst> Haskell is actually doing fairly well on Google Trends
2022-12-24 00:37:44 +0100 <Inst> I think when the last HF foundation director was kind enough to speak to me, he was absolutely right that Haskell needs lots of improvement in tooling and ecosystem
2022-12-24 00:38:01 +0100 <dgpratt[m]> @pl f x y = g (h x y)
2022-12-24 00:38:02 +0100 <lambdabot> f = (g .) . h
2022-12-24 00:38:29 +0100 <Inst> lol "pl" => "pointless"
2022-12-24 00:39:51 +0100 <Inst> regarding the parallelism; I'm wondering if there's an intrinsic compatibility between laziness and parallelism
2022-12-24 00:40:29 +0100 <Inst> Haskell survives because it's lazy-by-default; Haskell was designed to unify lazy languages in FP space, and it seems that no one else is going to do lazy-by-default
2022-12-24 00:45:54 +0100 <Jadesheit[m]> <Inst> "I think when the last HF..." <- What parts of the ecosystem specifically?
2022-12-24 00:46:13 +0100 <monochrom> libraries, as usual
2022-12-24 00:47:03 +0100 <monochrom> there could be more, but libraries are the foundation
2022-12-24 00:47:16 +0100 <Inst> have you tried python? It's worth it just to see what best-in-class library is
2022-12-24 00:47:19 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
2022-12-24 00:47:20 +0100 <Inst> erm, ecosystem is
2022-12-24 00:47:40 +0100 <Inst> the main drawbacks is that Haskell community tends to be more helpful, and on average, more skilled due to higher average experience
2022-12-24 00:47:50 +0100 <monochrom> Unlike the 1970s (much simpler time), people choose languages by just looking at community libraries.
2022-12-24 00:47:58 +0100 <Inst> in Py / JS, you'll find people who have difficulty writing a for-loop
2022-12-24 00:48:05 +0100 <Jadesheit[m]> haha yeah
2022-12-24 00:48:25 +0100 <Jadesheit[m]> Inst: i've worked with it yeah
2022-12-24 00:48:49 +0100 <Inst> point of Haskell for me is essentially being able to hang out with Haskellers
2022-12-24 00:49:16 +0100 <Jadesheit[m]> what, in your opinion, would be an important library or piece of tooling haskell needs?
2022-12-24 00:50:21 +0100cheater_(~Username@user/cheater)
2022-12-24 00:50:26 +0100 <monochrom> the latest fad, i.e., machine learning
2022-12-24 00:50:34 +0100 <Inst> there are tensorflow bindings, no?
2022-12-24 00:50:45 +0100 <monochrom> (thank god the other latest fad, blockchain, is already covered)
2022-12-24 00:51:09 +0100 <Inst> ML isn't a fad; if you look at how far GPTChat has come
2022-12-24 00:51:11 +0100 <Jadesheit[m]> monochrom: something like numpy (numhs?) or something more specific?
2022-12-24 00:51:17 +0100 <Inst> numpy is a big hole, afaik
2022-12-24 00:51:21 +0100 <monochrom> But more seriously, GUI is still in a very bad state. At least how I feel it.
2022-12-24 00:51:21 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 00:51:25 +0100 <Inst> Haskell can't compare to Julia when it comes to numerical computation
2022-12-24 00:51:28 +0100 <Inst> yeah, I agree
2022-12-24 00:51:45 +0100 <Inst> GUI makes it hard to learn / teach Haskell because people want the endorphin rush of having a GUI they coded
2022-12-24 00:51:51 +0100 <Jadesheit[m]> monochrom: Everything is web-based nowadays
2022-12-24 00:52:01 +0100 <Inst> I can't even get threepenny-gui to install on Windows
2022-12-24 00:52:02 +0100 <Inst> :(
2022-12-24 00:52:30 +0100 <Jadesheit[m]> I started hating GUIs, then I started hating CLI/TUI and now I don't write any applications anymore
2022-12-24 00:52:46 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-24 00:52:46 +0100cheater_cheater
2022-12-24 00:52:55 +0100 <Jadesheit[m]> (this isn't a joke, btw)
2022-12-24 00:53:04 +0100 <Inst> so you just do scripts / webdesign?
2022-12-24 00:53:09 +0100goober(~goober@90-231-13-185-no3430.tbcn.telia.com)
2022-12-24 00:53:21 +0100 <monochrom> When you finally hate computing altogether, that will be enlightenment.
2022-12-24 00:53:46 +0100sagax(~sagax_nb@user/sagax)
2022-12-24 00:53:50 +0100 <Inst> Web honestly is probably the best chance Haskell has of growing its userbase
2022-12-24 00:54:04 +0100 <Jadesheit[m]> Inst: I exclusively do language intrinsic things lmao
2022-12-24 00:54:10 +0100 <monochrom> At least computing in practice.
2022-12-24 00:54:20 +0100 <Inst> so, compilers?
2022-12-24 00:54:32 +0100 <Jadesheit[m]> not even, no
2022-12-24 00:54:35 +0100 <Jadesheit[m]> I just code for the sake of coding
2022-12-24 00:54:51 +0100 <monochrom> Well, web is also a fad, just a much more long-running one.
2022-12-24 00:54:51 +0100 <Jadesheit[m]> I write functions, doodle around
2022-12-24 00:55:04 +0100 <Jadesheit[m]> I boot up ghci and try out stuff
2022-12-24 00:55:15 +0100 <monochrom> Let's face it, popularity = fad. Virtually a tautology.
2022-12-24 00:55:16 +0100 <Jadesheit[m]> and then I delete my entire projects folder again
2022-12-24 00:55:19 +0100 <Jadesheit[m]> it's an endless cycle
2022-12-24 00:55:44 +0100 <monochrom> Aww, you don't have to delete them :)
2022-12-24 00:56:07 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-24 00:56:35 +0100 <monochrom> I have a "project" directory and a "study-notes" directory. Inside them are all sorts of subdirectories that are not really different from yours. But I don't delete them.
2022-12-24 00:56:48 +0100 <Jadesheit[m]> haha I know, but they are usually "projects" with five or less functions because I lose interest so quickly
2022-12-24 00:57:15 +0100 <Jadesheit[m]> I haven't had something I worked on for more than a day in maybe a year?
2022-12-24 00:57:26 +0100 <Jadesheit[m]> It just sucks
2022-12-24 00:57:34 +0100 <Jadesheit[m]> ¯\_(ツ)_/¯
2022-12-24 00:57:42 +0100 <monochrom> Once in a while, it pays off when I find that something I need today has some unfinished sketch I left 10 years ago.
2022-12-24 00:58:20 +0100 <Jadesheit[m]> I talk a lot to people and discuss haskell
2022-12-24 00:58:30 +0100zerozzz
2022-12-24 00:58:39 +0100acidjnk(~acidjnk@p200300d6e7137a614441a736a9b750c4.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-12-24 00:58:43 +0100 <Jadesheit[m]> So I write more code on discord or matrix than in ghci/source files
2022-12-24 00:58:52 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 01:03:10 +0100 <Inst> fad implies that something is transient in the short-term
2022-12-24 01:03:28 +0100elevenkb(~elevenkb@105.224.37.128)
2022-12-24 01:03:32 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-24 01:03:41 +0100 <Inst> programming is a fad
2022-12-24 01:03:43 +0100 <Inst> comp sci, maybe not
2022-12-24 01:04:19 +0100 <Inst> in that, if you've seen what ChatGPT's been able to produce, we're probably not that far away from having programmers displaced by AI
2022-12-24 01:04:34 +0100 <Jadesheit[m]> I disagree
2022-12-24 01:04:55 +0100 <Jadesheit[m]> ChatGPT fails rather quickly at tasks, especially as they scale
2022-12-24 01:04:57 +0100 <monochrom> "machine learning" doesn't always means the good and important and long-lasting fruits of machine learning.
2022-12-24 01:05:23 +0100 <monochrom> It can also mean what most people who self-identify as "machine learning" actually do.
2022-12-24 01:05:34 +0100 <Inst> i'm not aware of the scammy parts of ML, tbh
2022-12-24 01:05:44 +0100 <Inst> I know that ML is a cash cow for people in the CS / programming space
2022-12-24 01:05:44 +0100 <monochrom> You bet 99% of those are going to be very ephemeral.
2022-12-24 01:05:53 +0100 <Inst> barely understand anything, just know how to feed inputs to a neural network
2022-12-24 01:06:12 +0100 <Inst> but i'm not aware of it in detail
2022-12-24 01:07:03 +0100cheater_(~Username@user/cheater)
2022-12-24 01:07:04 +0100OscarZ(~oscarz@95.175.104.82)
2022-12-24 01:07:51 +0100 <Jadesheit[m]> my go-to analogy is that ML simply finds a local minimum to a function
2022-12-24 01:07:58 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 272 seconds)
2022-12-24 01:08:29 +0100 <monochrom> I'm impressed with ChatGPT though because someone said they got from it an acceptable explanation of monads XD
2022-12-24 01:08:32 +0100 <Jadesheit[m]> it's not "intelligent"
2022-12-24 01:08:49 +0100 <Jadesheit[m]> monochrom: it simply reproduces
2022-12-24 01:08:54 +0100 <monochrom> Am I intelligent then? I doubt it.
2022-12-24 01:09:07 +0100 <dgpratt[m]> well this thing will never be anything but a toy, but it is just so gosh darn satisfying to craft a basic parser/interpreter in Haskell
2022-12-24 01:09:10 +0100 <monochrom> I always like to assert that I'm a living Chinese Room right here in my brain.
2022-12-24 01:09:56 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2022-12-24 01:10:01 +0100cheater_cheater
2022-12-24 01:10:39 +0100 <monochrom> Most students in most schools, even universities, are also putting in no more effort that finding local maxima to a mark function.
2022-12-24 01:10:52 +0100 <monochrom> otherwise known as "gaming the system".
2022-12-24 01:12:15 +0100 <geekosaur> "guessing the teacher's password"
2022-12-24 01:12:32 +0100 <monochrom> I have first-hand experience with Asian students going to Canadian universities with impossibly high TOEFL scores and impossibly broken English grammar in real life.
2022-12-24 01:12:37 +0100 <geekosaur> (which reportedly is where ChatGPT's name came from)
2022-12-24 01:12:51 +0100 <monochrom> I dare say ChatGPT is better than them.
2022-12-24 01:13:12 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 01:13:34 +0100 <monochrom> At least ChatGPT has better grammar.
2022-12-24 01:14:15 +0100 <monochrom> As opposed to TOEFL takers whose study strategy is to memorize pages after pages of English dictionaries.
2022-12-24 01:15:01 +0100 <monochrom> So far for every known AI flaw I can point to a corresponing human fallacy.
2022-12-24 01:15:27 +0100 <geekosaur> agreed
2022-12-24 01:15:35 +0100 <Inst> hmm, turns out that threepenny did run
2022-12-24 01:16:42 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-24 01:16:58 +0100 <monochrom> Come to think of it, probably a fundamental theorem about any kind of learning under any kind of fast marking scheme.
2022-12-24 01:17:54 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-24 01:17:57 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-24 01:18:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-12-24 01:18:38 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 246 seconds)
2022-12-24 01:25:28 +0100 <Inst> monochrom: tbh, that's more like a test design problem, isn't it?
2022-12-24 01:25:36 +0100 <Inst> map and territory, when they merge, it's a good test
2022-12-24 01:25:57 +0100mauke_(~mauke@user/mauke)
2022-12-24 01:26:06 +0100 <geekosaur> choose a different style, it'll have its own weakness
2022-12-24 01:27:13 +0100 <Inst> i.e, i've heard that in parts of east asia they just gave up on fighting "adaptiveness" to test regimens and decided to make it so that studying for the test is actually studying the material via test design
2022-12-24 01:27:15 +0100mauke(~mauke@user/mauke) (Ping timeout: 252 seconds)
2022-12-24 01:27:15 +0100mauke_mauke
2022-12-24 01:28:58 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-12-24 01:37:26 +0100 <monochrom> Easier said than done. As usual.
2022-12-24 01:38:02 +0100 <monochrom> You see, teachers and markers are optimizing a do-less-work-for-more-money function, too!
2022-12-24 01:39:25 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 01:43:26 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 01:44:06 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
2022-12-24 01:47:14 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 01:48:41 +0100goober(~goober@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2022-12-24 01:58:06 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2022-12-24 02:02:02 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-12-24 02:02:36 +0100Inst_(~Inst@c-98-208-218-119.hsd1.fl.comcast.net)
2022-12-24 02:03:15 +0100califax(~califax@user/califx)
2022-12-24 02:04:21 +0100dcoutts_(~duncan@host86-151-44-212.range86-151.btcentralplus.com) (Remote host closed the connection)
2022-12-24 02:04:40 +0100dcoutts_(~duncan@host86-151-44-212.range86-151.btcentralplus.com)
2022-12-24 02:04:43 +0100Inst(~Inst@2601:6c4:4081:54f0:b86b:c7d7:3fe0:861c) (Ping timeout: 248 seconds)
2022-12-24 02:06:19 +0100elevenkb(~elevenkb@105.224.37.128) (Quit: Client closed)
2022-12-24 02:08:59 +0100goober(~goober@90-231-13-185-no3430.tbcn.telia.com)
2022-12-24 02:10:50 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-12-24 02:15:31 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-24 02:16:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-12-24 02:28:59 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 264 seconds)
2022-12-24 02:33:08 +0100libertyprime(~libertypr@203.96.203.167)
2022-12-24 02:33:11 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-24 02:33:30 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-24 02:34:49 +0100thongpv87(~thongpv87@2402:9d80:387:dcf3:1936:a942:7497:64c2)
2022-12-24 02:35:54 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 02:51:11 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 264 seconds)
2022-12-24 02:54:05 +0100fizbin(~fizbin@user/fizbin) (Remote host closed the connection)
2022-12-24 02:54:14 +0100son0p(~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f) (Ping timeout: 255 seconds)
2022-12-24 02:54:24 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 02:56:54 +0100beefbambi(~beefbambi@183.82.30.144) (Ping timeout: 272 seconds)
2022-12-24 02:57:14 +0100OscarZ(~oscarz@95.175.104.82) (Ping timeout: 260 seconds)
2022-12-24 02:57:33 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 02:59:01 +0100jargon_(~jargon@174-22-197-118.phnx.qwest.net)
2022-12-24 03:00:23 +0100jargon(~jargon@174-22-192-24.phnx.qwest.net) (Ping timeout: 260 seconds)
2022-12-24 03:11:35 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 264 seconds)
2022-12-24 03:18:02 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 246 seconds)
2022-12-24 03:20:41 +0100ddellacosta(~ddellacos@143.244.47.100)
2022-12-24 03:24:12 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 03:24:50 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 03:28:37 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-24 03:29:50 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 272 seconds)
2022-12-24 03:37:10 +0100jinsun__(~jinsun@user/jinsun)
2022-12-24 03:37:10 +0100jinsunGuest7606
2022-12-24 03:37:10 +0100Guest7606(~jinsun@user/jinsun) (Killed (sodium.libera.chat (Nickname regained by services)))
2022-12-24 03:37:10 +0100jinsun__jinsun
2022-12-24 03:37:25 +0100jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-12-24 03:46:02 +0100unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 246 seconds)
2022-12-24 03:47:01 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-24 03:51:55 +0100razetime(~quassel@49.207.230.181)
2022-12-24 03:58:34 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-24 04:00:21 +0100jinsun(~jinsun@user/jinsun)
2022-12-24 04:13:47 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-24 04:18:59 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-24 04:25:59 +0100td_(~td@83.135.9.52) (Ping timeout: 264 seconds)
2022-12-24 04:27:35 +0100td_(~td@83.135.9.19)
2022-12-24 04:35:19 +0100thongpv87(~thongpv87@2402:9d80:387:dcf3:1936:a942:7497:64c2) (Ping timeout: 252 seconds)
2022-12-24 04:46:35 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-12-24 04:47:56 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-12-24 04:53:29 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-24 04:57:39 +0100mvk(~mvk@2607:fea8:5ce3:8500::d789)
2022-12-24 05:02:09 +0100son0p(~ff@2604:3d08:5b7f:5540::417e)
2022-12-24 05:02:18 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-24 05:03:59 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-12-24 05:06:22 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
2022-12-24 05:10:46 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-12-24 05:10:50 +0100rnat(uid73555@id-73555.lymington.irccloud.com)
2022-12-24 05:13:42 +0100dsrt^(~dsrt@76.145.185.103) (Ping timeout: 272 seconds)
2022-12-24 05:14:58 +0100dsrt^(~dsrt@76.145.185.103)
2022-12-24 05:19:46 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 05:20:22 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-24 05:30:56 +0100 <int-e> Inst_: `foldb` is an alternative `fold` for lists that groups the operations different (in the shape of a binary tree)... it's usually slower than the default `fold` because those intermediate lists actually materialize, so that's a significant overhead. But in the case of `factorial` it does a decent job of multiplying like-sized numbers, keeping intermediate results smaller.
2022-12-24 05:31:44 +0100 <int-e> "in the shape of a binary tree" which is balanced, that is, rather than completely left- or right-leaning.
2022-12-24 05:33:21 +0100 <int-e> > foldMap Sum [x,1,2,3]
2022-12-24 05:33:22 +0100 <lambdabot> Sum {getSum = x + (1 + (2 + (3 + 0)))}
2022-12-24 05:35:11 +0100xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 256 seconds)
2022-12-24 05:36:49 +0100xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-12-24 05:40:57 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2022-12-24 05:44:44 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-12-24 05:56:24 +0100ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 265 seconds)
2022-12-24 06:16:38 +0100calco(~calco@47.200.15.90)
2022-12-24 06:16:53 +0100 <calco> hello
2022-12-24 06:17:34 +0100 <calco> anybody home
2022-12-24 06:18:07 +0100calco(~calco@47.200.15.90) ()
2022-12-24 06:18:21 +0100calco(~calco@47.200.15.90)
2022-12-24 06:18:41 +0100calco(~calco@47.200.15.90) ()
2022-12-24 06:18:56 +0100calco(~calco@47.200.15.90)
2022-12-24 06:19:04 +0100calco(~calco@47.200.15.90) ()
2022-12-24 06:19:09 +0100calco(~calco@47.200.15.90)
2022-12-24 06:20:10 +0100calco(~calco@47.200.15.90) (Remote host closed the connection)
2022-12-24 06:20:32 +0100calco(~calco@47.200.15.90)
2022-12-24 06:20:49 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-24 06:21:50 +0100 <calco> hello?
2022-12-24 06:22:01 +0100 <calco> does anybody copy
2022-12-24 06:23:40 +0100GrumpyOldGandalf(~GrumpyOld@47.200.15.90)
2022-12-24 06:25:56 +0100wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-12-24 06:26:12 +0100 <pavonia> Hello
2022-12-24 06:26:25 +0100 <GrumpyOldGandalf> Hi
2022-12-24 06:26:27 +0100 <calco> how goes?
2022-12-24 06:27:01 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-24 06:31:10 +0100 <calco> I'm looking for some beginner haskell help, if anyone's willing
2022-12-24 06:36:26 +0100 <pavonia> Go ahead and ask your question
2022-12-24 06:37:29 +0100mbuf(~Shakthi@49.204.138.163)
2022-12-24 06:38:22 +0100 <calco> I'm working on a tic tac toe app for practice, and I want to structure it all using pattern matching and generally improve my functions
2022-12-24 06:39:04 +0100 <calco> I have low cardinality data types, and some function outlines, but I could use some pointers for how to improve the program in general
2022-12-24 06:39:16 +0100 <calco> should I share the file somehow?
2022-12-24 06:40:16 +0100 <pavonia> Yeah, the pastebin at https://paste.tomsmeding.com/ is preferred in this channel
2022-12-24 06:40:52 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 265 seconds)
2022-12-24 06:43:36 +0100jinsun__(~jinsun@user/jinsun)
2022-12-24 06:43:36 +0100jinsun(~jinsun@user/jinsun) (Killed (platinum.libera.chat (Nickname regained by services)))
2022-12-24 06:43:36 +0100jinsun__jinsun
2022-12-24 06:46:36 +0100GrumpyOldGandalf(~GrumpyOld@47.200.15.90) (Quit: Ping timeout (120 seconds))
2022-12-24 06:57:46 +0100lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237)
2022-12-24 06:58:30 +0100lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de)
2022-12-24 06:59:24 +0100joeyh(joeyh@2600:3c03::f03c:91ff:fe73:b0d2) (Quit: ZNC 1.8.2+deb2+b5 - https://znc.in)
2022-12-24 06:59:41 +0100joeyh(~joeyh@kitenet.net)
2022-12-24 07:07:09 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398)
2022-12-24 07:08:43 +0100jargon_(~jargon@174-22-197-118.phnx.qwest.net) (Ping timeout: 248 seconds)
2022-12-24 07:14:40 +0100libertyprime(~libertypr@203.96.203.167) (Ping timeout: 272 seconds)
2022-12-24 07:18:28 +0100 <Inst_> int-e i actually asked a production haskeller about foldb
2022-12-24 07:18:53 +0100 <Inst_> it matches parallelization algorithms he uses, although he always sets the sparks too small
2022-12-24 07:22:30 +0100 <int-e> Hah. When did "MapReduce" stop being a buzzword? Haven't heard it in a while.
2022-12-24 07:25:26 +0100libertyprime(~libertypr@203.96.203.167)
2022-12-24 07:26:44 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
2022-12-24 07:30:04 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 07:31:46 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-24 07:39:18 +0100segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
2022-12-24 07:41:46 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 07:43:55 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 07:43:58 +0100GrumpyOldGandalf(~GrumpyOld@47.200.15.90)
2022-12-24 07:54:54 +0100GrumpyOldGandalf(~GrumpyOld@47.200.15.90) (Quit: Ping timeout (120 seconds))
2022-12-24 08:00:26 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 246 seconds)
2022-12-24 08:02:10 +0100calco(~calco@47.200.15.90) (Ping timeout: 272 seconds)
2022-12-24 08:02:20 +0100kenran(~user@user/kenran)
2022-12-24 08:02:24 +0100ft(~ft@p4fc2a257.dip0.t-ipconnect.de) (Quit: leaving)
2022-12-24 08:03:10 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2022-12-24 08:04:35 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2022-12-24 08:06:20 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-12-24 08:07:00 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 08:30:50 +0100Inst_Inst
2022-12-24 08:31:14 +0100 <Inst> also, @int-e, do you know anything
2022-12-24 08:31:17 +0100 <Inst> about primeswing?
2022-12-24 08:31:23 +0100 <Inst> I'm benchmarking Haskell vs Julia
2022-12-24 08:31:38 +0100 <Inst> I actually got GHCI to beat Julia in implementing a naive fibonacci function
2022-12-24 08:43:50 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-12-24 08:50:11 +0100libertyprime(~libertypr@203.96.203.167) (Ping timeout: 246 seconds)
2022-12-24 09:05:53 +0100libertyprime(~libertypr@203.96.203.167)
2022-12-24 09:19:36 +0100mvk(~mvk@2607:fea8:5ce3:8500::d789) (Quit: Going elsewhere)
2022-12-24 09:24:33 +0100mei(~mei@user/mei)
2022-12-24 09:25:31 +0100risko(~risko@85.195.196.52)
2022-12-24 09:27:57 +0100gmg(~user@user/gehmehgeh)
2022-12-24 09:32:09 +0100libertyprime(~libertypr@203.96.203.167) (Ping timeout: 268 seconds)
2022-12-24 09:32:20 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:1dcc:166b:1177:c3e0) (Remote host closed the connection)
2022-12-24 09:40:49 +0100pwug(~pwug@user/pwug) (Quit: Leaving)
2022-12-24 09:44:25 +0100zeenk(~zeenk@2a02:2f04:a008:a200::7fe)
2022-12-24 09:47:38 +0100ft(~ft@x52716366.dyn.telefonica.de)
2022-12-24 09:51:24 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-24 09:55:31 +0100libertyprime(~libertypr@203.96.203.167)
2022-12-24 10:00:29 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 10:00:40 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-24 10:01:36 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-24 10:02:00 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 10:04:00 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 10:07:53 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2022-12-24 10:10:32 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 10:10:59 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 10:11:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 10:13:48 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 10:13:49 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2022-12-24 10:15:10 +0100libertyprime(~libertypr@203.96.203.167) (Ping timeout: 272 seconds)
2022-12-24 10:20:30 +0100rnat(uid73555@id-73555.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-12-24 10:28:27 +0100alloca(~alloca@user/suppi)
2022-12-24 10:32:45 +0100libertyprime(~libertypr@203.96.203.167)
2022-12-24 10:32:47 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3)
2022-12-24 10:37:41 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 10:37:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3) (Ping timeout: 260 seconds)
2022-12-24 10:43:33 +0100mei(~mei@user/mei) (Quit: mei)
2022-12-24 10:45:55 +0100libertyprime(~libertypr@203.96.203.167) (Ping timeout: 265 seconds)
2022-12-24 10:52:10 +0100Guest34(~Guest34@2600:387:3:801::82)
2022-12-24 10:52:36 +0100Guest34(~Guest34@2600:387:3:801::82) ()
2022-12-24 10:55:17 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
2022-12-24 10:56:06 +0100ft(~ft@x52716366.dyn.telefonica.de) (Quit: leaving)
2022-12-24 11:01:32 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-24 11:05:46 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-12-24 11:11:05 +0100ft(~ft@x52716366.dyn.telefonica.de)
2022-12-24 11:17:52 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 11:19:01 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-24 11:21:40 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-24 11:25:16 +0100zeenk(~zeenk@2a02:2f04:a008:a200::7fe) (Quit: Konversation terminated!)
2022-12-24 11:27:47 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2022-12-24 11:28:13 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-12-24 11:28:50 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-12-24 11:39:37 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 11:48:00 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-12-24 11:52:53 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2022-12-24 11:55:52 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 272 seconds)
2022-12-24 11:58:51 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net)
2022-12-24 12:04:37 +0100talismanick(~talismani@76.133.152.122) (Remote host closed the connection)
2022-12-24 12:05:36 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-12-24 12:09:34 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-12-24 12:13:43 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-24 12:25:17 +0100ft(~ft@x52716366.dyn.telefonica.de) (Quit: leaving)
2022-12-24 12:25:20 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-12-24 12:27:29 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 12:29:08 +0100cheater_(~Username@user/cheater)
2022-12-24 12:30:35 +0100haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2022-12-24 12:32:13 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2022-12-24 12:32:23 +0100cheater_cheater
2022-12-24 12:33:13 +0100haskl(~haskl@user/haskl)
2022-12-24 12:46:38 +0100akegalj(~akegalj@89-172-25-154.adsl.net.t-com.hr)
2022-12-24 12:46:46 +0100OscarZ(~oscarz@95.175.104.82)
2022-12-24 12:52:58 +0100shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-12-24 12:55:46 +0100 <Profpatsch> Is there a newtype instance of UnliftIO that witnesses the correspondence to MonadBaseControl?
2022-12-24 12:55:54 +0100 <Profpatsch> MonadBaseControl IO that is
2022-12-24 12:57:09 +0100__monty__(~toonn@user/toonn)
2022-12-24 13:06:39 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-12-24 13:14:27 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2022-12-24 13:15:34 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2022-12-24 13:20:54 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-12-24 13:31:11 +0100Xeroine(~Xeroine@user/xeroine) (Read error: Connection reset by peer)
2022-12-24 13:32:20 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-24 13:32:58 +0100bjourne(~helloman@94.191.152.62)
2022-12-24 13:36:12 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3)
2022-12-24 13:38:12 +0100bjourne(~helloman@94.191.152.62) (Read error: Connection reset by peer)
2022-12-24 13:39:30 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-12-24 13:40:22 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3) (Ping timeout: 252 seconds)
2022-12-24 13:42:11 +0100dextaa3(~DV@user/dextaa)
2022-12-24 13:43:20 +0100akhesacaro(~caro@212-83-144-58.rev.poneytelecom.eu) (Ping timeout: 260 seconds)
2022-12-24 13:44:00 +0100razetime(~quassel@49.207.230.181) (Remote host closed the connection)
2022-12-24 13:44:10 +0100dextaa(~DV@user/dextaa) (Ping timeout: 272 seconds)
2022-12-24 13:44:10 +0100dextaa3dextaa
2022-12-24 13:50:07 +0100MajorBiscuit(~MajorBisc@31-23-159.netrun.cytanet.com.cy)
2022-12-24 13:58:30 +0100fizbin(~fizbin@user/fizbin) (Remote host closed the connection)
2022-12-24 13:58:50 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 13:58:53 +0100akegalj(~akegalj@89-172-25-154.adsl.net.t-com.hr) (Ping timeout: 246 seconds)
2022-12-24 14:02:38 +0100risko(~risko@85.195.196.52) (Remote host closed the connection)
2022-12-24 14:08:00 +0100OscarZ(~oscarz@95.175.104.82) (Ping timeout: 252 seconds)
2022-12-24 14:11:24 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 272 seconds)
2022-12-24 14:21:58 +0100ft(~ft@87.122.12.144)
2022-12-24 14:30:05 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-24 14:32:28 +0100OscarZ(~oscarz@95.175.104.82)
2022-12-24 14:42:23 +0100calco(~calco@47.200.15.90)
2022-12-24 14:54:14 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-12-24 14:57:27 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-24 14:57:45 +0100unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36)
2022-12-24 15:00:04 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-24 15:05:14 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 272 seconds)
2022-12-24 15:09:34 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 15:10:35 +0100OscarZ(~oscarz@95.175.104.82) (Ping timeout: 260 seconds)
2022-12-24 15:12:32 +0100OscarZ(~oscarz@95.175.104.82)
2022-12-24 15:14:47 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
2022-12-24 15:20:59 +0100unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 248 seconds)
2022-12-24 15:21:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 15:24:31 +0100beefbambi(~beefbambi@183.82.206.239) (Ping timeout: 256 seconds)
2022-12-24 15:25:17 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-24 15:33:17 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-12-24 15:33:43 +0100jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-12-24 15:34:16 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-24 15:35:11 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 15:36:29 +0100fizbin(~fizbin@user/fizbin)
2022-12-24 15:37:21 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-12-24 15:40:16 +0100img(~img@user/img)
2022-12-24 15:41:54 +0100thongpv87(~thongpv87@2001:ee0:54a8:aee0:3ddf:576f:86ec:d738)
2022-12-24 15:41:54 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 15:42:00 +0100mikoto-chan(~mikoto-ch@85-76-108-195-nat.elisa-mobile.fi)
2022-12-24 15:42:16 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 15:45:08 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-12-24 15:45:09 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 15:45:43 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 15:46:59 +0100mauke(~mauke@user/mauke) (Quit: bbl)
2022-12-24 15:46:59 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 15:47:21 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 15:48:07 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-24 15:50:19 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds)
2022-12-24 15:50:20 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 15:51:03 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 15:56:04 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2022-12-24 15:57:12 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-12-24 15:57:40 +0100tremon(~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl)
2022-12-24 15:57:48 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2022-12-24 16:00:58 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-24 16:03:50 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-24 16:09:32 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 16:11:54 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-24 16:12:22 +0100Sciencentistguy9(~sciencent@hacksoc/ordinary-member)
2022-12-24 16:14:04 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-24 16:14:35 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 264 seconds)
2022-12-24 16:14:35 +0100Sciencentistguy9Sciencentistguy
2022-12-24 16:14:36 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2022-12-24 16:39:14 +0100OscarZ(~oscarz@95.175.104.82) (Ping timeout: 265 seconds)
2022-12-24 16:39:36 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds)
2022-12-24 16:40:27 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 16:42:32 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 16:43:15 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 16:43:27 +0100mikoto-chan(~mikoto-ch@85-76-108-195-nat.elisa-mobile.fi) (Ping timeout: 260 seconds)
2022-12-24 16:45:14 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 16:45:18 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-24 16:46:06 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 16:49:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 16:49:06 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 16:49:59 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 16:55:07 +0100tf64(~tf64@5.42.88.91)
2022-12-24 16:55:07 +0100 <tf64> hi
2022-12-24 16:55:08 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-12-24 16:55:20 +0100 <geekosaur> hello
2022-12-24 16:55:35 +0100tf64(~tf64@5.42.88.91) (Client Quit)
2022-12-24 16:56:39 +0100calco(~calco@47.200.15.90) (Ping timeout: 260 seconds)
2022-12-24 16:57:03 +0100calco(~calco@47.200.15.90)
2022-12-24 17:01:13 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-12-24 17:01:33 +0100son0p(~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 260 seconds)
2022-12-24 17:01:53 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-12-24 17:05:54 +0100jargon(~jargon@174-22-197-118.phnx.qwest.net)
2022-12-24 17:06:38 +0100[itchyjunk][itchychristmas]
2022-12-24 17:07:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 17:10:20 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 17:13:20 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
2022-12-24 17:14:16 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-24 17:15:00 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 265 seconds)
2022-12-24 17:18:55 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2022-12-24 17:23:59 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-12-24 17:24:45 +0100Guest6826(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-24 17:27:59 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net)
2022-12-24 17:30:06 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 17:35:11 +0100Bocaneri(~sauvin@user/Sauvin)
2022-12-24 17:35:23 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 248 seconds)
2022-12-24 17:35:35 +0100BocaneriGuest4241
2022-12-24 17:36:03 +0100 <calco> aeyo
2022-12-24 17:36:31 +0100 <calco> hows it kickin' y'all
2022-12-24 17:37:03 +0100 <geekosaur> not sure anyone else is around today 🙂
2022-12-24 17:38:05 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 268 seconds)
2022-12-24 17:38:14 +0100Guest4241Sauvin
2022-12-24 17:38:33 +0100 <geekosaur> I'm not stupid enough to go out in high winds and temperatures colder than my freezer gets
2022-12-24 17:38:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3)
2022-12-24 17:40:28 +0100 <calco> you know it's bad when florida starts getting freeze warnings
2022-12-24 17:40:41 +0100 <calco> might have to put a t-shirt on...
2022-12-24 17:40:50 +0100 <calco> >:(
2022-12-24 17:43:33 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3) (Ping timeout: 260 seconds)
2022-12-24 17:44:24 +0100mbuf(~Shakthi@49.204.138.163) (Quit: Leaving)
2022-12-24 17:45:44 +0100phma(phma@2001:5b0:210d:bff8:d3d6:20cf:c049:77a5) (Read error: Connection reset by peer)
2022-12-24 17:46:38 +0100phma(phma@2001:5b0:211f:688:19e1:3069:d7a4:6bdd)
2022-12-24 17:50:40 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 17:52:24 +0100sayola(~sayola@dslb-002-201-085-035.002.201.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2022-12-24 17:53:27 +0100Guest6826(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2022-12-24 17:56:26 +0100OscarZ(~oscarz@95.175.104.82)
2022-12-24 17:59:07 +0100segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2022-12-24 18:02:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 18:02:24 +0100Guest|58(~Guest|58@18.29.22.0)
2022-12-24 18:02:33 +0100Guest|58(~Guest|58@18.29.22.0) (Client Quit)
2022-12-24 18:12:38 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 18:16:19 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-12-24 18:27:53 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-24 18:28:03 +0100econo(uid147250@user/econo)
2022-12-24 18:28:24 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-12-24 18:31:24 +0100beefbambi(~beefbambi@183.82.206.239) (Read error: Connection reset by peer)
2022-12-24 18:31:40 +0100beefbambi(~beefbambi@183.82.206.239)
2022-12-24 18:32:37 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2022-12-24 18:34:13 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2022-12-24 18:37:02 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-24 18:41:31 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 248 seconds)
2022-12-24 18:44:55 +0100reda(~reda@user/reda) (Quit: Lost terminal)
2022-12-24 18:57:05 +0100cheater_(~Username@user/cheater)
2022-12-24 18:57:59 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2022-12-24 18:58:01 +0100cheater_cheater
2022-12-24 19:00:04 +0100ddellacosta(~ddellacos@static-198-44-136-56.cust.tzulo.com)
2022-12-24 19:04:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 19:06:06 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-24 19:06:06 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-24 19:06:06 +0100wroathe(~wroathe@user/wroathe)
2022-12-24 19:06:21 +0100kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2022-12-24 19:07:38 +0100shapr(~user@68.54.166.125)
2022-12-24 19:07:50 +0100kimiamania(~65804703@user/kimiamania)
2022-12-24 19:08:55 +0100OscarZ(~oscarz@95.175.104.82) (Ping timeout: 256 seconds)
2022-12-24 19:09:45 +0100son0p(~ff@2604:3d08:5b7f:5540::cfe6)
2022-12-24 19:14:53 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-12-24 19:21:35 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
2022-12-24 19:25:05 +0100mikoto-chan(~mikoto-ch@85-76-117-17-nat.elisa-mobile.fi)
2022-12-24 19:27:19 +0100OscarZ(~oscarz@95.175.104.82)
2022-12-24 19:29:42 +0100ddellacosta(~ddellacos@static-198-44-136-56.cust.tzulo.com) (Ping timeout: 268 seconds)
2022-12-24 19:39:02 +0100gdd(~gdd@2001:470:1f13:187:f1d9:2c39:d075:f0d3) (Ping timeout: 265 seconds)
2022-12-24 19:39:44 +0100gdd(~gdd@2001:470:1f13:187:3362:f9dd:3b29:2ee1)
2022-12-24 19:40:16 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-24 19:41:57 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 19:47:15 +0100bjourne(~helloman@94.191.152.96)
2022-12-24 19:48:42 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 265 seconds)
2022-12-24 19:49:22 +0100mikoto-chan(~mikoto-ch@85-76-117-17-nat.elisa-mobile.fi) (Ping timeout: 252 seconds)
2022-12-24 19:50:28 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-12-24 19:57:49 +0100famubu(~famubu@user/famubu)
2022-12-24 19:58:21 +0100 <famubu> Hi. I was doing `1=2` in ghci and it gave no error. What gives? I obviously am missing something basic.
2022-12-24 19:59:13 +0100 <geekosaur> it's just a lazy pattern match, that can never be seen because there's no binding that could be used to force it
2022-12-24 20:00:22 +0100 <geekosaur> so it just sits there taking up memory until it gets garbage collected because it's unreachable
2022-12-24 20:00:23 +0100 <hpc> the googleable term is "irrefutable pattern"
2022-12-24 20:00:38 +0100 <hpc> > let ~(Just x) = Nothing in x
2022-12-24 20:00:39 +0100 <lambdabot> *Exception: <interactive>:3:5-23: Non-exhaustive patterns in Just x
2022-12-24 20:00:48 +0100 <hpc> ^ what happens when one gets forced
2022-12-24 20:01:45 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 265 seconds)
2022-12-24 20:03:33 +0100 <famubu> Oh.. Thanks!
2022-12-24 20:03:49 +0100 <famubu> The `~` is to force eval, right?
2022-12-24 20:04:23 +0100 <geekosaur> the opposite. `let` bindings, unlike top level beindings, are strict; the ~ is needed to make it lazy
2022-12-24 20:04:35 +0100 <geekosaur> ]then attempting to access `x` forces the lazy pattern
2022-12-24 20:04:54 +0100 <hpc> a strict pattern match looks like
2022-12-24 20:05:03 +0100 <hpc> > let !(Just x) = Nothing in "this"
2022-12-24 20:05:05 +0100 <lambdabot> "*Exception: <interactive>:3:5-23: Non-exhaustive patterns in Just x
2022-12-24 20:05:19 +0100 <hpc> notice x isn't used, but it still dies
2022-12-24 20:05:44 +0100 <geekosaur> > let ~(Just x) = Nothing in "this" -- this, on the other hand, works
2022-12-24 20:05:46 +0100 <lambdabot> "this"
2022-12-24 20:06:12 +0100 <hpc> > let jx@(Just x) = Just 5 in (x, jx) -- and just for completeness, at-patterns give you the whole thing's name at the same time you match on it
2022-12-24 20:06:13 +0100 <lambdabot> (5,Just 5)
2022-12-24 20:07:30 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-12-24 20:15:50 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 20:16:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 20:20:37 +0100Cale_(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-12-24 20:21:03 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
2022-12-24 20:22:49 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
2022-12-24 20:27:41 +0100Cale_Cale
2022-12-24 20:29:12 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 20:32:09 +0100iqubic(~avi@2601:602:9502:c70:4602:12a1:6697:a25f) (Read error: Connection reset by peer)
2022-12-24 20:33:26 +0100iqubic(~avi@2601:602:9502:c70:4602:12a1:6697:a25f)
2022-12-24 20:38:46 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-12-24 20:39:38 +0100segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds)
2022-12-24 20:42:13 +0100 <carbolymer> I think I'm having a brain fart with lenses, why this does not work: https://c-v.sh/mainstreamcotquean.txt ?
2022-12-24 20:42:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5cf9:c33d:ed9e:f2a3)
2022-12-24 20:45:17 +0100 <carbolymer> ah yes, ghci couldn't guess the type of `[1]`
2022-12-24 20:45:23 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 20:45:56 +0100pavonia(~user@user/siracusa)
2022-12-24 20:49:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 20:50:09 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-24 20:51:27 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-24 20:51:46 +0100mikoto-chan(~mikoto-ch@85-76-51-255-nat.elisa-mobile.fi)
2022-12-24 20:52:10 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-24 20:52:27 +0100Sgeo(~Sgeo@user/sgeo)
2022-12-24 20:56:44 +0100Neuromancer(~Neuromanc@user/neuromancer) (Remote host closed the connection)
2022-12-24 21:05:44 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-24 21:09:02 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-24 21:09:41 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 21:14:28 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-24 21:17:38 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 21:23:20 +0100igghibu(~igghibu@37.120.201.91)
2022-12-24 21:24:24 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
2022-12-24 21:27:43 +0100famubu(~famubu@user/famubu) (Ping timeout: 252 seconds)
2022-12-24 21:36:45 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 21:40:53 +0100mikoto-chan(~mikoto-ch@85-76-51-255-nat.elisa-mobile.fi) (Ping timeout: 246 seconds)
2022-12-24 21:44:27 +0100ddellacosta(~ddellacos@89.45.224.116)
2022-12-24 21:51:13 +0100cheater_(~Username@user/cheater)
2022-12-24 21:54:22 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-24 21:54:28 +0100cheater_cheater
2022-12-24 21:57:53 +0100ddellacosta(~ddellacos@89.45.224.116) (Ping timeout: 260 seconds)
2022-12-24 22:00:10 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 265 seconds)
2022-12-24 22:09:19 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 260 seconds)
2022-12-24 22:10:13 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2022-12-24 22:12:28 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2022-12-24 22:13:06 +0100freeside(~mengwong@103.252.202.159)
2022-12-24 22:13:54 +0100shriekingnoise(~shrieking@186.137.167.202)
2022-12-24 22:17:19 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-24 22:19:13 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-24 22:31:46 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net) (Quit: Leaving)
2022-12-24 22:38:13 +0100mvk(~mvk@2607:fea8:5ce3:8500::3ed5)
2022-12-24 22:50:13 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-24 22:50:13 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-24 22:50:13 +0100wroathe(~wroathe@user/wroathe)
2022-12-24 22:57:50 +0100hubert(uid582073@id-582073.helmsley.irccloud.com)
2022-12-24 23:01:50 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2022-12-24 23:07:20 +0100 <hololeap> @hackage lifted-base -- Profpatsch: you might want this?
2022-12-24 23:07:20 +0100 <lambdabot> https://hackage.haskell.org/package/lifted-base -- Profpatsch: you might want this?
2022-12-24 23:08:49 +0100igghibu(~igghibu@37.120.201.91) (Quit: igghibu)
2022-12-24 23:08:58 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-12-24 23:10:14 +0100 <hololeap> not that it's what you're asking for, but I guessed you're looking for some of the extra stuff in unliftio but for MonadBaseControl
2022-12-24 23:10:58 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-24 23:12:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-24 23:25:04 +0100acidjnk(~acidjnk@p200300d6e7137a38ed09692e24fc2d3d.dip0.t-ipconnect.de)
2022-12-24 23:43:46 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-24 23:44:39 +0100reda(~reda@user/reda)
2022-12-24 23:45:21 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-12-24 23:57:14 +0100 <Profpatsch> hololeap: hrm yeah, postgresql-simple in my case
2022-12-24 23:57:24 +0100 <Profpatsch> I’m really annoyed at this mtl stuff
2022-12-24 23:57:39 +0100 <Profpatsch> I feel like it’s one of the super unergonomic parts of Haskell