I suggest we ...

Parameterized and First Class Modules

Extend the F# module system to allow paramaterization via functors (that's why the keyword is reserved right?)

First class modules where a module declared with an abbreviation/alias is equal to a module declared with the original module name (unlike OCaml)

It seems like a more robust module system would provide a functional alternative to MEF with a cleaner abstraction model.

Perhaps the `pure` keyword could be used in conjunction with `functor` to enforce a restraint against immutability to ensure the functor is applicative?

See "F-ing modules"
http://www.mpi-sws.org/~rossberg/papers/Rossberg,%20Russo,%20Dreyer%20-%20F-ing%20Modules%20%5BJFP%20Draft%5D.pdf

55 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Jared Hester shared this idea  ·   ·  Admin →

    3 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...

      F# Language

      Feedback and Knowledge Base