It is not possible to straightforwardly lift the deconstructors to type classes because existentially quantified type variables will escape.
Rank-2 polymorphism offers tools to define the types in such a way that this is not the case anymore.
However, implementing compiling views on the \gls{DSL} is complicated because it would require inventing values of an existentially quantified type variable to satisfy the type system which is difficult.
-
Finally, having to write a parser for the \gls{DSL} is extra work.
Future research could determine whether it is possible to generate this using \gls{TH} as well.