That is a downside the Frege author had - one of the reasons he abandandoned this style of implementation. It is listed on the wiki.

On Sat, Jan 14, 2012 at 3:28 PM, Jan-Willem Maessen <jmaessen@alum.mit.edu> wrote:
On Fri, Jan 13, 2012 at 6:52 PM, Simon Peyton-Jones
<simonpj@microsoft.com> wrote:
> [... good summary of the issues...]
> But note what has happened: we have simply re-invented SORF.  So the
> conclusion is this:
>
>   the only sensible way to implement FDR is using SORF.

An obvious question at this point: can records have unboxed fields?
I'm worried a bit about the kinds that can appear in a has constraint:

> A feature of SORF is that you can write functions like this
>
>   k :: Has r "f" Int => r -> Int
>   k r = r.f + 1

I'm thinking out loud about the implementation implications here.

-Jan-Willem Maessen