Ternary拡張
関数のパターンマッチの簡略化
Invalidの場合を最後にすることで簡略化した。
mergeしました