My dream would be to write the high-level thing *and* some high-level, composable specification of my performance requirements. If the compiler can't meet the requirements, then it tells me so, together with helpful information about what broke down. Using the error message, I then add some annotations and/or tweak my code and try again. Just like static type-checking.
- Conal
[...]
And the point is that it is *reliable*. If you make your money day in, day out
writing Haskell, and you don't want to rely on radical transformations for
correctness, this is a sensible idiom to follow.