Yes, there were some changes in GHC 8.x when compared to GHC 7.x. I don't know if there is a practical graph somewhere but you can usually find out all of useful information about a certain type class, as well as what it inherits from by typing `:i <name_of_typeclass>` in your REPL.
For example, if you check for `Real` type class, you can see that it "inherits" from `Num` and `Ord`, and if you check a concrete type like `Int` than you can see it has instance of `Show`.
Prelude> :i Real
class (Num a, Ord a) => Real a where
toRational :: a -> Rational
{-# MINIMAL toRational #-}
-- Defined in `GHC.Real'
instance Real Word -- Defined in `GHC.Real'
instance Real Integer -- Defined in `GHC.Real'
instance Real Int -- Defined in `GHC.Real'
instance Real Float -- Defined in `GHC.Float'
instance Real Double -- Defined in `GHC.Float'
Prelude> :i Int
data Int = GHC.Types.I# GHC.Prim.Int# -- Defined in `GHC.Types'
instance Bounded Int -- Defined in `GHC.Enum'
instance Enum Int -- Defined in `GHC.Enum'
instance Eq Int -- Defined in `GHC.Classes'
instance Integral Int -- Defined in `GHC.Real'
instance Num Int -- Defined in `GHC.Num'
instance Ord Int -- Defined in `GHC.Classes'
instance Read Int -- Defined in `GHC.Read'
instance Real Int -- Defined in `GHC.Real'
instance Show Int -- Defined in `GHC.Show'