Are they? IME most bugs are type errors.
Or rather, IME most bugs are logic errors only because I've excluded the possibility of type errors by using a sophisticated type system.
I think porting your program to Haskell would make all of your bugs logic errors, rather than only most of them.