This PR replaces the existing TypeName system with a new TypeId implementation that provides richer and more expressive type metadata, as specified in #471.
typeId ModuleA complete new module implementing robust type identification:
| Component | Description |
|---|---|
| TypeId[A] | Sealed trait with Nominal, Alias, and Opaque variants |
| Owner | Ownership chain with Package/Term/Type segments |
| TypeParam | Type parameters with variance and bounds support |
| TypeRepr | Full type expression representation |
| Member | Structural type members (Val, Def, TypeMember) |
| TermPath | Singleton type path representation |
TypeId.derive[T] compiles on both:
| Scala Version | Tests |
|---|---|
| Scala 3.3.7 | ✅ 46 passed |
| Scala 2.13.18 | ✅ 46 passed |
| Scala Version | Tests |
|---|---|
| Scala 3.3.7 | ✅ 643 passed |
| Scala 2.13.18 | ✅ 599 passed |
Total: 1,334 tests passing across both Scala versions.
https://github.com/user-attachments/assets/bfd1fd57-7c53-45d3-9f35-8dc8cfd7f5b3
https://github.com/user-attachments/assets/16d68db3-9c6e-4fa1-b648-f9f88105ed76
Fixes #471
Natneal.B
@natinew77-creator
ZIO
@ZIO