Skip to content
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

(libs) Re-design the hierarchy of standard-library. #456

Open
alissa-tung opened this issue May 14, 2021 · 1 comment
Open

(libs) Re-design the hierarchy of standard-library. #456

alissa-tung opened this issue May 14, 2021 · 1 comment
Assignees

Comments

@alissa-tung
Copy link

alissa-tung commented May 14, 2021

FACTS:

  • There are some basic structures we use in every day programming activities or proof constructions, such as some basic algebraic structures (e.g. semigrp, monoid), higher-order functional vehicles (functor, applicative, monad, arrow and maybe selective)
  • There are some basic data structures which can be implemented in a straight-forward built-in fashion, made them efficiency and usable.
  • Combine the above, we can build a minimal scale library which shows the functionalities of functional programming languages.

Lift them to a sperate library Prelude can resolve some pressures and redundancy dependencies which had appeared in building the base library. And this approach can be considered easier to further maintaining job and documented materials. This is also a chance to solve some not valuable legacy that from Haskell and PureScript. So syntax like applicative (idiom) bracket, bind-notation and pattern-matching as control flows; applicative record update, visitor composition is also a point to throw away some functions.

Design the hierarchy of such essential type classes is up for more discussions with some sophisticated developer. It is becoming even more circuital since we do not have mechanism to do default behaviors or minimal implementations. It is worth doing in the meanwhile.

In addition, some experiential and not essential libraries can be put to contrib, such as testing framework. It doesn't need to support a stable API since the languages is developing itself.

@sdzx-1
Copy link
Collaborator

sdzx-1 commented May 16, 2021

good suggestion.
We are still improving the standard library.
If we have more time, we will consider adding such an experimental library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants