+-- 'qtvs' are the quantified type variables, the ones which an be instantiated
+-- to make the types match. For example, given
+-- class C a b | a->b where ...
+-- instance C (Maybe x) (Tree x) where ..
+--
+-- and an Inst of form (C (Maybe t1) t2),
+-- then we will call checkClsFD with
+--
+-- qtvs = {x}, tys1 = [Maybe x, Tree x]
+-- tys2 = [Maybe t1, t2]
+--
+-- We can instantiate x to t1, and then we want to force
+-- (Tree x) [t1/x] :=: t2
+