Ppx_deriving fields for nested fields or tuple of records

@Chet_Murthy @techol I could change my original question to the following one. In practice, it should work as well, and may forgo the technicalities that arise with an attempt to use PPX in the original case.

How could we generate

type t =
{
  a1 : int ;
  a2 : float ;
  b1 : int ;
  b2 : string ;
}
[@@deriving fields]

from two known record types alpha and beta (defined above), using PPX, and how could we define corresponding conversion functions.

@Chet_Murthy If the alpha and beta are known record types, we should be able to pull this off with the current approach. Other type constructs could simply be rejected. What do you think?