}最初のいくつかピックアップして規則を確認すると、ほぼそのまま実装されていることがわかる。...特筆すべきところは特にないが、一応(Swift特有の)Boolはこんな感じ。...こちらもだいたいそのままなので略。}とのことで各組み合わせについて愚直に実装してある。基本はsubstractionを使うのものと同じ(はず)網羅チェックの実装SpaceEngine::checkExhaustivenessがそれです。前段のSwitchStmtに対しての型チェックが失敗しているときにtrueが来る。参照を持っていて、そこからマッチさせたい型や各case(パターン)などを取り出して使う。...}ここがコアの部分です、。0をそのまま実装しているけど、結局isSubspaceをつかってないのはなぜ。return;}where句を持つcaseについてこれも理論通り網羅チェックには使えないことが明記されている。continue;その他の用語いくつか論文中には出てこないものが実装されているので簡単にメモしておく。メソッドはこのSpaceが網羅チェックに有用かどうかを表す。空Spaceか、空Spaceのunionなどだとfalseが返る。warningに関する論文の方できちんと定義されているっぽい。computeSizeでSpaceのサイズを返す。T(T)はサイズ1として、Kやunionの場合はそれらを構成するSpaceのサイズの合計になる。複雑すぎる)場合にエラーにするようにしている。は@_downgrade_exhaustivity_checkという特定のcaseを網羅チェックから外すのに使えるアトリビューション用っぽいが、Swift4では使えない)みたい。参考論文が書いてあった&ほぼ論文通り実装されていたのと、1ファイルでほぼ閉じているのでとても読みやすかった。