Home liberachat/#haskell: Logs Calendar

Logs on 2024-11-06 (liberachat/#haskell)

00:01:15 notzmv joins (~daniel@user/notzmv)
00:08:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:13:00 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
00:13:22 troojg joins (~troojg@user/troojg)
00:13:28 Versality joins (~Versality@user/Versality)
00:13:54 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 260 seconds)
00:21:39 euphores joins (~SASL_euph@user/euphores)
00:22:51 <jackdk> Standards pricing is just obscene, TBQH. There has to be a way to compensate experts for their work without certain companies getting to overcharge for ancient documents forever.
00:23:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:28:06 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
00:28:22 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
00:31:36 × xff0x quits (~xff0x@2405:6580:b080:900:fc69:912f:320c:e811) (Ping timeout: 272 seconds)
00:32:02 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
00:34:09 <constxd> mauke: my understanding is wg14 intentionally makes drafts public that are as close as possible to the final revision to circumvent the ISO pricing absurdity
00:34:38 <constxd> i was reading somewhere that they are like grandfathered in, most ISO standards have tighter restrictions on what can be released as a draft
00:34:51 <constxd> but basically there is no reason to buy the C standard
00:39:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:39:21 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
00:42:38 × sprotte24_ quits (~sprotte24@p200300d16f3f2c00b0d50a9d74dbbab9.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
00:43:47 × harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
00:44:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
00:46:34 × Versality quits (~Versality@user/Versality) (Remote host closed the connection)
00:47:33 Versality joins (~Versality@84.237.180.62)
00:47:33 × Versality quits (~Versality@84.237.180.62) (Changing host)
00:47:33 Versality joins (~Versality@user/Versality)
00:48:18 <haskellbridge> <zwro> is there a way to save the current ghci session?
00:49:36 × Versality quits (~Versality@user/Versality) (Remote host closed the connection)
00:53:15 Versality joins (~Versality@84.237.180.62)
00:53:15 × Versality quits (~Versality@84.237.180.62) (Changing host)
00:53:15 Versality joins (~Versality@user/Versality)
00:55:16 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:58:32 <monochrom> I am not even convinced that the authors of the standards are compensated at all.
00:59:21 <monochrom> Right? I'm taking inspiration from the way academic journals work. The journal publishers get all the money. The editors and the peer reviewers do it all for free.
00:59:59 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
01:00:03 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
01:01:40 <monochrom> To the point even Knuth is sufficiently fed up to write an article to complain and advocate everyone to jump ship and start free online journals.
01:03:28 <monochrom> zwro: There is no plan to follow Python absurdity and evolve GHCi into its own IDE.
01:03:31 <constxd> yes i think the actual members of the ISO working groups are essentially volunteers
01:04:14 <constxd> what do u mean python absurdity? ipython?
01:05:35 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 252 seconds)
01:06:35 × Versality quits (~Versality@user/Versality) (Remote host closed the connection)
01:07:59 <haskellbridge> <zwro> monochrom: (: https://nbviewer.org/github/gibiansky/IHaskell/blob/master/notebooks/IHaskell.ipynb
01:08:19 × Guest7 quits (~Guest7@137.79.192.219) (Ping timeout: 256 seconds)
01:09:57 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
01:10:16 <zero> anyways i just want something like node's repl where it basically saves the session history to a file. i guess i can go edit .ghci_history manually...
01:10:50 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:11:22 <haskellbridge> <sm> zero: there has been a blog post or two about a way to save/restore ghci state, by chris done I think
01:12:18 <haskellbridge> <sm> https://chrisdone.com/posts/ghci-reload maybe
01:12:57 <monochrom> constxd: This: https://discourse.haskell.org/t/multiline-interpreter-with-editing-of-previous-lines/10551
01:13:29 <monochrom> tl;dr the python REPL is now its own editor.
01:14:29 <monochrom> This is different from iPython and iHaskell. I have no quarrel with them.
01:14:37 <constxd> ah
01:15:26 <monochrom> Instead, since iPython and iHaskell exist, there is no point duplicating the effort in the basic REPL.
01:15:41 <zero> ooh is this hot reloading?
01:15:56 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
01:16:33 <haskellbridge> <sm> try it out, let us know ?
01:16:53 <haskellbridge> <sm> +how it goes
01:18:15 <constxd> wouldn't be the end of the world imo if it's "for free" by virtue of being built into libreadline or something
01:18:35 <constxd> but yeah i wouldn't want to implement that and maintain it as a part of a REPL
01:18:36 <monochrom> In the particular case of GHCi, given that dev time is a zero-sum game, when (not if, it's a certainty) the devs have to choose between improving GHCi's debugger and adding an editor to GHCi, why would anyone want the latter? Isn't debugger a much higher priority? Editors already exist, plentiifully.
01:19:35 <haskellbridge> <sm> dev time doesn't always have to be zero sum in FOSS.. motivated new devs / funders sometimes show up
01:19:53 <haskellbridge> <sm> just saying
01:21:59 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:22:07 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
01:23:51 <zero> foreign-store is hacky. i would be more interested in something like https://hackage.haskell.org/package/rapid-0.1.4/docs/Rapid.html
01:24:50 <zero> which wraps it "nicely"
01:24:54 <haskellbridge> <sm> I could imagine integrating an already-maintained TUI editor (yi ?) could also be the way to improve GHCI's debugger, because a more visual UI is what it needs
01:25:15 <haskellbridge> <sm> or anyway, _a_ way
01:25:50 × postcerebral quits (~postcereb@user/postcerebral) (Quit: WeeChat 4.4.2)
01:25:51 <monochrom> In practice, that doesn't happen often enough in the Haskell community. Look at how GHCi debugger has not received any further work, and how HLS still doesn't have any debugger. Even the GHCup effort is wearing thin and the guy is complaining: https://discourse.haskell.org/t/priorities-for-upcoming-ghc-releases/9605/60
01:26:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:26:26 <haskellbridge> <sm> and sometimes a monolithic just works out of box tool is the only thing that'll get used
01:26:29 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
01:26:43 <haskellbridge> <sm> I promise you this one would
01:26:47 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:28:12 <haskellbridge> <sm> I have got the VS Code debugger extension working once, and it was so fragile and little known that pretty much no-one else will
01:29:18 <haskellbridge> <sm> a built in cheaper just works ui could help build the foundation
01:30:36 <monochrom> https://ro-che.info/ccc/26
01:32:19 <haskellbridge> <sm> I think in this cartoon, something is missing from the company's offering. We just don't know what it is :)
01:33:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:33:11 <monochrom> IIRC the company is precisely FPComplete.
01:34:23 <haskellbridge> <sm> Ok. That IDE was good as I recall ! Lots of people had a beef with FP Complete so it had an uphill path.
01:34:26 <haskellbridge> <sm> Not a debugger thought
01:34:51 <haskellbridge> <sm> * UI though, that's what I'm thinking of particularly
01:35:30 <monochrom> Debugger is extremely hard. I don't really complain about lacking it.
01:36:00 <monochrom> OTOH, a nice IDE that lacks debugging feels like lacking a soul.
01:36:19 <haskellbridge> <sm> It doesn't seem _that_ hard. GHCI already has the core of it, and https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode is an example of a UI on top
01:38:45 <haskellbridge> <sm> someone could whip that up in brick
01:39:41 <monochrom> Oh it's an extreme case of the 80-20 rule. Or at this extreme it's like a 99.99-0.01 rule. Hat, Buddha, GHCi, and that plug in prove that prototyping a Haskell debugger is easy, sure, and at the same time by their incompleteness and even bitrot, also prove that actually covering all of Haskell is way too annoying for anyone to finish it.
01:39:52 <haskellbridge> <sm> wait, didn't I see that already...
01:41:14 <haskellbridge> <sm> monochrom: I think those things prove that packaging and integration are also necessary.. so all of those are dead.. except the debugger built in to GHCI, which works perfectly (or anyway, works)
01:41:26 <monochrom> The cartoon? Yes I always link to it to rub it into people's faces.
01:41:54 <haskellbridge> <sm> I did see a more recent brick based debugger ui. I'd find it, if hackage wasn't down just now
01:42:18 <haskellbridge> <zwro> what can an IDE provide that a language server can't?
01:42:31 <monochrom> A face? :)
01:42:58 <haskellbridge> <zwro> I don't think people like changing editors just for the language
01:43:04 <monochrom> I talked about lacking a soul, but when you do have a soul, it needs a body too...
01:43:07 <haskellbridge> <sm> a language server is a small internal component that lets IDEs communicate with the language tools
01:44:14 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:44:18 <haskellbridge> <zwro> sm: the "plus a capable editor" was implied in my question
01:44:57 <monochrom> Right exactly. I wouldn't change editors just for the language. So I wouldn't need a "save" button in the language's REPL either. My favourite editor already has one.
01:46:10 <haskellbridge> <zwro> how do you save a ghci session with your editor?
01:47:16 <monochrom> By creating a "play.hs" file that has all the experimental expressions I want to try out in a session.
01:47:49 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
01:48:09 <monochrom> Not currently done but available: I'm in emacs and my ghci session is also in emacs so in principle I would save that buffer content...
01:48:19 <haskellbridge> <sm> There's quite a few https://hackage.haskell.org/packages/search?terms=debug things, though most of them are not traditional debuggers allowing interactive stepping. https://hackage.haskell.org/package/ghc-debug-brick is the recent one I was thinking of.
01:48:36 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:48:38 <haskellbridge> <zwro> at that point you might aswell use ghcid
01:49:04 <haskellbridge> <sm> zwro: yes rapid is a good find, that's the newer thing built on top of foreign store
01:49:17 <Leary> zwro: Yes, so use ghcid. :)
01:49:29 <haskellbridge> <sm> * foreign-store
01:49:29 × tabaqui quits (~root@91.73.194.130) (Ping timeout: 255 seconds)
01:50:26 <haskellbridge> <zwro> Leary: i usually do :) that's why i missed a :save command when i happened to use ghci for something quick on my phone
01:50:55 <monochrom> Oh, phone. Then I sympathize.
01:51:08 <monochrom> But you should use emacs on your phone instead. >:)
01:51:18 <monochrom> "go big or go home"
01:51:25 <haskellbridge> <zwro> i'm using vim on my phone >>)
01:51:30 × ystael quits (~ystael@user/ystael) (Ping timeout: 276 seconds)
01:51:43 <monochrom> I imagine vim should have something similar?
01:52:15 <monochrom> I mean why would there be a war (or why it hasn't ended already) if they were not on par.
01:52:31 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
01:52:41 <haskellbridge> <zwro> similar to what?
01:53:11 <monochrom> some haskell plugin for vim so you can also have a ghci session in a vim window/buffer.
01:53:30 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
01:53:39 Versality joins (~Versality@user/Versality)
01:53:50 <monochrom> If that doesn't exist, come join us in emacs! >:)
01:53:58 <haskellbridge> <zwro> oh you don't need a plugin. you can just run ghcid directly in a vim buffer :)
01:54:01 <haskellbridge> <hellwolf> I really don't like this "The type synonym ‘YulP’ should have 2 arguments, but has been given 1"
01:54:02 <haskellbridge> Is there a good general workaround?
01:54:08 <monochrom> OK that. :)
01:54:26 <haskellbridge> <zwro> but ghcid is what's missing on my phone
01:54:48 <monochrom> General? How general can you take it? The most general, IMO anyway, is to use newtype altogether.
01:55:20 <constxd> u know how the zsh and bash shells have a key binding called C-x C-e ?
01:55:44 <constxd> that is trivial enough to add into something like GHCi and it gives u perhaps something useful
01:55:53 <constxd> just an idea
01:56:53 × Versality quits (~Versality@user/Versality) (Remote host closed the connection)
01:57:05 <haskellbridge> <zwro> yes!
01:57:12 <haskellbridge> <zwro> that would be neat
01:57:15 Versality joins (~Versality@user/Versality)
01:57:50 <monochrom> TIL bash C-x C-e edit-and-execute-command.
01:58:17 <monochrom> Thanks constxd. I had always opened up emacs and draft my command when I needed that.
01:58:20 <probie> hellwolf: Perhaps https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/liberal_type_synonyms.html can do what you want, but it is still rather restricted
01:58:22 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
01:58:35 <haskellbridge> <zwro> just like pressing v inside less opens your $EDITOR
01:58:41 × flounders quits (~flounders@2607:fb91:f6f:855:576:16c:1a7a:3eb2) (Ping timeout: 248 seconds)
01:59:20 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
01:59:35 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:00:28 flounders joins (~flounders@173.246.200.74)
02:00:39 <monochrom> Yeah edit-and-execute would be great, both easy and valuable.
02:02:01 <haskellbridge> <zwro> also if you have vi-style bindings in your shell with `set -o vi`, pressing v while in normal mode also achieves this
02:02:10 monochrom can now use C-x C-e to take time to craft docker commands that have 20 options...
02:03:20 <monochrom> I can also tell my students about this. It will help in the unix course.
02:04:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
02:05:07 × spew quits (~spew@201.141.99.170) (Quit: spew)
02:06:47 <monochrom> Is it actually provided by the underlying readline? Because once upon a time, GHCi used readline as opposed to today's haskeline...
02:07:37 <monochrom> Would be funny if GHCi missed that opportunity...
02:08:36 <haskellbridge> <zwro> ghci used readline? how i miss vim bindings in ghci
02:10:06 <haskellbridge> <zwro> oh wait, does haskeline support it?
02:10:24 <monochrom> I think no. I just tried.
02:10:46 <Leary> zwro: echo 'editMode: Vi' > ~/.haskeline
02:11:10 <monochrom> Oh just vim bindings. Then yeah.
02:12:15 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
02:13:11 notzmv joins (~daniel@user/notzmv)
02:14:21 <haskellbridge> <zwro> Leary: tyvm
02:14:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:17:37 <haskellbridge> <sm> Ah! finally. https://hackage.haskell.org/package/ghcitui is the one I was thinking of.
02:17:56 <haskellbridge> <sm> needs more users
02:19:03 <geekosaur> ghci originally used readline, but that caused build issues on Windows (not there) and Macs (Apple ships a fake "readline") so someone wrote haskeline
02:19:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:26:31 <monochrom> Hrm I should try that.
02:28:52 <monochrom> Hrm it wants containers >= 0.6.8? That's neeewwww....
02:30:21 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:34:48 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:40:32 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
02:41:22 <haskellbridge> <sm> stack notes added at https://github.com/CrystalSplitter/ghcitui/issues/30
02:44:57 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
02:50:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:55:12 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
03:02:02 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:08:47 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:10:23 × comonad quits (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
03:19:18 tyzef joins (~tyzef@user/tyzef)
03:19:19 × tyzef quits (~tyzef@user/tyzef) (Max SendQ exceeded)
03:20:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:24:32 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
03:28:47 alp joins (~alp@2001:861:e3d6:8f80:fdaa:b613:f8c7:f917)
03:28:47 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
03:30:02 × abenson quits (~user@109.255.240.83) (Remote host closed the connection)
03:30:11 × alp quits (~alp@2001:861:e3d6:8f80:fdaa:b613:f8c7:f917) (Remote host closed the connection)
03:30:29 alp joins (~alp@2001:861:e3d6:8f80:a9c3:b9df:2274:a98b)
03:31:53 × alp quits (~alp@2001:861:e3d6:8f80:a9c3:b9df:2274:a98b) (Remote host closed the connection)
03:32:12 alp joins (~alp@2001:861:e3d6:8f80:ffbd:ecef:4bf1:f51f)
03:32:54 × GoldsteinQ quits (~goldstein@goldstein.rs) (Ping timeout: 276 seconds)
03:33:54 alp_ joins (~alp@2001:861:e3d6:8f80:f3e5:33f2:cda6:f534)
03:34:30 gentauro joins (~gentauro@user/gentauro)
03:35:27 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:35:37 alp__ joins (~alp@2001:861:e3d6:8f80:9d69:6c3d:dedb:c846)
03:35:38 <haskellbridge> <sm> e
03:37:48 × alp quits (~alp@2001:861:e3d6:8f80:ffbd:ecef:4bf1:f51f) (Ping timeout: 272 seconds)
03:39:04 × alp_ quits (~alp@2001:861:e3d6:8f80:f3e5:33f2:cda6:f534) (Ping timeout: 272 seconds)
03:40:14 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
03:40:22 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
03:40:36 × alp__ quits (~alp@2001:861:e3d6:8f80:9d69:6c3d:dedb:c846) (Ping timeout: 246 seconds)
03:45:04 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
03:49:56 GoldsteinQ joins (~goldstein@goldstein.rs)
03:50:51 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:51:41 × td_ quits (~td@i53870915.versanet.de) (Ping timeout: 252 seconds)
03:53:27 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
03:53:39 td_ joins (~td@i53870906.versanet.de)
03:55:29 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:06:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:10:46 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:18:03 × califax quits (~califax@user/califx) (Remote host closed the connection)
04:18:03 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
04:18:18 califax joins (~califax@user/califx)
04:18:33 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
04:20:24 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:21:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:23:13 × Square2 quits (~Square4@user/square) (Ping timeout: 248 seconds)
04:26:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:36:03 × dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
04:36:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:40:38 dolio joins (~dolio@130.44.140.168)
04:41:37 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
04:43:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
04:46:15 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
04:49:16 × immae quits (~immae@2a01:4f8:141:53e7::) (Ping timeout: 244 seconds)
04:49:36 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
04:50:00 × haveo quits (~weechat@pacamara.iuwt.fr) (Ping timeout: 272 seconds)
04:50:16 chexum joins (~quassel@gateway/tor-sasl/chexum)
04:54:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:58:59 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
05:01:55 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
05:02:10 haveo joins (~weechat@pacamara.iuwt.fr)
05:02:42 immae joins (~immae@2a01:4f8:141:53e7::)
05:04:06 tyzef joins (~tyzef@user/tyzef)
05:09:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:14:26 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
05:25:04 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:29:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
05:32:34 sroso joins (~sroso@user/SrOso)
05:35:41 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
05:37:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:40:14 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
05:41:41 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
05:42:39 fired joins (LA@2600:3c00::f03c:92ff:fee3:aace)
05:46:59 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:48:22 comonad joins (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de)
05:52:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:56:43 × troojg quits (~troojg@user/troojg) (Ping timeout: 252 seconds)
05:57:43 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
06:08:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:12:30 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:19:57 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
06:23:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:23:35 × tyzef quits (~tyzef@user/tyzef) (Quit: It was nice to meet you o/)
06:27:42 CoolMa7 joins (~CoolMa7@95.91.137.87)
06:28:02 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
06:31:00 × down200 quits (~down200@shell.lug.mtu.edu) (Ping timeout: 276 seconds)
06:31:43 × ft quits (~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving)
06:32:17 × CoolMa7 quits (~CoolMa7@95.91.137.87) (Ping timeout: 252 seconds)
06:32:18 down200 joins (~down200@shell.lug.mtu.edu)
06:38:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:41:50 michalz joins (~michalz@185.246.207.201)
06:42:06 hgolden_ joins (~hgolden@204.152.216.122)
06:43:21 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
06:44:30 × hgolden quits (~hgolden@static-198-44-129-51.cust.tzulo.com) (Ping timeout: 252 seconds)
06:47:47 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
06:50:37 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Remote host closed the connection)
06:51:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:52:41 acidjnk joins (~acidjnk@p200300d6e7283f63c008ff7276864804.dip0.t-ipconnect.de)
06:53:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:58:31 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
06:59:16 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
07:03:01 tyzef joins (~tyzef@user/tyzef)
07:03:01 × tyzef quits (~tyzef@user/tyzef) (Max SendQ exceeded)
07:03:36 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
07:04:12 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
07:06:00 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
07:09:00 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:09:05 ubert joins (~Thunderbi@77.119.163.56.wireless.dyn.drei.com)
07:09:06 libertyprime joins (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz)
07:14:06 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
07:16:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
07:18:21 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
07:23:49 × libertyprime quits (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
07:26:37 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:27:33 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:32:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:33:01 libertyprime joins (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz)
07:34:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
07:35:00 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
07:35:04 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
07:35:19 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Client Quit)
07:39:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:41:27 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
07:41:44 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
07:44:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
07:46:42 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
07:46:51 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
07:47:25 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:47:46 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
07:48:40 gorignak joins (~gorignak@user/gorignak)
07:48:47 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
07:49:39 × libertyprime quits (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) (Ping timeout: 252 seconds)
07:50:44 Lord_of_Life_ is now known as Lord_of_Life
07:52:11 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Quit: My Mac has gone to sleep. ZZZzzz…)
07:53:37 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:55:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:00:02 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
08:00:40 caconym joins (~caconym@user/caconym)
08:03:06 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:11:15 JuanDaugherty joins (~juan@user/JuanDaugherty)
08:11:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:11:45 × _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection)
08:12:34 _d0t joins (~{-d0t-}@user/-d0t-/x-7915216)
08:16:34 misterfish joins (~misterfis@84.53.85.146)
08:16:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
08:21:06 × ubert quits (~Thunderbi@77.119.163.56.wireless.dyn.drei.com) (Ping timeout: 244 seconds)
08:33:39 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 252 seconds)
08:34:29 libertyprime joins (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz)
08:39:44 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
08:41:31 sprotte24 joins (~sprotte24@p200300d16f45f600d44fabb86373a0dc.dip0.t-ipconnect.de)
08:42:12 × libertyprime quits (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) (Ping timeout: 252 seconds)
08:51:31 longlongdouble joins (~longlongd@2405:201:5c16:135:1989:242:cab1:419a)
08:52:38 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
08:59:01 merijn joins (~merijn@77.242.116.146)
09:00:21 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
09:07:35 supercode joins (~supercode@user/supercode)
09:10:51 × sprotte24 quits (~sprotte24@p200300d16f45f600d44fabb86373a0dc.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
09:16:30 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:17:38 ljdarj joins (~Thunderbi@user/ljdarj)
09:22:09 lxsameer joins (~lxsameer@Serene/lxsameer)
09:27:22 × supercode quits (~supercode@user/supercode) (Quit: Client closed)
09:33:45 libertyprime joins (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz)
09:45:34 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds)
09:45:35 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 255 seconds)
09:47:28 kritzefitz joins (~kritzefit@debian/kritzefitz)
09:48:32 zero is now known as yin
09:48:50 <yin> ugh. ghcitui uses monad transformers
09:54:01 ubert joins (~Thunderbi@77.119.163.56.wireless.dyn.drei.com)
09:56:38 chele joins (~chele@user/chele)
09:57:42 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 276 seconds)
09:57:53 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
09:58:24 rvalue joins (~rvalue@user/rvalue)
09:58:56 misterfish joins (~misterfis@84.53.85.146)
10:02:28 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds)
10:05:08 <institor> yin: so?
10:08:59 merijn joins (~merijn@77.242.116.146)
10:16:51 <yin> i'm allergic to mtl
10:17:56 <yin> seems like an unnecessary opinionated dependence
10:19:41 <Leary> transformers isn't mtl
10:22:56 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
10:23:58 <institor> yin: how do you layer effects then
10:24:18 <institor> yin: e.g. ExceptT e IO a, for IO actions that might fail
10:24:40 <institor> i suppose you could use one of those fancy effects libraries, but that seems even more opinionated
10:25:59 <Leary> Bad example; any IO action might fail, and its built in exception system is recommended over ExceptT.
10:26:46 <institor> well suppose i'm running HTTP requests
10:26:52 <institor> and i could get Right with some payload
10:26:57 <institor> or Left in the event of a 4xx or 5xx error
10:27:10 <institor> it's really the Either after runExceptT that I care about
10:33:53 <yin> institor: you don't *need* transformers but i get that they are useful. in any case, i defend that their use should be internal and not exposed to the user of your library
10:35:54 <yin> see yesod, servant, warp...
10:38:15 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
10:38:41 × longlongdouble quits (~longlongd@2405:201:5c16:135:1989:242:cab1:419a) (Ping timeout: 248 seconds)
10:41:33 <yin> Leary: right, i should have said transformers and not mtl in particular
10:41:56 l-Shane-l joins (~l-Shane-l@user/l-Shane-l)
10:41:57 × landonf quits (landonf@mac68k.info) (Ping timeout: 248 seconds)
10:42:08 landonf joins (landonf@mac68k.info)
10:42:39 notzmv joins (~daniel@user/notzmv)
10:42:58 <Leary> Weird, because unlike transformers, your objections might actually apply to mtl. The former is not at all an opinionated dependency.
10:42:59 merijn joins (~merijn@77.242.116.146)
10:43:10 <institor> yin: those libraries are all by the same author
10:45:55 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
10:47:15 <Leary> Also, ghcitui is first and foremost an executable; the library component it exposes is secondary, so the transformer usage pretty much is internal.
10:47:46 <yin> Leary: good point
10:48:55 xff0x joins (~xff0x@2405:6580:b080:900:3e16:56e8:fa8f:748e)
10:59:01 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
11:03:17 longlongdouble joins (~longlongd@117.234.233.245)
11:05:17 <mauke> is hackage ok?
11:09:35 <institor> it's been slow
11:09:42 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
11:10:20 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
11:14:05 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
11:15:37 <yin> yeah i've been getting 502s
11:19:03 <tomsmeding> it's being investigated in #hackage-infrastructure
11:19:06 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
11:19:07 × libertyprime quits (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) (Remote host closed the connection)
11:20:45 <tomsmeding> er, #haskell-infrastructure
11:24:36 tyzef joins (~tyzef@user/tyzef)
11:31:54 merijn joins (~merijn@77.242.116.146)
11:37:38 BolzmannPain joins (~BolzmannP@user/BolzmannPain)
11:39:08 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
11:40:19 Everything joins (~Everythin@195.138.86.118)
11:42:41 merijn joins (~merijn@77.242.116.146)
11:43:05 × l-Shane-l quits (~l-Shane-l@user/l-Shane-l) (Quit: Client closed)
11:47:51 Pozyomka joins (~pyon@user/pyon)
11:48:13 mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com)
11:48:31 × tyzef quits (~tyzef@user/tyzef) (Quit: WeeChat 3.8)
11:52:08 <absence> Is anyone familiar with the internals of the effectful library and know what the parameters to the Effect kind represent? type Effect = (Type -> Type) -> Type -> Type
11:58:29 × sroso quits (~sroso@user/SrOso) (Quit: Leaving :))
12:02:37 <absence> Oh right, it's the monad and return value. Effect m a
12:04:01 × mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Quit: Lost terminal)
12:09:21 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
12:10:02 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 255 seconds)
12:10:02 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
12:10:27 motherfsck joins (~motherfsc@user/motherfsck)
12:12:12 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 252 seconds)
12:17:04 × ham2 quits (~ham@user/ham) (Ping timeout: 260 seconds)
12:21:14 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
12:22:16 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
12:22:43 × Pozyomka quits (~pyon@user/pyon) (Quit: brb)
12:24:36 Pozyomka joins (~pyon@user/pyon)
12:27:25 × longlongdouble quits (~longlongd@117.234.233.245) (Remote host closed the connection)
12:29:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:29:23 × byorgey quits (~byorgey@user/byorgey) (Ping timeout: 255 seconds)
12:29:30 byorgey joins (~byorgey@user/byorgey)
12:30:19 CoolMa7 joins (~CoolMa7@128.90.141.20)
12:35:38 CoolMa7_ joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
12:36:26 ham2 joins (~ham@user/ham)
12:36:45 × CoolMa7 quits (~CoolMa7@128.90.141.20) (Ping timeout: 252 seconds)
12:46:01 <yin> do we have to use text in order to import Text?
12:46:54 <yin> Data.Text
12:47:11 <yin> i ask this because base has stuff like Text.Read
12:48:15 <Rembane> yin: Nope, you can use read from Text.Read without importing Text.
12:54:03 <tomsmeding> yin: module namespace are orthogonal to packages; `base` having `Text.Read` doesn't have anything to do with `text`
12:54:07 <tomsmeding> but yes, Data.Text is in `text`
12:56:17 × Everything quits (~Everythin@195.138.86.118) (Ping timeout: 248 seconds)
12:58:16 Everything joins (~Everythin@178-133-20-16.mobile.vf-ua.net)
13:06:26 <merijn> Also, notably, Text.Read doesn't actually use Text :p
13:06:42 × BolzmannPain quits (~BolzmannP@user/BolzmannPain) (Quit: Client closed)
13:09:09 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
13:10:40 BolzmannPain joins (~BolzmannP@user/BolzmannPain)
13:15:00 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
13:16:09 × CoolMa7_ quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Quit: My Mac has gone to sleep. ZZZzzz…)
13:17:31 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection)
13:17:45 <yin> merijn: yeah i was confused
13:18:28 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
13:18:31 <yin> hackage being down didn't help
13:23:06 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 276 seconds)
13:24:59 × BolzmannPain quits (~BolzmannP@user/BolzmannPain) (Ping timeout: 256 seconds)
13:27:46 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
13:27:50 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit)
13:28:13 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
13:31:36 Otabek joins (~Otabek@213.230.93.9)
13:32:13 <Otabek> hey there
13:32:55 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
13:41:37 × Versality quits (~Versality@user/Versality) (Remote host closed the connection)
13:41:51 Versality joins (~Versality@user/Versality)
13:42:06 × Otabek quits (~Otabek@213.230.93.9) (Quit: Client closed)
13:47:54 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
13:48:53 merijn joins (~merijn@77.242.116.146)
13:49:26 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
13:51:06 weary-traveler joins (~user@user/user363627)
13:51:51 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
13:52:50 euleritian joins (~euleritia@dynamic-176-007-150-185.176.7.pool.telefonica.de)
13:55:50 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:57:34 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
14:04:22 BolzmannPain joins (~BolzmannP@user/BolzmannPain)
14:05:41 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
14:05:59 ljdarj joins (~Thunderbi@user/ljdarj)
14:07:26 ystael joins (~ystael@user/ystael)
14:08:19 ljdarj1 joins (~Thunderbi@user/ljdarj)
14:12:43 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds)
14:12:43 ljdarj1 is now known as ljdarj
14:12:44 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
14:12:59 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
14:18:23 CoolMa7 joins (~CoolMa7@95.91.137.87)
14:21:41 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
14:23:49 <Inst> honestly, when i think about it, and after arguing with lispers as to whether they have monads
14:24:21 <Inst> one of haskell's unique strengths is having both purity / referential transparency and a strong static type system
14:24:50 <Inst> when you look at (a -> a), without strong static types and pure functions, Normand's right in that this function cuold mean anything
14:25:06 <Inst> just as, in Haskell, it could be anything when you stuff in unsafePerformIO
14:26:02 <Inst> Haskell, unique for not-completely-research languages, with its type system and effect control, allows people to have a true concept of a composable pure function
14:31:41 Square2 joins (~Square4@user/square)
14:31:43 <yin> wasn't there an alternative to hackage for documentation?
14:32:11 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Remote host closed the connection)
14:35:56 <kuribas> Inst: don't confuse (a -> a) with (Any -> Any).
14:36:40 <kuribas> Firstly, (a -> a) is typechecked, unlike the Any one. Secondly it requires the input type to be equal to the output type.
14:36:50 <kuribas> That already reduces the number of possible types.
14:37:33 <kuribas> Inst: with side effects you would get something like ocaml.
14:38:38 noblehelm joins (~noblehelm@200.17.111.30)
14:39:48 × son0p quits (~ff@181.237.206.243) (Ping timeout: 276 seconds)
14:42:55 <Leary> yin: stackage.org
14:46:26 aforemny joins (~aforemny@i577B13E8.versanet.de)
14:48:09 × turlando quits (~turlando@user/turlando) ()
14:49:38 × Everything quits (~Everythin@178-133-20-16.mobile.vf-ua.net) (Quit: leaving)
14:51:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
14:54:16 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
14:58:29 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
15:05:11 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
15:06:37 JuanDaugherty joins (~juan@user/JuanDaugherty)
15:16:38 × alphazone quits (~alphazone@2.219.56.221) (Ping timeout: 252 seconds)
15:18:12 <yin> Leary: ty
15:25:01 alphazone joins (~alphazone@2.219.56.221)
15:25:55 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
15:26:44 spew joins (~spew@201.141.99.170)
15:27:03 × noblehelm quits (~noblehelm@200.17.111.30) (Ping timeout: 245 seconds)
15:30:27 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 244 seconds)
15:38:15 × hiecaq quits (~hiecaq@user/hiecaq) (Remote host closed the connection)
15:42:16 EvanR joins (~EvanR@user/evanr)
15:43:29 × spew quits (~spew@201.141.99.170) (Remote host closed the connection)
15:44:59 kilolympus joins (~kilolympu@2a04:ee41:4:32b3:6573:d8d:c873:5381)
15:45:20 <kilolympus> Hi, not sure if this is the right place to ask, but is Hackage down for other people as well?
15:47:08 × BolzmannPain quits (~BolzmannP@user/BolzmannPain) (Quit: Client closed)
15:48:03 <kuribas> yes
15:50:35 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
15:51:13 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit)
15:51:31 lxsameer joins (~lxsameer@Serene/lxsameer)
15:53:10 misterfish joins (~misterfis@84.53.85.146)
16:00:21 × lbseale_ quits (~quassel@user/ep1ctetus) (Ping timeout: 248 seconds)
16:02:02 <JuanDaugherty> its maintained by some guy isn it?
16:02:34 <JuanDaugherty> rather than glasgow or whatever
16:02:54 <JuanDaugherty> expect outages in such a situation
16:03:01 <Hecate> it's not "maintained by some guy"
16:03:16 <Hecate> there has been lots of traffic from malicious AI scraper bots
16:03:29 <JuanDaugherty> ah
16:03:30 <Hecate> and the tech team is tweaking the cloudflare config right now
16:03:39 <JuanDaugherty> i c
16:03:41 <Hecate> I've seen them in my own application logs as well
16:05:47 <Inst> (a -> a) also implies that there's no ability to read the content of the data besides knowing that it exists
16:06:29 <Inst> thanks for all the work, Hecate
16:07:00 <Inst> also (Any -> Any) is actually (a -> b), when you think of it, no?
16:07:08 <Inst> kuribas
16:08:49 <Inst> hmmm, probably not, since it makes itself meaningful by Any being a wrapper over types, i.e, if you consider Any -> Any to be typeless, it's essentially (a -> b), if you consider Any -> Any to be equivalent to Dynamic -> Dynamic, then it's a different content
16:09:01 sprotte24 joins (~sprotte24@p200300d16f45f600c5ad94218b2aa1c2.dip0.t-ipconnect.de)
16:09:52 spew joins (~spew@201.141.99.170)
16:10:20 <JuanDaugherty> the apex doesn even refer to hackage, just blather about 'community'
16:12:17 Digitteknohippie joins (~user@user/digit)
16:12:44 × Digit quits (~user@user/digit) (Ping timeout: 272 seconds)
16:12:50 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
16:13:00 <EvanR> Inst, Any (uhg at this name, but it corresponds with typescript) means you don't know what the type is. a -> b means the caller can choose to instantiate a or b at any type they want
16:13:30 <Inst> iirc there's an Any in the GHC internal somewhere
16:13:31 <EvanR> so Any = some type, while a = any type.
16:13:48 <EvanR> that's what we're talking about
16:14:29 <Inst> what does Any -> Any even mean in a Haskell context?
16:15:00 <EvanR> it's a function type for functions that expect an Any as argument (explained above) and return an Any, which is not necessarily related to the input at all
16:15:02 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
16:16:13 Sgeo joins (~Sgeo@user/sgeo)
16:16:18 <ncf> if you think of Any as (∃ a. a) then it is isomorphic to (); in other words you can't do anything safe with an Any without making assumptions that are not tracked by the types
16:17:16 <kuribas> Inst: no, (a -> b) is type checked, (Any -> Any) is not, except for the number of inputs.
16:17:29 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
16:17:35 <Inst> is it?
16:17:36 <kuribas> Inst: yeah, it's like Dynamic -> Dynamic.
16:17:41 <Inst> since (Any -> Any) is a member of Any
16:18:06 <EvanR> it's not like Dynamic because Dynamic can actually be used safely, in ways that aren't just STLC with 1 base type
16:18:09 <Inst> i was just looking for whether or not the argument that only Haskell has true functions has ever been made
16:18:36 <Inst> it's weird because I'm the guy lambasting "pure, functional programming" as meaningless, but now I'm going back to "pure, functional programming" is good
16:18:38 <kuribas> True functions are total.
16:18:51 <EvanR> I object to your theory that "Any -> Any is a member of Any" as if Any (a type) is a set, and it's members are types
16:19:08 <EvanR> or that it is a class and it's instances are types
16:19:22 <Inst> What is your objection?
16:19:27 <EvanR> that that makes no sense
16:19:31 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
16:19:51 <EvanR> we discussed positively 2 ways you can explain what Any means
16:20:01 <EvanR> "a set of types" is not one of them
16:20:04 × TonyStone quits (~TonyStone@user/TonyStone) (Ping timeout: 252 seconds)
16:20:19 Digitteknohippie is now known as Digit
16:20:40 <EvanR> it's also not a supertype since we don't have subtypes
16:20:59 <EvanR> "purely function programming" is not meaningless
16:21:28 <EvanR> though not everyone knows what this is supposed to mean, some people hear it and think they're talking about proportion of paradigms the language is based on
16:21:35 <Inst> it refers to functional programming, referential transparency, and the equal result of call-by-name, call-by-value, and call-by-need function calls
16:21:50 <Inst> it's a bit gimmicky that purely here is a term of art, not the colloquial term
16:21:54 <EvanR> like haskell is purely functional because it's 100% functional, while closure is 40% functional, or something, and so not pure lol
16:22:03 <EvanR> because they never heard of the term "pure function" before
16:22:14 <Inst> iirc there are no more "mainstream" languages than Haskell that employ purity
16:22:30 <EvanR> all functions in haskell are pure so there's that
16:22:32 <Inst> I heard that D has a concept of pure function, but it's opt in instead of opt-out, maybe I'm wrong here?
16:22:41 <EvanR> it does not
16:22:48 Guest7 joins (~Guest7@syn-172-249-181-078.res.spectrum.com)
16:22:54 <EvanR> D is a miserable pile of hacks and missed opportunities
16:23:09 <EvanR> refusing to look outside its C++ origins
16:23:15 <EvanR> C++ of the 90s
16:23:52 <EvanR> "concept of a pure function" was well known in lisp since forever
16:24:42 <Inst> but iirc... oh wait, lisp macros, but generally languages don't have special support for pure functions
16:25:31 <Inst> and yeah, D has a pure declaration for a function
16:25:33 <Inst> https://tour.dlang.org/tour/en/gems/functional-programming#:~:text=Pure%20functions,functions%20which%20are%20pure%20themselves.
16:26:13 <EvanR> I wager $10 that it's for documentation purposes and doesn't actually stop side effects
16:26:26 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
16:26:28 <Inst> if i win, will you donate to maerwald?
16:27:01 <EvanR> I don't know what that refers to, but anyway, you're not supporting "pure functional programming is meaningless"
16:27:13 <EvanR> just that it's unpopular
16:27:15 <EvanR> which is true
16:27:23 merijn joins (~merijn@77.242.116.146)
16:28:06 <Inst> onlineapp.d(20): Error: `pure` function `onlineapp.bigPow` cannot call impure function `std.stdio.writefln!(char, BigInt).writefln`
16:28:20 <Inst> you didn't agree to the bet, so i can't try to cajole you into passing maerwald some money for GHC upkeep
16:28:42 <Inst> erm, GHCup upkeep
16:29:08 <Inst> i mean that purely functional programming, as an advertising phrase, at least, is misleading
16:30:14 <EvanR> you're misleading
16:30:19 <EvanR> or confused
16:30:27 <Inst> probably, and now is not a good time
16:30:35 <Inst> given certain events
16:30:58 tomboy64 joins (~tomboy64@user/tomboy64)
16:33:27 TonyStone joins (~TonyStone@user/TonyStone)
16:38:46 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
16:44:48 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:44:48 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
16:47:08 son0p joins (~ff@186.119.84.155)
16:48:01 × euleritian quits (~euleritia@dynamic-176-007-150-185.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
16:48:16 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
16:51:57 × sprotte24 quits (~sprotte24@p200300d16f45f600c5ad94218b2aa1c2.dip0.t-ipconnect.de) (Quit: Leaving)
17:00:51 × pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 276 seconds)
17:09:17 × jrm quits (~jrm@user/jrm) (Quit: ciao)
17:09:57 × Guest7 quits (~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
17:10:46 jrm joins (~jrm@user/jrm)
17:13:52 pabs3 joins (~pabs3@user/pabs3)
17:19:18 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
17:27:32 ljdarj1 joins (~Thunderbi@user/ljdarj)
17:29:48 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
17:29:48 ljdarj1 is now known as ljdarj
17:31:36 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
17:35:16 briandaed joins (~root@185.234.210.211.r.toneticgroup.pl)
17:57:28 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
18:01:58 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:07:32 <statusbot6> Status update: there is a network outage affecting hackage, we are investigating -- http://status.haskell.org/pages/incident/537c07b0cf1fad5830000093/672bb063281978053cb3d85e
18:17:54 jco joins (~jco@78-70-217-44-no600.tbcn.telia.com)
18:19:59 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:22:36 <jco> Hey, what's up with https://hackage.haskell.org? Get 503s and it feels like that site has been having problems for a while. https://status.haskell.org seems to indicate there's an ongoing incident. Does anyone here know more about this?
18:23:13 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
18:23:44 <geekosaur> from what I've seen, it seems like a lot of AI crawlers have been hammering hackage and hoogle
18:23:53 <geekosaur> and ignoring things like robots.txt
18:24:42 <institor> that would explain the intermittent behavior
18:24:51 <institor> maybe the app server is overloaded
18:26:27 <jco> I see, thanks...
18:27:07 <briandaed> like geekosaur said, it's probably an effect of 'bot fighting' functionality from cloudflare, sclv and chreekat can shed some light..
18:28:19 <geekosaur> that was only activated yesterday, it remains to be seen how much it's contributing because the bot spam had been going on for weeks (it's largely why hoogle was down a lot, apparently)
18:29:15 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
18:30:15 pie_ joins (~pie_bnc@user/pie/x-2818909)
18:30:49 × krei-se quits (~krei-se@p5085d46e.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
18:31:22 <briandaed> I spend some time testing why hoogle is so slow, build it from sources and made requests same as sclv has shown us, it was spending 58% of the time calculatin inRanges https://github.com/ndmitchell/hoogle/blob/master/src/General/Util.hs#L359
18:31:32 <geekosaur> and apparently a lot of other internet services are being affected as well
18:32:27 <sm> I set up https://haskell-status.joyful.com today, which updates quicker
18:33:13 <sm> briandaed nice
18:33:19 krei-se joins (~krei-se@p5085d46e.dip0.t-ipconnect.de)
18:33:35 <sm> any such optimising is valuable
18:34:23 <briandaed> had no time to dig deeper, tested on virtualized fedora with four cores and 6gigs of ram
18:38:18 × jco quits (~jco@78-70-217-44-no600.tbcn.telia.com) (Ping timeout: 252 seconds)
18:39:22 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
18:39:38 <haskellbridge> <Morj> Did stackage also go down just now?
18:39:56 <haskellbridge> <Morj> Not according to the website, huh
18:40:12 × krei-se quits (~krei-se@p5085d46e.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
18:40:21 <haskellbridge> <sm> no
18:40:52 <haskellbridge> <sm> unless it was very quick :) but seems unlikely
18:41:27 <haskellbridge> <Morj> Yeah, it's up, just some links don't load
18:41:49 <haskellbridge> <sm> got an example Morj ?
18:41:50 krei-se joins (~krei-se@p5085d46e.dip0.t-ipconnect.de)
18:42:29 <haskellbridge> <Morj> Ah I'm stupid, I was clicking a link in the docs that lead to back to hackage :D
18:42:43 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
18:43:08 <haskellbridge> <sm> How's https://flora.pm doing I wonder
18:43:22 <haskellbridge> <sm> seems good
18:46:16 <haskellbridge> <sm> A useful fallback for browsing package info, though I think we can't install packages from there
18:48:00 <geekosaur> ti also redirects you to hackage to see docs
18:49:41 <institor> uh, stackage.org?
18:50:36 <institor> their package documentation seems to be operational
18:51:43 × jrm quits (~jrm@user/jrm) (Quit: ciao)
18:52:11 × Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!)
18:52:20 <haskellbridge> <sm> A hackage outage is a good test of haskell infrastructure resilience
18:52:37 <institor> where is this bridged to
18:52:39 <institor> matrix?
18:52:55 <haskellbridge> <sm> yes, the Haskell IRC room on matrix
18:53:03 <geekosaur> #haskell-irc:matrix.org, yes
18:53:10 jrm joins (~jrm@user/jrm)
18:53:16 <geekosaur> (I was asked not to bridge the main Matrix Haskell room)
18:53:18 L29Ah joins (~L29Ah@wikipedia/L29Ah)
18:53:31 haskellbridge sm tested stack installs, they seem to work fine for things in snapshots
18:53:44 <institor> i was building some docker images earlier using stack
18:53:50 <haskellbridge> <Morj> > where is this bridged to
18:53:50 <haskellbridge> Uh-oh, I've been found
18:53:53 <institor> i think stack setup was failing, but probably when fetching GHC and not packages
18:54:17 <institor> just times out
18:54:26 <haskellbridge> <Morj> Stack builds work fine for me right now
18:54:32 <haskellbridge> <Morj> +with downloading
18:54:39 <geekosaur> is it retrieving a new ghc?
18:54:45 <institor> geekosaur: i think so
18:54:52 <institor> i busted the cache
18:54:54 <haskellbridge> <Morj> Ah, no, system-ghc
18:54:59 <geekosaur> if you already have the snapshot, it shouldn't be downloading anything
18:55:05 <geekosaur> except any extra-deps
18:55:18 <haskellbridge> <sm> institor I just tried this and it seems to be downloading: stack setup --verbosity debug --install-ghc --snapshot nightly
18:56:05 <haskellbridge> <Morj> (I'm dreaming of a stack variant that somehow only uses system-ghc. Basically cabal with snapshots and a saner interface)
18:56:12 <haskellbridge> <sm> "stack update" seemed to fail fast without causing a problem, just now, but that might be just luck of how hackage responded
18:56:28 <sclv> there are mirrors so that cabal can pull packages
18:56:42 <haskellbridge> <sm> Morj, you can configure it that way, righ ?
18:56:54 <institor> bare `stack setup` is failing for me
18:57:09 <institor> malformed JSON with a '<', i suspect nginx is throwing up some error HTML where a JSON response was expected from the app server
18:57:35 <institor> keep in mind i'm running from a clean docker base image
18:57:55 <haskellbridge> <sm> institor: that's what I saw from stack update, which is about what you'd expect. But did that cause setup to fail ?
18:58:09 <institor> yes sm, `stack setup` is throwing that malformed JSON error
18:58:19 <haskellbridge> <Morj> sm I can configure it, but it's silly: when I use a snapshot with a mismatching ghc version, it will try to download it instead of giving an error. And when creating a new project I have to guess which snapshot will work with my system ghc
18:58:34 <institor> i am not using nightly
18:58:54 <haskellbridge> <sm> Morj: ~/.stack/config.yaml: install-ghc: false, system-ghc: true
18:59:09 <haskellbridge> <Morj> Oh cool
18:59:21 <haskellbridge> <sm> all in the manual, don't tell anyone :)
18:59:22 <haskellbridge> <Morj> Now the second part can be solved if I write my own stack-init..
18:59:53 <haskellbridge> <sm> that is the recommended config these days when using stack with ghcup
19:00:30 <haskellbridge> <Morj> Well cabal also has everything in the manual allegedly, but last time it took me a couple of weeks of full-time work to figure out how to set up a mirror
19:00:50 <haskellbridge> <Morj> Anyway, thanks for advice (=
19:01:50 <lxsameer> hey folks, is there any way to get the version number of the project that is set in the cabal file in the haskell code?
19:01:57 ft joins (~ft@p4fc2a216.dip0.t-ipconnect.de)
19:04:06 <haskellbridge> <Morj> Without reading the source files themselves (at build or run time) - no
19:04:17 <haskellbridge> <sm> Morj: I hear that. stack's manual is a bit better
19:04:40 <haskellbridge> <sm> setting up a mirror sounds fairly advanced
19:04:52 <haskellbridge> <Morj> It is a lot better IMO. Still not ideal sadly. Also I liked the old design more ;]
19:06:00 <haskellbridge> <sm> Yes, there are ways to get the package version, which I forget
19:07:14 <haskellbridge> <sm> https://flora.pm/packages/@hackage/package-version I guess
19:08:18 <haskellbridge> <Morj> > We provide functionality for reading these numbers from cabal files at both runtime and compile-time :3
19:09:46 <haskellbridge> <Morj> At $job we had a script that when doing releases would read version info from several pacakges and prepare it as a haskell module before build
19:11:43 <haskellbridge> <sm> related, https://flora.pm/packages/@hackage/githash is good for git info
19:14:38 × sudden quits (~cat@user/sudden) (Ping timeout: 265 seconds)
19:16:18 sudden joins (~cat@user/sudden)
19:17:36 <Inst> just my comment about "purely functional" programming being useful, to eschew the argument, is just that Julia doesn't have function types
19:17:52 <Inst> Rust, apparently, only has in-program function types via function pointers, not the functions themselves
19:19:33 <Inst> and to some extent i'm coming to a realization that FP doesn't make sense without pure-by-default
19:19:58 <EvanR> pure or pure-by-default really does solve a lot of things
19:20:12 <EvanR> and creates new ones
19:20:23 <Inst> what new problems?
19:20:43 <EvanR> that being said purity wasn't an end inof itself
19:20:51 <EvanR> it was basically necessary because of lazyiness
19:21:58 <Inst> nonstrict, technically
19:22:06 <Inst> not sure whether non-strict can actually include lenient evaluation!
19:22:18 <EvanR> problems like the awkward squad: I/O, error handling, concurrency, and FFI
19:22:47 <Inst> but aren't those mostly solved in modern Haskell?
19:23:13 <haskellbridge> <Morj> Error handling - not really. Exceptions in pure code are a pain if you really want to handle them
19:23:17 <Inst> IO type is nice enough, although you can imagine better alternatives (effects imo should be handled within the language as a feature, not as a product of lambda calculus)
19:24:00 <EvanR> haskell solved it several ways historically, but that doesn't mean "it's solved" in general, unless haskell is the only pure functional language ever
19:24:02 <Inst> 0 `div` 0
19:24:13 <haskellbridge> <Morj> It would be ideal if there was a consensus to use errors in pure code like panics in rust, but
19:24:14 <Inst> iirc clean with uniqueness types
19:24:39 <EvanR> that is basically the consensus, no one should be catching pure errors
19:25:13 <EvanR> ideally you don't have any for whatever provably reason
19:25:14 <Inst> but the absence of effects besides memory and computation, etc, is just really liberating, as well as a "by default" implementation
19:25:25 <haskellbridge> <Morj> Ughh I had a counterexample for consensus but now I think you're right
19:25:39 <statusbot6> Status update: The hackage outage has been traced to a misconfigured zfs snapshot configuration resulting in full disk. This is fixed and hackage is operational again. -- http://status.haskell.org/pages/incident/537c07b0cf1fad5830000093/672bb063281978053cb3d85e
19:25:39 <EvanR> provable
19:26:03 × CoolMa7 quits (~CoolMa7@95.91.137.87) (Quit: My Mac has gone to sleep. ZZZzzz…)
19:26:54 <sclv> do _not_ turn on automated zfs snapshots for /var/log everyone!
19:27:04 <geekosaur> lol
19:27:07 <EvanR> a counter example is you spawned an async thread which may succeed or may crash in whatever unknown way, but you don't want the supervisor thread to crash because of it
19:27:31 <EvanR> but you can file this pattern away under "process pattern"
19:27:46 <EvanR> each thread being a microcosm of programming principle
19:29:52 <haskellbridge> <Morj> Exceptions with forkIO are already not rethrown though?
19:30:24 <Inst> how would you spawn the async thread in pure code?
19:30:42 <geekosaur> I think they are, mostly?
19:30:49 ljdarj joins (~Thunderbi@user/ljdarj)
19:30:58 <haskellbridge> <Morj> Or maybe I misunderstood you. I also have on my mind a problem that Control.Concurrent.Async.waitCatch, and you get a Right x, x can still contain a bottom
19:32:32 <haskellbridge> <Morj> Rust for example specifically has poisoned state to combat panics during inter-thread communication. But with lazyness, exceptions (and poison) can come out any time
19:41:15 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:44:31 <EvanR> if forkIO itself crashes sure
19:44:38 <EvanR> if the thread crashes no
19:44:50 <EvanR> I'm mainly talking about async (the library)
19:45:42 <EvanR> throwing an exception which is a bottom sounds ridiculous
19:46:03 <EvanR> did not think of that level of broken code
19:48:11 ljdarj1 joins (~Thunderbi@user/ljdarj)
19:49:38 <EvanR> you can also put bottoms in MVars and screw over whoever has access to it
19:49:50 <EvanR> or put them in Chans
19:50:20 × ft quits (~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: Lost terminal)
19:51:07 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds)
19:51:26 ljdarj joins (~Thunderbi@user/ljdarj)
19:52:24 ft joins (~ft@p4fc2a216.dip0.t-ipconnect.de)
19:52:49 × ljdarj1 quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
19:52:53 × smiesner quits (b0cf5acf8c@user/smiesner) (Ping timeout: 245 seconds)
19:52:54 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:53:00 smiesner joins (b0cf5acf8c@user/smiesner)
19:53:25 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:54:04 <monochrom> Beginners don't know community consensus. What beginners do is look at meaningful names and believe that they are actually honest. We had the misstep of calling it "error" so beginners think it just means the same "error" from languages they already know. Rust has the wisdom to call it "panic".
19:58:42 <EvanR> there's still plenty of stack overflow going over the intention of panic and how it won't work for "exceptions as control flow" common in other languages
19:59:59 <monochrom> That is still much better than "I know what 'error' means, don't educate me".
20:00:04 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:42 caconym joins (~caconym@user/caconym)
20:02:33 <monochrom> It is a good thing that beginners ask "I don't get 'panic', what is it for?" instead of the Dunning-Kruger effect of deluding themselves into believing that they understand.
20:04:08 <EvanR> more like "how do I catch a panic so I can do slick control flow fu"
20:04:20 <monochrom> Oh haha.
20:04:42 <monochrom> Well OK I guess I should be cynical about humanity again.
20:04:49 <EvanR> probably
20:10:43 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
20:11:43 <dolio> Panic sounds like a synonym for error. I know what that is.
20:12:19 <haskellbridge> <sm> PSA: Unlike most haskell services, hoogle.haskell.org is slower outside the US (eg 1s response time in Europe instead of 1/4s). If you'd like to make it faster, improve its rudimentary web app, eg to provide good caching headers !
20:17:26 Square joins (~Square@user/square)
20:17:50 × ubert quits (~Thunderbi@77.119.163.56.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
20:18:56 × briandaed quits (~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection)
20:21:20 × Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds)
20:24:11 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:29:58 alphazone_ joins (~alphazone@2.219.56.221)
20:31:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
20:31:46 × alphazone quits (~alphazone@2.219.56.221) (Ping timeout: 272 seconds)
20:42:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:46:38 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
20:50:34 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
20:55:19 ephilalethes joins (~noumenon@113.51-175-156.customer.lyse.net)
20:56:54 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
20:57:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:02:00 Everything joins (~Everythin@46.211.117.180)
21:02:25 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
21:13:01 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:14:09 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
21:18:07 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
21:19:36 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:24:07 × hololeap quits (~quassel@user/hololeap) (Quit: Bye)
21:26:13 hololeap joins (~quassel@user/hololeap)
21:27:22 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
21:27:56 × Everything quits (~Everythin@46.211.117.180) (Quit: leaving)
21:28:24 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:28:35 CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de)
21:28:55 <tomsmeding> lxsameer: yes, the Paths_ module
21:28:59 <tomsmeding> also via CPP
21:29:42 <tomsmeding> lxsameer: in CPP you have VERSION_<packagename> defined as a string
21:30:35 <tomsmeding> and in the Paths_<packagename-with-underscores> module (you can add it to other-modules, it's autogenerated by cabal) you have `version` which is a Data.Version(Version)
21:32:38 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
21:38:19 × ThePenguin quits (~ThePengui@cust-95-80-24-166.csbnet.se) (Ping timeout: 252 seconds)
21:43:18 ThePenguin joins (~ThePengui@cust-95-80-24-166.csbnet.se)
21:43:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:44:10 zetef joins (~quassel@86.124.127.67)
21:44:18 × zetef quits (~quassel@86.124.127.67) (Client Quit)
21:48:44 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
21:48:52 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd)
21:51:07 sprotte24 joins (~sprotte24@p200300d16f45f60044d2f8c33ad18940.dip0.t-ipconnect.de)
21:51:43 × hgolden_ quits (~hgolden@204.152.216.122) (Ping timeout: 265 seconds)
21:52:15 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd) (Remote host closed the connection)
21:52:35 × CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Quit: My Mac has gone to sleep. ZZZzzz…)
21:54:08 hgolden joins (~hgolden@146.70.172.37)
22:00:11 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:04:02 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds)
22:06:55 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:09:49 × michalz quits (~michalz@185.246.207.201) (Remote host closed the connection)
22:14:00 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
22:15:08 × kilolympus quits (~kilolympu@2a04:ee41:4:32b3:6573:d8d:c873:5381) (Quit: See you later! :))
22:16:24 weary-traveler joins (~user@user/user363627)
22:18:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:22:28 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
22:24:55 Everything joins (~Everythin@178-133-140-206.mobile.vf-ua.net)
22:25:19 hgolden_ joins (~hgolden@static-198-44-129-115.cust.tzulo.com)
22:27:43 × mulk quits (~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
22:27:49 × hgolden quits (~hgolden@146.70.172.37) (Ping timeout: 252 seconds)
22:28:11 mulk joins (~mulk@pd95146e9.dip0.t-ipconnect.de)
22:31:22 × catties quits (~catties@user/meow/catties) (Quit: n_n)
22:31:30 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
22:33:36 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:34:20 hgolden__ joins (~hgolden@23.162.40.69)
22:34:26 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
22:37:33 × hgolden_ quits (~hgolden@static-198-44-129-115.cust.tzulo.com) (Ping timeout: 276 seconds)
22:38:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:48:57 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:49:46 × ephilalethes quits (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
22:52:22 catties joins (~catties@user/meow/catties)
22:53:19 hgolden_ joins (~hgolden@169.150.203.10)
22:53:22 <Inst> hmmm, i'm curious
22:53:30 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:53:42 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
22:53:43 <Inst> is Haskell's IO type the first type-mediated effect system in programming languages?
22:55:41 × hgolden__ quits (~hgolden@23.162.40.69) (Ping timeout: 252 seconds)
22:55:56 × catties quits (~catties@user/meow/catties) (Remote host closed the connection)
22:56:17 catties joins (~catties@user/meow/catties)
22:56:23 supercode joins (~supercode@user/supercode)
22:57:02 Tisoxin3 joins (~Ikosit@user/ikosit)
22:57:09 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 260 seconds)
22:57:19 migas9779 joins (~migas@static.140.65.63.178.clients.your-server.de)
22:57:21 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds)
22:57:23 × Tisoxin quits (~Ikosit@user/ikosit) (Read error: Connection reset by peer)
22:57:23 Tisoxin3 is now known as Tisoxin
22:57:44 × Kamuela quits (sid111576@id-111576.tinside.irccloud.com) (Ping timeout: 260 seconds)
22:57:48 × zlqrvx quits (~zlqrvx@user/zlqrvx) (Quit: %quit%)
22:58:08 monochrm joins (trebla@216.138.220.146)
22:58:09 zlqrvx joins (~zlqrvx@user/zlqrvx)
22:58:20 × Techcable quits (sid534393@user/Techcable) (Ping timeout: 260 seconds)
22:58:20 × unlucy quits (sid572875@user/unlucy) (Ping timeout: 260 seconds)
22:58:20 × tritlo quits (sid58727@id-58727.hampstead.irccloud.com) (Ping timeout: 260 seconds)
22:58:20 × aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Ping timeout: 260 seconds)
22:58:25 alioguzhan1 joins (~Thunderbi@78.173.69.189)
22:58:26 × migas977 quits (~migas@static.140.65.63.178.clients.your-server.de) (Ping timeout: 248 seconds)
22:58:26 × alioguzhan quits (~Thunderbi@78.173.69.189) (Ping timeout: 248 seconds)
22:58:26 × hacklschorsch quits (~flo@2a01:4f9:3a:2296::2) (Ping timeout: 248 seconds)
22:58:26 × jjhoo quits (~jahakala@user/jjhoo) (Ping timeout: 248 seconds)
22:58:26 migas9779 is now known as migas977
22:58:26 alioguzhan1 is now known as alioguzhan
22:58:40 wryish joins (~wryish@216.246.119.62)
22:58:53 szkl_ joins (uid110435@id-110435.uxbridge.irccloud.com)
22:58:58 × Miroboru quits (~myrvoll@178-164-114.82.3p.ntebredband.no) (Ping timeout: 248 seconds)
22:58:58 × sviermsung quits (4yqrolRHj5@user/s4msung) (Ping timeout: 248 seconds)
22:58:59 × thaumavorio quits (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
22:59:27 × monochrom quits (trebla@216.138.220.146) (Read error: Connection reset by peer)
22:59:28 monochrm is now known as monochrom
22:59:30 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Ping timeout: 260 seconds)
22:59:30 szkl_ is now known as szkl
22:59:30 Kamuela joins (sid111576@id-111576.tinside.irccloud.com)
23:00:01 × wryishly quits (~wryish@216.246.119.62) (Ping timeout: 248 seconds)
23:00:04 × rune_ quits (sid21167@id-21167.ilkley.irccloud.com) (Ping timeout: 260 seconds)
23:00:04 × snek quits (sid280155@id-280155.lymington.irccloud.com) (Ping timeout: 260 seconds)
23:00:27 jjhoo joins (~jahakala@user/jjhoo)
23:00:29 Miroboru joins (~myrvoll@178-164-114.82.3p.ntebredband.no)
23:00:29 hacklschorsch joins (~flo@2a01:4f9:3a:2296::2)
23:00:45 s4msung joins (~s4msung@user/s4msung)
23:00:51 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
23:00:54 snek joins (sid280155@id-280155.lymington.irccloud.com)
23:00:55 rune_ joins (sid21167@id-21167.ilkley.irccloud.com)
23:01:11 Techcable joins (sid534393@user/Techcable)
23:01:11 tritlo joins (sid58727@id-58727.hampstead.irccloud.com)
23:01:24 aristid joins (sid1599@id-1599.uxbridge.irccloud.com)
23:01:49 thaumavorio joins (~thaumavor@thaumavor.io)
23:01:54 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 246 seconds)
23:04:14 <probie> When did Haskell get the IO type? ~1996?
23:04:23 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:04:41 Square2 joins (~Square4@user/square)
23:04:51 alexherbo2 joins (~alexherbo@2a02-8440-341a-456e-a8d1-f94d-35c3-2d26.rev.sfr.net)
23:05:44 <Rembane> Yeah, it's a bit older, 1993ish. https://ncatlab.org/nlab/show/IO-monad
23:05:47 <Rembane> https://dl.acm.org/doi/10.1145/158511.158524
23:06:03 <EvanR> uniqueness types?
23:07:28 × Square quits (~Square@user/square) (Ping timeout: 245 seconds)
23:07:30 <dolio> 1.3 is the first report with it.
23:07:44 Square2 is now known as Square
23:08:56 <dolio> The 1993 citation is dated 1992 if you click on it. :þ
23:09:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
23:09:27 <Rembane> Good stuff :D
23:09:38 <Rembane> This is why I don't trust time
23:10:03 <EvanR> the researcher was merlin, who famously experienced time backwards
23:10:12 <dolio> Ah, of course.
23:12:20 <Rembane> It must've been a real trip to talk to him
23:13:59 <dolio> Even the 1.0 report has the continuation based I/O which, if you looked at it today, you might figure out it could be factored into a monad.
23:15:10 <dolio> It's like every IO operation has (>>=) stuck onto it already, and maybe catch.
23:16:02 <Inst> Clean predates Haskell, interestingly enough.
23:17:21 unlucy joins (sid572875@user/unlucy)
23:17:46 <Rembane> How does Clean before Haskell handle IO?
23:19:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:22:12 <int-e> "Consequently, a Clean program consists of a set of rewrite rules." -- 1987 Clean was a language for expressing graph rewriting systems.
23:22:41 <int-e> cf. https://wiki.clean.cs.ru.nl/Publications#1987
23:23:16 × visilii quits (~visilii@85.172.77.90) (Quit: ZNC - https://znc.in)
23:23:34 visilii joins (~visilii@85.172.77.90)
23:23:48 <probie> https://www.mbsd.cs.ru.nl/publications/papers/1992/achp92-HighLevelIO.pdf 1992 seems to be where IO appears in Clear
23:24:20 <int-e> stdin was provided as a list of newline-terminated lines. So it's the main :: [String] -> [String] type of I/O.
23:24:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
23:24:54 <Rembane> Isn't that how very early Haskell did I/O?
23:25:20 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:25:22 <dolio> Sort of. But the types are more complex, I think.
23:25:44 <dolio> Not just strings.
23:25:57 L29Ah joins (~L29Ah@wikipedia/L29Ah)
23:26:12 <int-e> Hmm 1988 has a related language called LEAN? Hehe.
23:26:36 <Rembane> I need the languages EAN, AN and N too.
23:26:42 × CrunchyFlakes quits (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
23:26:52 CrunchyFlakes joins (~CrunchyFl@31.19.233.78)
23:27:18 × Everything quits (~Everythin@178-133-140-206.mobile.vf-ua.net) (Remote host closed the connection)
23:27:38 <probie> I think `UNQ` in early Clean appears slightly before monadic IO in early Haskell, since the first monadic IO paper that's been found so far references the Clean one.
23:27:43 × visilii quits (~visilii@85.172.77.90) (Client Quit)
23:28:36 visilii joins (~visilii@85.172.77.90)
23:30:40 pavonia joins (~user@user/siracusa)
23:31:22 <Inst> I think you can consider IO in Haskell a very primitive / early effect system, but I don't think you can say the same for Clean's uniqueness types, which seem to be a more of linearity
23:31:51 <Inst> so then you can argue that Haskell had the first effect system
23:35:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:38:09 kstatz12 joins (~karl@user/kstatz12)
23:38:12 <int-e> 1992 CLEAN still had rules, 1994 CLEAN started to look more like Haskell.
23:38:14 int-e shrugs
23:38:42 <int-e> Anyway, the lesson here is that languages evolve, so dates of conception can be misleading.
23:38:54 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
23:39:31 <dolio> I'm curious what Miranda did, but I can't find my copy of the manual.
23:39:52 × kstatz12 quits (~karl@user/kstatz12) (Client Quit)
23:40:33 <haskellbridge> <Bowuigi> Miranda has a sys_message ADT, main uses a list of that
23:40:56 <sshine> Inst, I understand that IO came to Haskell at some later point.
23:41:00 <dolio> In '85, though?
23:41:13 <sshine> I was born that year!
23:41:44 <dolio> I mean, that would make somse sense, because Haskell was essentially Miranda with a few tweaks.
23:42:07 <int-e> sshine: so how do you feel about turning ancient next year *runs*
23:42:12 <sshine> https://okmij.org/ftp/Computation/IO-monad-history.html
23:42:23 <sshine> apparently I'm not as ancient as the IO monad after all
23:42:24 × acidjnk quits (~acidjnk@p200300d6e7283f63c008ff7276864804.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
23:44:17 <sshine> well, it ain't 0x20 or 0x30, but it's a pretty number. :)
23:47:06 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
23:51:33 × hueso quits (~root@user/hueso) (Quit: hueso)
23:57:37 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
23:58:00 × Versality quits (~Versality@user/Versality) (Remote host closed the connection)
23:58:14 Versality joins (~Versality@84.237.180.62)
23:58:14 × Versality quits (~Versality@84.237.180.62) (Changing host)
23:58:14 Versality joins (~Versality@user/Versality)

All times are in UTC on 2024-11-06.