So confused on using '?' in flow. AFAIK (thanks to flow type question mark before or after param?):
When '?' before ':', means bar is optional, can be string or undefined:
When '?' after ':', means bar is maybe type, can be string, undefined, or null.
My question is: In which circumstance we should the first option over the second? How about
bar?: ?string ?
flow is hard...