Python is great for this. You can have kids building whatever in class and they can go home and use the same tools and make videogames or visual novels or whatever else strikes their fancy, and when they get hired still use the same tools.
My main issue with haskell is that it's likely not very transferable. That isn't to say you shouldn't be able to use it or teach it - maybe you can teach something unique with it you can't teach with other languages, but that needs a bit of explanation beyond just "well I prefer it".
The education should serve the students, not tickle the fancy of the teacher.
I thought this for a long time, having taught myself Haskell in university. I never regretted it, but I'll admit I never thought of it as a practical choice either.
Then I ran into Rust, and found I was somewhat mistaken. ;-)
If they just learned anything they'd progress at roughly the same rate, but when their motivation is impacted it makes a bigger difference.
Common Lisp lacks a static type checker, or any decent type system. These days I consider that a catastrophically bad design choice, and I can't justify teaching it as anyone's first language. It's also, well, it's design by committee.
Scheme might be better -- at least then you'd be learning about call/cc. If you aren't learning a language purely for work, then I think learning it should teach you something new. Scheme, Rust, Haskell, even Java/Kotlin if you've never used a decent IDE -- all of those can teach you something. CL sort of can't, anymore, though for a long time it could.
If anything it should be mandatory to learn something else. It might be the only non-work programming language they will ever learn. Cradle to grave Python / Java?
Would Common Lisp / Haskell be considered a bad / good / ancient choice?