I think default value shouldn't be limited to int. It is an unnecessary type check, and it even has a small performance cost.