There’s at least two answers to this. 1) Most numerical methods do not have a native Haskell implementation (on Hackage) probably even RK4 so the world is your oyster 2) Most numerical methods have a highly optimised implementation that worries about overflow and underflow etc probably written in Fortran but maybe in C so why re-invent the wheel but just provide bindings to them.
My answer is that I would like to have my cake and eat it and I think the new Numeric.LinearAlgebra.Static module starts to do this. I get type safety at compile time and I get speed. Frank tells me he can get pretty close to C speed using unboxed vectors. Maybe we can go even faster using unsafe operations but keeping static guarantees by exploiting the type system in the same way that HMatrix does (type level literals).
Here’s what I would do if I had time. Look at Julia, pick an interesting library / application, use Vector and Repa to implement, compare speeds while using type level programming to preserve safety. I’d like Haskell to be faster and safer.