@@ -46,6 +46,7 @@ module Squeal.PostgreSQL.Schema
4646 , TableType
4747 -- * Schema
4848 , SchemumType (..)
49+ , SchemumToType
4950 , SchemaType
5051 -- * Constraints
5152 , (:=>)
@@ -651,6 +652,11 @@ data SchemumType
651652 | View RowType
652653 | Typedef PGType
653654
655+type family SchemumToType (schemum :: SchemumType) :: PGType where
656+ SchemumToType ('Typedef ty) = ty
657+ SchemumToType ('Table table) = 'PGcomposite (TableToRow table)
658+ SchemumToType ('View view) = 'PGcomposite view
659+
654660-- | The schema of a database consists of a list of aliased,
655661-- user-defined `SchemumType`s.
656662type SchemaType = [(Symbol,SchemumType)]