Thank you for filing! Check list:
If the explicit type annotation contains an array, result, dict, or Null.t (I haven't tried exhaustively) it results in a compiler error when the function is called. This doesn't seem to happen with primative types however.
let foo = (): option<array<string>> => Some(["foo"])
let bar = foo()
results in
Type Errors
[E] Line 3, column 10:
This function has type unit => option<array>
It only accepts 1 argument; here, it's called with more.