Since catch can't take advantage of the @uncurry annotation, would it make sense to include an uncurried version?
let catchU: (t<'a>, (. exn) => t<'a>) => t<'a>
I doubt performance is a concern when catching exceptions, but it may still be nice for users concerned with JS bundle size or readability.