C or Haskell, which to learn next?
cperciva: Learn C.  So far you've done lots of high level languages, but no low level languages at all.  Understanding what things look like at the machine level will make you a much better developer regardless of what language you end up using -- and there's a reason why people refer to C as "portably assembly language".I often say that nobody ever understands when they should and shouldn't use hash tables until they've written a hash table in assembly language; you don't necessarily need to go to that extreme, but working in C at all will give you a much better understanding of fundamental algorithms and data structures than if you only ever use high level languages which hide such details away from you.