A type family is a type-level function: it accepts type-level marks and computes the result type needed by a polymorphic data structure. In the HKD pattern, this lets one meteor record shape represent domain, SQLite, and Postgres variants. section 12.1.3
The design separates shared structure from representation-specific field types:
- Let TypeSelector choose each concrete field type at compile time, preserving common construction, access, and pattern matching. section 12.1.3
Meteor representations
The same Meteor constructor can produce a domain Meteor with Int and Float fields or a SQLiteMeteor with INTEGER and FLOAT fields; getSize consequently returns different types.
