- Dependently typed languages (ATS, Agda, Idris)¹ should be fairly familiar if you're a Haskell veteran.
- Array languages (APL, J, K, and more obscure ones like Nial) are pretty enlightening if you're a functional programmer (at least they are for me). Most of these trace to Ken Iverson and his Notation as a Tool of Thought. They are a bit brain-bending at first, largely because of the density, but they're fun to use and the density makes comprehension easier after a while.
- Function-level languages (FL, FPr, J) – a somewhat obscure and very advanced sister to functional programming. If you're familiar with Haskell Arrows, there are many parallels. They are, essentially, a more convenient point-free style. Most (all?) of these trace to John Backus (of Fortran and Backus-Naur Form fame) and his 1977 Turing Award lecture Can Programming Be Liberated From the von Neumann Style?
J (http://jsoftware.com/) combines array and function-level programming, and IMO is a very good language to learn to expand your horizons if you're a veteran functional programmer.
--
¹ Coq kinda, but it's more of a theorem prover than a programming language. Agda sort of fits that too.
Didn't know FL/FPr were arrow-like. Didn't even know they were implemented .. I thought Backus quit because of IO.
Lots of people are suggesting the Idris/Agda road .. I guess I have my answer.
There's #proglangdesign on freenode where a bunch of us have been on an array language/function-level streak lately. Some people there might be aware of more.
You could also explore languages from an academic perspective. Benjamin Pierce has written several high quality texts about topics in programming languages.
ps: Esterel/Lustre synchronous programming comes to mind too, or Petri nets ..
You can try Curry or Mercury for Logic/Functional cross.
Shen for something with Turing-complete type-system (by design, as opposed to C++ templates).
Do you know any array language? Like J or K (or APL, though personally I never dared). I can recommend J as a better documented and easier to get into language.
Have you seen Avail (http://availlang.org)? It looks very funny at first, but it is incredibly expressive.
What about Factor and Cat/Kitten? Stack-based languages, the latter additionally statically typed.