and they say like "Oh! but out strong static typesystem will protect you from errors! fear! errrors! Beware!"
ok, we got gradual typing annotations for how long, like ... 10 years in .. python? and I don't know how long like in TS/JS, & other similiar langs.
I still did/had/got type errors for last 10 years from production level grade js/py 'official' packaged apps in stable ubuntu.
And before that, I still got type errors from strong static typed c#/java compiled production deployed apps, in runtime.
Nothing prevents from
(Just Nil|None|Nothing) = ?not_handle
or
(Either Left) = ?not_handle
the 'exceptional' not null but Nil|None cases still may not be handled properly, correctly even in strong static pure functional enforced zoo. E.g. the app logic code, developer interpretation of algorythm still allowed to be intrinsically bad, and nothing stopping him from writing bad batship undocumented garbage code in strong static pure fp.
still could be : lack of inline code documentation comments, bad uninformative unintuitive not helpful error messages.
what's more important - is ability to change code in place once app deploed, after receiveing an error/excepton. can be done for python/formatted_js/perl & co, but not for haskell/F#/Rust/compiledTS(JS) .