-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What should go in stdlib? #7
Comments
@Zimmi48, Is there a forum for the discussion? There are lots of things marked "to discuss" but when/where do they get discussed? |
@gmalecha The place to discuss is these issues AFAICT. FTR there was an initial WG discussion raised by myself (Oct 4th, 2017) about the standard library. Here it is: https://youtu.be/euwh_ToBiYo?t=2h6m54s |
Everything listed above seems indeed relevant for a standard library. Indeed, compared to the current standard library who tends to miss them, I think that basic concepts such as monading programming, orders, adjunctions, boolean reflection, groupoid structure of equality, telescopes, enumerability, cardinality, set-theoretic operations, etc., etc. should occur somewhere, and, somehow, with standardized notations. I believe that we should start from somewhere. @maximedenes, do you have a calendar? For instance, we could start from the list library on which we have a lot of contents available dispatched over many various contributions? Or, to start from a kind of library which is missing most, e.g. for monadic programming?
Since I hardly see one person alone able to rebuild a standard library in even, say, a one-year schedule, a collection of repositories (managed by different groups of people?) would maybe indeed be a good way to proceed. |
I imagine that one would somehow like to compare with the stdlibs of ocaml and haskell. Maybe it is of some use? I seem to recall a similar effort for haskell, but I cannot currently find it. |
This is a very good initiative. (And somehow, I wonder what will be their approach for partial functions, such as the head of a list: returning a result in the exception monad with a |
I guess the only way to find out is to ask @backtracking . |
I was thinking about this project by @jwiegly and @swierich 's project has a similar aim. |
@herbelin for the Coq prelude, I would expect to have the error monad definition as the primitive. The default variant can be written from that. @spitters there is no shortage of "alternative standard libraries" for Coq these days. It would be a great benefit to the community to get a retrospective on their experiences and use that as the basis for this project. I imagine that a good chunk of code and proofs could be adopted from existing libraries as well. |
It's probably also worth looking at the ones for other theorem provers. See what they implement
I know I'll be looking for things to steal from y'all. :) |
mathlib (in Lean) isn't technically a standard library and from what I heard from other experts, Lean isn't (yet) to be considered as a source of inspiration for library development... |
In addition to the important question of what goes in the prelude, another question is: "What goes in the library?"
Is there a list somewhere of the functionality we will include?
How about concepts (e.g. common type classes from Haskell)?
I imagine that some of the things that I've listed here should be split into other libraries (luckily with opam/nix it should be easy). Other pieces should be in here. So, where will we draw the line?
Personally, I lean a bit towards a collection of repositories that focus on individual concepts but standardized in some way, though small repos have their own downsides as well
The text was updated successfully, but these errors were encountered: