flatMaps and recoverWith are protected with check that ensures the passed callable will return an expected type ie. Option or TryCatch.
In case of passing partially applied function the real function is wrapped in callable that does not have return type hinting.