You can find the following on the web:

1. **Higher kinded type == type constructor?**

> 
> 
> ```scala
> class AClass[T]{...} // For example, class List[T]
> 
> ```
> 
> 

Some say this is a higher kinded type, because it
abstracts over types which would be compliant with the definition.

> 
> *Higher kinded types* are types which take other types and construct a new type
> 
> 
> 

These though are also known as *type constructor*. (For example, in [Programming in Scala](http://www.artima.com/pins1ed/type-parameterization.html#19.3)).
2. **Higher kinded type == type constructor which takes type constructor as a type parameter?**

In the paper [Generics of a Higher Kind](http://adriaanm.github.com/files/higher.pdf), you can read

> 
> ... types that abstract over types that abstract over types
>  ('higher-kinded types') ..."
> 
> 
> 

which suggests that

> 
> 
> ```scala
> class XClass[M[T]]{...} // or
> 
> trait YTrait[N[_]]{...} // e.g. trait Functor[F[_]]
> 
> ```
> 
> 

is a higher kinded type.

So with this in mind, it is difficult to distinguish between *type constructor*, *higher kinded type* and *type constructor which takes type constructors as type parameter*, therefore the question above.