@@ -238,6 +238,197 @@ instance (FromField a, FromField b, FromField c, FromField d, FromField e,
238238 null *> null *> null *> null *> null *> pure Nothing)
239239 <|> (Just <$> fromRow)
240240
241+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
242+ FromField f, FromField g, FromField h, FromField i, FromField j,
243+ FromField k) =>
244+ FromRow (a,b,c,d,e,f,g,h,i,j,k) where
245+ fromRow = (,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
246+ <*> field <*> field <*> field <*> field <*> field
247+ <*> field
248+
249+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
250+ FromField f, FromField g, FromField h, FromField i, FromField j,
251+ FromField k) =>
252+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k)) where
253+ fromRow = (null *> null *> null *> null *> null *>
254+ null *> null *> null *> null *> null *>
255+ null *> pure Nothing)
256+ <|> (Just <$> fromRow)
257+
258+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
259+ FromField f, FromField g, FromField h, FromField i, FromField j,
260+ FromField k, FromField l) =>
261+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l) where
262+ fromRow = (,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
263+ <*> field <*> field <*> field <*> field <*> field
264+ <*> field <*> field
265+
266+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
267+ FromField f, FromField g, FromField h, FromField i, FromField j,
268+ FromField k, FromField l) =>
269+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l)) where
270+ fromRow = (null *> null *> null *> null *> null *>
271+ null *> null *> null *> null *> null *>
272+ null *> null *> pure Nothing)
273+ <|> (Just <$> fromRow)
274+
275+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
276+ FromField f, FromField g, FromField h, FromField i, FromField j,
277+ FromField k, FromField l, FromField m) =>
278+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m) where
279+ fromRow = (,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
280+ <*> field <*> field <*> field <*> field <*> field
281+ <*> field <*> field <*> field
282+
283+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
284+ FromField f, FromField g, FromField h, FromField i, FromField j,
285+ FromField k, FromField l, FromField m) =>
286+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m)) where
287+ fromRow = (null *> null *> null *> null *> null *>
288+ null *> null *> null *> null *> null *>
289+ null *> null *> null *> pure Nothing)
290+ <|> (Just <$> fromRow)
291+
292+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
293+ FromField f, FromField g, FromField h, FromField i, FromField j,
294+ FromField k, FromField l, FromField m, FromField n) =>
295+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n) where
296+ fromRow = (,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
297+ <*> field <*> field <*> field <*> field <*> field
298+ <*> field <*> field <*> field <*> field
299+
300+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
301+ FromField f, FromField g, FromField h, FromField i, FromField j,
302+ FromField k, FromField l, FromField m, FromField n) =>
303+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n)) where
304+ fromRow = (null *> null *> null *> null *> null *>
305+ null *> null *> null *> null *> null *>
306+ null *> null *> null *> null *> pure Nothing)
307+ <|> (Just <$> fromRow)
308+
309+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
310+ FromField f, FromField g, FromField h, FromField i, FromField j,
311+ FromField k, FromField l, FromField m, FromField n, FromField o) =>
312+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) where
313+ fromRow = (,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
314+ <*> field <*> field <*> field <*> field <*> field
315+ <*> field <*> field <*> field <*> field <*> field
316+
317+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
318+ FromField f, FromField g, FromField h, FromField i, FromField j,
319+ FromField k, FromField l, FromField m, FromField n, FromField o) =>
320+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)) where
321+ fromRow = (null *> null *> null *> null *> null *>
322+ null *> null *> null *> null *> null *>
323+ null *> null *> null *> null *> null *> pure Nothing)
324+ <|> (Just <$> fromRow)
325+
326+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
327+ FromField f, FromField g, FromField h, FromField i, FromField j,
328+ FromField k, FromField l, FromField m, FromField n, FromField o,
329+ FromField p) =>
330+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) where
331+ fromRow = (,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
332+ <*> field <*> field <*> field <*> field <*> field
333+ <*> field <*> field <*> field <*> field <*> field
334+ <*> field
335+
336+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
337+ FromField f, FromField g, FromField h, FromField i, FromField j,
338+ FromField k, FromField l, FromField m, FromField n, FromField o,
339+ FromField p) =>
340+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)) where
341+ fromRow = (null *> null *> null *> null *> null *>
342+ null *> null *> null *> null *> null *>
343+ null *> null *> null *> null *> null *>
344+ null *> pure Nothing)
345+ <|> (Just <$> fromRow)
346+
347+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
348+ FromField f, FromField g, FromField h, FromField i, FromField j,
349+ FromField k, FromField l, FromField m, FromField n, FromField o,
350+ FromField p, FromField q) =>
351+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) where
352+ fromRow = (,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
353+ <*> field <*> field <*> field <*> field <*> field
354+ <*> field <*> field <*> field <*> field <*> field
355+ <*> field <*> field
356+
357+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
358+ FromField f, FromField g, FromField h, FromField i, FromField j,
359+ FromField k, FromField l, FromField m, FromField n, FromField o,
360+ FromField p, FromField q) =>
361+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q)) where
362+ fromRow = (null *> null *> null *> null *> null *>
363+ null *> null *> null *> null *> null *>
364+ null *> null *> null *> null *> null *>
365+ null *> null *> pure Nothing)
366+ <|> (Just <$> fromRow)
367+
368+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
369+ FromField f, FromField g, FromField h, FromField i, FromField j,
370+ FromField k, FromField l, FromField m, FromField n, FromField o,
371+ FromField p, FromField q, FromField r) =>
372+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) where
373+ fromRow = (,,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
374+ <*> field <*> field <*> field <*> field <*> field
375+ <*> field <*> field <*> field <*> field <*> field
376+ <*> field <*> field <*> field
377+
378+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
379+ FromField f, FromField g, FromField h, FromField i, FromField j,
380+ FromField k, FromField l, FromField m, FromField n, FromField o,
381+ FromField p, FromField q, FromField r) =>
382+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r)) where
383+ fromRow = (null *> null *> null *> null *> null *>
384+ null *> null *> null *> null *> null *>
385+ null *> null *> null *> null *> null *>
386+ null *> null *> null *> pure Nothing)
387+ <|> (Just <$> fromRow)
388+
389+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
390+ FromField f, FromField g, FromField h, FromField i, FromField j,
391+ FromField k, FromField l, FromField m, FromField n, FromField o,
392+ FromField p, FromField q, FromField r, FromField s) =>
393+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) where
394+ fromRow = (,,,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
395+ <*> field <*> field <*> field <*> field <*> field
396+ <*> field <*> field <*> field <*> field <*> field
397+ <*> field <*> field <*> field <*> field
398+
399+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
400+ FromField f, FromField g, FromField h, FromField i, FromField j,
401+ FromField k, FromField l, FromField m, FromField n, FromField o,
402+ FromField p, FromField q, FromField r, FromField s) =>
403+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s)) where
404+ fromRow = (null *> null *> null *> null *> null *>
405+ null *> null *> null *> null *> null *>
406+ null *> null *> null *> null *> null *>
407+ null *> null *> null *> null *> pure Nothing)
408+ <|> (Just <$> fromRow)
409+
410+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
411+ FromField f, FromField g, FromField h, FromField i, FromField j,
412+ FromField k, FromField l, FromField m, FromField n, FromField o,
413+ FromField p, FromField q, FromField r, FromField s, FromField t) =>
414+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) where
415+ fromRow = (,,,,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
416+ <*> field <*> field <*> field <*> field <*> field
417+ <*> field <*> field <*> field <*> field <*> field
418+ <*> field <*> field <*> field <*> field <*> field
419+
420+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
421+ FromField f, FromField g, FromField h, FromField i, FromField j,
422+ FromField k, FromField l, FromField m, FromField n, FromField o,
423+ FromField p, FromField q, FromField q, FromField r, FromField s,
424+ FromField t) =>
425+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t)) where
426+ fromRow = (null *> null *> null *> null *> null *>
427+ null *> null *> null *> null *> null *>
428+ null *> null *> null *> null *> null *>
429+ null *> null *> null *> null *> null *> pure Nothing)
430+ <|> (Just <$> fromRow)
431+
241432instance FromField a => FromRow [a] where
242433 fromRow = do
243434 n <- numFieldsRemaining