@@ -249,12 +249,14 @@ type TableConstraints = [(Symbol,TableConstraint)]
249type family NilTableConstraints :: TableConstraints where
249type family NilTableConstraints :: TableConstraints where
250 NilTableConstraints = '[]
250 NilTableConstraints = '[]
252+-- | A `ForeignKey` must reference columns that either are
253+-- a `PrimaryKey` or form a `Unique` constraint.
252type family Uniquely
254type family Uniquely
253− (keys :: [Symbol])
255+ (key :: [Symbol])
254 (constraints :: TableConstraints) :: Constraint where
256 (constraints :: TableConstraints) :: Constraint where
255− Uniquely keys (uq ::: 'Unique keys ': constraints) = ()
257+ Uniquely key (uq ::: 'Unique key ': constraints) = ()
256− Uniquely keys (uq ::: 'PrimaryKey keys ': constraints) = ()
258+ Uniquely key (pk ::: 'PrimaryKey key ': constraints) = ()
257− Uniquely keys (_ ': constraints) = Uniquely keys constraints
259+ Uniquely key (_ ': constraints) = Uniquely key constraints
259-- | `TableType` encodes a row of constraints on a table as well as the types
261-- | `TableType` encodes a row of constraints on a table as well as the types
260-- of its columns.
262-- of its columns.