catches more bugs than just compiling. todo: what config do we want? are the defaults good enough? also add to pre-commit