rescript-react-navigation icon indicating copy to clipboard operation
rescript-react-navigation copied to clipboard

Proposal: Rewrite with untagged variants

Open mununki opened this issue 2 years ago • 1 comments

Proposal

Rewriting the bindings by the polymorphic variant using the untagged variant in ReScript v11. e.g. https://github.com/rescript-react-native/rescript-react-navigation/blob/main/src/NativeStack.res#L9-L19

Benefit

Using variant versus polymorphic variant gives us more information at compile time, and is more idiomatic.

mununki avatar Jul 13 '23 09:07 mununki

With all the new features regarding variants in ReScript 11, I agree that normal variants should be preferred over polymorphic variants for writing new bindings. This was also our philosophy in the new rescript-mui bindings where we make heavy use of untagged variants.

OTOH, for the case of rescript-react-navigation,

  • this would mean breaking changes with little visible benefits to the user
  • it is not just rescript-react-navigation but also rescript-react-native itself that currently prefers polymorphic variants, and we should probably remain consistent with it.

cknitt avatar Jul 19 '23 05:07 cknitt