Kotlin は null 安全性を備えていますが、設計上「同一の概念に複数のタイプ(例:文字列・数値など)」を持たせたい場合、nullable プロパティや共通フィールドによる冗長で壊れやすい設計になりがちです。 本セッションではsealed interfaceを活用し、各バリアントを代数的データ型(ADT)として型安全に設計する関数型的アプローチを紹介します。null を排除し、型で制約を表現する設計によって、シンプルで堅牢なコードを実現できます。 さらに、