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

Functor units, functor packs and recursive packs #11

Open
wants to merge 1 commit into
base: master
from

Conversation

@lpw25
Copy link
Contributor

lpw25 commented Dec 12, 2019

From the summary:

OCaml's module system has great facilities for structuring your code
in the large. It supports encapsulation, parameterisation and even
recursion. Unfortunately not all of these facilities are available
across multiple files. The -pack feature allows you to group
multiple files together under an interface, but there isn't really
a way to parameterise a group of files all at once, or to allow
recursion amongst a group of files.

This proposal aims to support parameterisation of groups of files
and recursion amongst groups of files by extending functors and
recursive modules to work on groups of files via the -pack
mechanism.

Unlike a "typical" RFC this work has already been largely implemented by @OCamlPro-Couderc. Much of this text has been recycled from an earlier project plan -- so its possible some parts of the design have been adjusted slightly since then.

@lpw25

This comment has been minimized.

Copy link
Contributor Author

lpw25 commented Dec 12, 2019

Duplicate of #3 due to that PR getting screwed up by the change from private to public.

@Drup

This comment has been minimized.

Copy link
Collaborator

Drup commented Dec 12, 2019

I feel like we are getting closer and closer to emulate SML's compilation unit scripts, but using a multiplicity of compiler flags and some sugar coating through dune. Maybe we should finally get the compiler to accept build scripts as input. :)

However, that's independent of the current proposal, which I think goes in the right direction.

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

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.