One case where it’s useful is for filtering which easily takes functions such as these. However, according to the evidence pattern, would it then be preferable to catMaybes . map prime?
If you push the argument to the limit, you’ll remove the Bool type all together. Which mean removing function like filter but also even if ... then construct (you can pattern match instead). I don’t think this is realistic.
I think newtypes make sense for function arguments if the function name don’t make it clear (and there is a real blindspot), but less for function names where the semantic should be self explanatory.
One case where it’s useful is for filtering which easily takes functions such as these. However, according to the evidence pattern, would it then be preferable to catMaybes . map prime ?