flix / flix.dev

Other
1 stars 15 forks source link

Revise Principles #19

Open magnus-madsen opened 3 years ago

magnus-madsen commented 3 years ago
mlutze commented 3 years ago

I have a few nitpicks regarding the type class principles.

For the Explicit Override principle:

This ensures that there are no dangling overrides, i.e. functions definitions that do not match any signature of the type class.

This check happens, but it's not directly related to the override modifier.

Instead, the override modifier ensures:

Regarding the Default Implementations principle:

... can always be overridden ... For example, to provide a more efficient version.

Do we want to strengthen this or the override principle to say that an override must be observationally equivalent to the default implementation?