It's exactly the experiences I've had trying to read functional-style Rust code that uses higher-order function methods as a replacement for control flow primitives.
I only write code in an FP language and it never looks like that. Usually I’m passing function results into another function or into a match to break out success and failure states. It doesn’t have to be Haskell wizardry, or even clever.