Enhance error() to have a source optionally