CheckedAddAssignの定義難しいよね
cloneを減らせるうまい定義見せて欲しい