I've added type-hinting to every function (available since php5.0), which is useful for finding bugs since it causes tests to hard-fail if we are calling a function incorrectly