I almost doubt to answer this question because I only understand a little of it myself, but I spent a couple of days looking at it myself about a year ago, and this is my real understanding ...
Both classes are used for introspection .... Using them, you can access paragraphs of the Haskell code (the Haskell program itself).
, , , , .
" ()" , , , (... ).
"" (Generic) " , , (.. ). GHC.
- " ()" - "" -, .
Haskell - Haskell parsetrees, 100% compiletime , (.. , , Lisp).
, , , , , - ( ).