I generally like the direction of this series, but I think there's no point to extend Mercurial's exit code handling to support all weird Python types. Only ints and (None for 0) are ever valid.