@@ -681,50 +681,53 @@ instance
681681 = fmap fromRecord
682682 . hsequence'
683683 . htrans (Proxy @FromField) fromField
684−instance (FromField (col ::: pg) (col ::: hask))
685− => FromRow '[col ::: pg] (P (col ::: hask)) where
686− fromRow (pg :* Nil) = (unComp . fromField) pg
687−instance
688− ( row ~ Join row1 row2
689− , FromRow row1 hask1
690− , FromRow row2 hask2
691− , SListI row
692− ) => FromRow row (hask1, hask2) where
693− fromRow row = case disjoin @row1 @row2 row of
694− (row1, row2) -> (,) <$> fromRow row1 <*> fromRow row2
695−instance
696− ( row ~ Join row1 row23
697− , FromRow row1 hask1
698− , FromRow row23 (hask2, hask3)
699− , SListI row
700− ) => FromRow row (hask1, hask2, hask3) where
701− fromRow row = case disjoin @row1 @row23 row of
702− (row1, row23) -> do
703− hask1 <- fromRow row1
704− (hask2, hask3) <- fromRow row23
705− return (hask1, hask2, hask3)
706−instance
707− ( row ~ Join row1 row234
708− , FromRow row1 hask1
709− , FromRow row234 (hask2, hask3, hask4)
710− , SListI row
711− ) => FromRow row (hask1, hask2, hask3, hask4) where
712− fromRow row = case disjoin @row1 @row234 row of
713− (row1, row234) -> do
714− hask1 <- fromRow row1
715− (hask2, hask3, hask4) <- fromRow row234
716− return (hask1, hask2, hask3, hask4)
717−instance
718− ( row ~ Join row1 row2345
719− , FromRow row1 hask1
720− , FromRow row2345 (hask2, hask3, hask4, hask5)
721− , SListI row
722− ) => FromRow row (hask1, hask2, hask3, hask4, hask5) where
723− fromRow row = case disjoin @row1 @row2345 row of
724− (row1, row2345) -> do
725− hask1 <- fromRow row1
726− (hask2, hask3, hask4, hask5) <- fromRow row2345
727− return (hask1, hask2, hask3, hask4, hask5)
684+------------------------------------------------------
685+-- P records
686+------------------------------------------------------
687+-- instance (FromField (col ::: pg) (col ::: hask))
688+-- => FromRow '[col ::: pg] (P (col ::: hask)) where
689+-- fromRow (pg :* Nil) = (unComp . fromField) pg
690+-- instance
691+-- ( row ~ Join row1 row2
692+-- , FromRow row1 hask1
693+-- , FromRow row2 hask2
694+-- , SListI row
695+-- ) => FromRow row (hask1, hask2) where
696+-- fromRow row = case disjoin @row1 @row2 row of
697+-- (row1, row2) -> (,) <$> fromRow row1 <*> fromRow row2
698+-- instance
699+-- ( row ~ Join row1 row23
700+-- , FromRow row1 hask1
701+-- , FromRow row23 (hask2, hask3)
702+-- , SListI row
703+-- ) => FromRow row (hask1, hask2, hask3) where
704+-- fromRow row = case disjoin @row1 @row23 row of
705+-- (row1, row23) -> do
706+-- hask1 <- fromRow row1
707+-- (hask2, hask3) <- fromRow row23
708+-- return (hask1, hask2, hask3)
709+-- instance
710+-- ( row ~ Join row1 row234
711+-- , FromRow row1 hask1
712+-- , FromRow row234 (hask2, hask3, hask4)
713+-- , SListI row
714+-- ) => FromRow row (hask1, hask2, hask3, hask4) where
715+-- fromRow row = case disjoin @row1 @row234 row of
716+-- (row1, row234) -> do
717+-- hask1 <- fromRow row1
718+-- (hask2, hask3, hask4) <- fromRow row234
719+-- return (hask1, hask2, hask3, hask4)
720+-- instance
721+-- ( row ~ Join row1 row2345
722+-- , FromRow row1 hask1
723+-- , FromRow row2345 (hask2, hask3, hask4, hask5)
724+-- , SListI row
725+-- ) => FromRow row (hask1, hask2, hask3, hask4, hask5) where
726+-- fromRow row = case disjoin @row1 @row2345 row of
727+-- (row1, row2345) -> do
728+-- hask1 <- fromRow row1
729+-- (hask2, hask3, hask4, hask5) <- fromRow row2345
730+-- return (hask1, hask2, hask3, hask4, hask5)
728731
729732-- | `Only` is a 1-tuple type, useful for encoding a single parameter with
730733-- `toParams` or decoding a single value with `fromRow`.