Consider the following type parameter clause [F[_] <: Int] in
def h[F[_] <: Int] = ???
where a type constructor F is bounded by the proper type Int. Now both h[List] and h[Int] are illegal
scala> def h[F[_] <: Int] = ???
|
def h[F[_] <: Int]: Nothing
scala> h[List]
^
error: type arguments [List] do not conform to method h's type parameter bounds [F[_] <: Int]
scala> h[Int]
^
error: Int takes no type parameters, expected: 1
so why is then [F[_] <: Int] legal?