* Remove mutable iterables as function defaults * Improve error reporting and standardise how it's done