Consider the type:
data Record key = Record { key :: key, column :: Int }
We can't write deriveEsqueletoRecord here because there's a type error. We can't provide concrete things because deriveEsqueletoRecord takes a Name and not a Type, so we can't write deriveEsqueletoRecord @(Record Foo).
Ideally we can support polymorphic records.