+1 for shellcheck recommendation, it's fairly essential if you want to be good at Bash

Is shellcheck written in Haskell?

Yes, it's mentioned on their homepage - "written in Haskell, if you're into that sort of thing."

https://www.shellcheck.net/