+-- | Some database types cannot be constructed from the XML type
+-- alone; they must be supplied a foreign key to a parent object
+-- first. Members of this class can be converted from an XML
+-- representation to a database representation in this manner.
+--
+class FromXmlFk a where
+ -- | Each instance @a@ must declare its associated database type @DbFk a@.
+ type DbFk a :: *
+
+ -- | The type of our parent object, i.e. to the type to whom our
+ -- foreign key will point.
+ type Parent a :: *
+
+ -- | The function that produces a @DbFk a@ out of an @a@ and a foreign
+ -- key.
+ from_xml_fk :: a -> DefaultKey (Parent a) -> DbFk a
+
+