Interesting since I would imagine implementing something in C to take much longer than doing the same in something like Python or Java. On the other hand, I suppose getting something to work is not the same as getting it to run fast.
I think you are basically right. It is easier to make something correct in Haskell, it is easier to make something reasonably fast in Haskell too (generally) but in specific circumstances when you want max performance and care about the assembly or intermediate code output then it becomes easier in a low level language like C to do the performance optimization.
Having said that the 10* effort is an investment if you get a reusable library and will pay off because the rest of your code is in Haskell not C!
"So then why did I use Haskell? To make cover trees 10 times easier for programmers to use."
Default Haskell is certainly not geared toward numeric performance even though it certainly can be with the right libraries.
For example, how would one write a fast version of Dijkstra's shortest path algorithm in Haskell?
It's not a sin, just something to avoid when not strictly necessary.
http://jspha.com/posts/mutable_algorithms_in_immutable_langu...
http://jspha.com/posts/mutable_algorithms_in_immutable_langu...
http://jspha.com/posts/mutable_algorithms_in_immutable_langu...
Still, it was a nice breakdown of a real non-toy problem in haskell!
https://www.reddit.com/r/haskell/comments/2tpmbo/what_on_ear...
http://stackoverflow.com/questions/4720499/possible-optimiza...