Rights Reserved 10 共通ライブラリの開発 Entity Id は shapeless の tagged type を使って定義していたが、 Scala 3 では Opaque Type を使って定義することができた 書いてて楽しかった Scala 3 // Opaque types opaque type Id <: EntityId.IdLong = EntityId.IdLong object Id extends EntityId.IdLongGen[Id] // Tagged Type val Id = the[Identity[Id]] type Id = Long @@ User Scala 3 (標準ライブラリのみ ) Scala 2 (shapeless を利用)