Going through "Haskell. The Craft of Functional Programming" book , in section 16.8 I found a Set module example.
Module declarations starts with:

 import List hiding (union)

"Set" module here is built with list and uses among other things list comparison functions such as (==) and (<=).

 For example:

 eqSet        :: Eq a => Set a -> Set a -> Bool

eqSet (SetI xs) (SetI ys) = (xs == ys)

 
Q1:  Where "List" module is imported from?

GHC "Base" package contains "Data.List" module, not just "List" module.

Besides,  "Data.List" does not have (<=) function.

 Q2: Any tutorial on using GHC libraries out there?

Thanks!
Dima