
-- | Constraint representing the fact that the field @x@ can be get and set on
--   the record type @r@ and has field type @a@.  This constraint will be solved
--   automatically, but manual instances may be provided as well.
--
--   The function should satisfy the invariant:
--
-- > uncurry ($) (hasField @x r) == r