They even have their internal Haskell compiler which IIUC gets fed a dialect in order to have strict evaluation and a couple other non-standard properties. One nice thing the ecosystem got from their internal team is the official Shake implementation, which supersedes the various 3rd-party implementations and actually works really well. It even can interpret Ninja files, so it can be used in place of ninja when building things like Cmake-based projects or, say, Chromium. Not that there much of a reason to use Shake when you use Ninja, but you can and some of the reporting features might be exclusive to Shake. Usually you write a Shakefile.hs (instead of Makefile) and run it with shake.
Mind sharing names?