The ReScript compiler is covered under a custom LGPL version 3 license with an exception to section 4 of the LGPL license. What are the consequences of this exception?
The reason for my asking is, the following ReScript code for my application:
open RescriptCore
let isEqualTo = (a, boolean) =>
Option.eq(a, Some(boolean), (x, y) => x == y)
generates the following JS code:
import * as Caml_obj from "./../../node_modules/rescript/lib/es6/caml_obj.js";
import * as Caml_option from "./../../node_modules/rescript/lib/es6/caml_option.js";
import * as Core__Option from "./../../node_modules/@rescript/core/src/Core__Option.mjs";
function isEqualTo(a, $$boolean) {
return Core__Option.eq(a, Caml_option.some($$boolean), Caml_obj.equal);
}
Caml_option.some
is basically the Some variant (language construct) of the Option type.
Caml_obj.equal
performs the equality check for two Option values.
Core__Option
provides the eq function.
Core__Option
is MIT licensed whereas Caml_option
and Caml_obj
are (as I presume) covered under the compiler’s custom LGPL license with exceptions mentioned earlier.
Does this mean I can safely bundle (using esbuild/Vite) my application code and ReScript standard library code (Belt/Js/RescriptCore) without having to worry about sharing the application code with the users of the application? Note that, I am not modifying any ReScript compiler code or any of the generated code.
I would like a clarification on the obligations I have (imposed by the compiler’s license) while building my application with ReScript language/compiler. Can someone shed some more light on this and about any tricky situation that might arise, if any?