I have now used ReasonML in a work project a little over one month and it is a great language. However one of the most annoying features is the necessity to write .rei files if you desire to leave some stuff module-private and export only things you copy to the corresponding .rei file. The problem is that this involves a lot of copy-pasting which goes against the DRY principle.
Have the BuckleScript developers considered the possibility of extending the language with “[@bs.export]”, etc… type of annotations to use in .re files to avoid the need for a separate interface file? What are the pros and cons? Superficially looking the separation in reason-lang side seems to stem from the ocaml-side language spec/tradition of having separate .ml and .mli files.