I'm learning Haskell as I go, so these are likely inefficient, not aligned with the Haskell philosophy and maybe even incorrect. Hopefully they'll improve as I learn.
If you're so inclined to look through these solutions and would like to tell me how to do better, please do.
Perhaps as I improve you may find items in these exercises you'd like to use in your projects. Feel free to do so within the very permissive MIT license. If you have any questions, feel free to contact me.
These details are provided for information only. No information here is legal advice and should not be used as such.