Okay, excellent.
I think we are live on stream.
Yuchen is here with us.
Thanks for the great talk, Yuchen.
For the questions, people are welcome to post them on IRC
or on the pad.
And we will also open this big blue button room up
in a few minutes if people want to join here
and ask Yuchen the questions directly.
So yeah, thanks again and take it away.
Yeah, thanks.
Okay.
Well, I guess while we wait for some other audience questions
to start trickling in, I wonder,
not having yet watched your talk, obviously,
because it's been behind the scenes,
I wonder if your system works
with offline documentation as well,
because I remember seeing earlier
some other Haskell-related workflows
where people would have downloaded the entirety
of the Hackage documentations
and yeah, be able to browse them locally when offline.
Yeah, for sure.
I mean, that's one of the points of writing these packages.
So the Hadock org documentation is meant for generation
of org files of these Haskell packages
so that you can have them locally on your computer
rather than having to rely on Hackage,
which is online, which is on the web.
The other one, HCL, the code explorer, it's self-hosted.
So all you need to do is to download the packages
you want to index and then index them on the server
or on the local host and then, yeah,
then you can unplug your Ethernet cable
and explore Haskell code on your computer.
Nice, thanks, that makes sense.
Maybe another question while we wait for other questions
from the audience and again, not having had a chance
to watch your talk yet.
What do you think is the state of, I guess,
integration of Haskell, both, I guess,
the language, the packages, the tooling, all that stuff,
integration with Emacs today in like 2022?
Because I'm also, I do have a Haskell background,
but I haven't done much of it in a few years.
And back when I do remember some pain points,
including when trying to integrate it into Emacs.
So I do wonder what the general state of things
are, if you could maybe answer quickly, I guess.
Not in great detail necessarily.
OK, yeah, I mean, I haven't tried all the packages,
Haskell-related packages.
And I think the most prominent ones are Haskell mode
and Haskell language servers through language server
packages like eglots or LSP mode.
Yeah, I mean, Haskell mode is like,
it feels to me like a standard language mode where
it offers font locking, syntax highlighting, I mean,
and REPL, like Python mode, and limited documentation
and cross-references, which is, I mean, as I mentioned,
that's why I did this HCL package.
And the language server is like, it is also pretty standard
and offering all the language server things, most of them,
I think.
But it's very slow.
It's slower than any other language server I've used.
And yeah, and it doesn't really work
with cross-reference, which I also mentioned in the talk.
So yeah, that's the two main packages
I think people use most.
And yeah, I can't think of anything else that's very
prominent.
Great, thanks.
Oh, OK, I just remembered.
There's also the Haskell TNG package.
But I haven't looked into it yet.
It's, if I remember correctly, it's like in the GNU ELP,
is it in GNU ELP or non-GNU?
Let me have a look.
Right, it's also in non-GNU.
Never mind.
Yeah, I think it's a new, up-and-coming Haskell media
mode, an experimental rewrite of Haskell mode.
That's the description.
Cool, and have you had a chance to maybe play around
with that a little bit and see how
it compares with the traditional, the older,
the existing Haskell mode?
No, I haven't yet.
OK.
Yeah, I can't think of anything else that's very prominent.
I haven't looked into it yet.
It's, if I remember correctly, it's like in the GNU ELP.
Yeah, I think it's a new, up-and-coming Haskell
media mode, an experimental rewrite of Haskell mode.
That's the description.
I haven't yet, I haven't looked into it,
and I think it's a new, up-and-coming Haskell
media mode, an experimental rewrite of Haskell mode.
Yeah, I haven't yet, I haven't looked into it,
you
One question that just occurred to me, I guess, about the state of like literate Haskell and
potential integration with org mode. I've actually never, I haven't put too much thought into this,
but it just occurred to me that Haskell, as you likely know, already has a literate Haskell mode
with like.LHS files. And I was wondering, I guess, if you've tried maintaining or writing
any projects in literate Haskell, at least not, if not entirely, then with a considerable amount
of source code in that approach and how it might compare, for example, to something like Babel,
I guess, which is very much more documentation oriented with like code blocks intermingled.
Okay. Yeah, I'm afraid I haven't really used the literate Haskell. I heard of it. And if I want
to like write literate programming, I would, I mean, I would go for org mode and org Babel,
indeed, first before, yeah, before the more language specific mode.
Right. That makes sense. I just thought it's interesting because Haskell is, I guess,
one of the fewer languages where it actually does have its own literate mode, if you will,
and yeah, there might be something interesting there to think about or try exploring at some
point. Yeah, yeah, definitely. Yeah. Yeah, I will look into it.
Poo.
Yeah, so I'm reading about this Haskell TNG mode.
It looks like it can also jump to definition
outside of the project using a thing uses
a tool called HS Inspect, which is also
a tool using the GHC API.
Yeah, not sure how it is achieved, though.
Bren.
I think I have a question on IRC.
Is the indexing faster?
And when re-indexing, would it be too slow
to re-index on demand?
Sorry, what's the question again?
The question is, is the indexing faster when re-indexing?
Would it be too slow to re-index on demand?
I think this might be for the other talk stream.
I'm not entirely sure.
So yeah, I mean, it sounds relevant to this talk, though.
Oh, OK, then, yeah, OK, sorry.
I'm a little scatterbrained.
No, it's OK.
Oh, yeah, yeah, re-indexing, I mean, I don't know, actually,
because I haven't started implementing
on-demand re-indexing yet.
And I'm still a bit hazy about whether it strictly
requires recompiling when re-indexing.
And I mean, but I do think it's like the main workhorse
of this process would be the GHC API compiling process,
whether it can avoid recompilation efficiency.
When, yeah, and I think it can.
It has some optimization with recompilation.
And also, ideally, you should start
using a bit less heavy compilation,
like this HIE,.hie files, instead of compiling
the whole thing, instead of requiring
the compilation of the whole project from using
the whole pipeline.
So HIE, I think, is more or less the only front-end part.
Yeah, and if, I mean, that's one of the things,
like, main to-dos for this project, for the HCL project,
to replace the cabal helper with using.hie
that I haven't looked into yet.
Awesome.
Yeah, sounds interesting and looking forward to it.
I think we have about, like, less than a minute or so
for the live Q&A. Of course, people
are welcome to keep asking questions,
whether on the pad or on IRC.
And yeah, so after this, Q&A concludes.
This is our last talk of today.
So we would appreciate it if people would join us
on the general stream for the closing remarks of today.
And yeah, we'll still have tomorrow
to look forward to the next one.
We'll still have tomorrow to look forward to, of course.
OK.
I see that EmacsConf just left.
Does that mean the Q&A is over?
Yep, I believe so.
So I think we should head on over to the GenStream.
OK, cool.
Yeah, I'll go there as well.
All right, thanks a lot for your questions.
Yep, and thank you, Yuchun, for your great talk.
Thank you.
Thanks, bye-bye.
Bye.
You are currently the only person in this conference.