Refer the link, https://reasonml.github.io/docs/en/function.html#explicitly-passed-optional.
I don’t find any difference between
let result = drawCircle(~color, ~radius=?payloadRadius, ());
and
let result = drawCircle(~color, ~radius=payloadRadius, ());
Here I assume that the function is defined as
let drawCircle = (~color, ~radius=?, ()) => {
setColor(color);
switch (radius) {
| None => startAt(1, 1)
| Some(r_) => startAt(r_, r_)
}
};
Since radius is already optional in the definition of function, even if payloadRadius is of type option, it is dealt with in the definition. What point is there in passing payloadRadius as
~radius=?payloadRadius