Is this expected behaviour? data A = A { b :: { c :: Array String } } The `Generic.Rep` representation is: (Constructor "A" (Rec (Field "b" { c :: Array String } ) ) ) I would have expected the inner record to result in `Rec (Field "c" ...` and so on.