It seems to me that the things people like about the haskell style syntax are
1. Don't have to name the parameter
2. less nesting.
You can get the best of all worlds with lambdacase style constructs. You don't need to write out the name of the function a bunch of times.
function = \case
SpecialCase ->
...
handle_odd_special_case;
Default ->
...
main_business_logic;